Best free web filter of 2022 TechRadar
Best free web filter of 2022 TechRadar Skip to main content TechRadar is supported by its audience. When you purchase through links on our site, we may earn an affiliate commission. Here's why you can trust us. Best free web filter of 2022 By Sead Fadilpašić published 22 June 2022 Check out our top picks and pick out a web filter that fits your needs (Image credit: Future) Whether you're concerned about cybersecurity in your business environment or that your household is being contaminated with toxic content on the web, by choosing the best free web filter you'll save yourself from such worries. Mind you, the web filter of your choice doesn't have to come free of charge, but since there are some fine free options as well – be sure to check them out before preparing to pick up the tab. Installing such web filtering software should not take more than a couple of minutes, yet it can serve as the first line of defense against malware and similar sorts of cyber threats. It often starts with seemingly safe links, banners, or pop-ups that, when clicked on, will take their unsuspecting victims to unsafe sites filled with malware (opens in new tab), ransomware (opens in new tab), fraudulent surveys, and all types of scams that sought to steal your personal information. So, to help you find the best free web filter for this year, we'll take a deep dive into web filtering solutions in the market that are either completely free of charge or offer free tiers. (opens in new tab) Share your thoughts on Cybersecurity and get a free copy of the Hacker's Manual 2022 (opens in new tab). Help us find how businesses are preparing for the post-Covid world and the implications of these activities on their cybersecurity plans. Enter your email at the end of this survey (opens in new tab) to get the bookazine, worth $10.99/£10.99. (opens in new tab)A TechRadar choice for top URL Filtering provider (opens in new tab) Protect your employees and network from web-based threats with URL Filtering. Track web activity. Create custom filtering rules. Block malicious content. Secure your entire organization with just a few clicks with Perimeter 81. Radically simple. Get started today! What is a free web filter A web filter is security software that focuses on monitoring and managing the web locations and applications accessed by users, authorizing the administrator to either allow or block certain URLs (opens in new tab), DNS', or content and enforce a specific security policy. However, not all web filters are created the same: some solutions are meant for individuals and households, while others are geared towards businesses and institutions. There are two main approaches to web filtering: blacklisting – which implies that a list of malicious or otherwise undesirable sites is made and access blocked accordingly, and whitelisting - an opposite (and stricter) approach to blacklisting which implies creating a list of permitted sites and blocking everything else. Also, as the term suggests, a free web filter is one that comes completely free of charge - and usually not for a limited period only. How to choose the best free web filter So, since most free web filters aren't worth it, how to choose a worthwhile solution? First of all, you need to know on which devices (smartphone or desktop) you want to use a web filter, the number of devices you had in mind, as well as operating system (OS) or browser they're created for – that's because many of these are actually meant as extensions or add-ons of certain browsers (opens in new tab) (like Chrome, Firefox, and Opera). You'll also want to check whether these web filters grant a good protection level taking into consideration features such as scanning downloaded files for malware, app-blocker, filtering HTTPS/SSL encrypted traffic, protection from malware, phishing, and unwanted software overall, group-based web filtering, tracking a device' location, access to device's web history, real-time alerts and extensive reports. Also, if you're using a free tier from a company that offers paid plans, check their product range as well the scope of their customer support. The best free web filters How do we test them Considering that all web filters we've tested so far are either free, provide a free tier, or offer a free trial putting them to the test was way easier than it usually is – and no one risked busting their budget. First, we'll take a look at available plans (if there are more than one), pick a free option, and evaluate how simple it is to set up a web filter and put it to use while paying particular attention to the ease of use, functionality, and performance. However, we have to note that a more thorough evaluation of web filtering software would not only require months of testing but also put the reviewer at real risk of identity theft and fraud, which isn't in line with our security policy. (Image credit: Qustodio) 1 Qustodio Best for keeping your youngsters safe onlineToday's Best DealsQustodio Premium Small (opens in new tab)$54.95/year (opens in new tab)10% off with code:...Qustodio Premium Medium (opens in new tab)$96.95/year (opens in new tab)Qustodio Premium Large (opens in new tab)$137.95/year (opens in new tab)Visit Site (opens in new tab)at Qustodio (opens in new tab) Reasons to buy+Available for Windows, Mac, Android, iOS, Kindle, and Nook+Daily and weekly email reports+Intuitive, easy-to-use interface+Screen time monitoring+You can set time limits Reasons to avoid-Single device monitoring with the free version While Qustodio is an all-in-one security solution geared towards parents, its primary purpose is to block suspicious and harmful sites that are swarming with viruses and cybercriminals waiting to steal your personal information – and it keeps you safe through 29 filter categories. Although features of a free plan are pretty limited in comparison to paid ones, they still include some hefty ones like screen time monitoring, setting time limits and restricted periods, as well as daily and weekly reports via email. Being simple to install and set up on desktops and smartphones alike, Qustodio is also simple to use thanks to its intuitive, user-friendly interface. Besides being somewhat short on features (no social media monitoring, no calls nor SMS monitoring, and no family locator), a free plan doesn't support multiple devices – which is a deal-breaker if you want to monitor more than a single device. (Image credit: BlockSite) 2 BlockSiteBest for better productivity Reasons to buy+Customized blocked page+Password protection included+Scheduled sites and apps blocking Reasons to avoid-Limited to Chrome, Firefox, and Edge If you're looking for a web filter that'll help you be less prone to procrastination and live up to your expectation about being productive – BlockSite might be your best bet, and it's free to boot. BlockSite functions as an extension for Chrome, Firefox, and Edge, and an application for Android and iOS – and it stays true to its name and blocks sites for you. You can block each site, app, or keyword separately or block them all by category, receive usage reports about your devices, sync blocks across multiple devices, and much more. Its core features include a custom blocklist, scheduled site and app blocking, and password protection. Also, BlockSite is incredibly intuitive and simple to use – you just need to copy the URL of the site you want to block, hit enter, and it's on your blocklist. While you can always enjoy the benefits of BlockSite completely free of charge, a premium plan aimed at businesses is coming soon and it's going to cost a perfectly reasonable $1.99 per month. (Image credit: Guardio) 3 GuardioPerfect protection for Chrome Reasons to buy+Automatic suspicious site detection+Free version and free trials for paid plans +On-demand vulnerability scanning +Strong on security overall+Superb customer support Reasons to avoid-Sort of overprotective-The free plan is limited With Guardio you can forget about all your worries about malware, phishing attacks, and identity theft – this lightweight extension for Google Chrome is created for safe and speedy browsing. Besides blocking suspicious sites and scams, it can also remove all unwanted pop-ups and similar annoyances that seek to ruin your mood. While Guardio offers free trials with its paid plans, there is also a free tier and it will provide you with suspicious site detection, phishing alerts, personal data leaks history, on-demand scans, and some scope of customer support. On the downside, the plan is limited to one user only and excludes some pretty hefty security features of premium plans. Also, while Guardio is sure to improve your browsing experience, sometimes it gets overprotective and blocks new yet otherwise innocent sites. (Image credit: FamiSafe) 4 FamiSafe Best for keeping your family on the safe side of the internet Reasons to buy+Easy to use+Free trial for everyone+Smart schedule Reasons to avoid-Doesn't log calls or messages-Free trials are too short Pretty popular with big families, FamiSafe is a premium parental control app for mobile devices that supports iOS, Android, Windows, Mac, and Kindle Fire. Depending on the plan, it can safeguard five or up to ten devices and allow parents to supervise their youngsters while protecting their right to privacy. Some of FamiSafe's core features include screen time control and tracking app usage, web filter (for Chrome and Safari), avid app blocker, real-time location monitoring, browser history, and digital activity reports. Plus, FamiSafe's user interface is incredibly intuitive and you shouldn't have any problem navigating around it. However, there are a couple of drawbacks with FamiSafe such as the lack of logging calls and messages. Also, while all plans come with free trials they are terribly short lasting for three days only. (Image credit: OpenDNS) 5 OpenDNS Best at blocking unsuitable sitesToday's Best DealsOpenDNS Home (opens in new tab)OpenDNS Home VIP (opens in new tab)$19.95/year (opens in new tab)Visit Site (opens in new tab)at OpenDNS (opens in new tab) Reasons to buy+60 content filtering categories+Impossible-to-bypass web filter+Unlimited number of blacklists and whitelists+Simple to set up and configure Reasons to avoid-No screen time control-No geolocation tracking To safeguard you from all sorts of cyber threats and corruptive content across the internet, OpenDNS takes a unique twist – it changes the DNS number in your control panel, and it can be done on the router level or for each individual device. While this may sound a bit intimidating at first, as soon as you get your hands on OpenDNS's simple-to-follow how-tos you'll see it's as simple as child's play. Once DNS is configured, the app will block all sites considered inappropriate due to falling into the categories such as violence, pornography, and anonymous proxy. OpenDNS currently offers four plans, two of which are completely free: "OpenDNS Family Shield" and "OpenDNS Home" where the only major difference between them is that the first is pre-configured to block all adult content, while the other isn't. This means you can't customize "OpenDNS Family Shield" in any way, which might be its main drawback – well, that and the absence of screen time control and real-time geolocation tracking feature. With all OpenDNS web filter plans, you'll get specialized customer support via email. (Image credit: SquidGuard) 6 SquidGuardBest for Linux enthusiasts Reasons to buy+Configurable logging +Fast, flexible, and free Reasons to avoid-It can't be used without Squid -Requires some technical know-how If your PC runs on Linux or Unix and you don't mind getting your hands on tech stuff right from the start, SquidGuard might be a good choice for you. First off, you'll want to install and configure proxy-software Squid since SquidGuard can't work without it. In a nutshell, SquidGuard is a fast and flexible web filter, redirector, and access controller plugin for Squid and it works with Squid versions 2.x and 3.x. With SquidGuard you're free to determine multiple access rules with different restrictions for different user groups using the Squid cache. So, in addition to caching content, SquidGuard can filter the web and authenticate users and user groups. This filtering can cover all computers inside an organization, Windows and Macintosh computers alike. SquidGuard utilizes Squid's standard redirector interface and includes features such as configurable logging, a progress bar when compiling blacklists, full self-encrypting drive (SED) compliance for rewrite statements, and blocking of URLs with hostnames. The long-awaited version of SquidGuard (1.4) promises new features – in addition to fixing old bugs, that is. (Image credit: Avast) 7 Avast Free Antivirus Best free antivirus with web filteringToday's Best DealsAvast Free Antivirus (opens in new tab)Visit Site (opens in new tab)at AVAST Software (opens in new tab) Reasons to buy+Cloud-based filtering+Protection against ransomware, viruses, and malware+Smart scans for software+User-friendly interface+Work on Windows, Mac, Linux, Android, and iOS Reasons to avoid-Reportedly stole and resold user data in 2020 Avast's free antivirus is probably what Avast is best known for and it's available on major platforms such as Windows, Mac, Linux, Android, and iOS. Also, in addition to free versions for all these platforms, Avast offers paid premium and business-oriented plans – however, they are pretty pricey. Easy to install and effortless to use, Avast Free Antivirus comes equipped with smart scans for software, an automatic network inspector, proactive protection against ransomware, viruses, and malware, and cloud-based web filtering. There's also a handy "Do Not Disturb" mode which will disable pop-ups while you're enjoying watching a movie, listening to music, or playing a video game. All in all, Avast Free Antivirus is a solid antivirus combined with a web filter and provides a superb level of security. However, if you wish to enjoy this "cloud-light, award-winning free virus protection" you'll risk your sensitive browsing data being stolen and sold to other companies. (Image credit: Comodo Dome Shield) 8 Comodo Dome ShieldBest for blocking web-borne threats Reasons to buy+Easy installation and old-fashioned yet intuitive interface+Ever-expanding, up-to-date fraud site database+Over 20 threat protection categories+Multi-language filtering Reasons to avoid-There's a bit of a learning curve Comodo Dome Shield serves as the first line of defense against web-borne threats and blocks access to well-known suspicious sites providing URL filtering, advanced reporting, and analytics. They also offer a whole variety of their services for free, and they have been providing them for years. Dome Shield's threat database covers over 100 endpoints for filtering, meaning they don't settle with DNS layer security for cyber threat intelligence. Plus, an ever-expanding, up-to-date fraud site database is sure to help users avoid fraudulent, malware-laden sites and phishing attacks. While there's a bit of a learning curve, the intuitive, user-friendly interface and how-to guides make it less significant. What's more, you'll get complete control over web access and filtering - which we're always glad to see. (Image credit: Cold Turkey) 9 Cold TurkeyBest for blocking pretty much everything and boosting productivity Reasons to buy+Can block the entire internet+Cross-browser compatibility+Choose between blocklist and allowlist+Statistics with all plans +You can set time limits on specific sites Reasons to avoid-Many helpful features are locked out of the free version Cold Turkey makes promises to block everything that's keeping you from being productive and helping you "reclaim your free time". It'll deliver on the promise through a free web filtering software for Windows and Mac that works splendidly on all browsers including Chrome, Firefox, and Edge. With Cold Turkey, you can create and manage different blocklists (or allowlists) where each blocklist contains a different set of sites. Also, you can add unblocking date and time, which can be particularly useful if the administrator isn't there to unblock the site for some reason. The only handicap of Cold Turkey's free plan is the absence of helpful features like scheduled blocks, application passwords, break timer, as well as life-long updates, and customer support via email - to get these features, you'll have to go for a paid plan. (Image credit: Kurupira) 10 Kurupira Web FilterProbably the best free web filter for Windows Reasons to buy+Advanced AI-powered web filtering+Can filter or block instant messaging apps and social media sites+Simple to set up+In-depth web usage reports+You can set time frames Reasons to avoid-No online remote reporting Don't let the cute yet outrageously outdated official site fool you - Kurupira's web filter is one of the best web filters for Windows and it can also track user activity and collect all information into comprehensive web usage reports – thereby, it can serve as a web filtering and a parental control app at the same time. Its advanced web filter can use AI to block unsuitable or suspicious sites, but you can also clock sites manually by adding URLs of unwelcome sites to the blocklist. And if there are sites you never want to see on the blocklist – simply add them to the allowlist and shield them from being blocked in the future. In addition to this, Kurupira Web Filter can block instant messaging apps (including Skype, Windows Live Messenger, and Google Talk) and social networking platforms (Facebook, Twitter, and MySpace included). We suppose that Kurupira Web Filter's only downside is the absence of online remote reporting (and perhaps an official site that's stingy on information), but that's really needless nitpicking since it's a free web filter that's probably going to stay free forever. Choose the best free web filter and stay on the safe side of the web So, these were our top picks for free web filters for this year – some offer free trials, some give away free tiers, and some will give you a full version of their software for free. Whether you wish to make the most of your workday, safeguard your family and yourself from cyber threats, or steer clear from sites you find offensive - one is sure, you should pick out the best free web filter and upgrade your browsing experience right now. You might also want to check out the best business VPN (opens in new tab)Round up of today's best deals (opens in new tab)Qustodio Premium Small (opens in new tab)$54.95/year (opens in new tab)View (opens in new tab) (opens in new tab)OpenDNS Home (opens in new tab)View (opens in new tab) (opens in new tab)Avast Free Antivirus (opens in new tab)View (opens in new tab)We check over 250 million products every day for the best pricespowered by window.sliceComponents = window.sliceComponents {}; window.reliableDOMContentLoaded.then(() => { var componentContainer = document.querySelector("#slice-container-authorBio"); if(componentContainer) { var data = {"layout":"default","border":false,"separator":true,"name":"Sead Fadilpa\u0161i\u0107","authorLink":{"text":"Sead Fadilpa\u0161i\u0107","href":"https:\/\/www.techradar.com\/author\/sead-fadilpasic"},"image":{"src":"https:\/\/cdn.mos.cms.futurecdn.net\/Ub4TEE65kmwAxgCsheMMxn.jpg","alt":"Sead Fadilpa\u0161i\u0107","srcSetSizes":[140,300],"fullscreen":false,"lazyLoading":true,"addSEOMetaData":false,"eager":false,"removeNativeWidthRestriction":false,"noCredit":false},"socialLinks":{"socialButtons":[]},"biography":"Sead is a seasoned freelance journalist based in Sarajevo, Bosnia and Herzegovina. He writes about IT (cloud, IoT, 5G, VPN) and cybersecurity (ransomware, data breaches, laws and regulations). In his career, spanning more than a decade, he\u2019s written for numerous media outlets, including Al Jazeera Balkans. He\u2019s also held several modules on content writing for Represent Communications."}; /*! For license information please see authorBio.js.LICENSE.txt */ var authorBio;(()=>{var e={60:(e,t,r)=>{"use strict";function n(){return n=Object.assignfunction(e){for(var t=1;tse});var i=r(6651),s=r.n(i),o=r(1036),a=r.n(o),l={allowedTags:["b","i","em","strong","a","p","br"],allowedAttributes:{a:["href","name","target"]},selfClosing:["input","br"],transformTags:{h1:"strong",h2:"strong",h3:"strong"}};var c=r(4942);const u=function(e,t){return"_blank"===e&&t?"".concat(t," noreferrer noopener"):"_blank"!==et?t:"noreferrer noopener"};function h(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:null;return"undefined"==typeof window?null:window.ffte?e?window.ffte[e]:window.ffte:null}("staticHost");return e?"https://".concat(e).concat(q):q};var H=r(181);function U(e,t){return function(e){if(Array.isArray(e))return e}(e)function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]e["@@iterator"];if(null!=r){var n,i,s=[],o=!0,a=!1;try{for(r=r.call(e);!(o=(n=r.next()).done)&&(s.push(n.value),!ts.length!==t);o=!0);}catch(e){a=!0,i=e}finally{try{onull==r.returnr.return()}finally{if(a)throw i}}return s}}(e,t)(0,H.Z)(e,t)function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}r(3279);var F=function(e){return"string"==typeof e?new URL(e.replace(" ","%20")):e};const V=function(e,t,r){var n="";return t.forEach((function(i,s){var o=t.length!==s+1?", ":"";n="".concat(n).concat(function(e,t){var r,n,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:80,s=arguments.length>2&&void 0!==arguments[2]&&arguments[2]?".webp":"",o=F(e),a=new RegExp(I,"i"),l=o.pathname.match(a),c="";o.pathname&&l&&(c="".concat(null==lnull===(r=l.groups)void 0===r?void 0:r.id,"-").concat(t,"-").concat(i,".").concat(null==lnull===(n=l.groups)void 0===n?void 0:n.ext).concat(s));var u="";return o.protocol&&o.host&&(u="".concat(o.protocol,"//").concat(o.host)),u+c}(e,i,r)," ").concat(i,"w").concat(o)})),n};function G(e){return G="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},G(e)}const W=function e(t){return"object"===G(t)&&t.origin?e(t.origin):"string"==typeof t&&t.includes(".mos.cms.futurecdn.net")};var $=function(e){var t=function(e){var t,r=new RegExp(I,"i"),n=F(e).pathname.match(r);return(null==nnull===(t=n.groups)void 0===t?void 0:t.ext)""}(e);return"jpg"===t&&(t="jpeg"),"image/".concat(t)};const X=function(e){var t=F(e),r=new RegExp(I,"i"),n=t.pathname.match(r),i="";t.pathname&&null!=n&&n.groups&&(i="".concat(n.groups.id,".").concat(n.groups.ext));var s="";return t.protocol&&t.host&&(s="".concat(t.protocol,"//").concat(t.host)),s+i};var Z=["src","dataSrcSet","dataSrcSetWebp","imageSizes","onError"];function J(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}const Y=function(e){var t=e.src,r=e.alt,o=void 0===r?"":r,a=e.className,l=void 0===a?"":a,u=e.attributes,h=void 0===u?{}:u,p=e.srcSetSizes,d=void 0===p?R:p,f=e.sizes,m=void 0===f?z:f,g=e.missingImageSrc,b=void 0===g?B():g,y=e.eager,v=void 0!==y&&y,w=e.onLoad,x=void 0===w?function(){}:w,S=e.setImageRef,E=void 0===S?function(){}:S,_=e.lazyLoading,O=void 0===__,T=e.useOriginalUrl,k=void 0!==T&&T,A=(0,i.useRef)(null),C=(0,i.useRef)(null),P=U((0,i.useState)(l),2),M=P[0],D=P[1],N=U((0,i.useState)(!1),2),L=N[0],j=N[1],I=function(){D((function(e){return"".concat(e," loaded")})),x()},q=k?X(t):t;if(!W(q))return s().createElement("img",n({"data-hydrate":!0,key:"nomosimage ".concat(q," ").concat(o),src:q,alt:o,onLoad:I,className:M},h));if(!O)return s().createElement("img",n({"data-hydrate":!0,key:"".concat(q," ").concat(o),src:q,alt:o,onLoad:I,className:M},h));var H,F,G,Y=function(e){for(var t=1;t150?150:r}(a,l),"%")},O={maxWidth:a?"".concat(a,"px"):"none"};return s().createElement("figure",{className:"image-wrapped__wrapper","data-bordeaux-image-check":!0},s().createElement("div",{className:"image-wrapped__widthsetter",style:w?{}:O,ref:function(e){e&&x&&x(e)}},s().createElement("div",{className:"image-wrapped__aspect-padding",style:_,ref:function(e){e&&S&&S(e)}},p&&s().createElement(ee,{src:p.src,alt:"endorsement ".concat(null!==(t=p.alt)&&void 0!==t?t:""),lazyLoading:c,eager:u,onLoad:h,className:"img__endorsement ".concat(function(e){switch(e){case"top-left":return"img__endorsement--top-left";case"top-right":return"img__endorsement--top-right";case"bottom-left":return"img__endorsement--bottom-left";default:return"img__endorsement--bottom-right"}}(p.position)),missingImageSrc:d}),s().createElement(ee,{src:r,alt:n,width:a,height:l,lazyLoading:c,eager:u,onLoad:h,missingImageSrc:d,className:m(f,"image-wrapped__image"),addSEOMetaData:g,srcSetSizes:b,sizes:y,useOriginalUrl:E}))),!v&&s().createElement(te,{caption:i,credit:o}))};const ne=function(e){var t=e.src,r=e.alt,n=e.caption,i=e.credit,o=e.width,a=e.height,l=e.lazyLoading,c=e.eager,u=e.onLoad,h=e.imageEndorsement,p=e.missingImageSrc,f=e.link,m={src:t,alt:r,caption:n,credit:i,width:o,height:a,lazyLoading:l,eager:c,onLoad:u,imageEndorsement:h,missingImageSrc:p,link:f,className:e.className,addSEOMetaData:e.addSEOMetaData,srcSetSizes:e.srcSetSizes,sizes:e.sizes,noCredit:e.noCredit,removeNativeWidthRestriction:e.removeNativeWidthRestriction,setImageWidthsetterRef:e.setImageWidthsetterRef,setImageAspectPaddingRef:e.setImageAspectPaddingRef,useOriginalUrl:e.useOriginalUrl};return f?s().createElement(d,f,s().createElement(re,m)):s().createElement(re,m)},ie=function(e){var t=e.contributors,r=e.text;return s().createElement("div",{className:"author__contributors"},s().createElement("span",{className:"author__contributors-text"},r),s().createElement("ul",{className:"author__contributors-list"},t.map((function(e){var t;return s().createElement("li",{className:"author__contributor-item",key:"author__contributor-".concat(e.name)},s().createElement("span",{className:"author__contributor-name"},null!==(t=e.link)&&void 0!==t&&t.href?s().createElement("a",{href:e.link.href,className:"author__name_link",rel:"author"},e.name):e.name),e.role)}))))},se=function(e){var t,r=e.name,i=e.socialLinks,o=e.image,c=e.biography,u=e.authorLink,h=e.layout,p=void 0===h?"default":h,f=e.border,m=void 0!==f&&f,g=e.separator,b=void 0!==g&&g,y=e.role,v=e.contributorText,w=e.contributors,x=m?" author--border":"",S=b?" author--separator":"";return s().createElement("div",{className:"author author__".concat(p,"-layout").concat(x).concat(S).concat(("author",u?"":" ".concat("author","--author-page")))},s().createElement("div",{className:"author__header"},o&&s().createElement("div",{className:"author__avatar-block"},s().createElement(ne,n({},o,{className:"author__avatar"}))),s().createElement("div",{className:"author__heading"},s().createElement("div",{className:"author__name"},u?s().createElement(d,{classname:"author__name_link",href:u.href},u.text):s().createElement("h1",{className:"author__name_text"},r)),i&&s().createElement("div",{className:"author__social"},s().createElement(j,n({className:"author__social-buttons"},i))),y&&s().createElement("div",{className:"author__role"},y))),c&&s().createElement("div",{className:"author__biography",dangerouslySetInnerHTML:{__html:(t=c,void 0!==t?a()(t,l):"")}}),w&&s().createElement(ie,{contributors:w,text:v}))}},9996:e=>{"use strict";var t=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t"[object Date]"===tfunction(e){return e.$$typeof===r}(e)}(e)},r="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function n(e,t){return!1!==t.clone&&t.isMergeableObject(e)?a((r=e,Array.isArray(r)?[]:{}),e,t):e;var r}function i(e,t,r){return e.concat(t).map((function(e){return n(e,r)}))}function s(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return e.propertyIsEnumerable(t)})):[]}(e))}function o(e,t){try{return t in e}catch(e){return!1}}function a(e,r,l){(l=l{}).arrayMerge=l.arrayMergei,l.isMergeableObject=l.isMergeableObjectt,l.cloneUnlessOtherwiseSpecified=n;var c=Array.isArray(r);return c===Array.isArray(e)?c?l.arrayMerge(e,r,l):function(e,t,r){var i={};return r.isMergeableObject(e)&&s(e).forEach((function(t){i[t]=n(e[t],r)})),s(t).forEach((function(s){(function(e,t){return o(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))})(e,s)(o(e,s)&&r.isMergeableObject(t[s])?i[s]=function(e,t){if(!t.customMerge)return a;var r=t.customMerge(e);return"function"==typeof r?r:a}(s,r)(e[s],t[s],r):i[s]=n(t[s],r))})),i}(e,r,l):n(r,l)}a.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,r){return a(e,r,t)}),{})};var l=a;e.exports=l},7837:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.attributeNames=t.elementNames=void 0,t.elementNames=new Map([["altglyph","altGlyph"],["altglyphdef","altGlyphDef"],["altglyphitem","altGlyphItem"],["animatecolor","animateColor"],["animatemotion","animateMotion"],["animatetransform","animateTransform"],["clippath","clipPath"],["feblend","feBlend"],["fecolormatrix","feColorMatrix"],["fecomponenttransfer","feComponentTransfer"],["fecomposite","feComposite"],["feconvolvematrix","feConvolveMatrix"],["fediffuselighting","feDiffuseLighting"],["fedisplacementmap","feDisplacementMap"],["fedistantlight","feDistantLight"],["fedropshadow","feDropShadow"],["feflood","feFlood"],["fefunca","feFuncA"],["fefuncb","feFuncB"],["fefuncg","feFuncG"],["fefuncr","feFuncR"],["fegaussianblur","feGaussianBlur"],["feimage","feImage"],["femerge","feMerge"],["femergenode","feMergeNode"],["femorphology","feMorphology"],["feoffset","feOffset"],["fepointlight","fePointLight"],["fespecularlighting","feSpecularLighting"],["fespotlight","feSpotLight"],["fetile","feTile"],["feturbulence","feTurbulence"],["foreignobject","foreignObject"],["glyphref","glyphRef"],["lineargradient","linearGradient"],["radialgradient","radialGradient"],["textpath","textPath"]]),t.attributeNames=new Map([["definitionurl","definitionURL"],["attributename","attributeName"],["attributetype","attributeType"],["basefrequency","baseFrequency"],["baseprofile","baseProfile"],["calcmode","calcMode"],["clippathunits","clipPathUnits"],["diffuseconstant","diffuseConstant"],["edgemode","edgeMode"],["filterunits","filterUnits"],["glyphref","glyphRef"],["gradienttransform","gradientTransform"],["gradientunits","gradientUnits"],["kernelmatrix","kernelMatrix"],["kernelunitlength","kernelUnitLength"],["keypoints","keyPoints"],["keysplines","keySplines"],["keytimes","keyTimes"],["lengthadjust","lengthAdjust"],["limitingconeangle","limitingConeAngle"],["markerheight","markerHeight"],["markerunits","markerUnits"],["markerwidth","markerWidth"],["maskcontentunits","maskContentUnits"],["maskunits","maskUnits"],["numoctaves","numOctaves"],["pathlength","pathLength"],["patterncontentunits","patternContentUnits"],["patterntransform","patternTransform"],["patternunits","patternUnits"],["pointsatx","pointsAtX"],["pointsaty","pointsAtY"],["pointsatz","pointsAtZ"],["preservealpha","preserveAlpha"],["preserveaspectratio","preserveAspectRatio"],["primitiveunits","primitiveUnits"],["refx","refX"],["refy","refY"],["repeatcount","repeatCount"],["repeatdur","repeatDur"],["requiredextensions","requiredExtensions"],["requiredfeatures","requiredFeatures"],["specularconstant","specularConstant"],["specularexponent","specularExponent"],["spreadmethod","spreadMethod"],["startoffset","startOffset"],["stddeviation","stdDeviation"],["stitchtiles","stitchTiles"],["surfacescale","surfaceScale"],["systemlanguage","systemLanguage"],["tablevalues","tableValues"],["targetx","targetX"],["targety","targetY"],["textlength","textLength"],["viewbox","viewBox"],["viewtarget","viewTarget"],["xchannelselector","xChannelSelector"],["ychannelselector","yChannelSelector"],["zoomandpan","zoomAndPan"]])},7220:function(e,t,r){"use strict";var n=this&&this.__assignfunction(){return n=Object.assignfunction(e){for(var t,r=1,n=arguments.length;r"!==e},e.prototype.stateBeforeTagName=function(e){"/"===e?this._state=5:""===e1!==this.speciall(e)?this._state=1:"!"===e?(this._state=15,this.sectionStart=this._index+1):"?"===e?(this._state=17,this.sectionStart=this._index+1):this.isTagStartChar(e)?(this._state=this.xmlMode"s"!==e&&"S"!==e?this.xmlMode"t"!==e&&"T"!==e?3:52:32,this.sectionStart=this._index):this._state=1},e.prototype.stateInTagName=function(e){("/"===e">"===el(e))&&(this.emitToken("onopentagname"),this._state=8,this._index--)},e.prototype.stateBeforeClosingTagName=function(e){l(e)(">"===e?this._state=1:1!==this.special?4===this.special"s"!==e&&"S"!==e?4!==this.special"t"!==e&&"T"!==e?(this._state=1,this._index--):this._state=53:this._state=33:this.isTagStartChar(e)?(this._state=6,this.sectionStart=this._index):(this._state=20,this.sectionStart=this._index))},e.prototype.stateInClosingTagName=function(e){(">"===el(e))&&(this.emitToken("onclosetag"),this._state=7,this._index--)},e.prototype.stateAfterClosingTagName=function(e){">"===e&&(this._state=1,this.sectionStart=this._index+1)},e.prototype.stateBeforeAttributeName=function(e){">"===e?(this.cbs.onopentagend(),this._state=1,this.sectionStart=this._index+1):"/"===e?this._state=4:l(e)(this._state=9,this.sectionStart=this._index)},e.prototype.stateInSelfClosingTag=function(e){">"===e?(this.cbs.onselfclosingtag(),this._state=1,this.sectionStart=this._index+1,this.special=1):l(e)(this._state=8,this._index--)},e.prototype.stateInAttributeName=function(e){("="===e"/"===e">"===el(e))&&(this.cbs.onattribname(this.getSection()),this.sectionStart=-1,this._state=10,this._index--)},e.prototype.stateAfterAttributeName=function(e){"="===e?this._state=11:"/"===e">"===e?(this.cbs.onattribend(void 0),this._state=8,this._index--):l(e)(this.cbs.onattribend(void 0),this._state=9,this.sectionStart=this._index)},e.prototype.stateBeforeAttributeValue=function(e){'"'===e?(this._state=12,this.sectionStart=this._index+1):"'"===e?(this._state=13,this.sectionStart=this._index+1):l(e)(this._state=14,this.sectionStart=this._index,this._index--)},e.prototype.handleInAttributeValue=function(e,t){e===t?(this.emitToken("onattribdata"),this.cbs.onattribend(t),this._state=8):this.decodeEntities&&"&"===e&&(this.emitToken("onattribdata"),this.baseState=this._state,this._state=62,this.sectionStart=this._index)},e.prototype.stateInAttributeValueDoubleQuotes=function(e){this.handleInAttributeValue(e,'"')},e.prototype.stateInAttributeValueSingleQuotes=function(e){this.handleInAttributeValue(e,"'")},e.prototype.stateInAttributeValueNoQuotes=function(e){l(e)">"===e?(this.emitToken("onattribdata"),this.cbs.onattribend(null),this._state=8,this._index--):this.decodeEntities&&"&"===e&&(this.emitToken("onattribdata"),this.baseState=this._state,this._state=62,this.sectionStart=this._index)},e.prototype.stateBeforeDeclaration=function(e){this._state="["===e?23:"-"===e?18:16},e.prototype.stateInDeclaration=function(e){">"===e&&(this.cbs.ondeclaration(this.getSection()),this._state=1,this.sectionStart=this._index+1)},e.prototype.stateInProcessingInstruction=function(e){">"===e&&(this.cbs.onprocessinginstruction(this.getSection()),this._state=1,this.sectionStart=this._index+1)},e.prototype.stateBeforeComment=function(e){"-"===e?(this._state=19,this.sectionStart=this._index+1):this._state=16},e.prototype.stateInComment=function(e){"-"===e&&(this._state=21)},e.prototype.stateInSpecialComment=function(e){">"===e&&(this.cbs.oncomment(this.buffer.substring(this.sectionStart,this._index)),this._state=1,this.sectionStart=this._index+1)},e.prototype.stateAfterComment1=function(e){this._state="-"===e?22:19},e.prototype.stateAfterComment2=function(e){">"===e?(this.cbs.oncomment(this.buffer.substring(this.sectionStart,this._index-2)),this._state=1,this.sectionStart=this._index+1):"-"!==e&&(this._state=19)},e.prototype.stateBeforeCdata6=function(e){"["===e?(this._state=29,this.sectionStart=this._index+1):(this._state=16,this._index--)},e.prototype.stateInCdata=function(e){"]"===e&&(this._state=30)},e.prototype.stateAfterCdata1=function(e){this._state="]"===e?31:29},e.prototype.stateAfterCdata2=function(e){">"===e?(this.cbs.oncdata(this.buffer.substring(this.sectionStart,this._index-2)),this._state=1,this.sectionStart=this._index+1):"]"!==e&&(this._state=29)},e.prototype.stateBeforeSpecialS=function(e){"c"===e"C"===e?this._state=34:"t"===e"T"===e?this._state=44:(this._state=3,this._index--)},e.prototype.stateBeforeSpecialSEnd=function(e){2!==this.special"c"!==e&&"C"!==e?3!==this.special"t"!==e&&"T"!==e?this._state=1:this._state=48:this._state=39},e.prototype.stateBeforeSpecialLast=function(e,t){("/"===e">"===el(e))&&(this.special=t),this._state=3,this._index--},e.prototype.stateAfterSpecialLast=function(e,t){">"===el(e)?(this.special=1,this._state=6,this.sectionStart=this._index-t,this._index--):this._state=1},e.prototype.parseFixedEntity=function(e){if(void 0===e&&(e=this.xmlMode?a.default:s.default),this.sectionStart+1=2;){var r=this.buffer.substr(e,t);if(Object.prototype.hasOwnProperty.call(o.default,r))return this.emitPartial(o.default[r]),void(this.sectionStart+=t+1);t--}},e.prototype.stateInNamedEntity=function(e){";"===e?(this.parseFixedEntity(),1===this.baseState&&this.sectionStart+1{var n=r(2705),i=Object.prototype,s=i.hasOwnProperty,o=i.toString,a=n?n.toStringTag:void 0;e.exports=function(e){var t=s.call(e,a),r=e[a];try{e[a]=void 0;var n=!0}catch(e){}var i=o.call(e);return n&&(t?e[a]=r:delete e[a]),i}},2333:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},5639:(e,t,r)=>{var n=r(1957),i="object"==typeof self&&self&&self.Object===Object&&self,s=niFunction("return this")();e.exports=s},7990:e=>{var t=/\s/;e.exports=function(e){for(var r=e.length;r--&&t.test(e.charAt(r)););return r}},3279:(e,t,r)=>{var n=r(3218),i=r(7771),s=r(4841),o=Math.max,a=Math.min;e.exports=function(e,t,r){var l,c,u,h,p,d,f=0,m=!1,g=!1,b=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function y(t){var r=l,n=c;return l=c=void 0,f=t,h=e.apply(n,r)}function v(e){return f=e,p=setTimeout(x,t),m?y(e):h}function w(e){var r=e-d;return void 0===dr>=tr< 0g&&e-f>=u}function x(){var e=i();if(w(e))return S(e);p=setTimeout(x,function(e){var r=t-(e-d);return g?a(r,u-(e-f)):r}(e))}function S(e){return p=void 0,b&&l?y(e):(l=c=void 0,h)}function E(){var e=i(),r=w(e);if(l=arguments,c=this,d=e,r){if(void 0===p)return v(d);if(g)return clearTimeout(p),p=setTimeout(x,t),y(d)}return void 0===p&&(p=setTimeout(x,t)),h}return t=s(t)0,n(r)&&(m=!!r.leading,u=(g="maxWait"in r)?o(s(r.maxWait)0,t):u,b="trailing"in r?!!r.trailing:b),E.cancel=function(){void 0!==p&&clearTimeout(p),f=0,l=d=c=p=void 0},E.flush=function(){return void 0===p?h:S(i())},E}},3218:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t"function"==t)}},7005:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},3448:(e,t,r)=>{var n=r(4239),i=r(7005);e.exports=function(e){return"symbol"==typeof ei(e)&&"[object Symbol]"==n(e)}},7771:(e,t,r)=>{var n=r(5639);e.exports=function(){return n.Date.now()}},4841:(e,t,r)=>{var n=r(7561),i=r(3218),s=r(3448),o=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(s(e))return NaN;if(i(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=n(e);var r=a.test(e);return rl.test(e)?c(e.slice(2),r?2:8):o.test(e)?NaN:+e}},9430:function(e,t){var r,n;void 0===(n="function"==typeof(r=function(){return function(e){function t(e){return" "===e"\t"===e"\n"===e"\f"===e"\r"===e}function r(t){var r,n=t.exec(e.substring(m));if(n)return r=n[0],m+=r.length,r}for(var n,i,s,o,a,l=e.length,c=/^[ \t\n\r\u000c]+/,u=/^[, \t\n\r\u000c]+/,h=/^[^ \t\n\r\u000c]+/,p=/[,]+$/,d=/^\d+$/,f=/^-?(?:[0-9]+[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,m=0,g=[];;){if(r(u),m>=l)return g;n=r(h),i=[],","===n.slice(-1)?(n=n.replace(p,""),y()):b()}function b(){for(r(c),s="",o="in descriptor";;){if(a=e.charAt(m),"in descriptor"===o)if(t(a))s&&(i.push(s),s="",o="after descriptor");else{if(","===a)return m+=1,s&&i.push(s),void y();if("("===a)s+=a,o="in parens";else{if(""===a)return s&&i.push(s),void y();s+=a}}else if("in parens"===o)if(")"===a)s+=a,o="in descriptor";else{if(""===a)return i.push(s),void y();s+=a}else if("after descriptor"===o)if(t(a));else{if(""===a)return void y();o="in descriptor",m-=1}m+=1}}function y(){var t,r,s,o,a,l,c,u,h,p=!1,m={};for(o=0;o{var t=String,r=function(){return{isColorSupported:!1,reset:t,bold:t,dim:t,italic:t,underline:t,inverse:t,hidden:t,strikethrough:t,black:t,red:t,green:t,yellow:t,blue:t,magenta:t,cyan:t,white:t,gray:t,bgBlack:t,bgRed:t,bgGreen:t,bgYellow:t,bgBlue:t,bgMagenta:t,bgCyan:t,bgWhite:t}};e.exports=r(),e.exports.createColors=r},1353:(e,t,r)=>{"use strict";let n=r(1019);class i extends n{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes(this.nodes=[]),super.prepend(...e)}}e.exports=i,i.default=i,n.registerAtRule(i)},9932:(e,t,r)=>{"use strict";let n=r(5631);class i extends n{constructor(e){super(e),this.type="comment"}}e.exports=i,i.default=i},1019:(e,t,r)=>{"use strict";let n,i,s,{isClean:o,my:a}=r(5513),l=r(4258),c=r(9932),u=r(5631);function h(e){return e.map((e=>(e.nodes&&(e.nodes=h(e.nodes)),delete e.source,e)))}function p(e){if(e[o]=!1,e.proxyOf.nodes)for(let t of e.proxyOf.nodes)p(t)}class d extends u{push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}each(e){if(!this.proxyOf.nodes)return;let t,r,n=this.getIterator();for(;this.indexes[n]{let n;try{n=e(t,r)}catch(e){throw t.addToError(e)}return!1!==n&&t.walk&&(n=t.walk(e)),n}))}walkDecls(e,t){return t?e instanceof RegExp?this.walk(((r,n)=>{if("decl"===r.type&&e.test(r.prop))return t(r,n)})):this.walk(((r,n)=>{if("decl"===r.type&&r.prop===e)return t(r,n)})):(t=e,this.walk(((e,r)=>{if("decl"===e.type)return t(e,r)})))}walkRules(e,t){return t?e instanceof RegExp?this.walk(((r,n)=>{if("rule"===r.type&&e.test(r.selector))return t(r,n)})):this.walk(((r,n)=>{if("rule"===r.type&&r.selector===e)return t(r,n)})):(t=e,this.walk(((e,r)=>{if("rule"===e.type)return t(e,r)})))}walkAtRules(e,t){return t?e instanceof RegExp?this.walk(((r,n)=>{if("atrule"===r.type&&e.test(r.name))return t(r,n)})):this.walk(((r,n)=>{if("atrule"===r.type&&r.name===e)return t(r,n)})):(t=e,this.walk(((e,r)=>{if("atrule"===e.type)return t(e,r)})))}walkComments(e){return this.walk(((t,r)=>{if("comment"===t.type)return e(t,r)}))}append(...e){for(let t of e){let e=this.normalize(t,this.last);for(let t of e)this.proxyOf.nodes.push(t)}return this.markDirty(),this}prepend(...e){e=e.reverse();for(let t of e){let e=this.normalize(t,this.first,"prepend").reverse();for(let t of e)this.proxyOf.nodes.unshift(t);for(let t in this.indexes)this.indexes[t]=this.indexes[t]+e.length}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let t of this.nodes)t.cleanRaws(e)}insertBefore(e,t){let r,n=0===(e=this.index(e))&&"prepend",i=this.normalize(t,this.proxyOf.nodes[e],n).reverse();for(let t of i)this.proxyOf.nodes.splice(e,0,t);for(let t in this.indexes)r=this.indexes[t],e{t.props&&!t.props.includes(n.prop)t.fast&&!n.value.includes(t.fast)(n.value=n.value.replace(e,r))})),this.markDirty(),this}every(e){return this.nodes.every(e)}some(e){return this.nodes.some(e)}index(e){return"number"==typeof e?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}normalize(e,t){if("string"==typeof e)e=h(n(e).nodes);else if(Array.isArray(e)){e=e.slice(0);for(let t of e)t.parent&&t.parent.removeChild(t,"ignore")}else if("root"===e.type&&"document"!==this.type){e=e.nodes.slice(0);for(let t of e)t.parent&&t.parent.removeChild(t,"ignore")}else if(e.type)e=[e];else if(e.prop){if(void 0===e.value)throw new Error("Value field is missed in node creation");"string"!=typeof e.value&&(e.value=String(e.value)),e=[new l(e)]}else if(e.selector)e=[new i(e)];else if(e.name)e=[new s(e)];else{if(!e.text)throw new Error("Unknown node type in node creation");e=[new c(e)]}return e.map((e=>(e[a]d.rebuild(e),(e=e.proxyOf).parent&&e.parent.removeChild(e),e[o]&&p(e),void 0===e.raws.before&&t&&void 0!==t.raws.before&&(e.raws.before=t.raws.before.replace(/\S/g,"")),e.parent=this.proxyOf,e)))}getProxyProcessor(){return{set:(e,t,r)=>(e[t]===r(e[t]=r,"name"!==t&&"params"!==t&&"selector"!==te.markDirty()),!0),get:(e,t)=>"proxyOf"===t?e:e[t]?"each"===t"string"==typeof t&&t.startsWith("walk")?(...r)=>e[t](...r.map((e=>"function"==typeof e?(t,r)=>e(t.toProxy(),r):e))):"every"===t"some"===t?r=>e[t](((e,...t)=>r(e.toProxy(),...t))):"root"===t?()=>e.root().toProxy():"nodes"===t?e.nodes.map((e=>e.toProxy())):"first"===t"last"===t?e[t].toProxy():e[t]:e[t]}}getIterator(){this.lastEach(this.lastEach=0),this.indexes(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}}d.registerParse=e=>{n=e},d.registerRule=e=>{i=e},d.registerAtRule=e=>{s=e},e.exports=d,d.default=d,d.rebuild=e=>{"atrule"===e.type?Object.setPrototypeOf(e,s.prototype):"rule"===e.type?Object.setPrototypeOf(e,i.prototype):"decl"===e.type?Object.setPrototypeOf(e,l.prototype):"comment"===e.type&&Object.setPrototypeOf(e,c.prototype),e[a]=!0,e.nodes&&e.nodes.forEach((e=>{d.rebuild(e)}))}},2671:(e,t,r)=>{"use strict";let n=r(4241),i=r(2868);class s extends Error{constructor(e,t,r,n,i,o){super(e),this.name="CssSyntaxError",this.reason=e,i&&(this.file=i),n&&(this.source=n),o&&(this.plugin=o),void 0!==t&&void 0!==r&&("number"==typeof t?(this.line=t,this.column=r):(this.line=t.line,this.column=t.column,this.endLine=r.line,this.endColumn=r.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,s)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"",void 0!==this.line&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let t=this.source;null==e&&(e=n.isColorSupported),i&&e&&(t=i(t));let r,s,o=t.split(/\r?\n/),a=Math.max(this.line-3,0),l=Math.min(this.line+2,o.length),c=String(l).length;if(e){let{bold:e,red:t,gray:i}=n.createColors(!0);r=r=>e(t(r)),s=e=>i(e)}else r=s=e=>e;return o.slice(a,l).map(((e,t)=>{let n=a+1+t,i=" "+(" "+n).slice(-c)+" ";if(n===this.line){let t=s(i.replace(/\d/g," "))+e.slice(0,this.column-1).replace(/[^\t]/g," ");return r(">")+s(i)+e+"\n "+t+r("^")}return" "+s(i)+e})).join("\n")}toString(){let e=this.showSourceCode();return e&&(e="\n\n"+e+"\n"),this.name+": "+this.message+e}}e.exports=s,s.default=s},4258:(e,t,r)=>{"use strict";let n=r(5631);class i extends n{constructor(e){e&&void 0!==e.value&&"string"!=typeof e.value&&(e={...e,value:String(e.value)}),super(e),this.type="decl"}get variable(){return this.prop.startsWith("--")"$"===this.prop[0]}}e.exports=i,i.default=i},6461:(e,t,r)=>{"use strict";let n,i,s=r(1019);class o extends s{constructor(e){super({type:"document",...e}),this.nodes(this.nodes=[])}toResult(e={}){return new n(new i,this,e).stringify()}}o.registerLazyResult=e=>{n=e},o.registerProcessor=e=>{i=e},e.exports=o,o.default=o},250:(e,t,r)=>{"use strict";let n=r(4258),i=r(7981),s=r(9932),o=r(1353),a=r(5995),l=r(1025),c=r(1675);function u(e,t){if(Array.isArray(e))return e.map((e=>u(e)));let{inputs:r,...h}=e;if(r){t=[];for(let e of r){let r={...e,__proto__:a.prototype};r.map&&(r.map={...r.map,__proto__:i.prototype}),t.push(r)}}if(h.nodes&&(h.nodes=e.nodes.map((e=>u(e,t)))),h.source){let{inputId:e,...r}=h.source;h.source=r,null!=e&&(h.source.input=t[e])}if("root"===h.type)return new l(h);if("decl"===h.type)return new n(h);if("rule"===h.type)return new c(h);if("comment"===h.type)return new s(h);if("atrule"===h.type)return new o(h);throw new Error("Unknown node type: "+e.type)}e.exports=u,u.default=u},5995:(e,t,r)=>{"use strict";let{SourceMapConsumer:n,SourceMapGenerator:i}=r(209),{fileURLToPath:s,pathToFileURL:o}=r(7414),{resolve:a,isAbsolute:l}=r(9830),{nanoid:c}=r(2961),u=r(2868),h=r(2671),p=r(7981),d=Symbol("fromOffsetCache"),f=Boolean(n&&i),m=Boolean(a&&l);class g{constructor(e,t={}){if(null==e"object"==typeof e&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),"\ufeff"===this.css[0]""===this.css[0]?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,t.from&&(!m/^\w+:\/\//.test(t.from)l(t.from)?this.file=t.from:this.file=a(t.from)),m&&f){let e=new p(this.css,t);if(e.text){this.map=e;let t=e.consumer().file;!this.file&&t&&(this.file=this.mapResolve(t))}}this.file(this.id=""),this.map&&(this.map.file=this.from)}fromOffset(e){let t,r;if(this[d])r=this[d];else{let e=this.css.split("\n");r=new Array(e.length);let t=0;for(let n=0,i=e.length;n=t)n=r.length-1;else{let t,i=r.length-2;for(;n>1),e=r[t+1])){n=t;break}n=t+1}}return{line:n+1,col:e-r[n]+1}}error(e,t,r,n={}){let i,s,a;if(t&&"object"==typeof t){let e=t,n=r;if("number"==typeof t.offset){let n=this.fromOffset(e.offset);t=n.line,r=n.col}else t=e.line,r=e.column;if("number"==typeof n.offset){let e=this.fromOffset(n.offset);s=e.line,a=e.col}else s=n.line,a=n.column}else if(!r){let e=this.fromOffset(t);t=e.line,r=e.col}let l=this.origin(t,r,s,a);return i=l?new h(e,void 0===l.endLine?l.line:{line:l.line,column:l.column},void 0===l.endLine?l.column:{line:l.endLine,column:l.endColumn},l.source,l.file,n.plugin):new h(e,void 0===s?t:{line:t,column:r},void 0===s?r:{line:s,column:a},this.css,this.file,n.plugin),i.input={line:t,column:r,endLine:s,endColumn:a,source:this.css},this.file&&(o&&(i.input.url=o(this.file).toString()),i.input.file=this.file),i}origin(e,t,r,n){if(!this.map)return!1;let i,a,c=this.map.consumer(),u=c.originalPositionFor({line:e,column:t});if(!u.source)return!1;"number"==typeof r&&(i=c.originalPositionFor({line:r,column:n})),a=l(u.source)?o(u.source):new URL(u.source,this.map.consumer().sourceRooto(this.map.mapFile));let h={url:a.toString(),line:u.line,column:u.column,endLine:i&&i.line,endColumn:i&&i.column};if("file:"===a.protocol){if(!s)throw new Error("file: protocol is not available in this PostCSS build");h.file=s(a)}let p=c.sourceContentFor(u.source);return p&&(h.source=p),h}mapResolve(e){return/^\w+:\/\//.test(e)?e:a(this.map.consumer().sourceRootthis.map.root".",e)}get from(){return this.filethis.id}toJSON(){let e={};for(let t of["hasBOM","css","file","id"])null!=this[t]&&(e[t]=this[t]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}}e.exports=g,g.default=g,u&&u.registerInput&&u.registerInput(g)},1939:(e,t,r)=>{"use strict";let{isClean:n,my:i}=r(5513),s=r(8505),o=r(7088),a=r(1019),l=r(6461),c=(r(2448),r(3632)),u=r(6939),h=r(1025);const p={document:"Document",root:"Root",atrule:"AtRule",rule:"Rule",decl:"Declaration",comment:"Comment"},d={postcssPlugin:!0,prepare:!0,Once:!0,Document:!0,Root:!0,Declaration:!0,Rule:!0,AtRule:!0,Comment:!0,DeclarationExit:!0,RuleExit:!0,AtRuleExit:!0,CommentExit:!0,RootExit:!0,DocumentExit:!0,OnceExit:!0},f={postcssPlugin:!0,prepare:!0,Once:!0};function m(e){return"object"==typeof e&&"function"==typeof e.then}function g(e){let t=!1,r=p[e.type];return"decl"===e.type?t=e.prop.toLowerCase():"atrule"===e.type&&(t=e.name.toLowerCase()),t&&e.append?[r,r+"-"+t,0,r+"Exit",r+"Exit-"+t]:t?[r,r+"-"+t,r+"Exit",r+"Exit-"+t]:e.append?[r,0,r+"Exit"]:[r,r+"Exit"]}function b(e){let t;return t="document"===e.type?["Document",0,"DocumentExit"]:"root"===e.type?["Root",0,"RootExit"]:g(e),{node:e,events:t,eventIndex:0,visitors:[],visitorIndex:0,iterator:0}}function y(e){return e[n]=!1,e.nodes&&e.nodes.forEach((e=>y(e))),e}let v={};class w{constructor(e,t,r){let n;if(this.stringified=!1,this.processed=!1,"object"!=typeof tnull===t"root"!==t.type&&"document"!==t.type)if(t instanceof wt instanceof c)n=y(t.root),t.map&&(void 0===r.map&&(r.map={}),r.map.inline(r.map.inline=!1),r.map.prev=t.map);else{let e=u;r.syntax&&(e=r.syntax.parse),r.parser&&(e=r.parser),e.parse&&(e=e.parse);try{n=e(t,r)}catch(e){this.processed=!0,this.error=e}n&&!n[i]&&a.rebuild(n)}else n=y(t);this.result=new c(e,n,r),this.helpers={...v,result:this.result,postcss:v},this.plugins=this.processor.plugins.map((e=>"object"==typeof e&&e.prepare?{...e,...e.prepare(this.result)}:e))}get[Symbol.toStringTag](){return"LazyResult"}get processor(){return this.result.processor}get opts(){return this.result.opts}get css(){return this.stringify().css}get content(){return this.stringify().content}get map(){return this.stringify().map}get root(){return this.sync().root}get messages(){return this.sync().messages}warnings(){return this.sync().warnings()}toString(){return this.css}then(e,t){return this.async().then(e,t)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing(this.processing=this.runAsync()),this.processing)}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins)if(m(this.runOnRoot(e)))throw this.getAsyncError();if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[n];)e[n]=!0,this.walkSync(e);if(this.listeners.OnceExit)if("document"===e.type)for(let t of e.nodes)this.visitSync(this.listeners.OnceExit,t);else this.visitSync(this.listeners.OnceExit,e)}return this.result}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,t=o;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);let r=new s(t,this.result.root,this.result.opts).generate();return this.result.css=r[0],this.result.map=r[1],this.result}walkSync(e){e[n]=!0;let t=g(e);for(let r of t)if(0===r)e.nodes&&e.each((e=>{e[n]this.walkSync(e)}));else{let t=this.listeners[r];if(t&&this.visitSync(t,e.toProxy()))return}}visitSync(e,t){for(let[r,n]of e){let e;this.result.lastPlugin=r;try{e=n(t,this.helpers)}catch(e){throw this.handleError(e,t.proxyOf)}if("root"!==t.type&&"document"!==t.type&&!t.parent)return!0;if(m(e))throw this.getAsyncError()}}runOnRoot(e){this.result.lastPlugin=e;try{if("object"==typeof e&&e.Once){if("document"===this.result.root.type){let t=this.result.root.nodes.map((t=>e.Once(t,this.helpers)));return m(t[0])?Promise.all(t):t}return e.Once(this.result.root,this.helpers)}if("function"==typeof e)return e(this.result.root,this.result)}catch(e){throw this.handleError(e)}}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,t){let r=this.result.lastPlugin;try{t&&t.addToError(e),this.error=e,"CssSyntaxError"!==e.namee.plugin?r.postcssVersion:(e.plugin=r.postcssPlugin,e.setMessage())}catch(e){console&&console.error&&console.error(e)}return e}async runAsync(){this.plugin=0;for(let e=0;e0;){let e=this.visitTick(t);if(m(e))try{await e}catch(e){let r=t[t.length-1].node;throw this.handleError(e,r)}}}if(this.listeners.OnceExit)for(let[t,r]of this.listeners.OnceExit){this.result.lastPlugin=t;try{if("document"===e.type){let t=e.nodes.map((e=>r(e,this.helpers)));await Promise.all(t)}else await r(e,this.helpers)}catch(e){throw this.handleError(e)}}}return this.processed=!0,this.stringify()}prepareVisitors(){this.listeners={};let e=(e,t,r)=>{this.listeners[t](this.listeners[t]=[]),this.listeners[t].push([e,r])};for(let t of this.plugins)if("object"==typeof t)for(let r in t){if(!d[r]&&/^[A-Z]/.test(r))throw new Error(`Unknown event ${r} in ${t.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!f[r])if("object"==typeof t[r])for(let n in t[r])e(t,"*"===n?r:r+"-"+n.toLowerCase(),t[r][n]);else"function"==typeof t[r]&&e(t,r,t[r])}this.hasListener=Object.keys(this.listeners).length>0}visitTick(e){let t=e[e.length-1],{node:r,visitors:i}=t;if("root"!==r.type&&"document"!==r.type&&!r.parent)return void e.pop();if(i.length>0&&t.visitorIndex{"use strict";let t={split(e,t,r){let n=[],i="",s=!1,o=0,a=!1,l=!1;for(let r of e)l?l=!1:"\\"===r?l=!0:a?r===a&&(a=!1):'"'===r"'"===r?a=r:"("===r?o+=1:")"===r?o>0&&(o-=1):0===o&&t.includes(r)&&(s=!0),s?(""!==i&&n.push(i.trim()),i="",s=!1):i+=r;return(r""!==i)&&n.push(i.trim()),n},space:e=>t.split(e,[" ","\n","\t"]),comma:e=>t.split(e,[","],!0)};e.exports=t,t.default=t},8505:(e,t,r)=>{"use strict";let{SourceMapConsumer:n,SourceMapGenerator:i}=r(209),{dirname:s,resolve:o,relative:a,sep:l}=r(9830),{pathToFileURL:c}=r(7414),u=r(5995),h=Boolean(n&&i),p=Boolean(s&&o&&a&&l);e.exports=class{constructor(e,t,r,n){this.stringify=e,this.mapOpts=r.map{},this.root=t,this.opts=r,this.css=n}isMap(){return void 0!==this.opts.map?!!this.opts.map:this.previous().length>0}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk((e=>{if(e.source&&e.source.input.map){let t=e.source.input.map;this.previousMaps.includes(t)this.previousMaps.push(t)}}));else{let e=new u(this.css,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}isInline(){if(void 0!==this.mapOpts.inline)return this.mapOpts.inline;let e=this.mapOpts.annotation;return(void 0===e!0===e)&&(!this.previous().lengththis.previous().some((e=>e.inline)))}isSourcesContent(){return void 0!==this.mapOpts.sourcesContent?this.mapOpts.sourcesContent:!this.previous().lengththis.previous().some((e=>e.withContent()))}clearAnnotation(){if(!1!==this.mapOpts.annotation)if(this.root){let e;for(let t=this.root.nodes.length-1;t>=0;t--)e=this.root.nodes[t],"comment"===e.type&&0===e.text.indexOf("# sourceMappingURL=")&&this.root.removeChild(t)}else this.css&&(this.css=this.css.replace(/(\n)?\/\*#[\S\s]*?\*\/$/gm,""))}setSourcesContent(){let e={};if(this.root)this.root.walk((t=>{if(t.source){let r=t.source.input.from;r&&!e[r]&&(e[r]=!0,this.map.setSourceContent(this.toUrl(this.path(r)),t.source.input.css))}}));else if(this.css){let e=this.opts.from?this.toUrl(this.path(this.opts.from)):"";this.map.setSourceContent(e,this.css)}}applyPrevMaps(){for(let e of this.previous()){let t,r=this.toUrl(this.path(e.file)),i=e.roots(e.file);!1===this.mapOpts.sourcesContent?(t=new n(e.text),t.sourcesContent&&(t.sourcesContent=t.sourcesContent.map((()=>null)))):t=e.consumer(),this.map.applySourceMap(t,r,this.toUrl(this.path(i)))}}isAnnotation(){return!!this.isInline()(void 0!==this.mapOpts.annotation?this.mapOpts.annotation:!this.previous().lengththis.previous().some((e=>e.annotation)))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}addAnnotation(){let e;e=this.isInline()?"data:application/json;base64,"+this.toBase64(this.map.toString()):"string"==typeof this.mapOpts.annotation?this.mapOpts.annotation:"function"==typeof this.mapOpts.annotation?this.mapOpts.annotation(this.opts.to,this.root):this.outputFile()+".map";let t="\n";this.css.includes("\r\n")&&(t="\r\n"),this.css+=t+"/*# sourceMappingURL="+e+" */"}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}generateMap(){if(this.root)this.generateString();else if(1===this.previous().length){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=i.fromSourceMap(e)}else this.map=new i({file:this.outputFile()}),this.map.addMapping({source:this.opts.from?this.toUrl(this.path(this.opts.from)):"",generated:{line:1,column:0},original:{line:1,column:0}});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}path(e){if(0===e.indexOf("":(b+=">",!n.innerTextct.textFilter(b+=q(n.innerText),L=!0)),i&&(b=y+q(b),y="")},ontext:function(e){if(D)return;const r=C[C.length-1];let n;if(r&&(n=r.tag,e=void 0!==r.innerText?r.innerText:e),"discard"!==t.disallowedTagsMode"script"!==n&&"style"!==n){const r=q(e,!1);t.textFilter&&!L?b+=t.textFilter(r,n):L(b+=r)}else b+=e;C.length&&(C[C.length-1].text+=e)},onclosetag:function(e){if(D){if(N--,N)return;D=!1}const r=C.pop();if(!r)return;D=!!t.enforceHtmlBoundary&&"html"===e,A--;const n=P[A];if(n){if(delete P[A],"discard"===t.disallowedTagsMode)return void r.updateParentNodeText();y=b,b=""}M[A]&&(e=M[A],delete M[A]),t.exclusiveFilter&&t.exclusiveFilter(r)?b=b.substr(0,r.tagPosition):(r.updateParentNodeMediaChildren(),r.updateParentNodeText(),-1===t.selfClosing.indexOf(e)?(b+="",n&&(b=y+q(b),y=""),L=!1):n&&(b=y,y=""))}},t.parser);return j.write(e),j.end(),b;function I(){b="",A=0,C=[],P={},M={},D=!1,N=0}function q(e,r){return"string"!=typeof e&&(e+=""),t.parser.decodeEntities&&(e=e.replace(/&/g,"&").replace(//g,">"),r&&(e=e.replace(/"/g,"""))),e=e.replace(/&(?![a-zA-Z0-9#]{1,20};)/g,"&").replace(//g,">"),r&&(e=e.replace(/"/g,""")),e}function R(e,r){const n=(r=(r=r.replace(/[\x00-\x20]+/g,"")).replace(//g,"")).match(/^([a-zA-Z][a-zA-Z0-9.\-+]*):/);if(!n)return!!r.match(/^[/\\]{2}/)&&!t.allowProtocolRelative;const i=n[1].toLowerCase();return p(t.allowedSchemesByTag,e)?-1===t.allowedSchemesByTag[e].indexOf(i):!t.allowedSchemes-1===t.allowedSchemes.indexOf(i)}}const g={decodeEntities:!0};m.defaults={allowedTags:["address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","hgroup","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","main","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rb","rp","rt","rtc","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr"],disallowedTagsMode:"discard",allowedAttributes:{a:["href","name","target"],img:["src","srcset","alt","title","width","height","loading"]},selfClosing:["img","br","hr","area","base","basefont","input","link","meta"],allowedSchemes:["http","https","ftp","mailto","tel"],allowedSchemesByTag:{},allowedSchemesAppliedToAttributes:["href","src","cite"],allowProtocolRelative:!0,enforceHtmlBoundary:!1},m.simpleTransform=function(e,t,r){return r=void 0===rr,t=t{},function(n,i){let s;if(r)for(s in t)i[s]=t[s];else i=t;return{tagName:e,attribs:i}}}},2997:e=>{"use strict";e.exports=e=>{if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(/[\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}},6651:e=>{"use strict";e.exports=window.slice.React},2081:e=>{"use strict";e.exports=window.slice.ReactDOM},2868:()=>{},4777:()=>{},9830:()=>{},209:()=>{},7414:()=>{},2961:e=>{e.exports={nanoid:(e=21)=>{let t="",r=e;for(;r--;)t+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[64*Math.random()0];return t},customAlphabet:(e,t=21)=>(r=t)=>{let n="",i=r;for(;i--;)n+=e[Math.random()*e.length0];return n}}},907:(e,t,r)=>{"use strict";function n(e,t){(null==tt>e.length)&&(t=e.length);for(var r=0,n=new Array(t);rn})},4942:(e,t,r)=>{"use strict";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}r.d(t,{Z:()=>n})},181:(e,t,r)=>{"use strict";r.d(t,{Z:()=>i});var n=r(907);function i(e,t){if(e){if("string"==typeof e)return(0,n.Z)(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r"Set"===r?Array.from(e):"Arguments"===r/^(?:UiI)nt(?:81632)(?:Clamped)?Array$/.test(r)?(0,n.Z)(e,t):void 0}}},3600:e=>{"use strict";e.exports=JSON.parse('{"0":65533,"128":8364,"130":8218,"131":402,"132":8222,"133":8230,"134":8224,"135":8225,"136":710,"137":8240,"138":352,"139":8249,"140":338,"142":381,"145":8216,"146":8217,"147":8220,"148":8221,"149":8226,"150":8211,"151":8212,"152":732,"153":8482,"154":353,"155":8250,"156":339,"158":382,"159":376}')},9323:e=>{"use strict";e.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Abreve":"Ă","abreve":"ă","ac":"∾","acd":"∿","acE":"∾̳","Acirc":"Â","acirc":"â","acute":"´","Acy":"А","acy":"а","AElig":"Æ","aelig":"æ","af":"","Afr":"𝔄","afr":"𝔞","Agrave":"À","agrave":"à","alefsym":"ℵ","aleph":"ℵ","Alpha":"Α","alpha":"α","Amacr":"Ā","amacr":"ā","amalg":"⨿","amp":"&","AMP":"&","andand":"⩕","And":"⩓","and":"∧","andd":"⩜","andslope":"⩘","andv":"⩚","ang":"∠","ange":"⦤","angle":"∠","angmsdaa":"⦨","angmsdab":"⦩","angmsdac":"⦪","angmsdad":"⦫","angmsdae":"⦬","angmsdaf":"⦭","angmsdag":"⦮","angmsdah":"⦯","angmsd":"∡","angrt":"∟","angrtvb":"⊾","angrtvbd":"⦝","angsph":"∢","angst":"Å","angzarr":"⍼","Aogon":"Ą","aogon":"ą","Aopf":"𝔸","aopf":"𝕒","apacir":"⩯","ap":"≈","apE":"⩰","ape":"≊","apid":"≋","apos":"\'","ApplyFunction":"","approx":"≈","approxeq":"≊","Aring":"Å","aring":"å","Ascr":"𝒜","ascr":"𝒶","Assign":"≔","ast":"*","asymp":"≈","asympeq":"≍","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","awconint":"∳","awint":"⨑","backcong":"≌","backepsilon":"϶","backprime":"‵","backsim":"∽","backsimeq":"⋍","Backslash":"∖","Barv":"⫧","barvee":"⊽","barwed":"⌅","Barwed":"⌆","barwedge":"⌅","bbrk":"⎵","bbrktbrk":"⎶","bcong":"≌","Bcy":"Б","bcy":"б","bdquo":"„","becaus":"∵","because":"∵","Because":"∵","bemptyv":"⦰","bepsi":"϶","bernou":"ℬ","Bernoullis":"ℬ","Beta":"Β","beta":"β","beth":"ℶ","between":"≬","Bfr":"𝔅","bfr":"𝔟","bigcap":"⋂","bigcirc":"◯","bigcup":"⋃","bigodot":"⨀","bigoplus":"⨁","bigotimes":"⨂","bigsqcup":"⨆","bigstar":"★","bigtriangledown":"▽","bigtriangleup":"△","biguplus":"⨄","bigvee":"⋁","bigwedge":"⋀","bkarow":"⤍","blacklozenge":"⧫","blacksquare":"▪","blacktriangle":"▴","blacktriangledown":"▾","blacktriangleleft":"◂","blacktriangleright":"▸","blank":"␣","blk12":"▒","blk14":"░","blk34":"▓","block":"█","bne":"=⃥","bnequiv":"≡⃥","bNot":"⫭","bnot":"⌐","Bopf":"𝔹","bopf":"𝕓","bot":"⊥","bottom":"⊥","bowtie":"⋈","boxbox":"⧉","boxdl":"┐","boxdL":"╕","boxDl":"╖","boxDL":"╗","boxdr":"┌","boxdR":"╒","boxDr":"╓","boxDR":"╔","boxh":"─","boxH":"═","boxhd":"┬","boxHd":"╤","boxhD":"╥","boxHD":"╦","boxhu":"┴","boxHu":"╧","boxhU":"╨","boxHU":"╩","boxminus":"⊟","boxplus":"⊞","boxtimes":"⊠","boxul":"┘","boxuL":"╛","boxUl":"╜","boxUL":"╝","boxur":"└","boxuR":"╘","boxUr":"╙","boxUR":"╚","boxv":"│","boxV":"║","boxvh":"┼","boxvH":"╪","boxVh":"╫","boxVH":"╬","boxvl":"┤","boxvL":"╡","boxVl":"╢","boxVL":"╣","boxvr":"├","boxvR":"╞","boxVr":"╟","boxVR":"╠","bprime":"‵","breve":"˘","Breve":"˘","brvbar":"¦","bscr":"𝒷","Bscr":"ℬ","bsemi":"⁏","bsim":"∽","bsime":"⋍","bsolb":"⧅","bsol":"\\\\","bsolhsub":"⟈","bull":"•","bullet":"•","bump":"≎","bumpE":"⪮","bumpe":"≏","Bumpeq":"≎","bumpeq":"≏","Cacute":"Ć","cacute":"ć","capand":"⩄","capbrcup":"⩉","capcap":"⩋","cap":"∩","Cap":"⋒","capcup":"⩇","capdot":"⩀","CapitalDifferentialD":"ⅅ","caps":"∩︀","caret":"⁁","caron":"ˇ","Cayleys":"ℭ","ccaps":"⩍","Ccaron":"Č","ccaron":"č","Ccedil":"Ç","ccedil":"ç","Ccirc":"Ĉ","ccirc":"ĉ","Cconint":"∰","ccups":"⩌","ccupssm":"⩐","Cdot":"Ċ","cdot":"ċ","cedil":"¸","Cedilla":"¸","cemptyv":"⦲","cent":"¢","centerdot":"·","CenterDot":"·","cfr":"𝔠","Cfr":"ℭ","CHcy":"Ч","chcy":"ч","check":"✓","checkmark":"✓","Chi":"Χ","chi":"χ","circ":"ˆ","circeq":"≗","circlearrowleft":"↺","circlearrowright":"↻","circledast":"⊛","circledcirc":"⊚","circleddash":"⊝","CircleDot":"⊙","circledR":"®","circledS":"Ⓢ","CircleMinus":"⊖","CirclePlus":"⊕","CircleTimes":"⊗","cir":"○","cirE":"⧃","cire":"≗","cirfnint":"⨐","cirmid":"⫯","cirscir":"⧂","ClockwiseContourIntegral":"∲","CloseCurlyDoubleQuote":""","CloseCurlyQuote":"'","clubs":"♣","clubsuit":"♣","colon":":","Colon":"∷","Colone":"⩴","colone":"≔","coloneq":"≔","comma":",","commat":"@","comp":"∁","compfn":"∘","complement":"∁","complexes":"ℂ","cong":"≅","congdot":"⩭","Congruent":"≡","conint":"∮","Conint":"∯","ContourIntegral":"∮","copf":"𝕔","Copf":"ℂ","coprod":"∐","Coproduct":"∐","copy":"©","COPY":"©","copysr":"℗","CounterClockwiseContourIntegral":"∳","crarr":"↵","cross":"✗","Cross":"⨯","Cscr":"𝒞","cscr":"𝒸","csub":"⫏","csube":"⫑","csup":"⫐","csupe":"⫒","ctdot":"⋯","cudarrl":"⤸","cudarrr":"⤵","cuepr":"⋞","cuesc":"⋟","cularr":"↶","cularrp":"⤽","cupbrcap":"⩈","cupcap":"⩆","CupCap":"≍","cup":"∪","Cup":"⋓","cupcup":"⩊","cupdot":"⊍","cupor":"⩅","cups":"∪︀","curarr":"↷","curarrm":"⤼","curlyeqprec":"⋞","curlyeqsucc":"⋟","curlyvee":"⋎","curlywedge":"⋏","curren":"¤","curvearrowleft":"↶","curvearrowright":"↷","cuvee":"⋎","cuwed":"⋏","cwconint":"∲","cwint":"∱","cylcty":"⌭","dagger":"†","Dagger":"‡","daleth":"ℸ","darr":"↓","Darr":"↡","dArr":"⇓","dash":"‐","Dashv":"⫤","dashv":"⊣","dbkarow":"⤏","dblac":"˝","Dcaron":"Ď","dcaron":"ď","Dcy":"Д","dcy":"д","ddagger":"‡","ddarr":"⇊","DD":"ⅅ","dd":"ⅆ","DDotrahd":"⤑","ddotseq":"⩷","deg":"°","Del":"∇","Delta":"Δ","delta":"δ","demptyv":"⦱","dfisht":"⥿","Dfr":"𝔇","dfr":"𝔡","dHar":"⥥","dharl":"⇃","dharr":"⇂","DiacriticalAcute":"´","DiacriticalDot":"˙","DiacriticalDoubleAcute":"˝","DiacriticalGrave":"`","DiacriticalTilde":"˜","diam":"⋄","diamond":"⋄","Diamond":"⋄","diamondsuit":"♦","diams":"♦","die":"¨","DifferentialD":"ⅆ","digamma":"ϝ","disin":"⋲","div":"÷","divide":"÷","divideontimes":"⋇","divonx":"⋇","DJcy":"Ђ","djcy":"ђ","dlcorn":"⌞","dlcrop":"⌍","dollar":"$","Dopf":"𝔻","dopf":"𝕕","Dot":"¨","dot":"˙","DotDot":"⃜","doteq":"≐","doteqdot":"≑","DotEqual":"≐","dotminus":"∸","dotplus":"∔","dotsquare":"⊡","doublebarwedge":"⌆","DoubleContourIntegral":"∯","DoubleDot":"¨","DoubleDownArrow":"⇓","DoubleLeftArrow":"⇐","DoubleLeftRightArrow":"⇔","DoubleLeftTee":"⫤","DoubleLongLeftArrow":"⟸","DoubleLongLeftRightArrow":"⟺","DoubleLongRightArrow":"⟹","DoubleRightArrow":"⇒","DoubleRightTee":"⊨","DoubleUpArrow":"⇑","DoubleUpDownArrow":"⇕","DoubleVerticalBar":"∥","DownArrowBar":"⤓","downarrow":"↓","DownArrow":"↓","Downarrow":"⇓","DownArrowUpArrow":"⇵","DownBreve":"̑","downdownarrows":"⇊","downharpoonleft":"⇃","downharpoonright":"⇂","DownLeftRightVector":"⥐","DownLeftTeeVector":"⥞","DownLeftVectorBar":"⥖","DownLeftVector":"↽","DownRightTeeVector":"⥟","DownRightVectorBar":"⥗","DownRightVector":"⇁","DownTeeArrow":"↧","DownTee":"⊤","drbkarow":"⤐","drcorn":"⌟","drcrop":"⌌","Dscr":"𝒟","dscr":"𝒹","DScy":"Ѕ","dscy":"ѕ","dsol":"⧶","Dstrok":"Đ","dstrok":"đ","dtdot":"⋱","dtri":"▿","dtrif":"▾","duarr":"⇵","duhar":"⥯","dwangle":"⦦","DZcy":"Џ","dzcy":"џ","dzigrarr":"⟿","Eacute":"É","eacute":"é","easter":"⩮","Ecaron":"Ě","ecaron":"ě","Ecirc":"Ê","ecirc":"ê","ecir":"≖","ecolon":"≕","Ecy":"Э","ecy":"э","eDDot":"⩷","Edot":"Ė","edot":"ė","eDot":"≑","ee":"ⅇ","efDot":"≒","Efr":"𝔈","efr":"𝔢","eg":"⪚","Egrave":"È","egrave":"è","egs":"⪖","egsdot":"⪘","el":"⪙","Element":"∈","elinters":"⏧","ell":"ℓ","els":"⪕","elsdot":"⪗","Emacr":"Ē","emacr":"ē","empty":"∅","emptyset":"∅","EmptySmallSquare":"◻","emptyv":"∅","EmptyVerySmallSquare":"▫","emsp13":" ","emsp14":" ","emsp":" ","ENG":"Ŋ","eng":"ŋ","ensp":" ","Eogon":"Ę","eogon":"ę","Eopf":"𝔼","eopf":"𝕖","epar":"⋕","eparsl":"⧣","eplus":"⩱","epsi":"ε","Epsilon":"Ε","epsilon":"ε","epsiv":"ϵ","eqcirc":"≖","eqcolon":"≕","eqsim":"≂","eqslantgtr":"⪖","eqslantless":"⪕","Equal":"⩵","equals":"=","EqualTilde":"≂","equest":"≟","Equilibrium":"⇌","equiv":"≡","equivDD":"⩸","eqvparsl":"⧥","erarr":"⥱","erDot":"≓","escr":"ℯ","Escr":"ℰ","esdot":"≐","Esim":"⩳","esim":"≂","Eta":"Η","eta":"η","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","euro":"€","excl":"!","exist":"∃","Exists":"∃","expectation":"ℰ","exponentiale":"ⅇ","ExponentialE":"ⅇ","fallingdotseq":"≒","Fcy":"Ф","fcy":"ф","female":"♀","ffilig":"ffi","fflig":"ff","ffllig":"ffl","Ffr":"𝔉","ffr":"𝔣","filig":"fi","FilledSmallSquare":"◼","FilledVerySmallSquare":"▪","fjlig":"fj","flat":"♭","fllig":"fl","fltns":"▱","fnof":"ƒ","Fopf":"𝔽","fopf":"𝕗","forall":"∀","ForAll":"∀","fork":"⋔","forkv":"⫙","Fouriertrf":"ℱ","fpartint":"⨍","frac12":"½","frac13":"⅓","frac14":"¼","frac15":"⅕","frac16":"⅙","frac18":"⅛","frac23":"⅔","frac25":"⅖","frac34":"¾","frac35":"⅗","frac38":"⅜","frac45":"⅘","frac56":"⅚","frac58":"⅝","frac78":"⅞","frasl":"⁄","frown":"⌢","fscr":"𝒻","Fscr":"ℱ","gacute":"ǵ","Gamma":"Γ","gamma":"γ","Gammad":"Ϝ","gammad":"ϝ","gap":"⪆","Gbreve":"Ğ","gbreve":"ğ","Gcedil":"Ģ","Gcirc":"Ĝ","gcirc":"ĝ","Gcy":"Г","gcy":"г","Gdot":"Ġ","gdot":"ġ","ge":"≥","gE":"≧","gEl":"⪌","gel":"⋛","geq":"≥","geqq":"≧","geqslant":"⩾","gescc":"⪩","ges":"⩾","gesdot":"⪀","gesdoto":"⪂","gesdotol":"⪄","gesl":"⋛︀","gesles":"⪔","Gfr":"𝔊","gfr":"𝔤","gg":"≫","Gg":"⋙","ggg":"⋙","gimel":"ℷ","GJcy":"Ѓ","gjcy":"ѓ","gla":"⪥","gl":"≷","glE":"⪒","glj":"⪤","gnap":"⪊","gnapprox":"⪊","gne":"⪈","gnE":"≩","gneq":"⪈","gneqq":"≩","gnsim":"⋧","Gopf":"𝔾","gopf":"𝕘","grave":"`","GreaterEqual":"≥","GreaterEqualLess":"⋛","GreaterFullEqual":"≧","GreaterGreater":"⪢","GreaterLess":"≷","GreaterSlantEqual":"⩾","GreaterTilde":"≳","Gscr":"𝒢","gscr":"ℊ","gsim":"≳","gsime":"⪎","gsiml":"⪐","gtcc":"⪧","gtcir":"⩺","gt":">","GT":">","Gt":"≫","gtdot":"⋗","gtlPar":"⦕","gtquest":"⩼","gtrapprox":"⪆","gtrarr":"⥸","gtrdot":"⋗","gtreqless":"⋛","gtreqqless":"⪌","gtrless":"≷","gtrsim":"≳","gvertneqq":"≩︀","gvnE":"≩︀","Hacek":"ˇ","hairsp":" ","half":"½","hamilt":"ℋ","HARDcy":"Ъ","hardcy":"ъ","harrcir":"⥈","harr":"↔","hArr":"⇔","harrw":"↭","Hat":"^","hbar":"ℏ","Hcirc":"Ĥ","hcirc":"ĥ","hearts":"♥","heartsuit":"♥","hellip":"…","hercon":"⊹","hfr":"𝔥","Hfr":"ℌ","HilbertSpace":"ℋ","hksearow":"⤥","hkswarow":"⤦","hoarr":"⇿","homtht":"∻","hookleftarrow":"↩","hookrightarrow":"↪","hopf":"𝕙","Hopf":"ℍ","horbar":"―","HorizontalLine":"─","hscr":"𝒽","Hscr":"ℋ","hslash":"ℏ","Hstrok":"Ħ","hstrok":"ħ","HumpDownHump":"≎","HumpEqual":"≏","hybull":"⁃","hyphen":"‐","Iacute":"Í","iacute":"í","ic":"","Icirc":"Î","icirc":"î","Icy":"И","icy":"и","Idot":"İ","IEcy":"Е","iecy":"е","iexcl":"¡","iff":"⇔","ifr":"𝔦","Ifr":"ℑ","Igrave":"Ì","igrave":"ì","ii":"ⅈ","iiiint":"⨌","iiint":"∭","iinfin":"⧜","iiota":"℩","IJlig":"IJ","ijlig":"ij","Imacr":"Ī","imacr":"ī","image":"ℑ","ImaginaryI":"ⅈ","imagline":"ℐ","imagpart":"ℑ","imath":"ı","Im":"ℑ","imof":"⊷","imped":"Ƶ","Implies":"⇒","incare":"℅","in":"∈","infin":"∞","infintie":"⧝","inodot":"ı","intcal":"⊺","int":"∫","Int":"∬","integers":"ℤ","Integral":"∫","intercal":"⊺","Intersection":"⋂","intlarhk":"⨗","intprod":"⨼","InvisibleComma":"","InvisibleTimes":"","IOcy":"Ё","iocy":"ё","Iogon":"Į","iogon":"į","Iopf":"𝕀","iopf":"𝕚","Iota":"Ι","iota":"ι","iprod":"⨼","iquest":"¿","iscr":"𝒾","Iscr":"ℐ","isin":"∈","isindot":"⋵","isinE":"⋹","isins":"⋴","isinsv":"⋳","isinv":"∈","it":"","Itilde":"Ĩ","itilde":"ĩ","Iukcy":"І","iukcy":"і","Iuml":"Ï","iuml":"ï","Jcirc":"Ĵ","jcirc":"ĵ","Jcy":"Й","jcy":"й","Jfr":"𝔍","jfr":"𝔧","jmath":"ȷ","Jopf":"𝕁","jopf":"𝕛","Jscr":"𝒥","jscr":"𝒿","Jsercy":"Ј","jsercy":"ј","Jukcy":"Є","jukcy":"є","Kappa":"Κ","kappa":"κ","kappav":"ϰ","Kcedil":"Ķ","kcedil":"ķ","Kcy":"К","kcy":"к","Kfr":"𝔎","kfr":"𝔨","kgreen":"ĸ","KHcy":"Х","khcy":"х","KJcy":"Ќ","kjcy":"ќ","Kopf":"𝕂","kopf":"𝕜","Kscr":"𝒦","kscr":"𝓀","lAarr":"⇚","Lacute":"Ĺ","lacute":"ĺ","laemptyv":"⦴","lagran":"ℒ","Lambda":"Λ","lambda":"λ","lang":"⟨","Lang":"⟪","langd":"⦑","langle":"⟨","lap":"⪅","Laplacetrf":"ℒ","laquo":"«","larrb":"⇤","larrbfs":"⤟","larr":"←","Larr":"↞","lArr":"⇐","larrfs":"⤝","larrhk":"↩","larrlp":"↫","larrpl":"⤹","larrsim":"⥳","larrtl":"↢","latail":"⤙","lAtail":"⤛","lat":"⪫","late":"⪭","lates":"⪭︀","lbarr":"⤌","lBarr":"⤎","lbbrk":"❲","lbrace":"{","lbrack":"[","lbrke":"⦋","lbrksld":"⦏","lbrkslu":"⦍","Lcaron":"Ľ","lcaron":"ľ","Lcedil":"Ļ","lcedil":"ļ","lceil":"⌈","lcub":"{","Lcy":"Л","lcy":"л","ldca":"⤶","ldquo":""","ldquor":"„","ldrdhar":"⥧","ldrushar":"⥋","ldsh":"↲","le":"≤","lE":"≦","LeftAngleBracket":"⟨","LeftArrowBar":"⇤","leftarrow":"←","LeftArrow":"←","Leftarrow":"⇐","LeftArrowRightArrow":"⇆","leftarrowtail":"↢","LeftCeiling":"⌈","LeftDoubleBracket":"⟦","LeftDownTeeVector":"⥡","LeftDownVectorBar":"⥙","LeftDownVector":"⇃","LeftFloor":"⌊","leftharpoondown":"↽","leftharpoonup":"↼","leftleftarrows":"⇇","leftrightarrow":"↔","LeftRightArrow":"↔","Leftrightarrow":"⇔","leftrightarrows":"⇆","leftrightharpoons":"⇋","leftrightsquigarrow":"↭","LeftRightVector":"⥎","LeftTeeArrow":"↤","LeftTee":"⊣","LeftTeeVector":"⥚","leftthreetimes":"⋋","LeftTriangleBar":"⧏","LeftTriangle":"⊲","LeftTriangleEqual":"⊴","LeftUpDownVector":"⥑","LeftUpTeeVector":"⥠","LeftUpVectorBar":"⥘","LeftUpVector":"↿","LeftVectorBar":"⥒","LeftVector":"↼","lEg":"⪋","leg":"⋚","leq":"≤","leqq":"≦","leqslant":"⩽","lescc":"⪨","les":"⩽","lesdot":"⩿","lesdoto":"⪁","lesdotor":"⪃","lesg":"⋚︀","lesges":"⪓","lessapprox":"⪅","lessdot":"⋖","lesseqgtr":"⋚","lesseqqgtr":"⪋","LessEqualGreater":"⋚","LessFullEqual":"≦","LessGreater":"≶","lessgtr":"≶","LessLess":"⪡","lesssim":"≲","LessSlantEqual":"⩽","LessTilde":"≲","lfisht":"⥼","lfloor":"⌊","Lfr":"𝔏","lfr":"𝔩","lg":"≶","lgE":"⪑","lHar":"⥢","lhard":"↽","lharu":"↼","lharul":"⥪","lhblk":"▄","LJcy":"Љ","ljcy":"љ","llarr":"⇇","ll":"≪","Ll":"⋘","llcorner":"⌞","Lleftarrow":"⇚","llhard":"⥫","lltri":"◺","Lmidot":"Ŀ","lmidot":"ŀ","lmoustache":"⎰","lmoust":"⎰","lnap":"⪉","lnapprox":"⪉","lne":"⪇","lnE":"≨","lneq":"⪇","lneqq":"≨","lnsim":"⋦","loang":"⟬","loarr":"⇽","lobrk":"⟦","longleftarrow":"⟵","LongLeftArrow":"⟵","Longleftarrow":"⟸","longleftrightarrow":"⟷","LongLeftRightArrow":"⟷","Longleftrightarrow":"⟺","longmapsto":"⟼","longrightarrow":"⟶","LongRightArrow":"⟶","Longrightarrow":"⟹","looparrowleft":"↫","looparrowright":"↬","lopar":"⦅","Lopf":"𝕃","lopf":"𝕝","loplus":"⨭","lotimes":"⨴","lowast":"∗","lowbar":"_","LowerLeftArrow":"↙","LowerRightArrow":"↘","loz":"◊","lozenge":"◊","lozf":"⧫","lpar":"(","lparlt":"⦓","lrarr":"⇆","lrcorner":"⌟","lrhar":"⇋","lrhard":"⥭","lrm":"","lrtri":"⊿","lsaquo":"‹","lscr":"𝓁","Lscr":"ℒ","lsh":"↰","Lsh":"↰","lsim":"≲","lsime":"⪍","lsimg":"⪏","lsqb":"[","lsquo":"'","lsquor":"‚","Lstrok":"Ł","lstrok":"ł","ltcc":"⪦","ltcir":"⩹","lt":"