diff --git a/01a85c17.5887ae59.js b/01a85c17.0a09b004.js similarity index 99% rename from 01a85c17.5887ae59.js rename to 01a85c17.0a09b004.js index b5c51d41e..87312c85b 100644 --- a/01a85c17.5887ae59.js +++ b/01a85c17.0a09b004.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{146:function(e,t,a){"use strict";a.r(t);a(263),a(368),a(311),a(26),a(20),a(19),a(53);var n=a(0),r=a.n(n),l=a(259),c=a(254);t.default=function(e){var t=e.tags,a={};Object.keys(t).forEach((function(e){var t=function(e){return e[0].toUpperCase()}(e);a[t]=a[t]||[],a[t].push(e)}));var n=Object.entries(a).sort((function(e,t){var a=e[0],n=t[0];return a===n?0:a>n?1:-1})).map((function(e){var a=e[0],n=e[1];return r.a.createElement("div",{key:a},r.a.createElement("h3",null,a),n.map((function(e){return r.a.createElement(c.a,{className:"padding-right--md",href:t[e].permalink,key:e},t[e].name," (",t[e].count,")")})),r.a.createElement("hr",null))})).filter((function(e){return null!=e}));return r.a.createElement(l.a,{title:"Tags",description:"Blog Tags"},r.a.createElement("div",{className:"container margin-vert--lg"},r.a.createElement("div",{className:"row"},r.a.createElement("div",{className:"col col--8 col--offset-2"},r.a.createElement("h1",null,"Tags"),r.a.createElement("div",{className:"margin-vert--lg"},n)))))}},258:function(e,t,a){"use strict";a.d(t,"a",(function(){return r})),a.d(t,"b",(function(){return l}));var n=a(253);function r(){var e=Object(n.a)().siteConfig,t=(void 0===e?{}:e).customFields.metadata.latest_highlight,a=Date.parse(t.date),r=new Date,l=Math.abs(r-a),c=Math.ceil(l/864e5),i=null;return"undefined"!=typeof window&&(i=new Date(parseInt(window.localStorage.getItem("highlightsViewedAt")||"0"))),c<30&&(!i||i0&&r.a.createElement("div",{className:"row footer__links"},r.a.createElement("div",{className:"col col--5 footer__col"},r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(u.a,{className:"navbar__logo",src:"/img/logo-light.svg",alt:"gnet",width:"150",height:"auto"})),r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(I,{description:!1,width:"150px"})),r.a.createElement("div",null,r.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank"},r.a.createElement("i",{className:"feather icon-twitter",alt:"gnet's Twitter"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank"},r.a.createElement("i",{className:"feather icon-github",alt:"gnet's Github Repo"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://strikefreedom.top/rss.xml",target:"_blank"},r.a.createElement("i",{className:"feather icon-rss",alt:"gnet's RSS feed"})))),i.map((function(e,t){return r.a.createElement("div",{key:t,className:"col footer__col"},null!=e.title?r.a.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?r.a.createElement("ul",{className:"footer__items"},e.items.map((function(e,t){return e.html?r.a.createElement("li",{key:t,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):r.a.createElement("li",{key:e.href||e.to,className:"footer__item"},r.a.createElement(A,e))}))):null)}))),(s||l)&&r.a.createElement("div",{className:"text--center"},s&&s.src&&r.a.createElement("div",{className:"margin-bottom--sm"},s.href?r.a.createElement("a",{href:s.href,target:"_blank",rel:"noopener noreferrer",className:P.a.footerLogoLink},r.a.createElement(B,{alt:s.alt,url:m})):r.a.createElement(B,{alt:s.alt,url:m}),r.a.createElement("br",null),r.a.createElement("a",{href:"https://www.digitalocean.com/",target:"_blank",rel:"noopener noreferrer",className:P.a.footerLogoLink},r.a.createElement("img",{alt:"DigitalOcean",src:"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg",width:"201px"}))),l,r.a.createElement("br",null),r.a.createElement("small",null,r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/security/policy"},"Security Policy"),"\xa0\u2022\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/blob/master/PRIVACY.md"},"Privacy Policy"))))):null},V=a(276),R=a(277),H=a(3);a(135);t.a=function(e){var t=Object(h.a)().siteConfig,a=void 0===t?{}:t,n=a.favicon,i=(a.tagline,a.title),o=a.themeConfig.image,s=a.url,m=e.children,u=e.title,d=e.noFooter,g=e.description,b=e.image,f=e.keywords,v=(e.permalink,e.version),E=u?u+" | "+i:i,p=b||o,_=s+Object(w.a)(p),k=Object(w.a)(n),N=Object(H.h)(),y=N?"https://gnet.host"+(N.pathname.endsWith("/")?N.pathname:N.pathname+"/"):null;return r.a.createElement(R.a,null,r.a.createElement(V.a,null,r.a.createElement(c.a,null,r.a.createElement("html",{lang:"en"}),r.a.createElement("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),E&&r.a.createElement("title",null,E),E&&r.a.createElement("meta",{property:"og:title",content:E}),n&&r.a.createElement("link",{rel:"shortcut icon",href:k}),g&&r.a.createElement("meta",{name:"description",content:g}),g&&r.a.createElement("meta",{property:"og:description",content:g}),v&&r.a.createElement("meta",{name:"docsearch:version",content:v}),f&&f.length&&r.a.createElement("meta",{name:"keywords",content:f.join(",")}),p&&r.a.createElement("meta",{property:"og:image",content:_}),p&&r.a.createElement("meta",{property:"twitter:image",content:_}),p&&r.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+E}),p&&r.a.createElement("meta",{name:"twitter:site",content:"@vectordotdev"}),p&&r.a.createElement("meta",{name:"twitter:creator",content:"@vectordotdev"}),y&&r.a.createElement("meta",{property:"og:url",content:y}),r.a.createElement("meta",{name:"twitter:card",content:"summary"}),y&&r.a.createElement("link",{rel:"canonical",href:y})),r.a.createElement(l.a,null),r.a.createElement(D,null),r.a.createElement("div",{className:"main-wrapper"},m),!d&&r.a.createElement(F,null)))}},263:function(e,t,a){var n=a(24).f,r=Function.prototype,l=/^\s*function ([^ (]*)/;"name"in r||a(10)&&n(r,"name",{configurable:!0,get:function(){try{return(""+this).match(l)[1]}catch(e){return""}}})},311:function(e,t,a){"use strict";var n=a(12),r=a(30),l=a(25),c=a(13),i=[].sort,o=[1,2,3];n(n.P+n.F*(c((function(){o.sort(void 0)}))||!c((function(){o.sort(null)}))||!a(312)(i)),"Array",{sort:function(e){return void 0===e?i.call(l(this)):i.call(l(this),r(e))}})},312:function(e,t,a){"use strict";var n=a(13);e.exports=function(e,t){return!!e&&n((function(){t?e.call(null,(function(){}),1):e.call(null)}))}},368:function(e,t,a){var n=a(12),r=a(91)(!0);n(n.S,"Object",{entries:function(e){return r(e)}})}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{146:function(e,t,a){"use strict";a.r(t);a(263),a(368),a(311),a(26),a(20),a(19),a(53);var n=a(0),r=a.n(n),l=a(259),c=a(254);t.default=function(e){var t=e.tags,a={};Object.keys(t).forEach((function(e){var t=function(e){return e[0].toUpperCase()}(e);a[t]=a[t]||[],a[t].push(e)}));var n=Object.entries(a).sort((function(e,t){var a=e[0],n=t[0];return a===n?0:a>n?1:-1})).map((function(e){var a=e[0],n=e[1];return r.a.createElement("div",{key:a},r.a.createElement("h3",null,a),n.map((function(e){return r.a.createElement(c.a,{className:"padding-right--md",href:t[e].permalink,key:e},t[e].name," (",t[e].count,")")})),r.a.createElement("hr",null))})).filter((function(e){return null!=e}));return r.a.createElement(l.a,{title:"Tags",description:"Blog Tags"},r.a.createElement("div",{className:"container margin-vert--lg"},r.a.createElement("div",{className:"row"},r.a.createElement("div",{className:"col col--8 col--offset-2"},r.a.createElement("h1",null,"Tags"),r.a.createElement("div",{className:"margin-vert--lg"},n)))))}},258:function(e,t,a){"use strict";a.d(t,"a",(function(){return r})),a.d(t,"b",(function(){return l}));var n=a(253);function r(){var e=Object(n.a)().siteConfig,t=(void 0===e?{}:e).customFields.metadata.latest_highlight,a=Date.parse(t.date),r=new Date,l=Math.abs(r-a),c=Math.ceil(l/864e5),i=null;return"undefined"!=typeof window&&(i=new Date(parseInt(window.localStorage.getItem("highlightsViewedAt")||"0"))),c<30&&(!i||i0&&r.a.createElement("div",{className:"row footer__links"},r.a.createElement("div",{className:"col col--5 footer__col"},r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(u.a,{className:"navbar__logo",src:"/img/logo-light.svg",alt:"gnet",width:"150",height:"auto"})),r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(I,{description:!1,width:"150px"})),r.a.createElement("div",null,r.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank"},r.a.createElement("i",{className:"feather icon-twitter",alt:"gnet's Twitter"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank"},r.a.createElement("i",{className:"feather icon-github",alt:"gnet's Github Repo"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://strikefreedom.top/rss.xml",target:"_blank"},r.a.createElement("i",{className:"feather icon-rss",alt:"gnet's RSS feed"})))),i.map((function(e,t){return r.a.createElement("div",{key:t,className:"col footer__col"},null!=e.title?r.a.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?r.a.createElement("ul",{className:"footer__items"},e.items.map((function(e,t){return e.html?r.a.createElement("li",{key:t,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):r.a.createElement("li",{key:e.href||e.to,className:"footer__item"},r.a.createElement(A,e))}))):null)}))),(s||l)&&r.a.createElement("div",{className:"text--center"},s&&s.src&&r.a.createElement("div",{className:"margin-bottom--sm"},s.href?r.a.createElement("a",{href:s.href,target:"_blank",rel:"noopener noreferrer",className:P.a.footerLogoLink},r.a.createElement(B,{alt:s.alt,url:m})):r.a.createElement(B,{alt:s.alt,url:m}),r.a.createElement("br",null),r.a.createElement("a",{href:"https://www.digitalocean.com/",target:"_blank",rel:"noopener noreferrer",className:P.a.footerLogoLink},r.a.createElement("img",{alt:"DigitalOcean",src:"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg",width:"201px"}))),l,r.a.createElement("br",null),r.a.createElement("small",null,r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/security/policy"},"Security Policy"),"\xa0\u2022\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/blob/master/PRIVACY.md"},"Privacy Policy"))))):null},V=a(276),R=a(277),H=a(3);a(135);t.a=function(e){var t=Object(h.a)().siteConfig,a=void 0===t?{}:t,n=a.favicon,i=(a.tagline,a.title),o=a.themeConfig.image,s=a.url,m=e.children,u=e.title,d=e.noFooter,g=e.description,b=e.image,f=e.keywords,v=(e.permalink,e.version),E=u?u+" | "+i:i,p=b||o,_=s+Object(w.a)(p),k=Object(w.a)(n),N=Object(H.h)(),y=N?"https://gnet.host"+(N.pathname.endsWith("/")?N.pathname:N.pathname+"/"):null;return r.a.createElement(R.a,null,r.a.createElement(V.a,null,r.a.createElement(c.a,null,r.a.createElement("html",{lang:"en"}),r.a.createElement("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),E&&r.a.createElement("title",null,E),E&&r.a.createElement("meta",{property:"og:title",content:E}),n&&r.a.createElement("link",{rel:"shortcut icon",href:k}),g&&r.a.createElement("meta",{name:"description",content:g}),g&&r.a.createElement("meta",{property:"og:description",content:g}),v&&r.a.createElement("meta",{name:"docsearch:version",content:v}),f&&f.length&&r.a.createElement("meta",{name:"keywords",content:f.join(",")}),p&&r.a.createElement("meta",{property:"og:image",content:_}),p&&r.a.createElement("meta",{property:"twitter:image",content:_}),p&&r.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+E}),p&&r.a.createElement("meta",{name:"twitter:site",content:"@vectordotdev"}),p&&r.a.createElement("meta",{name:"twitter:creator",content:"@vectordotdev"}),y&&r.a.createElement("meta",{property:"og:url",content:y}),r.a.createElement("meta",{name:"twitter:card",content:"summary"}),y&&r.a.createElement("link",{rel:"canonical",href:y})),r.a.createElement(l.a,null),r.a.createElement(D,null),r.a.createElement("div",{className:"main-wrapper"},m),!d&&r.a.createElement(F,null)))}},263:function(e,t,a){var n=a(24).f,r=Function.prototype,l=/^\s*function ([^ (]*)/;"name"in r||a(10)&&n(r,"name",{configurable:!0,get:function(){try{return(""+this).match(l)[1]}catch(e){return""}}})},311:function(e,t,a){"use strict";var n=a(12),r=a(30),l=a(25),c=a(13),i=[].sort,o=[1,2,3];n(n.P+n.F*(c((function(){o.sort(void 0)}))||!c((function(){o.sort(null)}))||!a(312)(i)),"Array",{sort:function(e){return void 0===e?i.call(l(this)):i.call(l(this),r(e))}})},312:function(e,t,a){"use strict";var n=a(13);e.exports=function(e,t){return!!e&&n((function(){t?e.call(null,(function(){}),1):e.call(null)}))}},368:function(e,t,a){var n=a(12),r=a(91)(!0);n(n.S,"Object",{entries:function(e){return r(e)}})}}]); \ No newline at end of file diff --git a/105.3dc75487.js b/105.853a4a30.js similarity index 99% rename from 105.3dc75487.js rename to 105.853a4a30.js index a5c34931b..8c7ef17a5 100644 --- a/105.3dc75487.js +++ b/105.853a4a30.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[105],{258:function(e,t,a){"use strict";a.d(t,"a",(function(){return r})),a.d(t,"b",(function(){return l}));var n=a(253);function r(){var e=Object(n.a)().siteConfig,t=(void 0===e?{}:e).customFields.metadata.latest_highlight,a=Date.parse(t.date),r=new Date,l=Math.abs(r-a),c=Math.ceil(l/864e5),i=null;return"undefined"!=typeof window&&(i=new Date(parseInt(window.localStorage.getItem("highlightsViewedAt")||"0"))),c<30&&(!i||i0&&r.a.createElement("div",{className:"row footer__links"},r.a.createElement("div",{className:"col col--5 footer__col"},r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(u.a,{className:"navbar__logo",src:"/img/logo-light.svg",alt:"gnet",width:"150",height:"auto"})),r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(I,{description:!1,width:"150px"})),r.a.createElement("div",null,r.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank"},r.a.createElement("i",{className:"feather icon-twitter",alt:"gnet's Twitter"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank"},r.a.createElement("i",{className:"feather icon-github",alt:"gnet's Github Repo"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://strikefreedom.top/rss.xml",target:"_blank"},r.a.createElement("i",{className:"feather icon-rss",alt:"gnet's RSS feed"})))),i.map((function(e,t){return r.a.createElement("div",{key:t,className:"col footer__col"},null!=e.title?r.a.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?r.a.createElement("ul",{className:"footer__items"},e.items.map((function(e,t){return e.html?r.a.createElement("li",{key:t,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):r.a.createElement("li",{key:e.href||e.to,className:"footer__item"},r.a.createElement(A,e))}))):null)}))),(m||l)&&r.a.createElement("div",{className:"text--center"},m&&m.src&&r.a.createElement("div",{className:"margin-bottom--sm"},m.href?r.a.createElement("a",{href:m.href,target:"_blank",rel:"noopener noreferrer",className:M.a.footerLogoLink},r.a.createElement(B,{alt:m.alt,url:s})):r.a.createElement(B,{alt:m.alt,url:s}),r.a.createElement("br",null),r.a.createElement("a",{href:"https://www.digitalocean.com/",target:"_blank",rel:"noopener noreferrer",className:M.a.footerLogoLink},r.a.createElement("img",{alt:"DigitalOcean",src:"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg",width:"201px"}))),l,r.a.createElement("br",null),r.a.createElement("small",null,r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/security/policy"},"Security Policy"),"\xa0\u2022\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/blob/master/PRIVACY.md"},"Privacy Policy"))))):null},R=a(276),V=a(277),H=a(3);a(135);t.a=function(e){var t=Object(h.a)().siteConfig,a=void 0===t?{}:t,n=a.favicon,i=(a.tagline,a.title),o=a.themeConfig.image,m=a.url,s=e.children,u=e.title,d=e.noFooter,g=e.description,b=e.image,f=e.keywords,E=(e.permalink,e.version),v=u?u+" | "+i:i,p=b||o,_=m+Object(w.a)(p),k=Object(w.a)(n),N=Object(H.h)(),y=N?"https://gnet.host"+(N.pathname.endsWith("/")?N.pathname:N.pathname+"/"):null;return r.a.createElement(V.a,null,r.a.createElement(R.a,null,r.a.createElement(c.a,null,r.a.createElement("html",{lang:"en"}),r.a.createElement("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),v&&r.a.createElement("title",null,v),v&&r.a.createElement("meta",{property:"og:title",content:v}),n&&r.a.createElement("link",{rel:"shortcut icon",href:k}),g&&r.a.createElement("meta",{name:"description",content:g}),g&&r.a.createElement("meta",{property:"og:description",content:g}),E&&r.a.createElement("meta",{name:"docsearch:version",content:E}),f&&f.length&&r.a.createElement("meta",{name:"keywords",content:f.join(",")}),p&&r.a.createElement("meta",{property:"og:image",content:_}),p&&r.a.createElement("meta",{property:"twitter:image",content:_}),p&&r.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+v}),p&&r.a.createElement("meta",{name:"twitter:site",content:"@vectordotdev"}),p&&r.a.createElement("meta",{name:"twitter:creator",content:"@vectordotdev"}),y&&r.a.createElement("meta",{property:"og:url",content:y}),r.a.createElement("meta",{name:"twitter:card",content:"summary"}),y&&r.a.createElement("link",{rel:"canonical",href:y})),r.a.createElement(l.a,null),r.a.createElement(S,null),r.a.createElement("div",{className:"main-wrapper"},s),!d&&r.a.createElement(F,null)))}},333:function(e,t,a){"use strict";a.r(t);var n=a(0),r=a.n(n),l=a(259);t.default=function(){return r.a.createElement(l.a,{title:"Page Not Found"},r.a.createElement("div",{className:"container margin-vert--xl"},r.a.createElement("div",{className:"row"},r.a.createElement("div",{className:"col col--6 col--offset-3"},r.a.createElement("h1",{className:"hero__title"},"Page Not Found"),r.a.createElement("p",null,"We could not find what you were looking for."),r.a.createElement("p",null,"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))}}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[105],{258:function(e,t,a){"use strict";a.d(t,"a",(function(){return r})),a.d(t,"b",(function(){return l}));var n=a(253);function r(){var e=Object(n.a)().siteConfig,t=(void 0===e?{}:e).customFields.metadata.latest_highlight,a=Date.parse(t.date),r=new Date,l=Math.abs(r-a),c=Math.ceil(l/864e5),i=null;return"undefined"!=typeof window&&(i=new Date(parseInt(window.localStorage.getItem("highlightsViewedAt")||"0"))),c<30&&(!i||i0&&r.a.createElement("div",{className:"row footer__links"},r.a.createElement("div",{className:"col col--5 footer__col"},r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(u.a,{className:"navbar__logo",src:"/img/logo-light.svg",alt:"gnet",width:"150",height:"auto"})),r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(I,{description:!1,width:"150px"})),r.a.createElement("div",null,r.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank"},r.a.createElement("i",{className:"feather icon-twitter",alt:"gnet's Twitter"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank"},r.a.createElement("i",{className:"feather icon-github",alt:"gnet's Github Repo"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://strikefreedom.top/rss.xml",target:"_blank"},r.a.createElement("i",{className:"feather icon-rss",alt:"gnet's RSS feed"})))),i.map((function(e,t){return r.a.createElement("div",{key:t,className:"col footer__col"},null!=e.title?r.a.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?r.a.createElement("ul",{className:"footer__items"},e.items.map((function(e,t){return e.html?r.a.createElement("li",{key:t,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):r.a.createElement("li",{key:e.href||e.to,className:"footer__item"},r.a.createElement(A,e))}))):null)}))),(m||l)&&r.a.createElement("div",{className:"text--center"},m&&m.src&&r.a.createElement("div",{className:"margin-bottom--sm"},m.href?r.a.createElement("a",{href:m.href,target:"_blank",rel:"noopener noreferrer",className:M.a.footerLogoLink},r.a.createElement(B,{alt:m.alt,url:s})):r.a.createElement(B,{alt:m.alt,url:s}),r.a.createElement("br",null),r.a.createElement("a",{href:"https://www.digitalocean.com/",target:"_blank",rel:"noopener noreferrer",className:M.a.footerLogoLink},r.a.createElement("img",{alt:"DigitalOcean",src:"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg",width:"201px"}))),l,r.a.createElement("br",null),r.a.createElement("small",null,r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/security/policy"},"Security Policy"),"\xa0\u2022\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/blob/master/PRIVACY.md"},"Privacy Policy"))))):null},R=a(276),V=a(277),H=a(3);a(135);t.a=function(e){var t=Object(h.a)().siteConfig,a=void 0===t?{}:t,n=a.favicon,i=(a.tagline,a.title),o=a.themeConfig.image,m=a.url,s=e.children,u=e.title,d=e.noFooter,g=e.description,b=e.image,f=e.keywords,E=(e.permalink,e.version),v=u?u+" | "+i:i,p=b||o,_=m+Object(w.a)(p),k=Object(w.a)(n),N=Object(H.h)(),y=N?"https://gnet.host"+(N.pathname.endsWith("/")?N.pathname:N.pathname+"/"):null;return r.a.createElement(V.a,null,r.a.createElement(R.a,null,r.a.createElement(c.a,null,r.a.createElement("html",{lang:"en"}),r.a.createElement("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),v&&r.a.createElement("title",null,v),v&&r.a.createElement("meta",{property:"og:title",content:v}),n&&r.a.createElement("link",{rel:"shortcut icon",href:k}),g&&r.a.createElement("meta",{name:"description",content:g}),g&&r.a.createElement("meta",{property:"og:description",content:g}),E&&r.a.createElement("meta",{name:"docsearch:version",content:E}),f&&f.length&&r.a.createElement("meta",{name:"keywords",content:f.join(",")}),p&&r.a.createElement("meta",{property:"og:image",content:_}),p&&r.a.createElement("meta",{property:"twitter:image",content:_}),p&&r.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+v}),p&&r.a.createElement("meta",{name:"twitter:site",content:"@vectordotdev"}),p&&r.a.createElement("meta",{name:"twitter:creator",content:"@vectordotdev"}),y&&r.a.createElement("meta",{property:"og:url",content:y}),r.a.createElement("meta",{name:"twitter:card",content:"summary"}),y&&r.a.createElement("link",{rel:"canonical",href:y})),r.a.createElement(l.a,null),r.a.createElement(S,null),r.a.createElement("div",{className:"main-wrapper"},s),!d&&r.a.createElement(F,null)))}},333:function(e,t,a){"use strict";a.r(t);var n=a(0),r=a.n(n),l=a(259);t.default=function(){return r.a.createElement(l.a,{title:"Page Not Found"},r.a.createElement("div",{className:"container margin-vert--xl"},r.a.createElement("div",{className:"row"},r.a.createElement("div",{className:"col col--6 col--offset-3"},r.a.createElement("h1",{className:"hero__title"},"Page Not Found"),r.a.createElement("p",null,"We could not find what you were looking for."),r.a.createElement("p",null,"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))}}}]); \ No newline at end of file diff --git a/1be78505.cff969a5.js b/1be78505.39121e62.js similarity index 99% rename from 1be78505.cff969a5.js rename to 1be78505.39121e62.js index 749c0782f..474549a70 100644 --- a/1be78505.cff969a5.js +++ b/1be78505.39121e62.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[12,105],{247:function(e,t,a){"use strict";a.r(t);a(26),a(20),a(19),a(53),a(260);var n=a(0),r=a.n(n),l=a(251),c=a(252),i=a.n(c),o=a(253),s=a(69),m=a(259),u=a(1),d=(a(78),a(281),a(282),a(254)),b=a(256),f=a.n(b);a(255);var h=a(266),g=a(267),p=a(153),v=a.n(p);a(154);function E(e){var t=e.item,a=e.level,l=e.onItemClick,c=e.collapsible,o=t.items,s=t.href,m=t.label,b=t.type,f=Object(n.useState)(t.collapsed),h=f[0],g=f[1],p=Object(n.useState)(null),v=p[0],k=p[1];switch(t.collapsed!==v&&(k(t.collapsed),g(t.collapsed)),b){case"category":if(0==o.length)return!1;if(1==a)return r.a.createElement("li",{className:i()("menu__list-item"),key:m},r.a.createElement("div",{className:"title"},m),r.a.createElement("ul",{className:"menu__list"},o.map((function(e){return r.a.createElement(E,{key:e.label,item:e,level:a+1,onItemClick:l,collapsible:c})}))));var y=o[0].href;return r.a.createElement("li",{className:i()("menu__list-item",{"menu__list-item--collapsed":h}),key:m},r.a.createElement(d.a,{activeClassName:"menu__link--active",className:i()("menu__link",{"menu__link--sublist":c}),to:y+"/",onClick:c&&"#!"==y?function(){return g(!h)}:void 0},m),r.a.createElement("ul",{className:"menu__list"},o.map((function(e){return r.a.createElement(E,{key:e.label,item:e,level:a+1,onItemClick:l,collapsible:c})}))));case"link":default:var _=[],N=m;if(m.includes("|")){var O=m.split("|",2);N=O[0],_=JSON.parse(O[1])}var w="hidden"==N;return r.a.createElement("li",{className:i()("menu__list-item",w&&"menu__list-item-hidden"),key:m},r.a.createElement(d.a,Object(u.a)({className:"menu__link",to:s+"/"},/^\/(?!\/)/.test(s)?{activeClassName:"menu__link--active",exact:!0,onClick:l}:{target:"_blank",rel:"noreferrer noopener"}),N,_.length>0&&r.a.createElement("span",{className:"badges"},_.includes("log")&&r.a.createElement("span",{className:"badge badge--secondary",title:"This component works with log events."},"L"),_.includes("metric")&&r.a.createElement("span",{className:"badge badge--secondary",title:"This component works with metric events."},"M"))))}}var k=function(e){var t=Object(n.useState)(!1),a=t[0],l=t[1],c=Object(o.a)(),s=c.siteConfig,m=(s=void 0===s?{}:s).themeConfig.navbar,b=(m=void 0===m?{}:m).title,p=c.isClient,k=Object(g.a)(),y=k.logoLink,_=k.logoLinkProps,N=k.logoImageUrl,O=k.logoAlt,w=e.docsSidebars,j=e.path,C=e.sidebar,T=e.sidebarCollapsible;if(Object(h.a)(a),!C)return null;var x=w[C];if(!x)throw new Error('Cannot find the sidebar "'+C+'" in the sidebar config!');return T&&x.forEach((function(e){return function e(t,a){var n=t.items,r=t.href;switch(t.type){case"category":var l=n.map((function(t){return e(t,a)})).filter((function(e){return e})).length>0;return t.collapsed=!l,l;case"link":default:return r===a}}(e,j)})),r.a.createElement("div",{className:i()("docs-sidebar",v.a.sidebar)},r.a.createElement(d.a,Object(u.a)({className:v.a.sidebarLogo,to:y},_),null!=N&&r.a.createElement(f.a,{key:p,src:N,alt:O}),null!=b&&r.a.createElement("strong",null,b)),r.a.createElement("div",{className:i()("menu","menu--responsive",v.a.menu,{"menu--show":a})},r.a.createElement("button",{"aria-label":a?"Close Menu":"Open Menu",className:"button button--secondary button--sm menu__button",type:"button",onClick:function(){l(!a)}},a?r.a.createElement("span",{className:i()(v.a.sidebarMenuIcon,v.a.sidebarMenuCloseIcon)},"\xd7"):r.a.createElement("svg",{className:v.a.sidebarMenuIcon,xmlns:"http://www.w3.org/2000/svg",height:24,width:24,viewBox:"0 0 32 32",role:"img",focusable:"false"},r.a.createElement("title",null,"Menu"),r.a.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))),r.a.createElement("ul",{className:"menu__list"},x.map((function(e){return e.items.length>0&&r.a.createElement(E,{key:e.label,item:e,level:1,onItemClick:function(){l(!1)},collapsible:T})})))))},y=a(285),_=a(333),N=a(310),O=a(155),w=a.n(O);t.default=function(e){var t=e.route,a=e.docsMetadata,n=e.location,c=t.routes.find((function(e){return Object(N.b)(n.pathname,e)}))||{},u=a.permalinkToSidebar,d=a.docsSidebars,b=a.version,f=u[c.path],h=Object(o.a)(),g=h.siteConfig,p=(g=void 0===g?{}:g).themeConfig,v=void 0===p?{}:p,E=h.isClient,O=v.sidebarCollapsible,j=void 0===O||O;return 0===Object.keys(c).length?r.a.createElement(_.default,e):r.a.createElement(m.a,{version:b,key:E},r.a.createElement("div",{className:i()(w.a.container,"container","container--l")},f&&r.a.createElement("div",{className:i()(w.a.sidebar)},r.a.createElement(k,{docsSidebars:d,path:c.path,sidebar:f,sidebarCollapsible:j})),r.a.createElement("main",{className:w.a.main},r.a.createElement(l.a,{components:y.a},Object(s.a)(t.routes)))))}},251:function(e,t,a){"use strict";a.d(t,"a",(function(){return u})),a.d(t,"b",(function(){return f}));var n=a(0),r=a.n(n);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function c(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=r.a.createContext({}),m=function(e){var t=r.a.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i({},t,{},e)),a},u=function(e){var t=m(e.components);return r.a.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},b=Object(n.forwardRef)((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,c=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),u=m(a),b=n,f=u["".concat(c,".").concat(b)]||u[b]||d[b]||l;return a?r.a.createElement(f,i({ref:t},s,{components:a})):r.a.createElement(f,i({ref:t},s))}));function f(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,c=new Array(l);c[0]=b;var i={};for(var o in t)hasOwnProperty.call(t,o)&&(i[o]=t[o]);i.originalType=e,i.mdxType="string"==typeof e?e:n,c[1]=i;for(var s=2;s0&&r.a.createElement("div",{className:"row footer__links"},r.a.createElement("div",{className:"col col--5 footer__col"},r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(u.a,{className:"navbar__logo",src:"/img/logo-light.svg",alt:"gnet",width:"150",height:"auto"})),r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(M,{description:!1,width:"150px"})),r.a.createElement("div",null,r.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank"},r.a.createElement("i",{className:"feather icon-twitter",alt:"gnet's Twitter"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank"},r.a.createElement("i",{className:"feather icon-github",alt:"gnet's Github Repo"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://strikefreedom.top/rss.xml",target:"_blank"},r.a.createElement("i",{className:"feather icon-rss",alt:"gnet's RSS feed"})))),i.map((function(e,t){return r.a.createElement("div",{key:t,className:"col footer__col"},null!=e.title?r.a.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?r.a.createElement("ul",{className:"footer__items"},e.items.map((function(e,t){return e.html?r.a.createElement("li",{key:t,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):r.a.createElement("li",{key:e.href||e.to,className:"footer__item"},r.a.createElement(B,e))}))):null)}))),(s||l)&&r.a.createElement("div",{className:"text--center"},s&&s.src&&r.a.createElement("div",{className:"margin-bottom--sm"},s.href?r.a.createElement("a",{href:s.href,target:"_blank",rel:"noopener noreferrer",className:D.a.footerLogoLink},r.a.createElement(A,{alt:s.alt,url:m})):r.a.createElement(A,{alt:s.alt,url:m}),r.a.createElement("br",null),r.a.createElement("a",{href:"https://www.digitalocean.com/",target:"_blank",rel:"noopener noreferrer",className:D.a.footerLogoLink},r.a.createElement("img",{alt:"DigitalOcean",src:"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg",width:"201px"}))),l,r.a.createElement("br",null),r.a.createElement("small",null,r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/security/policy"},"Security Policy"),"\xa0\u2022\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/blob/master/PRIVACY.md"},"Privacy Policy"))))):null},F=a(276),W=a(277),V=a(3);a(135);t.a=function(e){var t=Object(f.a)().siteConfig,a=void 0===t?{}:t,n=a.favicon,i=(a.tagline,a.title),o=a.themeConfig.image,s=a.url,m=e.children,u=e.title,d=e.noFooter,b=e.description,h=e.image,g=e.keywords,p=(e.permalink,e.version),v=u?u+" | "+i:i,E=h||o,k=s+Object(N.a)(E),y=Object(N.a)(n),_=Object(V.h)(),O=_?"https://gnet.host"+(_.pathname.endsWith("/")?_.pathname:_.pathname+"/"):null;return r.a.createElement(W.a,null,r.a.createElement(F.a,null,r.a.createElement(c.a,null,r.a.createElement("html",{lang:"en"}),r.a.createElement("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),v&&r.a.createElement("title",null,v),v&&r.a.createElement("meta",{property:"og:title",content:v}),n&&r.a.createElement("link",{rel:"shortcut icon",href:y}),b&&r.a.createElement("meta",{name:"description",content:b}),b&&r.a.createElement("meta",{property:"og:description",content:b}),p&&r.a.createElement("meta",{name:"docsearch:version",content:p}),g&&g.length&&r.a.createElement("meta",{name:"keywords",content:g.join(",")}),E&&r.a.createElement("meta",{property:"og:image",content:k}),E&&r.a.createElement("meta",{property:"twitter:image",content:k}),E&&r.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+v}),E&&r.a.createElement("meta",{name:"twitter:site",content:"@vectordotdev"}),E&&r.a.createElement("meta",{name:"twitter:creator",content:"@vectordotdev"}),O&&r.a.createElement("meta",{property:"og:url",content:O}),r.a.createElement("meta",{name:"twitter:card",content:"summary"}),O&&r.a.createElement("link",{rel:"canonical",href:O})),r.a.createElement(l.a,null),r.a.createElement(P,null),r.a.createElement("div",{className:"main-wrapper"},m),!d&&r.a.createElement(R,null)))}},283:function(e,t,a){"use strict";(function(e){var n=a(1),r=(a(281),a(282),a(78),a(79),a(292),a(0)),l=a.n(r),c=a(293),i=a.n(c),o=a(306),s=a(52),m=a(252),u=a.n(m),d=a(301),b=a(294),f=a.n(b),h=a(253),g=a(262),p=a(136),v=a.n(p);(void 0!==e?e:window).Prism=s.a,a(295),a(296),a(297),a(298),a(299),a(300);var E=/{([\d,-]+)}/,k=/title=".*"/;t.a=function(e){var t=e.children,a=e.className,c=e.metastring,s=Object(h.a)().siteConfig.themeConfig.prism,m=void 0===s?{}:s,b=Object(r.useState)(!1),p=b[0],y=b[1],_=Object(r.useState)(!1),N=_[0],O=_[1];Object(r.useEffect)((function(){O(!0)}),[]);var w=Object(r.useRef)(null),j=Object(r.useRef)(null),C=[],T="",x=Object(g.a)().isDarkTheme,S=m.theme||d.a,P=m.darkTheme||S,L=x?P:S;if(c&&E.test(c)){var M=c.match(E)[1];C=f.a.parse(M).filter((function(e){return e>0}))}c&&k.test(c)&&(T=c.match(k)[0].split("title=")[1].replace(/"+/g,"")),Object(r.useEffect)((function(){var e;return j.current&&(e=new i.a(j.current,{target:function(){return w.current}})),function(){e&&e.destroy()}}),[j.current,w.current]);var I=a&&a.replace(/language-/,"");!I&&m.defaultLanguage&&(I=m.defaultLanguage);var D=function(){window.getSelection().empty(),y(!0),setTimeout((function(){return y(!1)}),2e3)};return l.a.createElement(o.a,Object(n.a)({},o.b,{key:N,theme:L,code:t.trim(),language:I}),(function(e){var t,a,r=e.className,c=e.style,i=e.tokens,o=e.getLineProps,s=e.getTokenProps;return l.a.createElement(l.a.Fragment,null,T&&l.a.createElement("div",{style:c,className:v.a.codeBlockTitle},T),l.a.createElement("div",{className:v.a.codeBlockContent},l.a.createElement("button",{ref:j,type:"button","aria-label":"Copy code to clipboard",className:u()(v.a.copyButton,(t={},t[v.a.copyButtonWithTitle]=T,t)),onClick:D},p?"Copied":"Copy"),l.a.createElement("pre",{className:u()(r,v.a.codeBlock,(a={},a[v.a.codeBlockWithTitle]=T,a))},l.a.createElement("div",{ref:w,className:v.a.codeBlockLines,style:c},i.map((function(e,t){1===e.length&&""===e[0].content&&(e[0].content="\n");var a=o({line:e,key:t});return C.includes(t+1)&&(a.className=a.className+" docusaurus-highlight-code-line"),l.a.createElement("div",Object(n.a)({key:t},a),e.map((function(e,t){return l.a.createElement("span",Object(n.a)({key:t},s({token:e,key:t})))})))}))))))}))}}).call(this,a(77))},285:function(e,t,a){"use strict";var n=a(1),r=a(0),l=a.n(r),c=a(254),i=a(283),o=a(264),s=a(141),m=a.n(s);t.a={code:function(e){var t=e.children;return"string"==typeof t?l.a.createElement(i.a,e):t},a:function(e){return/\.[^./]+$/.test(e.href)?l.a.createElement("a",e):l.a.createElement(c.a,e)},pre:function(e){return l.a.createElement("div",Object(n.a)({className:m.a.mdxCodeBlock},e))},h1:Object(o.a)("h1"),h2:Object(o.a)("h2"),h3:Object(o.a)("h3"),h4:Object(o.a)("h4"),h5:Object(o.a)("h5"),h6:Object(o.a)("h6")}},333:function(e,t,a){"use strict";a.r(t);var n=a(0),r=a.n(n),l=a(259);t.default=function(){return r.a.createElement(l.a,{title:"Page Not Found"},r.a.createElement("div",{className:"container margin-vert--xl"},r.a.createElement("div",{className:"row"},r.a.createElement("div",{className:"col col--6 col--offset-3"},r.a.createElement("h1",{className:"hero__title"},"Page Not Found"),r.a.createElement("p",null,"We could not find what you were looking for."),r.a.createElement("p",null,"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))}}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[12,105],{247:function(e,t,a){"use strict";a.r(t);a(26),a(20),a(19),a(53),a(260);var n=a(0),r=a.n(n),l=a(251),c=a(252),i=a.n(c),o=a(253),s=a(69),m=a(259),u=a(1),d=(a(78),a(281),a(282),a(254)),b=a(256),f=a.n(b);a(255);var h=a(266),g=a(267),p=a(153),v=a.n(p);a(154);function E(e){var t=e.item,a=e.level,l=e.onItemClick,c=e.collapsible,o=t.items,s=t.href,m=t.label,b=t.type,f=Object(n.useState)(t.collapsed),h=f[0],g=f[1],p=Object(n.useState)(null),v=p[0],k=p[1];switch(t.collapsed!==v&&(k(t.collapsed),g(t.collapsed)),b){case"category":if(0==o.length)return!1;if(1==a)return r.a.createElement("li",{className:i()("menu__list-item"),key:m},r.a.createElement("div",{className:"title"},m),r.a.createElement("ul",{className:"menu__list"},o.map((function(e){return r.a.createElement(E,{key:e.label,item:e,level:a+1,onItemClick:l,collapsible:c})}))));var y=o[0].href;return r.a.createElement("li",{className:i()("menu__list-item",{"menu__list-item--collapsed":h}),key:m},r.a.createElement(d.a,{activeClassName:"menu__link--active",className:i()("menu__link",{"menu__link--sublist":c}),to:y+"/",onClick:c&&"#!"==y?function(){return g(!h)}:void 0},m),r.a.createElement("ul",{className:"menu__list"},o.map((function(e){return r.a.createElement(E,{key:e.label,item:e,level:a+1,onItemClick:l,collapsible:c})}))));case"link":default:var _=[],N=m;if(m.includes("|")){var O=m.split("|",2);N=O[0],_=JSON.parse(O[1])}var w="hidden"==N;return r.a.createElement("li",{className:i()("menu__list-item",w&&"menu__list-item-hidden"),key:m},r.a.createElement(d.a,Object(u.a)({className:"menu__link",to:s+"/"},/^\/(?!\/)/.test(s)?{activeClassName:"menu__link--active",exact:!0,onClick:l}:{target:"_blank",rel:"noreferrer noopener"}),N,_.length>0&&r.a.createElement("span",{className:"badges"},_.includes("log")&&r.a.createElement("span",{className:"badge badge--secondary",title:"This component works with log events."},"L"),_.includes("metric")&&r.a.createElement("span",{className:"badge badge--secondary",title:"This component works with metric events."},"M"))))}}var k=function(e){var t=Object(n.useState)(!1),a=t[0],l=t[1],c=Object(o.a)(),s=c.siteConfig,m=(s=void 0===s?{}:s).themeConfig.navbar,b=(m=void 0===m?{}:m).title,p=c.isClient,k=Object(g.a)(),y=k.logoLink,_=k.logoLinkProps,N=k.logoImageUrl,O=k.logoAlt,w=e.docsSidebars,j=e.path,C=e.sidebar,T=e.sidebarCollapsible;if(Object(h.a)(a),!C)return null;var x=w[C];if(!x)throw new Error('Cannot find the sidebar "'+C+'" in the sidebar config!');return T&&x.forEach((function(e){return function e(t,a){var n=t.items,r=t.href;switch(t.type){case"category":var l=n.map((function(t){return e(t,a)})).filter((function(e){return e})).length>0;return t.collapsed=!l,l;case"link":default:return r===a}}(e,j)})),r.a.createElement("div",{className:i()("docs-sidebar",v.a.sidebar)},r.a.createElement(d.a,Object(u.a)({className:v.a.sidebarLogo,to:y},_),null!=N&&r.a.createElement(f.a,{key:p,src:N,alt:O}),null!=b&&r.a.createElement("strong",null,b)),r.a.createElement("div",{className:i()("menu","menu--responsive",v.a.menu,{"menu--show":a})},r.a.createElement("button",{"aria-label":a?"Close Menu":"Open Menu",className:"button button--secondary button--sm menu__button",type:"button",onClick:function(){l(!a)}},a?r.a.createElement("span",{className:i()(v.a.sidebarMenuIcon,v.a.sidebarMenuCloseIcon)},"\xd7"):r.a.createElement("svg",{className:v.a.sidebarMenuIcon,xmlns:"http://www.w3.org/2000/svg",height:24,width:24,viewBox:"0 0 32 32",role:"img",focusable:"false"},r.a.createElement("title",null,"Menu"),r.a.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))),r.a.createElement("ul",{className:"menu__list"},x.map((function(e){return e.items.length>0&&r.a.createElement(E,{key:e.label,item:e,level:1,onItemClick:function(){l(!1)},collapsible:T})})))))},y=a(285),_=a(333),N=a(310),O=a(155),w=a.n(O);t.default=function(e){var t=e.route,a=e.docsMetadata,n=e.location,c=t.routes.find((function(e){return Object(N.b)(n.pathname,e)}))||{},u=a.permalinkToSidebar,d=a.docsSidebars,b=a.version,f=u[c.path],h=Object(o.a)(),g=h.siteConfig,p=(g=void 0===g?{}:g).themeConfig,v=void 0===p?{}:p,E=h.isClient,O=v.sidebarCollapsible,j=void 0===O||O;return 0===Object.keys(c).length?r.a.createElement(_.default,e):r.a.createElement(m.a,{version:b,key:E},r.a.createElement("div",{className:i()(w.a.container,"container","container--l")},f&&r.a.createElement("div",{className:i()(w.a.sidebar)},r.a.createElement(k,{docsSidebars:d,path:c.path,sidebar:f,sidebarCollapsible:j})),r.a.createElement("main",{className:w.a.main},r.a.createElement(l.a,{components:y.a},Object(s.a)(t.routes)))))}},251:function(e,t,a){"use strict";a.d(t,"a",(function(){return u})),a.d(t,"b",(function(){return f}));var n=a(0),r=a.n(n);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function c(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=r.a.createContext({}),m=function(e){var t=r.a.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i({},t,{},e)),a},u=function(e){var t=m(e.components);return r.a.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},b=Object(n.forwardRef)((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,c=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),u=m(a),b=n,f=u["".concat(c,".").concat(b)]||u[b]||d[b]||l;return a?r.a.createElement(f,i({ref:t},s,{components:a})):r.a.createElement(f,i({ref:t},s))}));function f(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,c=new Array(l);c[0]=b;var i={};for(var o in t)hasOwnProperty.call(t,o)&&(i[o]=t[o]);i.originalType=e,i.mdxType="string"==typeof e?e:n,c[1]=i;for(var s=2;s0&&r.a.createElement("div",{className:"row footer__links"},r.a.createElement("div",{className:"col col--5 footer__col"},r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(u.a,{className:"navbar__logo",src:"/img/logo-light.svg",alt:"gnet",width:"150",height:"auto"})),r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(M,{description:!1,width:"150px"})),r.a.createElement("div",null,r.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank"},r.a.createElement("i",{className:"feather icon-twitter",alt:"gnet's Twitter"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank"},r.a.createElement("i",{className:"feather icon-github",alt:"gnet's Github Repo"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://strikefreedom.top/rss.xml",target:"_blank"},r.a.createElement("i",{className:"feather icon-rss",alt:"gnet's RSS feed"})))),i.map((function(e,t){return r.a.createElement("div",{key:t,className:"col footer__col"},null!=e.title?r.a.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?r.a.createElement("ul",{className:"footer__items"},e.items.map((function(e,t){return e.html?r.a.createElement("li",{key:t,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):r.a.createElement("li",{key:e.href||e.to,className:"footer__item"},r.a.createElement(B,e))}))):null)}))),(s||l)&&r.a.createElement("div",{className:"text--center"},s&&s.src&&r.a.createElement("div",{className:"margin-bottom--sm"},s.href?r.a.createElement("a",{href:s.href,target:"_blank",rel:"noopener noreferrer",className:D.a.footerLogoLink},r.a.createElement(A,{alt:s.alt,url:m})):r.a.createElement(A,{alt:s.alt,url:m}),r.a.createElement("br",null),r.a.createElement("a",{href:"https://www.digitalocean.com/",target:"_blank",rel:"noopener noreferrer",className:D.a.footerLogoLink},r.a.createElement("img",{alt:"DigitalOcean",src:"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg",width:"201px"}))),l,r.a.createElement("br",null),r.a.createElement("small",null,r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/security/policy"},"Security Policy"),"\xa0\u2022\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/blob/master/PRIVACY.md"},"Privacy Policy"))))):null},F=a(276),W=a(277),V=a(3);a(135);t.a=function(e){var t=Object(f.a)().siteConfig,a=void 0===t?{}:t,n=a.favicon,i=(a.tagline,a.title),o=a.themeConfig.image,s=a.url,m=e.children,u=e.title,d=e.noFooter,b=e.description,h=e.image,g=e.keywords,p=(e.permalink,e.version),v=u?u+" | "+i:i,E=h||o,k=s+Object(N.a)(E),y=Object(N.a)(n),_=Object(V.h)(),O=_?"https://gnet.host"+(_.pathname.endsWith("/")?_.pathname:_.pathname+"/"):null;return r.a.createElement(W.a,null,r.a.createElement(F.a,null,r.a.createElement(c.a,null,r.a.createElement("html",{lang:"en"}),r.a.createElement("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),v&&r.a.createElement("title",null,v),v&&r.a.createElement("meta",{property:"og:title",content:v}),n&&r.a.createElement("link",{rel:"shortcut icon",href:y}),b&&r.a.createElement("meta",{name:"description",content:b}),b&&r.a.createElement("meta",{property:"og:description",content:b}),p&&r.a.createElement("meta",{name:"docsearch:version",content:p}),g&&g.length&&r.a.createElement("meta",{name:"keywords",content:g.join(",")}),E&&r.a.createElement("meta",{property:"og:image",content:k}),E&&r.a.createElement("meta",{property:"twitter:image",content:k}),E&&r.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+v}),E&&r.a.createElement("meta",{name:"twitter:site",content:"@vectordotdev"}),E&&r.a.createElement("meta",{name:"twitter:creator",content:"@vectordotdev"}),O&&r.a.createElement("meta",{property:"og:url",content:O}),r.a.createElement("meta",{name:"twitter:card",content:"summary"}),O&&r.a.createElement("link",{rel:"canonical",href:O})),r.a.createElement(l.a,null),r.a.createElement(P,null),r.a.createElement("div",{className:"main-wrapper"},m),!d&&r.a.createElement(R,null)))}},283:function(e,t,a){"use strict";(function(e){var n=a(1),r=(a(281),a(282),a(78),a(79),a(292),a(0)),l=a.n(r),c=a(293),i=a.n(c),o=a(306),s=a(52),m=a(252),u=a.n(m),d=a(301),b=a(294),f=a.n(b),h=a(253),g=a(262),p=a(136),v=a.n(p);(void 0!==e?e:window).Prism=s.a,a(295),a(296),a(297),a(298),a(299),a(300);var E=/{([\d,-]+)}/,k=/title=".*"/;t.a=function(e){var t=e.children,a=e.className,c=e.metastring,s=Object(h.a)().siteConfig.themeConfig.prism,m=void 0===s?{}:s,b=Object(r.useState)(!1),p=b[0],y=b[1],_=Object(r.useState)(!1),N=_[0],O=_[1];Object(r.useEffect)((function(){O(!0)}),[]);var w=Object(r.useRef)(null),j=Object(r.useRef)(null),C=[],T="",x=Object(g.a)().isDarkTheme,S=m.theme||d.a,P=m.darkTheme||S,L=x?P:S;if(c&&E.test(c)){var M=c.match(E)[1];C=f.a.parse(M).filter((function(e){return e>0}))}c&&k.test(c)&&(T=c.match(k)[0].split("title=")[1].replace(/"+/g,"")),Object(r.useEffect)((function(){var e;return j.current&&(e=new i.a(j.current,{target:function(){return w.current}})),function(){e&&e.destroy()}}),[j.current,w.current]);var I=a&&a.replace(/language-/,"");!I&&m.defaultLanguage&&(I=m.defaultLanguage);var D=function(){window.getSelection().empty(),y(!0),setTimeout((function(){return y(!1)}),2e3)};return l.a.createElement(o.a,Object(n.a)({},o.b,{key:N,theme:L,code:t.trim(),language:I}),(function(e){var t,a,r=e.className,c=e.style,i=e.tokens,o=e.getLineProps,s=e.getTokenProps;return l.a.createElement(l.a.Fragment,null,T&&l.a.createElement("div",{style:c,className:v.a.codeBlockTitle},T),l.a.createElement("div",{className:v.a.codeBlockContent},l.a.createElement("button",{ref:j,type:"button","aria-label":"Copy code to clipboard",className:u()(v.a.copyButton,(t={},t[v.a.copyButtonWithTitle]=T,t)),onClick:D},p?"Copied":"Copy"),l.a.createElement("pre",{className:u()(r,v.a.codeBlock,(a={},a[v.a.codeBlockWithTitle]=T,a))},l.a.createElement("div",{ref:w,className:v.a.codeBlockLines,style:c},i.map((function(e,t){1===e.length&&""===e[0].content&&(e[0].content="\n");var a=o({line:e,key:t});return C.includes(t+1)&&(a.className=a.className+" docusaurus-highlight-code-line"),l.a.createElement("div",Object(n.a)({key:t},a),e.map((function(e,t){return l.a.createElement("span",Object(n.a)({key:t},s({token:e,key:t})))})))}))))))}))}}).call(this,a(77))},285:function(e,t,a){"use strict";var n=a(1),r=a(0),l=a.n(r),c=a(254),i=a(283),o=a(264),s=a(141),m=a.n(s);t.a={code:function(e){var t=e.children;return"string"==typeof t?l.a.createElement(i.a,e):t},a:function(e){return/\.[^./]+$/.test(e.href)?l.a.createElement("a",e):l.a.createElement(c.a,e)},pre:function(e){return l.a.createElement("div",Object(n.a)({className:m.a.mdxCodeBlock},e))},h1:Object(o.a)("h1"),h2:Object(o.a)("h2"),h3:Object(o.a)("h3"),h4:Object(o.a)("h4"),h5:Object(o.a)("h5"),h6:Object(o.a)("h6")}},333:function(e,t,a){"use strict";a.r(t);var n=a(0),r=a.n(n),l=a(259);t.default=function(){return r.a.createElement(l.a,{title:"Page Not Found"},r.a.createElement("div",{className:"container margin-vert--xl"},r.a.createElement("div",{className:"row"},r.a.createElement("div",{className:"col col--6 col--offset-3"},r.a.createElement("h1",{className:"hero__title"},"Page Not Found"),r.a.createElement("p",null,"We could not find what you were looking for."),r.a.createElement("p",null,"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))}}}]); \ No newline at end of file diff --git a/1f9e12e6.cb04c740.js b/1f9e12e6.ee4ce51b.js similarity index 99% rename from 1f9e12e6.cb04c740.js rename to 1f9e12e6.ee4ce51b.js index bdfc3911b..fbf078991 100644 --- a/1f9e12e6.cb04c740.js +++ b/1f9e12e6.ee4ce51b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{157:function(e,t,a){"use strict";a.r(t);a(281),a(282),a(327);var r=a(0),n=a.n(r),i=a(332),o=a(259),u=a(369),l=a.n(u),c=a(258);t.default=function(e){var t=e.items,a=e.location?l.a.parse(e.location.search,{ignoreQueryPrefix:!0}):{},u=Object(r.useState)(a.search),s=u[0],m=u[1];Object(c.b)();var D=t;return s&&(D=D.filter((function(e){var t=s.toLowerCase(),a=(e.content.frontMatter,e.content.metadata);return!!a.title.toLowerCase().includes(t)||!!a.tags.some((function(e){return e.label.toLowerCase().includes(t)}))}))),n.a.createElement(o.a,{title:"Highlights",description:"The latest gnet features and updates."},n.a.createElement("header",{className:"hero hero--clean"},n.a.createElement("div",{className:"container container--xs"},n.a.createElement("h1",null,"gnet Highlights"),n.a.createElement("div",{className:"hero--subtitle"},"New features & updates. Follow ",n.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank"}," ",n.a.createElement("i",{className:"feather icon-twitter"})," @panjf2000")," for real-time updates!"),n.a.createElement("div",{className:"hero--search"},n.a.createElement("input",{type:"text",className:"input--text input--xl input--block",onChange:function(e){return m(e.currentTarget.value)},placeholder:"\ud83d\udd0d Search by title or or tag..."})))),n.a.createElement("main",{className:"container container--xs markdown"},n.a.createElement(i.a,{items:D})))}},258:function(e,t,a){"use strict";a.d(t,"a",(function(){return n})),a.d(t,"b",(function(){return i}));var r=a(253);function n(){var e=Object(r.a)().siteConfig,t=(void 0===e?{}:e).customFields.metadata.latest_highlight,a=Date.parse(t.date),n=new Date,i=Math.abs(n-a),o=Math.ceil(i/864e5),u=null;return"undefined"!=typeof window&&(u=new Date(parseInt(window.localStorage.getItem("highlightsViewedAt")||"0"))),o<30&&(!u||u0&&n.a.createElement("div",{className:"row footer__links"},n.a.createElement("div",{className:"col col--5 footer__col"},n.a.createElement("div",{className:"margin-bottom--md"},n.a.createElement(m.a,{className:"navbar__logo",src:"/img/logo-light.svg",alt:"gnet",width:"150",height:"auto"})),n.a.createElement("div",{className:"margin-bottom--md"},n.a.createElement(T,{description:!1,width:"150px"})),n.a.createElement("div",null,n.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank"},n.a.createElement("i",{className:"feather icon-twitter",alt:"gnet's Twitter"})),"\xa0\xa0\xa0\xa0",n.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank"},n.a.createElement("i",{className:"feather icon-github",alt:"gnet's Github Repo"})),"\xa0\xa0\xa0\xa0",n.a.createElement("a",{href:"https://strikefreedom.top/rss.xml",target:"_blank"},n.a.createElement("i",{className:"feather icon-rss",alt:"gnet's RSS feed"})))),u.map((function(e,t){return n.a.createElement("div",{key:t,className:"col footer__col"},null!=e.title?n.a.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?n.a.createElement("ul",{className:"footer__items"},e.items.map((function(e,t){return e.html?n.a.createElement("li",{key:t,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):n.a.createElement("li",{key:e.href||e.to,className:"footer__item"},n.a.createElement(P,e))}))):null)}))),(c||i)&&n.a.createElement("div",{className:"text--center"},c&&c.src&&n.a.createElement("div",{className:"margin-bottom--sm"},c.href?n.a.createElement("a",{href:c.href,target:"_blank",rel:"noopener noreferrer",className:M.a.footerLogoLink},n.a.createElement(B,{alt:c.alt,url:s})):n.a.createElement(B,{alt:c.alt,url:s}),n.a.createElement("br",null),n.a.createElement("a",{href:"https://www.digitalocean.com/",target:"_blank",rel:"noopener noreferrer",className:M.a.footerLogoLink},n.a.createElement("img",{alt:"DigitalOcean",src:"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg",width:"201px"}))),i,n.a.createElement("br",null),n.a.createElement("small",null,n.a.createElement("a",{href:"https://github.com/panjf2000/gnet/security/policy"},"Security Policy"),"\xa0\u2022\xa0",n.a.createElement("a",{href:"https://github.com/panjf2000/gnet/blob/master/PRIVACY.md"},"Privacy Policy"))))):null},H=a(276),I=a(277),z=a(3);a(135);t.a=function(e){var t=Object(d.a)().siteConfig,a=void 0===t?{}:t,r=a.favicon,u=(a.tagline,a.title),l=a.themeConfig.image,c=a.url,s=e.children,m=e.title,D=e.noFooter,f=e.description,p=e.image,h=e.keywords,g=(e.permalink,e.version),y=m?m+" | "+u:u,b=p||l,v=c+Object(w.a)(b),E=Object(w.a)(r),F=Object(z.h)(),C=F?"https://gnet.host"+(F.pathname.endsWith("/")?F.pathname:F.pathname+"/"):null;return n.a.createElement(I.a,null,n.a.createElement(H.a,null,n.a.createElement(o.a,null,n.a.createElement("html",{lang:"en"}),n.a.createElement("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),y&&n.a.createElement("title",null,y),y&&n.a.createElement("meta",{property:"og:title",content:y}),r&&n.a.createElement("link",{rel:"shortcut icon",href:E}),f&&n.a.createElement("meta",{name:"description",content:f}),f&&n.a.createElement("meta",{property:"og:description",content:f}),g&&n.a.createElement("meta",{name:"docsearch:version",content:g}),h&&h.length&&n.a.createElement("meta",{name:"keywords",content:h.join(",")}),b&&n.a.createElement("meta",{property:"og:image",content:v}),b&&n.a.createElement("meta",{property:"twitter:image",content:v}),b&&n.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+y}),b&&n.a.createElement("meta",{name:"twitter:site",content:"@vectordotdev"}),b&&n.a.createElement("meta",{name:"twitter:creator",content:"@vectordotdev"}),C&&n.a.createElement("meta",{property:"og:url",content:C}),n.a.createElement("meta",{name:"twitter:card",content:"summary"}),C&&n.a.createElement("link",{rel:"canonical",href:C})),n.a.createElement(i.a,null),n.a.createElement(_,null),n.a.createElement("div",{className:"main-wrapper"},s),!D&&n.a.createElement(L,null)))}},260:function(e,t,a){"use strict";var r=a(12),n=a(287)(5),i=!0;"find"in[]&&Array(1).find((function(){i=!1})),r(r.P+r.F*i,"Array",{find:function(e){return n(this,e,arguments.length>1?arguments[1]:void 0)}}),a(80)("find")},261:function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));a(79),a(284),a(260),a(78);var r=a(265),n=a.n(r);function i(e,t){var a=new n.a;return e.map((function(e){var r=e;return"string"==typeof e&&(r={label:e,permalink:"/"+t+"/tags/"+a.slug(e)}),function(e,t){if(e.enriched)return e;var a=e.label.split(": ",2),r=a[0],n=a[1],i="primary";switch(r){case"domain":i="blue";break;case"type":i="pink";break;default:i="primary"}return{category:r,count:e.count,enriched:!0,label:e.label,permalink:e.permalink,style:i,value:n}}(r)}))}},263:function(e,t,a){var r=a(24).f,n=Function.prototype,i=/^\s*function ([^ (]*)/;"name"in n||a(10)&&r(n,"name",{configurable:!0,get:function(){try{return(""+this).match(i)[1]}catch(e){return""}}})},264:function(e,t,a){"use strict";var r=a(9),n=a(0),i=a.n(n),o=a(252),u=a.n(o),l=a(253),c=(a(139),a(140)),s=a.n(c);t.a=function(e){return function(t){var a,n=t.id,o=Object(r.a)(t,["id"]),c=Object(l.a)().siteConfig,m=(c=void 0===c?{}:c).themeConfig,D=(m=void 0===m?{}:m).navbar,f=(D=void 0===D?{}:D).hideOnScroll,d=void 0!==f&&f;return n?i.a.createElement(e,o,i.a.createElement("a",{"aria-hidden":"true",tabIndex:"-1",className:u()("anchor",(a={},a[s.a.enhancedAnchor]=!d,a)),id:n}),i.a.createElement("a",{"aria-hidden":"true",tabIndex:"-1",className:"hash-link",href:"#"+n,title:"Direct link to heading"},"#"),o.children):i.a.createElement(e,o)}}},265:function(e,t,a){var r=a(274);e.exports=u;var n=Object.hasOwnProperty,i=/\s/g,o=/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~\u2019]/g;function u(){if(!(this instanceof u))return new u;this.reset()}function l(e,t){return"string"!=typeof e?"":(t||(e=e.toLowerCase()),e.trim().replace(o,"").replace(r(),"").replace(i,"-"))}u.prototype.slug=function(e,t){for(var a=l(e,!0===t),r=a;n.call(this.occurrences,a);)this.occurrences[r]++,a=r+"-"+this.occurrences[r];return this.occurrences[a]=0,a},u.prototype.reset=function(){this.occurrences=Object.create(null)},u.slug=l},273:function(e,t,a){"use strict";var r=a(0),n=a.n(r),i=a(254),o=a(252),u=a.n(o);t.a=function(e){var t=e.count,a=e.label,r=e.permalink,o=e.style,l=e.value,c=e.valueOnly;return n.a.createElement(i.a,{to:r+"/",className:u()("badge","badge--rounded","badge--"+o)},c?l:a,t&&n.a.createElement(n.a.Fragment,null," (",t,")"))}},274:function(e,t){e.exports=function(){return/[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267B\u267F\u2692-\u2694\u2696\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD79\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED0\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3]|\uD83E[\uDD10-\uDD18\uDD80-\uDD84\uDDC0]|\uD83C\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uD83C\uDDFE\uD83C[\uDDEA\uDDF9]|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDFC\uD83C[\uDDEB\uDDF8]|\uD83C\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uD83C\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF8\uDDFE\uDDFF]|\uD83C\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uD83C\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uD83C\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uD83C\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uD83C\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uD83C\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uD83C\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uD83C\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uD83C\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uD83C\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uD83C\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uD83C\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uD83C\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uD83C\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uD83C\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uD83C\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|[#\*0-9]\u20E3/g}},278:function(e,t,a){"use strict";a(263),a(260);var r=a(0),n=a.n(r),i=a(252),o=a.n(i),u=a(253);a(137);t.a=function(e){var t,a=e.bio,r=e.className,i=e.github,l=e.nameSuffix,c=e.rel,s=e.size,m=e.subTitle,D=e.vertical,f=Object(u.a)().siteConfig,d=(void 0===f?{}:f).customFields.metadata.team,p=d.find((function(e){return e.github==i}))||d.find((function(e){return"ben"==e.id}));return n.a.createElement("div",{className:o()("avatar",r,(t={},t["avatar--"+s]=s,t["avatar--vertical"]=D,t))},n.a.createElement("img",{className:o()("avatar__photo","avatar__photo--"+s),src:p.avatar}),n.a.createElement("div",{className:"avatar__intro"},n.a.createElement("div",{className:"avatar__name"},n.a.createElement("a",{href:p.github,target:"_blank",rel:c},p.name),l),m&&n.a.createElement("small",{className:"avatar__subtitle"},m),!m&&a&&n.a.createElement("small",{className:"avatar__subtitle",dangerouslySetInnerHTML:{__html:p.bio}})))}},279:function(e,t,a){"use strict";var r=a(1),n=a(0),i=a.n(n),o=(a(254),a(273)),u=a(252),l=a.n(u),c=a(261),s=a(138),m=a.n(s);t.a=function(e){var t,a=e.block,n=e.colorProfile,u=e.tags,s=e.valuesOnly,D=Object(c.a)(u,n);return i.a.createElement("span",{className:l()(m.a.tags,(t={},t[m.a.tagsBlock]=a,t))},D.map((function(e,t){return i.a.createElement(o.a,Object(r.a)({key:t,valueOnly:s},e))})))}},280:function(e,t,a){var r;!function(n){"use strict";var i,o,u,l=(i=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZWN]|"[^"]*"|'[^']*'/g,o=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,u=/[^-+\dA-Z]/g,function(e,t,a,r){if(1!==arguments.length||"string"!==D(e)||/\d/.test(e)||(t=e,e=void 0),(e=e||new Date)instanceof Date||(e=new Date(e)),isNaN(e))throw TypeError("Invalid date");var n=(t=String(l.masks[t]||t||l.masks.default)).slice(0,4);"UTC:"!==n&&"GMT:"!==n||(t=t.slice(4),a=!0,"GMT:"===n&&(r=!0));var f=a?"getUTC":"get",d=e[f+"Date"](),p=e[f+"Day"](),h=e[f+"Month"](),g=e[f+"FullYear"](),y=e[f+"Hours"](),b=e[f+"Minutes"](),v=e[f+"Seconds"](),E=e[f+"Milliseconds"](),F=a?0:e.getTimezoneOffset(),w=s(e),C=m(e),N={d:d,dd:c(d),ddd:l.i18n.dayNames[p],dddd:l.i18n.dayNames[p+7],m:h+1,mm:c(h+1),mmm:l.i18n.monthNames[h],mmmm:l.i18n.monthNames[h+12],yy:String(g).slice(2),yyyy:g,h:y%12||12,hh:c(y%12||12),H:y,HH:c(y),M:b,MM:c(b),s:v,ss:c(v),l:c(E,3),L:c(Math.round(E/10)),t:y<12?l.i18n.timeNames[0]:l.i18n.timeNames[1],tt:y<12?l.i18n.timeNames[2]:l.i18n.timeNames[3],T:y<12?l.i18n.timeNames[4]:l.i18n.timeNames[5],TT:y<12?l.i18n.timeNames[6]:l.i18n.timeNames[7],Z:r?"GMT":a?"UTC":(String(e).match(o)||[""]).pop().replace(u,""),o:(F>0?"-":"+")+c(100*Math.floor(Math.abs(F)/60)+Math.abs(F)%60,4),S:["th","st","nd","rd"][d%10>3?0:(d%100-d%10!=10)*d%10],W:w,N:C};return t.replace(i,(function(e){return e in N?N[e]:e.slice(1,e.length-1)}))});function c(e,t){for(e=String(e),t=t||2;e.length1?arguments[1]:void 0)}}),a(80)("includes")},282:function(e,t,a){"use strict";var r=a(12),n=a(307);r(r.P+r.F*a(308)("includes"),"String",{includes:function(e){return!!~n(this,e,"includes").indexOf(e,arguments.length>1?arguments[1]:void 0)}})},287:function(e,t,a){var r=a(28),n=a(54),i=a(25),o=a(27),u=a(288);e.exports=function(e,t){var a=1==e,l=2==e,c=3==e,s=4==e,m=6==e,D=5==e||m,f=t||u;return function(t,u,d){for(var p,h,g=i(t),y=n(g),b=r(u,d,3),v=o(y.length),E=0,F=a?f(t,v):l?f(t,0):void 0;v>E;E++)if((D||E in y)&&(h=b(p=y[E],E,g),e))if(a)F[E]=h;else if(h)switch(e){case 3:return!0;case 5:return p;case 6:return E;case 2:F.push(p)}else if(s)return!1;return m?-1:c||s?s:F}}},288:function(e,t,a){var r=a(289);e.exports=function(e,t){return new(r(e))(t)}},289:function(e,t,a){var r=a(14),n=a(309),i=a(2)("species");e.exports=function(e){var t;return n(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!n(t.prototype)||(t=void 0),r(t)&&null===(t=t[i])&&(t=void 0)),void 0===t?Array:t}},311:function(e,t,a){"use strict";var r=a(12),n=a(30),i=a(25),o=a(13),u=[].sort,l=[1,2,3];r(r.P+r.F*(o((function(){l.sort(void 0)}))||!o((function(){l.sort(null)}))||!a(312)(u)),"Array",{sort:function(e){return void 0===e?u.call(i(this)):u.call(i(this),n(e))}})},312:function(e,t,a){"use strict";var r=a(13);e.exports=function(e,t){return!!e&&r((function(){t?e.call(null,(function(){}),1):e.call(null)}))}},313:function(e,t,a){e.exports=function(){var e=[],t=[],a={},r={},n={};function i(e){return"string"==typeof e?new RegExp("^"+e+"$","i"):e}function o(e,t){return e===t?t:e===e.toLowerCase()?t.toLowerCase():e===e.toUpperCase()?t.toUpperCase():e[0]===e[0].toUpperCase()?t.charAt(0).toUpperCase()+t.substr(1).toLowerCase():t.toLowerCase()}function u(e,t){return e.replace(/\$(\d{1,2})/g,(function(e,a){return t[a]||""}))}function l(e,t){return e.replace(t[0],(function(a,r){var n=u(t[1],arguments);return o(""===a?e[r-1]:a,n)}))}function c(e,t,r){if(!e.length||a.hasOwnProperty(e))return t;for(var n=r.length;n--;){var i=r[n];if(i[0].test(t))return l(t,i)}return t}function s(e,t,a){return function(r){var n=r.toLowerCase();return t.hasOwnProperty(n)?o(r,n):e.hasOwnProperty(n)?o(r,e[n]):c(n,r,a)}}function m(e,t,a,r){return function(r){var n=r.toLowerCase();return!!t.hasOwnProperty(n)||!e.hasOwnProperty(n)&&c(n,n,a)===n}}function D(e,t,a){return(a?t+" ":"")+(1===t?D.singular(e):D.plural(e))}return D.plural=s(n,r,e),D.isPlural=m(n,r,e),D.singular=s(r,n,t),D.isSingular=m(r,n,t),D.addPluralRule=function(t,a){e.push([i(t),a])},D.addSingularRule=function(e,a){t.push([i(e),a])},D.addUncountableRule=function(e){"string"!=typeof e?(D.addPluralRule(e,"$0"),D.addSingularRule(e,"$0")):a[e.toLowerCase()]=!0},D.addIrregularRule=function(e,t){t=t.toLowerCase(),e=e.toLowerCase(),n[e]=t,r[t]=e},[["I","we"],["me","us"],["he","they"],["she","they"],["them","them"],["myself","ourselves"],["yourself","yourselves"],["itself","themselves"],["herself","themselves"],["himself","themselves"],["themself","themselves"],["is","are"],["was","were"],["has","have"],["this","these"],["that","those"],["echo","echoes"],["dingo","dingoes"],["volcano","volcanoes"],["tornado","tornadoes"],["torpedo","torpedoes"],["genus","genera"],["viscus","viscera"],["stigma","stigmata"],["stoma","stomata"],["dogma","dogmata"],["lemma","lemmata"],["schema","schemata"],["anathema","anathemata"],["ox","oxen"],["axe","axes"],["die","dice"],["yes","yeses"],["foot","feet"],["eave","eaves"],["goose","geese"],["tooth","teeth"],["quiz","quizzes"],["human","humans"],["proof","proofs"],["carve","carves"],["valve","valves"],["looey","looies"],["thief","thieves"],["groove","grooves"],["pickaxe","pickaxes"],["passerby","passersby"]].forEach((function(e){return D.addIrregularRule(e[0],e[1])})),[[/s?$/i,"s"],[/[^\u0000-\u007F]$/i,"$0"],[/([^aeiou]ese)$/i,"$1"],[/(ax|test)is$/i,"$1es"],[/(alias|[^aou]us|t[lm]as|gas|ris)$/i,"$1es"],[/(e[mn]u)s?$/i,"$1s"],[/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i,"$1"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1i"],[/(alumn|alg|vertebr)(?:a|ae)$/i,"$1ae"],[/(seraph|cherub)(?:im)?$/i,"$1im"],[/(her|at|gr)o$/i,"$1oes"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i,"$1a"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i,"$1a"],[/sis$/i,"ses"],[/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i,"$1$2ves"],[/([^aeiouy]|qu)y$/i,"$1ies"],[/([^ch][ieo][ln])ey$/i,"$1ies"],[/(x|ch|ss|sh|zz)$/i,"$1es"],[/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i,"$1ices"],[/\b((?:tit)?m|l)(?:ice|ouse)$/i,"$1ice"],[/(pe)(?:rson|ople)$/i,"$1ople"],[/(child)(?:ren)?$/i,"$1ren"],[/eaux$/i,"$0"],[/m[ae]n$/i,"men"],["thou","you"]].forEach((function(e){return D.addPluralRule(e[0],e[1])})),[[/s$/i,""],[/(ss)$/i,"$1"],[/(wi|kni|(?:after|half|high|low|mid|non|night|[^\w]|^)li)ves$/i,"$1fe"],[/(ar|(?:wo|[ae])l|[eo][ao])ves$/i,"$1f"],[/ies$/i,"y"],[/\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i,"$1ie"],[/\b(mon|smil)ies$/i,"$1ey"],[/\b((?:tit)?m|l)ice$/i,"$1ouse"],[/(seraph|cherub)im$/i,"$1"],[/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i,"$1"],[/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i,"$1sis"],[/(movie|twelve|abuse|e[mn]u)s$/i,"$1"],[/(test)(?:is|es)$/i,"$1is"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1us"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i,"$1um"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i,"$1on"],[/(alumn|alg|vertebr)ae$/i,"$1a"],[/(cod|mur|sil|vert|ind)ices$/i,"$1ex"],[/(matr|append)ices$/i,"$1ix"],[/(pe)(rson|ople)$/i,"$1rson"],[/(child)ren$/i,"$1"],[/(eau)x?$/i,"$1"],[/men$/i,"man"]].forEach((function(e){return D.addSingularRule(e[0],e[1])})),["adulthood","advice","agenda","aid","aircraft","alcohol","ammo","analytics","anime","athletics","audio","bison","blood","bream","buffalo","butter","carp","cash","chassis","chess","clothing","cod","commerce","cooperation","corps","debris","diabetes","digestion","elk","energy","equipment","excretion","expertise","firmware","flounder","fun","gallows","garbage","graffiti","hardware","headquarters","health","herpes","highjinks","homework","housework","information","jeans","justice","kudos","labour","literature","machinery","mackerel","mail","media","mews","moose","music","mud","manga","news","only","personnel","pike","plankton","pliers","police","pollution","premises","rain","research","rice","salmon","scissors","series","sewage","shambles","shrimp","software","species","staff","swine","tennis","traffic","transportation","trout","tuna","wealth","welfare","whiting","wildebeest","wildlife","you",/pok[e\xe9]mon$/i,/[^aeiou]ese$/i,/deer$/i,/fish$/i,/measles$/i,/o[iu]s$/i,/pox$/i,/sheep$/i].forEach(D.addUncountableRule),D}()},319:function(e,t,a){"use strict";var r=a(0),n=a.n(r),i=["second","minute","hour","day","week","month","year"],o=["\u79d2","\u5206\u949f","\u5c0f\u65f6","\u5929","\u5468","\u4e2a\u6708","\u5e74"],u={},l=function(e,t){u[e]=t},c=function(e){return u[e]||u.en_US},s=[60,60,24,7,365/7/12,12];function m(e){return e instanceof Date?e:!isNaN(e)||/^\d+$/.test(e)?new Date(parseInt(e)):(e=(e||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/(\d)T(\d)/,"$1 $2").replace(/Z/," UTC").replace(/([+-]\d\d):?(\d\d)/," $1$2"),new Date(e))}function D(e,t){for(var a=e<0?1:0,r=e=Math.abs(e),n=0;e>=s[n]&&n(0===(n*=2)?9:1)&&(n+=1),t(e,n,r)[a].replace("%s",e.toString())}function f(e,t){return(+(t?m(t):new Date)-+m(e))/1e3}function d(e){return parseInt(e.getAttribute("timeago-id"))}var p={},h=function(e){clearTimeout(e),delete p[e]};function g(e,t,a,r){h(d(e));var n=r.relativeDate,i=r.minInterval,o=f(t,n);e.innerText=D(o,a);var u=setTimeout((function(){g(e,t,a,r)}),Math.min(1e3*Math.max(function(e){for(var t=1,a=0,r=Math.abs(e);e>=s[a]&&a1&&(a+="s"),[e+" "+a+" ago","in "+e+" "+a]})),l("zh_CN",(function(e,t){if(0===t)return["\u521a\u521a","\u7247\u523b\u540e"];var a=o[~~(t/2)];return[e+" "+a+"\u524d",e+" "+a+"\u540e"]}));var b,v=(b=function(e,t){return(b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])})(e,t)},function(e,t){function a(){this.constructor=e}b(e,t),e.prototype=null===t?Object.create(t):(a.prototype=t.prototype,new a)}),E=function(){return(E=Object.assign||function(e){for(var t,a=1,r=arguments.length;a1;){var t=e.pop(),a=t.obj[t.prop];if(n(a)){for(var r=[],i=0;i=48&&u<=57||u>=65&&u<=90||u>=97&&u<=122?n+=r.charAt(o):u<128?n+=i[u]:u<2048?n+=i[192|u>>6]+i[128|63&u]:u<55296||u>=57344?n+=i[224|u>>12]+i[128|u>>6&63]+i[128|63&u]:(o+=1,u=65536+((1023&u)<<10|1023&r.charCodeAt(o)),n+=i[240|u>>18]+i[128|u>>12&63]+i[128|u>>6&63]+i[128|63&u])}return n},isBuffer:function(e){return!(!e||"object"!=typeof e)&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},maybeMap:function(e,t){if(n(e)){for(var a=[],r=0;r0&&i.a.createElement("div",null,i.a.createElement(c.a,{colorProfile:"blog",tags:F}))))},g=a(265),y=a.n(g),b=a(313),v=a.n(b),E=/\b(?:an?d?|a[st]|because|but|by|en|for|i[fn]|neither|nor|o[fnr]|only|over|per|so|some|tha[tn]|the|to|up|upon|vs?\.?|versus|via|when|with|without|yet)\b/i,F=/[^\s:\u2013\u2014-]+|./g,w=/\s/,C=/.(?=[A-Z]|\..)/,N=/[A-Za-z0-9\u00C0-\u00FF]/;function k(e){for(var t,a="";null!==(t=F.exec(e));){var r=t[0],n=t.index;C.test(r)||E.test(r)&&0!==n&&n+r.length!==e.length||":"===e.charAt(n+r.length)&&!w.test(e.charAt(n+r.length+1))?a+=r:a+=r.replace(N,(function(e){return e.toUpperCase()}))}return a}Object(o.a)("h2");var O=Object(o.a)("h3");function j(e){var t=e.groupBy,a=e.group,r=new y.a;switch(t){case"release":return i.a.createElement("li",{className:"header sticky"},i.a.createElement("h3",null,i.a.createElement(l.a,{to:"/releases/"+a+"/"},k(a))));case"type":var n=null,o=v()(k(a)),u=null;switch(a){case"breaking change":n="alert-triangle",u="danger";break;case"enhancement":n="arrow-up-circle",u="pink";break;case"new feature":n="gift",u="primary";break;case"performance":n="zap",o="Performance Improvements",u="warning"}return i.a.createElement("li",{className:"header sticky"},i.a.createElement(O,{id:r.slug(a+"-highlights"),className:"text--"+u},n&&i.a.createElement("i",{className:"feather icon-"+n})," ",o));default:throw Error("unknown group: "+t)}}t.a=function(e){var t=e.author,a=(e.clean,e.colorize),n=e.groupBy,o=e.items,u=e.tags,l=e.timeline,c=n||"release",s=function(e){return e.map((function(e){if(e.content){var t=e.content,a=t.frontMatter,r=t.metadata,n=a.author_github,i=a.pr_numbers,o=a.release,u=a.title,l=r.date,c=r.description,s=r.permalink,m=r.tags,D={};return D.authorGithub=n,D.dateString=l,D.description=c,D.permalink=s,D.prNumbers=i,D.release=o,D.tags=m,D.title=u,D}return e}))}(o),m=_.groupBy(s,c),f=!1!==l?Object.keys(m):Object.keys(m).sort();return i.a.createElement("ul",{className:D()("connected-list","connected-list--clean")},f.map((function(e,n){var o=m[e];return i.a.createElement(i.a.Fragment,null,i.a.createElement(j,{groupBy:c,group:e}),i.a.createElement("ul",{className:D()("connected-list",{"connected-list--timeline":!1!==l})},o.map((function(e,n){return i.a.createElement("li",{key:n},i.a.createElement(h,Object(r.a)({},e,{colorize:a,hideAuthor:0==t,hideTags:0==u})))}))))})))}},339:function(e,t,a){"use strict";var r=String.prototype.replace,n=/%20/g,i=a(329),o={RFC1738:"RFC1738",RFC3986:"RFC3986"};e.exports=i.assign({default:o.RFC3986,formatters:{RFC1738:function(e){return r.call(e,n,"+")},RFC3986:function(e){return String(e)}}},o)},369:function(e,t,a){"use strict";var r=a(370),n=a(371),i=a(339);e.exports={formats:i,parse:n,stringify:r}},370:function(e,t,a){"use strict";var r=a(329),n=a(339),i=Object.prototype.hasOwnProperty,o={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},u=Array.isArray,l=Array.prototype.push,c=function(e,t){l.apply(e,u(t)?t:[t])},s=Date.prototype.toISOString,m=n.default,D={addQueryPrefix:!1,allowDots:!1,charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encoder:r.encode,encodeValuesOnly:!1,format:m,formatter:n.formatters[m],indices:!1,serializeDate:function(e){return s.call(e)},skipNulls:!1,strictNullHandling:!1},f=function e(t,a,n,i,o,l,s,m,f,d,p,h,g){var y,b=t;if("function"==typeof s?b=s(a,b):b instanceof Date?b=d(b):"comma"===n&&u(b)&&(b=r.maybeMap(b,(function(e){return e instanceof Date?d(e):e})).join(",")),null===b){if(i)return l&&!h?l(a,D.encoder,g,"key"):a;b=""}if("string"==typeof(y=b)||"number"==typeof y||"boolean"==typeof y||"symbol"==typeof y||"bigint"==typeof y||r.isBuffer(b))return l?[p(h?a:l(a,D.encoder,g,"key"))+"="+p(l(b,D.encoder,g,"value"))]:[p(a)+"="+p(String(b))];var v,E=[];if(void 0===b)return E;if(u(s))v=s;else{var F=Object.keys(b);v=m?F.sort(m):F}for(var w=0;w0?y+g:""}},371:function(e,t,a){"use strict";var r=a(329),n=Object.prototype.hasOwnProperty,i=Array.isArray,o={allowDots:!1,allowPrototypes:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:r.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},u=function(e){return e.replace(/&#(\d+);/g,(function(e,t){return String.fromCharCode(parseInt(t,10))}))},l=function(e,t){return e&&"string"==typeof e&&t.comma&&e.indexOf(",")>-1?e.split(","):e},c=function(e,t,a,r){if(e){var i=a.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,o=/(\[[^[\]]*])/g,u=a.depth>0&&/(\[[^[\]]*])/.exec(i),c=u?i.slice(0,u.index):i,s=[];if(c){if(!a.plainObjects&&n.call(Object.prototype,c)&&!a.allowPrototypes)return;s.push(c)}for(var m=0;a.depth>0&&null!==(u=o.exec(i))&&m=0;--i){var o,u=e[i];if("[]"===u&&a.parseArrays)o=[].concat(n);else{o=a.plainObjects?Object.create(null):{};var c="["===u.charAt(0)&&"]"===u.charAt(u.length-1)?u.slice(1,-1):u,s=parseInt(c,10);a.parseArrays||""!==c?!isNaN(s)&&u!==c&&String(s)===c&&s>=0&&a.parseArrays&&s<=a.arrayLimit?(o=[])[s]=n:o[c]=n:o={0:n}}n=o}return n}(s,t,a,r)}};e.exports=function(e,t){var a=function(e){if(!e)return o;if(null!==e.decoder&&void 0!==e.decoder&&"function"!=typeof e.decoder)throw new TypeError("Decoder has to be a function.");if(void 0!==e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var t=void 0===e.charset?o.charset:e.charset;return{allowDots:void 0===e.allowDots?o.allowDots:!!e.allowDots,allowPrototypes:"boolean"==typeof e.allowPrototypes?e.allowPrototypes:o.allowPrototypes,arrayLimit:"number"==typeof e.arrayLimit?e.arrayLimit:o.arrayLimit,charset:t,charsetSentinel:"boolean"==typeof e.charsetSentinel?e.charsetSentinel:o.charsetSentinel,comma:"boolean"==typeof e.comma?e.comma:o.comma,decoder:"function"==typeof e.decoder?e.decoder:o.decoder,delimiter:"string"==typeof e.delimiter||r.isRegExp(e.delimiter)?e.delimiter:o.delimiter,depth:"number"==typeof e.depth||!1===e.depth?+e.depth:o.depth,ignoreQueryPrefix:!0===e.ignoreQueryPrefix,interpretNumericEntities:"boolean"==typeof e.interpretNumericEntities?e.interpretNumericEntities:o.interpretNumericEntities,parameterLimit:"number"==typeof e.parameterLimit?e.parameterLimit:o.parameterLimit,parseArrays:!1!==e.parseArrays,plainObjects:"boolean"==typeof e.plainObjects?e.plainObjects:o.plainObjects,strictNullHandling:"boolean"==typeof e.strictNullHandling?e.strictNullHandling:o.strictNullHandling}}(t);if(""===e||null==e)return a.plainObjects?Object.create(null):{};for(var s="string"==typeof e?function(e,t){var a,c={},s=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,m=t.parameterLimit===1/0?void 0:t.parameterLimit,D=s.split(t.delimiter,m),f=-1,d=t.charset;if(t.charsetSentinel)for(a=0;a-1&&(h=i(h)?[h]:h),n.call(c,p)?c[p]=r.combine(c[p],h):c[p]=h}return c}(e,a):e,m=a.plainObjects?Object.create(null):{},D=Object.keys(s),f=0;f0&&n.a.createElement("div",{className:"row footer__links"},n.a.createElement("div",{className:"col col--5 footer__col"},n.a.createElement("div",{className:"margin-bottom--md"},n.a.createElement(m.a,{className:"navbar__logo",src:"/img/logo-light.svg",alt:"gnet",width:"150",height:"auto"})),n.a.createElement("div",{className:"margin-bottom--md"},n.a.createElement(T,{description:!1,width:"150px"})),n.a.createElement("div",null,n.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank"},n.a.createElement("i",{className:"feather icon-twitter",alt:"gnet's Twitter"})),"\xa0\xa0\xa0\xa0",n.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank"},n.a.createElement("i",{className:"feather icon-github",alt:"gnet's Github Repo"})),"\xa0\xa0\xa0\xa0",n.a.createElement("a",{href:"https://strikefreedom.top/rss.xml",target:"_blank"},n.a.createElement("i",{className:"feather icon-rss",alt:"gnet's RSS feed"})))),u.map((function(e,t){return n.a.createElement("div",{key:t,className:"col footer__col"},null!=e.title?n.a.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?n.a.createElement("ul",{className:"footer__items"},e.items.map((function(e,t){return e.html?n.a.createElement("li",{key:t,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):n.a.createElement("li",{key:e.href||e.to,className:"footer__item"},n.a.createElement(P,e))}))):null)}))),(c||i)&&n.a.createElement("div",{className:"text--center"},c&&c.src&&n.a.createElement("div",{className:"margin-bottom--sm"},c.href?n.a.createElement("a",{href:c.href,target:"_blank",rel:"noopener noreferrer",className:M.a.footerLogoLink},n.a.createElement(B,{alt:c.alt,url:s})):n.a.createElement(B,{alt:c.alt,url:s}),n.a.createElement("br",null),n.a.createElement("a",{href:"https://www.digitalocean.com/",target:"_blank",rel:"noopener noreferrer",className:M.a.footerLogoLink},n.a.createElement("img",{alt:"DigitalOcean",src:"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg",width:"201px"}))),i,n.a.createElement("br",null),n.a.createElement("small",null,n.a.createElement("a",{href:"https://github.com/panjf2000/gnet/security/policy"},"Security Policy"),"\xa0\u2022\xa0",n.a.createElement("a",{href:"https://github.com/panjf2000/gnet/blob/master/PRIVACY.md"},"Privacy Policy"))))):null},H=a(276),I=a(277),z=a(3);a(135);t.a=function(e){var t=Object(d.a)().siteConfig,a=void 0===t?{}:t,r=a.favicon,u=(a.tagline,a.title),l=a.themeConfig.image,c=a.url,s=e.children,m=e.title,D=e.noFooter,f=e.description,p=e.image,h=e.keywords,g=(e.permalink,e.version),y=m?m+" | "+u:u,b=p||l,v=c+Object(w.a)(b),E=Object(w.a)(r),F=Object(z.h)(),C=F?"https://gnet.host"+(F.pathname.endsWith("/")?F.pathname:F.pathname+"/"):null;return n.a.createElement(I.a,null,n.a.createElement(H.a,null,n.a.createElement(o.a,null,n.a.createElement("html",{lang:"en"}),n.a.createElement("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),y&&n.a.createElement("title",null,y),y&&n.a.createElement("meta",{property:"og:title",content:y}),r&&n.a.createElement("link",{rel:"shortcut icon",href:E}),f&&n.a.createElement("meta",{name:"description",content:f}),f&&n.a.createElement("meta",{property:"og:description",content:f}),g&&n.a.createElement("meta",{name:"docsearch:version",content:g}),h&&h.length&&n.a.createElement("meta",{name:"keywords",content:h.join(",")}),b&&n.a.createElement("meta",{property:"og:image",content:v}),b&&n.a.createElement("meta",{property:"twitter:image",content:v}),b&&n.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+y}),b&&n.a.createElement("meta",{name:"twitter:site",content:"@vectordotdev"}),b&&n.a.createElement("meta",{name:"twitter:creator",content:"@vectordotdev"}),C&&n.a.createElement("meta",{property:"og:url",content:C}),n.a.createElement("meta",{name:"twitter:card",content:"summary"}),C&&n.a.createElement("link",{rel:"canonical",href:C})),n.a.createElement(i.a,null),n.a.createElement(_,null),n.a.createElement("div",{className:"main-wrapper"},s),!D&&n.a.createElement(L,null)))}},260:function(e,t,a){"use strict";var r=a(12),n=a(287)(5),i=!0;"find"in[]&&Array(1).find((function(){i=!1})),r(r.P+r.F*i,"Array",{find:function(e){return n(this,e,arguments.length>1?arguments[1]:void 0)}}),a(80)("find")},261:function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));a(79),a(284),a(260),a(78);var r=a(265),n=a.n(r);function i(e,t){var a=new n.a;return e.map((function(e){var r=e;return"string"==typeof e&&(r={label:e,permalink:"/"+t+"/tags/"+a.slug(e)}),function(e,t){if(e.enriched)return e;var a=e.label.split(": ",2),r=a[0],n=a[1],i="primary";switch(r){case"domain":i="blue";break;case"type":i="pink";break;default:i="primary"}return{category:r,count:e.count,enriched:!0,label:e.label,permalink:e.permalink,style:i,value:n}}(r)}))}},263:function(e,t,a){var r=a(24).f,n=Function.prototype,i=/^\s*function ([^ (]*)/;"name"in n||a(10)&&r(n,"name",{configurable:!0,get:function(){try{return(""+this).match(i)[1]}catch(e){return""}}})},264:function(e,t,a){"use strict";var r=a(9),n=a(0),i=a.n(n),o=a(252),u=a.n(o),l=a(253),c=(a(139),a(140)),s=a.n(c);t.a=function(e){return function(t){var a,n=t.id,o=Object(r.a)(t,["id"]),c=Object(l.a)().siteConfig,m=(c=void 0===c?{}:c).themeConfig,D=(m=void 0===m?{}:m).navbar,f=(D=void 0===D?{}:D).hideOnScroll,d=void 0!==f&&f;return n?i.a.createElement(e,o,i.a.createElement("a",{"aria-hidden":"true",tabIndex:"-1",className:u()("anchor",(a={},a[s.a.enhancedAnchor]=!d,a)),id:n}),i.a.createElement("a",{"aria-hidden":"true",tabIndex:"-1",className:"hash-link",href:"#"+n,title:"Direct link to heading"},"#"),o.children):i.a.createElement(e,o)}}},265:function(e,t,a){var r=a(274);e.exports=u;var n=Object.hasOwnProperty,i=/\s/g,o=/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~\u2019]/g;function u(){if(!(this instanceof u))return new u;this.reset()}function l(e,t){return"string"!=typeof e?"":(t||(e=e.toLowerCase()),e.trim().replace(o,"").replace(r(),"").replace(i,"-"))}u.prototype.slug=function(e,t){for(var a=l(e,!0===t),r=a;n.call(this.occurrences,a);)this.occurrences[r]++,a=r+"-"+this.occurrences[r];return this.occurrences[a]=0,a},u.prototype.reset=function(){this.occurrences=Object.create(null)},u.slug=l},273:function(e,t,a){"use strict";var r=a(0),n=a.n(r),i=a(254),o=a(252),u=a.n(o);t.a=function(e){var t=e.count,a=e.label,r=e.permalink,o=e.style,l=e.value,c=e.valueOnly;return n.a.createElement(i.a,{to:r+"/",className:u()("badge","badge--rounded","badge--"+o)},c?l:a,t&&n.a.createElement(n.a.Fragment,null," (",t,")"))}},274:function(e,t){e.exports=function(){return/[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267B\u267F\u2692-\u2694\u2696\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD79\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED0\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3]|\uD83E[\uDD10-\uDD18\uDD80-\uDD84\uDDC0]|\uD83C\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uD83C\uDDFE\uD83C[\uDDEA\uDDF9]|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDFC\uD83C[\uDDEB\uDDF8]|\uD83C\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uD83C\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF8\uDDFE\uDDFF]|\uD83C\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uD83C\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uD83C\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uD83C\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uD83C\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uD83C\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uD83C\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uD83C\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uD83C\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uD83C\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uD83C\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uD83C\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uD83C\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uD83C\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uD83C\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uD83C\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|[#\*0-9]\u20E3/g}},278:function(e,t,a){"use strict";a(263),a(260);var r=a(0),n=a.n(r),i=a(252),o=a.n(i),u=a(253);a(137);t.a=function(e){var t,a=e.bio,r=e.className,i=e.github,l=e.nameSuffix,c=e.rel,s=e.size,m=e.subTitle,D=e.vertical,f=Object(u.a)().siteConfig,d=(void 0===f?{}:f).customFields.metadata.team,p=d.find((function(e){return e.github==i}))||d.find((function(e){return"ben"==e.id}));return n.a.createElement("div",{className:o()("avatar",r,(t={},t["avatar--"+s]=s,t["avatar--vertical"]=D,t))},n.a.createElement("img",{className:o()("avatar__photo","avatar__photo--"+s),src:p.avatar}),n.a.createElement("div",{className:"avatar__intro"},n.a.createElement("div",{className:"avatar__name"},n.a.createElement("a",{href:p.github,target:"_blank",rel:c},p.name),l),m&&n.a.createElement("small",{className:"avatar__subtitle"},m),!m&&a&&n.a.createElement("small",{className:"avatar__subtitle",dangerouslySetInnerHTML:{__html:p.bio}})))}},279:function(e,t,a){"use strict";var r=a(1),n=a(0),i=a.n(n),o=(a(254),a(273)),u=a(252),l=a.n(u),c=a(261),s=a(138),m=a.n(s);t.a=function(e){var t,a=e.block,n=e.colorProfile,u=e.tags,s=e.valuesOnly,D=Object(c.a)(u,n);return i.a.createElement("span",{className:l()(m.a.tags,(t={},t[m.a.tagsBlock]=a,t))},D.map((function(e,t){return i.a.createElement(o.a,Object(r.a)({key:t,valueOnly:s},e))})))}},280:function(e,t,a){var r;!function(n){"use strict";var i,o,u,l=(i=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZWN]|"[^"]*"|'[^']*'/g,o=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,u=/[^-+\dA-Z]/g,function(e,t,a,r){if(1!==arguments.length||"string"!==D(e)||/\d/.test(e)||(t=e,e=void 0),(e=e||new Date)instanceof Date||(e=new Date(e)),isNaN(e))throw TypeError("Invalid date");var n=(t=String(l.masks[t]||t||l.masks.default)).slice(0,4);"UTC:"!==n&&"GMT:"!==n||(t=t.slice(4),a=!0,"GMT:"===n&&(r=!0));var f=a?"getUTC":"get",d=e[f+"Date"](),p=e[f+"Day"](),h=e[f+"Month"](),g=e[f+"FullYear"](),y=e[f+"Hours"](),b=e[f+"Minutes"](),v=e[f+"Seconds"](),E=e[f+"Milliseconds"](),F=a?0:e.getTimezoneOffset(),w=s(e),C=m(e),N={d:d,dd:c(d),ddd:l.i18n.dayNames[p],dddd:l.i18n.dayNames[p+7],m:h+1,mm:c(h+1),mmm:l.i18n.monthNames[h],mmmm:l.i18n.monthNames[h+12],yy:String(g).slice(2),yyyy:g,h:y%12||12,hh:c(y%12||12),H:y,HH:c(y),M:b,MM:c(b),s:v,ss:c(v),l:c(E,3),L:c(Math.round(E/10)),t:y<12?l.i18n.timeNames[0]:l.i18n.timeNames[1],tt:y<12?l.i18n.timeNames[2]:l.i18n.timeNames[3],T:y<12?l.i18n.timeNames[4]:l.i18n.timeNames[5],TT:y<12?l.i18n.timeNames[6]:l.i18n.timeNames[7],Z:r?"GMT":a?"UTC":(String(e).match(o)||[""]).pop().replace(u,""),o:(F>0?"-":"+")+c(100*Math.floor(Math.abs(F)/60)+Math.abs(F)%60,4),S:["th","st","nd","rd"][d%10>3?0:(d%100-d%10!=10)*d%10],W:w,N:C};return t.replace(i,(function(e){return e in N?N[e]:e.slice(1,e.length-1)}))});function c(e,t){for(e=String(e),t=t||2;e.length1?arguments[1]:void 0)}}),a(80)("includes")},282:function(e,t,a){"use strict";var r=a(12),n=a(307);r(r.P+r.F*a(308)("includes"),"String",{includes:function(e){return!!~n(this,e,"includes").indexOf(e,arguments.length>1?arguments[1]:void 0)}})},287:function(e,t,a){var r=a(28),n=a(54),i=a(25),o=a(27),u=a(288);e.exports=function(e,t){var a=1==e,l=2==e,c=3==e,s=4==e,m=6==e,D=5==e||m,f=t||u;return function(t,u,d){for(var p,h,g=i(t),y=n(g),b=r(u,d,3),v=o(y.length),E=0,F=a?f(t,v):l?f(t,0):void 0;v>E;E++)if((D||E in y)&&(h=b(p=y[E],E,g),e))if(a)F[E]=h;else if(h)switch(e){case 3:return!0;case 5:return p;case 6:return E;case 2:F.push(p)}else if(s)return!1;return m?-1:c||s?s:F}}},288:function(e,t,a){var r=a(289);e.exports=function(e,t){return new(r(e))(t)}},289:function(e,t,a){var r=a(14),n=a(309),i=a(2)("species");e.exports=function(e){var t;return n(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!n(t.prototype)||(t=void 0),r(t)&&null===(t=t[i])&&(t=void 0)),void 0===t?Array:t}},311:function(e,t,a){"use strict";var r=a(12),n=a(30),i=a(25),o=a(13),u=[].sort,l=[1,2,3];r(r.P+r.F*(o((function(){l.sort(void 0)}))||!o((function(){l.sort(null)}))||!a(312)(u)),"Array",{sort:function(e){return void 0===e?u.call(i(this)):u.call(i(this),n(e))}})},312:function(e,t,a){"use strict";var r=a(13);e.exports=function(e,t){return!!e&&r((function(){t?e.call(null,(function(){}),1):e.call(null)}))}},313:function(e,t,a){e.exports=function(){var e=[],t=[],a={},r={},n={};function i(e){return"string"==typeof e?new RegExp("^"+e+"$","i"):e}function o(e,t){return e===t?t:e===e.toLowerCase()?t.toLowerCase():e===e.toUpperCase()?t.toUpperCase():e[0]===e[0].toUpperCase()?t.charAt(0).toUpperCase()+t.substr(1).toLowerCase():t.toLowerCase()}function u(e,t){return e.replace(/\$(\d{1,2})/g,(function(e,a){return t[a]||""}))}function l(e,t){return e.replace(t[0],(function(a,r){var n=u(t[1],arguments);return o(""===a?e[r-1]:a,n)}))}function c(e,t,r){if(!e.length||a.hasOwnProperty(e))return t;for(var n=r.length;n--;){var i=r[n];if(i[0].test(t))return l(t,i)}return t}function s(e,t,a){return function(r){var n=r.toLowerCase();return t.hasOwnProperty(n)?o(r,n):e.hasOwnProperty(n)?o(r,e[n]):c(n,r,a)}}function m(e,t,a,r){return function(r){var n=r.toLowerCase();return!!t.hasOwnProperty(n)||!e.hasOwnProperty(n)&&c(n,n,a)===n}}function D(e,t,a){return(a?t+" ":"")+(1===t?D.singular(e):D.plural(e))}return D.plural=s(n,r,e),D.isPlural=m(n,r,e),D.singular=s(r,n,t),D.isSingular=m(r,n,t),D.addPluralRule=function(t,a){e.push([i(t),a])},D.addSingularRule=function(e,a){t.push([i(e),a])},D.addUncountableRule=function(e){"string"!=typeof e?(D.addPluralRule(e,"$0"),D.addSingularRule(e,"$0")):a[e.toLowerCase()]=!0},D.addIrregularRule=function(e,t){t=t.toLowerCase(),e=e.toLowerCase(),n[e]=t,r[t]=e},[["I","we"],["me","us"],["he","they"],["she","they"],["them","them"],["myself","ourselves"],["yourself","yourselves"],["itself","themselves"],["herself","themselves"],["himself","themselves"],["themself","themselves"],["is","are"],["was","were"],["has","have"],["this","these"],["that","those"],["echo","echoes"],["dingo","dingoes"],["volcano","volcanoes"],["tornado","tornadoes"],["torpedo","torpedoes"],["genus","genera"],["viscus","viscera"],["stigma","stigmata"],["stoma","stomata"],["dogma","dogmata"],["lemma","lemmata"],["schema","schemata"],["anathema","anathemata"],["ox","oxen"],["axe","axes"],["die","dice"],["yes","yeses"],["foot","feet"],["eave","eaves"],["goose","geese"],["tooth","teeth"],["quiz","quizzes"],["human","humans"],["proof","proofs"],["carve","carves"],["valve","valves"],["looey","looies"],["thief","thieves"],["groove","grooves"],["pickaxe","pickaxes"],["passerby","passersby"]].forEach((function(e){return D.addIrregularRule(e[0],e[1])})),[[/s?$/i,"s"],[/[^\u0000-\u007F]$/i,"$0"],[/([^aeiou]ese)$/i,"$1"],[/(ax|test)is$/i,"$1es"],[/(alias|[^aou]us|t[lm]as|gas|ris)$/i,"$1es"],[/(e[mn]u)s?$/i,"$1s"],[/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i,"$1"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1i"],[/(alumn|alg|vertebr)(?:a|ae)$/i,"$1ae"],[/(seraph|cherub)(?:im)?$/i,"$1im"],[/(her|at|gr)o$/i,"$1oes"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i,"$1a"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i,"$1a"],[/sis$/i,"ses"],[/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i,"$1$2ves"],[/([^aeiouy]|qu)y$/i,"$1ies"],[/([^ch][ieo][ln])ey$/i,"$1ies"],[/(x|ch|ss|sh|zz)$/i,"$1es"],[/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i,"$1ices"],[/\b((?:tit)?m|l)(?:ice|ouse)$/i,"$1ice"],[/(pe)(?:rson|ople)$/i,"$1ople"],[/(child)(?:ren)?$/i,"$1ren"],[/eaux$/i,"$0"],[/m[ae]n$/i,"men"],["thou","you"]].forEach((function(e){return D.addPluralRule(e[0],e[1])})),[[/s$/i,""],[/(ss)$/i,"$1"],[/(wi|kni|(?:after|half|high|low|mid|non|night|[^\w]|^)li)ves$/i,"$1fe"],[/(ar|(?:wo|[ae])l|[eo][ao])ves$/i,"$1f"],[/ies$/i,"y"],[/\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i,"$1ie"],[/\b(mon|smil)ies$/i,"$1ey"],[/\b((?:tit)?m|l)ice$/i,"$1ouse"],[/(seraph|cherub)im$/i,"$1"],[/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i,"$1"],[/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i,"$1sis"],[/(movie|twelve|abuse|e[mn]u)s$/i,"$1"],[/(test)(?:is|es)$/i,"$1is"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1us"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i,"$1um"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i,"$1on"],[/(alumn|alg|vertebr)ae$/i,"$1a"],[/(cod|mur|sil|vert|ind)ices$/i,"$1ex"],[/(matr|append)ices$/i,"$1ix"],[/(pe)(rson|ople)$/i,"$1rson"],[/(child)ren$/i,"$1"],[/(eau)x?$/i,"$1"],[/men$/i,"man"]].forEach((function(e){return D.addSingularRule(e[0],e[1])})),["adulthood","advice","agenda","aid","aircraft","alcohol","ammo","analytics","anime","athletics","audio","bison","blood","bream","buffalo","butter","carp","cash","chassis","chess","clothing","cod","commerce","cooperation","corps","debris","diabetes","digestion","elk","energy","equipment","excretion","expertise","firmware","flounder","fun","gallows","garbage","graffiti","hardware","headquarters","health","herpes","highjinks","homework","housework","information","jeans","justice","kudos","labour","literature","machinery","mackerel","mail","media","mews","moose","music","mud","manga","news","only","personnel","pike","plankton","pliers","police","pollution","premises","rain","research","rice","salmon","scissors","series","sewage","shambles","shrimp","software","species","staff","swine","tennis","traffic","transportation","trout","tuna","wealth","welfare","whiting","wildebeest","wildlife","you",/pok[e\xe9]mon$/i,/[^aeiou]ese$/i,/deer$/i,/fish$/i,/measles$/i,/o[iu]s$/i,/pox$/i,/sheep$/i].forEach(D.addUncountableRule),D}()},319:function(e,t,a){"use strict";var r=a(0),n=a.n(r),i=["second","minute","hour","day","week","month","year"],o=["\u79d2","\u5206\u949f","\u5c0f\u65f6","\u5929","\u5468","\u4e2a\u6708","\u5e74"],u={},l=function(e,t){u[e]=t},c=function(e){return u[e]||u.en_US},s=[60,60,24,7,365/7/12,12];function m(e){return e instanceof Date?e:!isNaN(e)||/^\d+$/.test(e)?new Date(parseInt(e)):(e=(e||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/(\d)T(\d)/,"$1 $2").replace(/Z/," UTC").replace(/([+-]\d\d):?(\d\d)/," $1$2"),new Date(e))}function D(e,t){for(var a=e<0?1:0,r=e=Math.abs(e),n=0;e>=s[n]&&n(0===(n*=2)?9:1)&&(n+=1),t(e,n,r)[a].replace("%s",e.toString())}function f(e,t){return(+(t?m(t):new Date)-+m(e))/1e3}function d(e){return parseInt(e.getAttribute("timeago-id"))}var p={},h=function(e){clearTimeout(e),delete p[e]};function g(e,t,a,r){h(d(e));var n=r.relativeDate,i=r.minInterval,o=f(t,n);e.innerText=D(o,a);var u=setTimeout((function(){g(e,t,a,r)}),Math.min(1e3*Math.max(function(e){for(var t=1,a=0,r=Math.abs(e);e>=s[a]&&a1&&(a+="s"),[e+" "+a+" ago","in "+e+" "+a]})),l("zh_CN",(function(e,t){if(0===t)return["\u521a\u521a","\u7247\u523b\u540e"];var a=o[~~(t/2)];return[e+" "+a+"\u524d",e+" "+a+"\u540e"]}));var b,v=(b=function(e,t){return(b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])})(e,t)},function(e,t){function a(){this.constructor=e}b(e,t),e.prototype=null===t?Object.create(t):(a.prototype=t.prototype,new a)}),E=function(){return(E=Object.assign||function(e){for(var t,a=1,r=arguments.length;a1;){var t=e.pop(),a=t.obj[t.prop];if(n(a)){for(var r=[],i=0;i=48&&u<=57||u>=65&&u<=90||u>=97&&u<=122?n+=r.charAt(o):u<128?n+=i[u]:u<2048?n+=i[192|u>>6]+i[128|63&u]:u<55296||u>=57344?n+=i[224|u>>12]+i[128|u>>6&63]+i[128|63&u]:(o+=1,u=65536+((1023&u)<<10|1023&r.charCodeAt(o)),n+=i[240|u>>18]+i[128|u>>12&63]+i[128|u>>6&63]+i[128|63&u])}return n},isBuffer:function(e){return!(!e||"object"!=typeof e)&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},maybeMap:function(e,t){if(n(e)){for(var a=[],r=0;r0&&i.a.createElement("div",null,i.a.createElement(c.a,{colorProfile:"blog",tags:F}))))},g=a(265),y=a.n(g),b=a(313),v=a.n(b),E=/\b(?:an?d?|a[st]|because|but|by|en|for|i[fn]|neither|nor|o[fnr]|only|over|per|so|some|tha[tn]|the|to|up|upon|vs?\.?|versus|via|when|with|without|yet)\b/i,F=/[^\s:\u2013\u2014-]+|./g,w=/\s/,C=/.(?=[A-Z]|\..)/,N=/[A-Za-z0-9\u00C0-\u00FF]/;function k(e){for(var t,a="";null!==(t=F.exec(e));){var r=t[0],n=t.index;C.test(r)||E.test(r)&&0!==n&&n+r.length!==e.length||":"===e.charAt(n+r.length)&&!w.test(e.charAt(n+r.length+1))?a+=r:a+=r.replace(N,(function(e){return e.toUpperCase()}))}return a}Object(o.a)("h2");var O=Object(o.a)("h3");function j(e){var t=e.groupBy,a=e.group,r=new y.a;switch(t){case"release":return i.a.createElement("li",{className:"header sticky"},i.a.createElement("h3",null,i.a.createElement(l.a,{to:"/releases/"+a+"/"},k(a))));case"type":var n=null,o=v()(k(a)),u=null;switch(a){case"breaking change":n="alert-triangle",u="danger";break;case"enhancement":n="arrow-up-circle",u="pink";break;case"new feature":n="gift",u="primary";break;case"performance":n="zap",o="Performance Improvements",u="warning"}return i.a.createElement("li",{className:"header sticky"},i.a.createElement(O,{id:r.slug(a+"-highlights"),className:"text--"+u},n&&i.a.createElement("i",{className:"feather icon-"+n})," ",o));default:throw Error("unknown group: "+t)}}t.a=function(e){var t=e.author,a=(e.clean,e.colorize),n=e.groupBy,o=e.items,u=e.tags,l=e.timeline,c=n||"release",s=function(e){return e.map((function(e){if(e.content){var t=e.content,a=t.frontMatter,r=t.metadata,n=a.author_github,i=a.pr_numbers,o=a.release,u=a.title,l=r.date,c=r.description,s=r.permalink,m=r.tags,D={};return D.authorGithub=n,D.dateString=l,D.description=c,D.permalink=s,D.prNumbers=i,D.release=o,D.tags=m,D.title=u,D}return e}))}(o),m=_.groupBy(s,c),f=!1!==l?Object.keys(m):Object.keys(m).sort();return i.a.createElement("ul",{className:D()("connected-list","connected-list--clean")},f.map((function(e,n){var o=m[e];return i.a.createElement(i.a.Fragment,null,i.a.createElement(j,{groupBy:c,group:e}),i.a.createElement("ul",{className:D()("connected-list",{"connected-list--timeline":!1!==l})},o.map((function(e,n){return i.a.createElement("li",{key:n},i.a.createElement(h,Object(r.a)({},e,{colorize:a,hideAuthor:0==t,hideTags:0==u})))}))))})))}},339:function(e,t,a){"use strict";var r=String.prototype.replace,n=/%20/g,i=a(329),o={RFC1738:"RFC1738",RFC3986:"RFC3986"};e.exports=i.assign({default:o.RFC3986,formatters:{RFC1738:function(e){return r.call(e,n,"+")},RFC3986:function(e){return String(e)}}},o)},369:function(e,t,a){"use strict";var r=a(370),n=a(371),i=a(339);e.exports={formats:i,parse:n,stringify:r}},370:function(e,t,a){"use strict";var r=a(329),n=a(339),i=Object.prototype.hasOwnProperty,o={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},u=Array.isArray,l=Array.prototype.push,c=function(e,t){l.apply(e,u(t)?t:[t])},s=Date.prototype.toISOString,m=n.default,D={addQueryPrefix:!1,allowDots:!1,charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encoder:r.encode,encodeValuesOnly:!1,format:m,formatter:n.formatters[m],indices:!1,serializeDate:function(e){return s.call(e)},skipNulls:!1,strictNullHandling:!1},f=function e(t,a,n,i,o,l,s,m,f,d,p,h,g){var y,b=t;if("function"==typeof s?b=s(a,b):b instanceof Date?b=d(b):"comma"===n&&u(b)&&(b=r.maybeMap(b,(function(e){return e instanceof Date?d(e):e})).join(",")),null===b){if(i)return l&&!h?l(a,D.encoder,g,"key"):a;b=""}if("string"==typeof(y=b)||"number"==typeof y||"boolean"==typeof y||"symbol"==typeof y||"bigint"==typeof y||r.isBuffer(b))return l?[p(h?a:l(a,D.encoder,g,"key"))+"="+p(l(b,D.encoder,g,"value"))]:[p(a)+"="+p(String(b))];var v,E=[];if(void 0===b)return E;if(u(s))v=s;else{var F=Object.keys(b);v=m?F.sort(m):F}for(var w=0;w0?y+g:""}},371:function(e,t,a){"use strict";var r=a(329),n=Object.prototype.hasOwnProperty,i=Array.isArray,o={allowDots:!1,allowPrototypes:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:r.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},u=function(e){return e.replace(/&#(\d+);/g,(function(e,t){return String.fromCharCode(parseInt(t,10))}))},l=function(e,t){return e&&"string"==typeof e&&t.comma&&e.indexOf(",")>-1?e.split(","):e},c=function(e,t,a,r){if(e){var i=a.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,o=/(\[[^[\]]*])/g,u=a.depth>0&&/(\[[^[\]]*])/.exec(i),c=u?i.slice(0,u.index):i,s=[];if(c){if(!a.plainObjects&&n.call(Object.prototype,c)&&!a.allowPrototypes)return;s.push(c)}for(var m=0;a.depth>0&&null!==(u=o.exec(i))&&m=0;--i){var o,u=e[i];if("[]"===u&&a.parseArrays)o=[].concat(n);else{o=a.plainObjects?Object.create(null):{};var c="["===u.charAt(0)&&"]"===u.charAt(u.length-1)?u.slice(1,-1):u,s=parseInt(c,10);a.parseArrays||""!==c?!isNaN(s)&&u!==c&&String(s)===c&&s>=0&&a.parseArrays&&s<=a.arrayLimit?(o=[])[s]=n:o[c]=n:o={0:n}}n=o}return n}(s,t,a,r)}};e.exports=function(e,t){var a=function(e){if(!e)return o;if(null!==e.decoder&&void 0!==e.decoder&&"function"!=typeof e.decoder)throw new TypeError("Decoder has to be a function.");if(void 0!==e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var t=void 0===e.charset?o.charset:e.charset;return{allowDots:void 0===e.allowDots?o.allowDots:!!e.allowDots,allowPrototypes:"boolean"==typeof e.allowPrototypes?e.allowPrototypes:o.allowPrototypes,arrayLimit:"number"==typeof e.arrayLimit?e.arrayLimit:o.arrayLimit,charset:t,charsetSentinel:"boolean"==typeof e.charsetSentinel?e.charsetSentinel:o.charsetSentinel,comma:"boolean"==typeof e.comma?e.comma:o.comma,decoder:"function"==typeof e.decoder?e.decoder:o.decoder,delimiter:"string"==typeof e.delimiter||r.isRegExp(e.delimiter)?e.delimiter:o.delimiter,depth:"number"==typeof e.depth||!1===e.depth?+e.depth:o.depth,ignoreQueryPrefix:!0===e.ignoreQueryPrefix,interpretNumericEntities:"boolean"==typeof e.interpretNumericEntities?e.interpretNumericEntities:o.interpretNumericEntities,parameterLimit:"number"==typeof e.parameterLimit?e.parameterLimit:o.parameterLimit,parseArrays:!1!==e.parseArrays,plainObjects:"boolean"==typeof e.plainObjects?e.plainObjects:o.plainObjects,strictNullHandling:"boolean"==typeof e.strictNullHandling?e.strictNullHandling:o.strictNullHandling}}(t);if(""===e||null==e)return a.plainObjects?Object.create(null):{};for(var s="string"==typeof e?function(e,t){var a,c={},s=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,m=t.parameterLimit===1/0?void 0:t.parameterLimit,D=s.split(t.delimiter,m),f=-1,d=t.charset;if(t.charsetSentinel)for(a=0;a-1&&(h=i(h)?[h]:h),n.call(c,p)?c[p]=r.combine(c[p],h):c[p]=h}return c}(e,a):e,m=a.plainObjects?Object.create(null):{},D=Object.keys(s),f=0;f - + @@ -29,12 +29,12 @@
-

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

+

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- + diff --git a/57423a8a.b4c0bb42.js b/57423a8a.8b26f6a6.js similarity index 99% rename from 57423a8a.b4c0bb42.js rename to 57423a8a.8b26f6a6.js index f8ae2f777..937240ba9 100644 --- a/57423a8a.b4c0bb42.js +++ b/57423a8a.8b26f6a6.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[36],{179:function(e,t,a){"use strict";a.r(t);a(263);var n=a(0),r=a.n(n),u=a(332),i=a(259),o=a(254);t.default=function(e){var t=e.metadata,a=e.items,n=t.allTagsPath,l=t.name,s=t.count;return r.a.createElement(i.a,{title:'Highlights tagged "'+l+'"',description:'Highlight | Tagged "'+l+'"'},r.a.createElement("header",{className:"hero hero--clean"},r.a.createElement("div",{className:"container"},r.a.createElement("h1",null,s," ",function(e,t){return e>1?t+"s":t}(s,"highlight"),' tagged with "',l,'"'),r.a.createElement("div",{className:"hero--subtitle"},r.a.createElement(o.a,{href:n},"View All Tags")))),r.a.createElement("main",{className:"container container--xs"},r.a.createElement(u.a,{items:a})))}},258:function(e,t,a){"use strict";a.d(t,"a",(function(){return r})),a.d(t,"b",(function(){return u}));var n=a(253);function r(){var e=Object(n.a)().siteConfig,t=(void 0===e?{}:e).customFields.metadata.latest_highlight,a=Date.parse(t.date),r=new Date,u=Math.abs(r-a),i=Math.ceil(u/864e5),o=null;return"undefined"!=typeof window&&(o=new Date(parseInt(window.localStorage.getItem("highlightsViewedAt")||"0"))),i<30&&(!o||o0&&r.a.createElement("div",{className:"row footer__links"},r.a.createElement("div",{className:"col col--5 footer__col"},r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(m.a,{className:"navbar__logo",src:"/img/logo-light.svg",alt:"gnet",width:"150",height:"auto"})),r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(M,{description:!1,width:"150px"})),r.a.createElement("div",null,r.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank"},r.a.createElement("i",{className:"feather icon-twitter",alt:"gnet's Twitter"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank"},r.a.createElement("i",{className:"feather icon-github",alt:"gnet's Github Repo"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://strikefreedom.top/rss.xml",target:"_blank"},r.a.createElement("i",{className:"feather icon-rss",alt:"gnet's RSS feed"})))),o.map((function(e,t){return r.a.createElement("div",{key:t,className:"col footer__col"},null!=e.title?r.a.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?r.a.createElement("ul",{className:"footer__items"},e.items.map((function(e,t){return e.html?r.a.createElement("li",{key:t,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):r.a.createElement("li",{key:e.href||e.to,className:"footer__item"},r.a.createElement(S,e))}))):null)}))),(s||u)&&r.a.createElement("div",{className:"text--center"},s&&s.src&&r.a.createElement("div",{className:"margin-bottom--sm"},s.href?r.a.createElement("a",{href:s.href,target:"_blank",rel:"noopener noreferrer",className:B.a.footerLogoLink},r.a.createElement(P,{alt:s.alt,url:c})):r.a.createElement(P,{alt:s.alt,url:c}),r.a.createElement("br",null),r.a.createElement("a",{href:"https://www.digitalocean.com/",target:"_blank",rel:"noopener noreferrer",className:B.a.footerLogoLink},r.a.createElement("img",{alt:"DigitalOcean",src:"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg",width:"201px"}))),u,r.a.createElement("br",null),r.a.createElement("small",null,r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/security/policy"},"Security Policy"),"\xa0\u2022\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/blob/master/PRIVACY.md"},"Privacy Policy"))))):null},H=a(276),I=a(277),z=a(3);a(135);t.a=function(e){var t=Object(h.a)().siteConfig,a=void 0===t?{}:t,n=a.favicon,o=(a.tagline,a.title),l=a.themeConfig.image,s=a.url,c=e.children,m=e.title,D=e.noFooter,d=e.description,f=e.image,g=e.keywords,p=(e.permalink,e.version),E=m?m+" | "+o:o,b=f||l,v=s+Object(C.a)(b),y=Object(C.a)(n),F=Object(z.h)(),w=F?"https://gnet.host"+(F.pathname.endsWith("/")?F.pathname:F.pathname+"/"):null;return r.a.createElement(I.a,null,r.a.createElement(H.a,null,r.a.createElement(i.a,null,r.a.createElement("html",{lang:"en"}),r.a.createElement("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),E&&r.a.createElement("title",null,E),E&&r.a.createElement("meta",{property:"og:title",content:E}),n&&r.a.createElement("link",{rel:"shortcut icon",href:y}),d&&r.a.createElement("meta",{name:"description",content:d}),d&&r.a.createElement("meta",{property:"og:description",content:d}),p&&r.a.createElement("meta",{name:"docsearch:version",content:p}),g&&g.length&&r.a.createElement("meta",{name:"keywords",content:g.join(",")}),b&&r.a.createElement("meta",{property:"og:image",content:v}),b&&r.a.createElement("meta",{property:"twitter:image",content:v}),b&&r.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+E}),b&&r.a.createElement("meta",{name:"twitter:site",content:"@vectordotdev"}),b&&r.a.createElement("meta",{name:"twitter:creator",content:"@vectordotdev"}),w&&r.a.createElement("meta",{property:"og:url",content:w}),r.a.createElement("meta",{name:"twitter:card",content:"summary"}),w&&r.a.createElement("link",{rel:"canonical",href:w})),r.a.createElement(u.a,null),r.a.createElement(T,null),r.a.createElement("div",{className:"main-wrapper"},c),!D&&r.a.createElement(L,null)))}},260:function(e,t,a){"use strict";var n=a(12),r=a(287)(5),u=!0;"find"in[]&&Array(1).find((function(){u=!1})),n(n.P+n.F*u,"Array",{find:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}}),a(80)("find")},261:function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));a(79),a(284),a(260),a(78);var n=a(265),r=a.n(n);function u(e,t){var a=new r.a;return e.map((function(e){var n=e;return"string"==typeof e&&(n={label:e,permalink:"/"+t+"/tags/"+a.slug(e)}),function(e,t){if(e.enriched)return e;var a=e.label.split(": ",2),n=a[0],r=a[1],u="primary";switch(n){case"domain":u="blue";break;case"type":u="pink";break;default:u="primary"}return{category:n,count:e.count,enriched:!0,label:e.label,permalink:e.permalink,style:u,value:r}}(n)}))}},263:function(e,t,a){var n=a(24).f,r=Function.prototype,u=/^\s*function ([^ (]*)/;"name"in r||a(10)&&n(r,"name",{configurable:!0,get:function(){try{return(""+this).match(u)[1]}catch(e){return""}}})},264:function(e,t,a){"use strict";var n=a(9),r=a(0),u=a.n(r),i=a(252),o=a.n(i),l=a(253),s=(a(139),a(140)),c=a.n(s);t.a=function(e){return function(t){var a,r=t.id,i=Object(n.a)(t,["id"]),s=Object(l.a)().siteConfig,m=(s=void 0===s?{}:s).themeConfig,D=(m=void 0===m?{}:m).navbar,d=(D=void 0===D?{}:D).hideOnScroll,h=void 0!==d&&d;return r?u.a.createElement(e,i,u.a.createElement("a",{"aria-hidden":"true",tabIndex:"-1",className:o()("anchor",(a={},a[c.a.enhancedAnchor]=!h,a)),id:r}),u.a.createElement("a",{"aria-hidden":"true",tabIndex:"-1",className:"hash-link",href:"#"+r,title:"Direct link to heading"},"#"),i.children):u.a.createElement(e,i)}}},265:function(e,t,a){var n=a(274);e.exports=o;var r=Object.hasOwnProperty,u=/\s/g,i=/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~\u2019]/g;function o(){if(!(this instanceof o))return new o;this.reset()}function l(e,t){return"string"!=typeof e?"":(t||(e=e.toLowerCase()),e.trim().replace(i,"").replace(n(),"").replace(u,"-"))}o.prototype.slug=function(e,t){for(var a=l(e,!0===t),n=a;r.call(this.occurrences,a);)this.occurrences[n]++,a=n+"-"+this.occurrences[n];return this.occurrences[a]=0,a},o.prototype.reset=function(){this.occurrences=Object.create(null)},o.slug=l},273:function(e,t,a){"use strict";var n=a(0),r=a.n(n),u=a(254),i=a(252),o=a.n(i);t.a=function(e){var t=e.count,a=e.label,n=e.permalink,i=e.style,l=e.value,s=e.valueOnly;return r.a.createElement(u.a,{to:n+"/",className:o()("badge","badge--rounded","badge--"+i)},s?l:a,t&&r.a.createElement(r.a.Fragment,null," (",t,")"))}},274:function(e,t){e.exports=function(){return/[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267B\u267F\u2692-\u2694\u2696\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD79\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED0\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3]|\uD83E[\uDD10-\uDD18\uDD80-\uDD84\uDDC0]|\uD83C\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uD83C\uDDFE\uD83C[\uDDEA\uDDF9]|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDFC\uD83C[\uDDEB\uDDF8]|\uD83C\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uD83C\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF8\uDDFE\uDDFF]|\uD83C\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uD83C\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uD83C\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uD83C\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uD83C\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uD83C\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uD83C\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uD83C\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uD83C\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uD83C\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uD83C\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uD83C\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uD83C\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uD83C\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uD83C\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uD83C\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|[#\*0-9]\u20E3/g}},278:function(e,t,a){"use strict";a(263),a(260);var n=a(0),r=a.n(n),u=a(252),i=a.n(u),o=a(253);a(137);t.a=function(e){var t,a=e.bio,n=e.className,u=e.github,l=e.nameSuffix,s=e.rel,c=e.size,m=e.subTitle,D=e.vertical,d=Object(o.a)().siteConfig,h=(void 0===d?{}:d).customFields.metadata.team,f=h.find((function(e){return e.github==u}))||h.find((function(e){return"ben"==e.id}));return r.a.createElement("div",{className:i()("avatar",n,(t={},t["avatar--"+c]=c,t["avatar--vertical"]=D,t))},r.a.createElement("img",{className:i()("avatar__photo","avatar__photo--"+c),src:f.avatar}),r.a.createElement("div",{className:"avatar__intro"},r.a.createElement("div",{className:"avatar__name"},r.a.createElement("a",{href:f.github,target:"_blank",rel:s},f.name),l),m&&r.a.createElement("small",{className:"avatar__subtitle"},m),!m&&a&&r.a.createElement("small",{className:"avatar__subtitle",dangerouslySetInnerHTML:{__html:f.bio}})))}},279:function(e,t,a){"use strict";var n=a(1),r=a(0),u=a.n(r),i=(a(254),a(273)),o=a(252),l=a.n(o),s=a(261),c=a(138),m=a.n(c);t.a=function(e){var t,a=e.block,r=e.colorProfile,o=e.tags,c=e.valuesOnly,D=Object(s.a)(o,r);return u.a.createElement("span",{className:l()(m.a.tags,(t={},t[m.a.tagsBlock]=a,t))},D.map((function(e,t){return u.a.createElement(i.a,Object(n.a)({key:t,valueOnly:c},e))})))}},280:function(e,t,a){var n;!function(r){"use strict";var u,i,o,l=(u=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZWN]|"[^"]*"|'[^']*'/g,i=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,o=/[^-+\dA-Z]/g,function(e,t,a,n){if(1!==arguments.length||"string"!==D(e)||/\d/.test(e)||(t=e,e=void 0),(e=e||new Date)instanceof Date||(e=new Date(e)),isNaN(e))throw TypeError("Invalid date");var r=(t=String(l.masks[t]||t||l.masks.default)).slice(0,4);"UTC:"!==r&&"GMT:"!==r||(t=t.slice(4),a=!0,"GMT:"===r&&(n=!0));var d=a?"getUTC":"get",h=e[d+"Date"](),f=e[d+"Day"](),g=e[d+"Month"](),p=e[d+"FullYear"](),E=e[d+"Hours"](),b=e[d+"Minutes"](),v=e[d+"Seconds"](),y=e[d+"Milliseconds"](),F=a?0:e.getTimezoneOffset(),C=c(e),w=m(e),k={d:h,dd:s(h),ddd:l.i18n.dayNames[f],dddd:l.i18n.dayNames[f+7],m:g+1,mm:s(g+1),mmm:l.i18n.monthNames[g],mmmm:l.i18n.monthNames[g+12],yy:String(p).slice(2),yyyy:p,h:E%12||12,hh:s(E%12||12),H:E,HH:s(E),M:b,MM:s(b),s:v,ss:s(v),l:s(y,3),L:s(Math.round(y/10)),t:E<12?l.i18n.timeNames[0]:l.i18n.timeNames[1],tt:E<12?l.i18n.timeNames[2]:l.i18n.timeNames[3],T:E<12?l.i18n.timeNames[4]:l.i18n.timeNames[5],TT:E<12?l.i18n.timeNames[6]:l.i18n.timeNames[7],Z:n?"GMT":a?"UTC":(String(e).match(i)||[""]).pop().replace(o,""),o:(F>0?"-":"+")+s(100*Math.floor(Math.abs(F)/60)+Math.abs(F)%60,4),S:["th","st","nd","rd"][h%10>3?0:(h%100-h%10!=10)*h%10],W:C,N:w};return t.replace(u,(function(e){return e in k?k[e]:e.slice(1,e.length-1)}))});function s(e,t){for(e=String(e),t=t||2;e.lengthy;y++)if((D||y in E)&&(g=b(f=E[y],y,p),e))if(a)F[y]=g;else if(g)switch(e){case 3:return!0;case 5:return f;case 6:return y;case 2:F.push(f)}else if(c)return!1;return m?-1:s||c?c:F}}},288:function(e,t,a){var n=a(289);e.exports=function(e,t){return new(n(e))(t)}},289:function(e,t,a){var n=a(14),r=a(309),u=a(2)("species");e.exports=function(e){var t;return r(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!r(t.prototype)||(t=void 0),n(t)&&null===(t=t[u])&&(t=void 0)),void 0===t?Array:t}},311:function(e,t,a){"use strict";var n=a(12),r=a(30),u=a(25),i=a(13),o=[].sort,l=[1,2,3];n(n.P+n.F*(i((function(){l.sort(void 0)}))||!i((function(){l.sort(null)}))||!a(312)(o)),"Array",{sort:function(e){return void 0===e?o.call(u(this)):o.call(u(this),r(e))}})},312:function(e,t,a){"use strict";var n=a(13);e.exports=function(e,t){return!!e&&n((function(){t?e.call(null,(function(){}),1):e.call(null)}))}},313:function(e,t,a){e.exports=function(){var e=[],t=[],a={},n={},r={};function u(e){return"string"==typeof e?new RegExp("^"+e+"$","i"):e}function i(e,t){return e===t?t:e===e.toLowerCase()?t.toLowerCase():e===e.toUpperCase()?t.toUpperCase():e[0]===e[0].toUpperCase()?t.charAt(0).toUpperCase()+t.substr(1).toLowerCase():t.toLowerCase()}function o(e,t){return e.replace(/\$(\d{1,2})/g,(function(e,a){return t[a]||""}))}function l(e,t){return e.replace(t[0],(function(a,n){var r=o(t[1],arguments);return i(""===a?e[n-1]:a,r)}))}function s(e,t,n){if(!e.length||a.hasOwnProperty(e))return t;for(var r=n.length;r--;){var u=n[r];if(u[0].test(t))return l(t,u)}return t}function c(e,t,a){return function(n){var r=n.toLowerCase();return t.hasOwnProperty(r)?i(n,r):e.hasOwnProperty(r)?i(n,e[r]):s(r,n,a)}}function m(e,t,a,n){return function(n){var r=n.toLowerCase();return!!t.hasOwnProperty(r)||!e.hasOwnProperty(r)&&s(r,r,a)===r}}function D(e,t,a){return(a?t+" ":"")+(1===t?D.singular(e):D.plural(e))}return D.plural=c(r,n,e),D.isPlural=m(r,n,e),D.singular=c(n,r,t),D.isSingular=m(n,r,t),D.addPluralRule=function(t,a){e.push([u(t),a])},D.addSingularRule=function(e,a){t.push([u(e),a])},D.addUncountableRule=function(e){"string"!=typeof e?(D.addPluralRule(e,"$0"),D.addSingularRule(e,"$0")):a[e.toLowerCase()]=!0},D.addIrregularRule=function(e,t){t=t.toLowerCase(),e=e.toLowerCase(),r[e]=t,n[t]=e},[["I","we"],["me","us"],["he","they"],["she","they"],["them","them"],["myself","ourselves"],["yourself","yourselves"],["itself","themselves"],["herself","themselves"],["himself","themselves"],["themself","themselves"],["is","are"],["was","were"],["has","have"],["this","these"],["that","those"],["echo","echoes"],["dingo","dingoes"],["volcano","volcanoes"],["tornado","tornadoes"],["torpedo","torpedoes"],["genus","genera"],["viscus","viscera"],["stigma","stigmata"],["stoma","stomata"],["dogma","dogmata"],["lemma","lemmata"],["schema","schemata"],["anathema","anathemata"],["ox","oxen"],["axe","axes"],["die","dice"],["yes","yeses"],["foot","feet"],["eave","eaves"],["goose","geese"],["tooth","teeth"],["quiz","quizzes"],["human","humans"],["proof","proofs"],["carve","carves"],["valve","valves"],["looey","looies"],["thief","thieves"],["groove","grooves"],["pickaxe","pickaxes"],["passerby","passersby"]].forEach((function(e){return D.addIrregularRule(e[0],e[1])})),[[/s?$/i,"s"],[/[^\u0000-\u007F]$/i,"$0"],[/([^aeiou]ese)$/i,"$1"],[/(ax|test)is$/i,"$1es"],[/(alias|[^aou]us|t[lm]as|gas|ris)$/i,"$1es"],[/(e[mn]u)s?$/i,"$1s"],[/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i,"$1"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1i"],[/(alumn|alg|vertebr)(?:a|ae)$/i,"$1ae"],[/(seraph|cherub)(?:im)?$/i,"$1im"],[/(her|at|gr)o$/i,"$1oes"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i,"$1a"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i,"$1a"],[/sis$/i,"ses"],[/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i,"$1$2ves"],[/([^aeiouy]|qu)y$/i,"$1ies"],[/([^ch][ieo][ln])ey$/i,"$1ies"],[/(x|ch|ss|sh|zz)$/i,"$1es"],[/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i,"$1ices"],[/\b((?:tit)?m|l)(?:ice|ouse)$/i,"$1ice"],[/(pe)(?:rson|ople)$/i,"$1ople"],[/(child)(?:ren)?$/i,"$1ren"],[/eaux$/i,"$0"],[/m[ae]n$/i,"men"],["thou","you"]].forEach((function(e){return D.addPluralRule(e[0],e[1])})),[[/s$/i,""],[/(ss)$/i,"$1"],[/(wi|kni|(?:after|half|high|low|mid|non|night|[^\w]|^)li)ves$/i,"$1fe"],[/(ar|(?:wo|[ae])l|[eo][ao])ves$/i,"$1f"],[/ies$/i,"y"],[/\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i,"$1ie"],[/\b(mon|smil)ies$/i,"$1ey"],[/\b((?:tit)?m|l)ice$/i,"$1ouse"],[/(seraph|cherub)im$/i,"$1"],[/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i,"$1"],[/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i,"$1sis"],[/(movie|twelve|abuse|e[mn]u)s$/i,"$1"],[/(test)(?:is|es)$/i,"$1is"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1us"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i,"$1um"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i,"$1on"],[/(alumn|alg|vertebr)ae$/i,"$1a"],[/(cod|mur|sil|vert|ind)ices$/i,"$1ex"],[/(matr|append)ices$/i,"$1ix"],[/(pe)(rson|ople)$/i,"$1rson"],[/(child)ren$/i,"$1"],[/(eau)x?$/i,"$1"],[/men$/i,"man"]].forEach((function(e){return D.addSingularRule(e[0],e[1])})),["adulthood","advice","agenda","aid","aircraft","alcohol","ammo","analytics","anime","athletics","audio","bison","blood","bream","buffalo","butter","carp","cash","chassis","chess","clothing","cod","commerce","cooperation","corps","debris","diabetes","digestion","elk","energy","equipment","excretion","expertise","firmware","flounder","fun","gallows","garbage","graffiti","hardware","headquarters","health","herpes","highjinks","homework","housework","information","jeans","justice","kudos","labour","literature","machinery","mackerel","mail","media","mews","moose","music","mud","manga","news","only","personnel","pike","plankton","pliers","police","pollution","premises","rain","research","rice","salmon","scissors","series","sewage","shambles","shrimp","software","species","staff","swine","tennis","traffic","transportation","trout","tuna","wealth","welfare","whiting","wildebeest","wildlife","you",/pok[e\xe9]mon$/i,/[^aeiou]ese$/i,/deer$/i,/fish$/i,/measles$/i,/o[iu]s$/i,/pox$/i,/sheep$/i].forEach(D.addUncountableRule),D}()},319:function(e,t,a){"use strict";var n=a(0),r=a.n(n),u=["second","minute","hour","day","week","month","year"],i=["\u79d2","\u5206\u949f","\u5c0f\u65f6","\u5929","\u5468","\u4e2a\u6708","\u5e74"],o={},l=function(e,t){o[e]=t},s=function(e){return o[e]||o.en_US},c=[60,60,24,7,365/7/12,12];function m(e){return e instanceof Date?e:!isNaN(e)||/^\d+$/.test(e)?new Date(parseInt(e)):(e=(e||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/(\d)T(\d)/,"$1 $2").replace(/Z/," UTC").replace(/([+-]\d\d):?(\d\d)/," $1$2"),new Date(e))}function D(e,t){for(var a=e<0?1:0,n=e=Math.abs(e),r=0;e>=c[r]&&r(0===(r*=2)?9:1)&&(r+=1),t(e,r,n)[a].replace("%s",e.toString())}function d(e,t){return(+(t?m(t):new Date)-+m(e))/1e3}function h(e){return parseInt(e.getAttribute("timeago-id"))}var f={},g=function(e){clearTimeout(e),delete f[e]};function p(e,t,a,n){g(h(e));var r=n.relativeDate,u=n.minInterval,i=d(t,r);e.innerText=D(i,a);var o=setTimeout((function(){p(e,t,a,n)}),Math.min(1e3*Math.max(function(e){for(var t=1,a=0,n=Math.abs(e);e>=c[a]&&a1&&(a+="s"),[e+" "+a+" ago","in "+e+" "+a]})),l("zh_CN",(function(e,t){if(0===t)return["\u521a\u521a","\u7247\u523b\u540e"];var a=i[~~(t/2)];return[e+" "+a+"\u524d",e+" "+a+"\u540e"]}));var b,v=(b=function(e,t){return(b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])})(e,t)},function(e,t){function a(){this.constructor=e}b(e,t),e.prototype=null===t?Object.create(t):(a.prototype=t.prototype,new a)}),y=function(){return(y=Object.assign||function(e){for(var t,a=1,n=arguments.length;a0&&u.a.createElement("div",null,u.a.createElement(s.a,{colorProfile:"blog",tags:F}))))},p=a(265),E=a.n(p),b=a(313),v=a.n(b),y=/\b(?:an?d?|a[st]|because|but|by|en|for|i[fn]|neither|nor|o[fnr]|only|over|per|so|some|tha[tn]|the|to|up|upon|vs?\.?|versus|via|when|with|without|yet)\b/i,F=/[^\s:\u2013\u2014-]+|./g,C=/\s/,w=/.(?=[A-Z]|\..)/,k=/[A-Za-z0-9\u00C0-\u00FF]/;function N(e){for(var t,a="";null!==(t=F.exec(e));){var n=t[0],r=t.index;w.test(n)||y.test(n)&&0!==r&&r+n.length!==e.length||":"===e.charAt(r+n.length)&&!C.test(e.charAt(r+n.length+1))?a+=n:a+=n.replace(k,(function(e){return e.toUpperCase()}))}return a}Object(i.a)("h2");var $=Object(i.a)("h3");function A(e){var t=e.groupBy,a=e.group,n=new E.a;switch(t){case"release":return u.a.createElement("li",{className:"header sticky"},u.a.createElement("h3",null,u.a.createElement(l.a,{to:"/releases/"+a+"/"},N(a))));case"type":var r=null,i=v()(N(a)),o=null;switch(a){case"breaking change":r="alert-triangle",o="danger";break;case"enhancement":r="arrow-up-circle",o="pink";break;case"new feature":r="gift",o="primary";break;case"performance":r="zap",i="Performance Improvements",o="warning"}return u.a.createElement("li",{className:"header sticky"},u.a.createElement($,{id:n.slug(a+"-highlights"),className:"text--"+o},r&&u.a.createElement("i",{className:"feather icon-"+r})," ",i));default:throw Error("unknown group: "+t)}}t.a=function(e){var t=e.author,a=(e.clean,e.colorize),r=e.groupBy,i=e.items,o=e.tags,l=e.timeline,s=r||"release",c=function(e){return e.map((function(e){if(e.content){var t=e.content,a=t.frontMatter,n=t.metadata,r=a.author_github,u=a.pr_numbers,i=a.release,o=a.title,l=n.date,s=n.description,c=n.permalink,m=n.tags,D={};return D.authorGithub=r,D.dateString=l,D.description=s,D.permalink=c,D.prNumbers=u,D.release=i,D.tags=m,D.title=o,D}return e}))}(i),m=_.groupBy(c,s),d=!1!==l?Object.keys(m):Object.keys(m).sort();return u.a.createElement("ul",{className:D()("connected-list","connected-list--clean")},d.map((function(e,r){var i=m[e];return u.a.createElement(u.a.Fragment,null,u.a.createElement(A,{groupBy:s,group:e}),u.a.createElement("ul",{className:D()("connected-list",{"connected-list--timeline":!1!==l})},i.map((function(e,r){return u.a.createElement("li",{key:r},u.a.createElement(g,Object(n.a)({},e,{colorize:a,hideAuthor:0==t,hideTags:0==o})))}))))})))}}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[36],{179:function(e,t,a){"use strict";a.r(t);a(263);var n=a(0),r=a.n(n),u=a(332),i=a(259),o=a(254);t.default=function(e){var t=e.metadata,a=e.items,n=t.allTagsPath,l=t.name,s=t.count;return r.a.createElement(i.a,{title:'Highlights tagged "'+l+'"',description:'Highlight | Tagged "'+l+'"'},r.a.createElement("header",{className:"hero hero--clean"},r.a.createElement("div",{className:"container"},r.a.createElement("h1",null,s," ",function(e,t){return e>1?t+"s":t}(s,"highlight"),' tagged with "',l,'"'),r.a.createElement("div",{className:"hero--subtitle"},r.a.createElement(o.a,{href:n},"View All Tags")))),r.a.createElement("main",{className:"container container--xs"},r.a.createElement(u.a,{items:a})))}},258:function(e,t,a){"use strict";a.d(t,"a",(function(){return r})),a.d(t,"b",(function(){return u}));var n=a(253);function r(){var e=Object(n.a)().siteConfig,t=(void 0===e?{}:e).customFields.metadata.latest_highlight,a=Date.parse(t.date),r=new Date,u=Math.abs(r-a),i=Math.ceil(u/864e5),o=null;return"undefined"!=typeof window&&(o=new Date(parseInt(window.localStorage.getItem("highlightsViewedAt")||"0"))),i<30&&(!o||o0&&r.a.createElement("div",{className:"row footer__links"},r.a.createElement("div",{className:"col col--5 footer__col"},r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(m.a,{className:"navbar__logo",src:"/img/logo-light.svg",alt:"gnet",width:"150",height:"auto"})),r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(M,{description:!1,width:"150px"})),r.a.createElement("div",null,r.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank"},r.a.createElement("i",{className:"feather icon-twitter",alt:"gnet's Twitter"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank"},r.a.createElement("i",{className:"feather icon-github",alt:"gnet's Github Repo"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://strikefreedom.top/rss.xml",target:"_blank"},r.a.createElement("i",{className:"feather icon-rss",alt:"gnet's RSS feed"})))),o.map((function(e,t){return r.a.createElement("div",{key:t,className:"col footer__col"},null!=e.title?r.a.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?r.a.createElement("ul",{className:"footer__items"},e.items.map((function(e,t){return e.html?r.a.createElement("li",{key:t,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):r.a.createElement("li",{key:e.href||e.to,className:"footer__item"},r.a.createElement(S,e))}))):null)}))),(s||u)&&r.a.createElement("div",{className:"text--center"},s&&s.src&&r.a.createElement("div",{className:"margin-bottom--sm"},s.href?r.a.createElement("a",{href:s.href,target:"_blank",rel:"noopener noreferrer",className:B.a.footerLogoLink},r.a.createElement(P,{alt:s.alt,url:c})):r.a.createElement(P,{alt:s.alt,url:c}),r.a.createElement("br",null),r.a.createElement("a",{href:"https://www.digitalocean.com/",target:"_blank",rel:"noopener noreferrer",className:B.a.footerLogoLink},r.a.createElement("img",{alt:"DigitalOcean",src:"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg",width:"201px"}))),u,r.a.createElement("br",null),r.a.createElement("small",null,r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/security/policy"},"Security Policy"),"\xa0\u2022\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/blob/master/PRIVACY.md"},"Privacy Policy"))))):null},H=a(276),I=a(277),z=a(3);a(135);t.a=function(e){var t=Object(h.a)().siteConfig,a=void 0===t?{}:t,n=a.favicon,o=(a.tagline,a.title),l=a.themeConfig.image,s=a.url,c=e.children,m=e.title,D=e.noFooter,d=e.description,f=e.image,g=e.keywords,p=(e.permalink,e.version),E=m?m+" | "+o:o,b=f||l,v=s+Object(C.a)(b),y=Object(C.a)(n),F=Object(z.h)(),w=F?"https://gnet.host"+(F.pathname.endsWith("/")?F.pathname:F.pathname+"/"):null;return r.a.createElement(I.a,null,r.a.createElement(H.a,null,r.a.createElement(i.a,null,r.a.createElement("html",{lang:"en"}),r.a.createElement("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),E&&r.a.createElement("title",null,E),E&&r.a.createElement("meta",{property:"og:title",content:E}),n&&r.a.createElement("link",{rel:"shortcut icon",href:y}),d&&r.a.createElement("meta",{name:"description",content:d}),d&&r.a.createElement("meta",{property:"og:description",content:d}),p&&r.a.createElement("meta",{name:"docsearch:version",content:p}),g&&g.length&&r.a.createElement("meta",{name:"keywords",content:g.join(",")}),b&&r.a.createElement("meta",{property:"og:image",content:v}),b&&r.a.createElement("meta",{property:"twitter:image",content:v}),b&&r.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+E}),b&&r.a.createElement("meta",{name:"twitter:site",content:"@vectordotdev"}),b&&r.a.createElement("meta",{name:"twitter:creator",content:"@vectordotdev"}),w&&r.a.createElement("meta",{property:"og:url",content:w}),r.a.createElement("meta",{name:"twitter:card",content:"summary"}),w&&r.a.createElement("link",{rel:"canonical",href:w})),r.a.createElement(u.a,null),r.a.createElement(T,null),r.a.createElement("div",{className:"main-wrapper"},c),!D&&r.a.createElement(L,null)))}},260:function(e,t,a){"use strict";var n=a(12),r=a(287)(5),u=!0;"find"in[]&&Array(1).find((function(){u=!1})),n(n.P+n.F*u,"Array",{find:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}}),a(80)("find")},261:function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));a(79),a(284),a(260),a(78);var n=a(265),r=a.n(n);function u(e,t){var a=new r.a;return e.map((function(e){var n=e;return"string"==typeof e&&(n={label:e,permalink:"/"+t+"/tags/"+a.slug(e)}),function(e,t){if(e.enriched)return e;var a=e.label.split(": ",2),n=a[0],r=a[1],u="primary";switch(n){case"domain":u="blue";break;case"type":u="pink";break;default:u="primary"}return{category:n,count:e.count,enriched:!0,label:e.label,permalink:e.permalink,style:u,value:r}}(n)}))}},263:function(e,t,a){var n=a(24).f,r=Function.prototype,u=/^\s*function ([^ (]*)/;"name"in r||a(10)&&n(r,"name",{configurable:!0,get:function(){try{return(""+this).match(u)[1]}catch(e){return""}}})},264:function(e,t,a){"use strict";var n=a(9),r=a(0),u=a.n(r),i=a(252),o=a.n(i),l=a(253),s=(a(139),a(140)),c=a.n(s);t.a=function(e){return function(t){var a,r=t.id,i=Object(n.a)(t,["id"]),s=Object(l.a)().siteConfig,m=(s=void 0===s?{}:s).themeConfig,D=(m=void 0===m?{}:m).navbar,d=(D=void 0===D?{}:D).hideOnScroll,h=void 0!==d&&d;return r?u.a.createElement(e,i,u.a.createElement("a",{"aria-hidden":"true",tabIndex:"-1",className:o()("anchor",(a={},a[c.a.enhancedAnchor]=!h,a)),id:r}),u.a.createElement("a",{"aria-hidden":"true",tabIndex:"-1",className:"hash-link",href:"#"+r,title:"Direct link to heading"},"#"),i.children):u.a.createElement(e,i)}}},265:function(e,t,a){var n=a(274);e.exports=o;var r=Object.hasOwnProperty,u=/\s/g,i=/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~\u2019]/g;function o(){if(!(this instanceof o))return new o;this.reset()}function l(e,t){return"string"!=typeof e?"":(t||(e=e.toLowerCase()),e.trim().replace(i,"").replace(n(),"").replace(u,"-"))}o.prototype.slug=function(e,t){for(var a=l(e,!0===t),n=a;r.call(this.occurrences,a);)this.occurrences[n]++,a=n+"-"+this.occurrences[n];return this.occurrences[a]=0,a},o.prototype.reset=function(){this.occurrences=Object.create(null)},o.slug=l},273:function(e,t,a){"use strict";var n=a(0),r=a.n(n),u=a(254),i=a(252),o=a.n(i);t.a=function(e){var t=e.count,a=e.label,n=e.permalink,i=e.style,l=e.value,s=e.valueOnly;return r.a.createElement(u.a,{to:n+"/",className:o()("badge","badge--rounded","badge--"+i)},s?l:a,t&&r.a.createElement(r.a.Fragment,null," (",t,")"))}},274:function(e,t){e.exports=function(){return/[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267B\u267F\u2692-\u2694\u2696\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD79\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED0\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3]|\uD83E[\uDD10-\uDD18\uDD80-\uDD84\uDDC0]|\uD83C\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uD83C\uDDFE\uD83C[\uDDEA\uDDF9]|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDFC\uD83C[\uDDEB\uDDF8]|\uD83C\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uD83C\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF8\uDDFE\uDDFF]|\uD83C\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uD83C\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uD83C\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uD83C\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uD83C\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uD83C\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uD83C\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uD83C\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uD83C\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uD83C\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uD83C\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uD83C\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uD83C\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uD83C\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uD83C\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uD83C\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|[#\*0-9]\u20E3/g}},278:function(e,t,a){"use strict";a(263),a(260);var n=a(0),r=a.n(n),u=a(252),i=a.n(u),o=a(253);a(137);t.a=function(e){var t,a=e.bio,n=e.className,u=e.github,l=e.nameSuffix,s=e.rel,c=e.size,m=e.subTitle,D=e.vertical,d=Object(o.a)().siteConfig,h=(void 0===d?{}:d).customFields.metadata.team,f=h.find((function(e){return e.github==u}))||h.find((function(e){return"ben"==e.id}));return r.a.createElement("div",{className:i()("avatar",n,(t={},t["avatar--"+c]=c,t["avatar--vertical"]=D,t))},r.a.createElement("img",{className:i()("avatar__photo","avatar__photo--"+c),src:f.avatar}),r.a.createElement("div",{className:"avatar__intro"},r.a.createElement("div",{className:"avatar__name"},r.a.createElement("a",{href:f.github,target:"_blank",rel:s},f.name),l),m&&r.a.createElement("small",{className:"avatar__subtitle"},m),!m&&a&&r.a.createElement("small",{className:"avatar__subtitle",dangerouslySetInnerHTML:{__html:f.bio}})))}},279:function(e,t,a){"use strict";var n=a(1),r=a(0),u=a.n(r),i=(a(254),a(273)),o=a(252),l=a.n(o),s=a(261),c=a(138),m=a.n(c);t.a=function(e){var t,a=e.block,r=e.colorProfile,o=e.tags,c=e.valuesOnly,D=Object(s.a)(o,r);return u.a.createElement("span",{className:l()(m.a.tags,(t={},t[m.a.tagsBlock]=a,t))},D.map((function(e,t){return u.a.createElement(i.a,Object(n.a)({key:t,valueOnly:c},e))})))}},280:function(e,t,a){var n;!function(r){"use strict";var u,i,o,l=(u=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZWN]|"[^"]*"|'[^']*'/g,i=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,o=/[^-+\dA-Z]/g,function(e,t,a,n){if(1!==arguments.length||"string"!==D(e)||/\d/.test(e)||(t=e,e=void 0),(e=e||new Date)instanceof Date||(e=new Date(e)),isNaN(e))throw TypeError("Invalid date");var r=(t=String(l.masks[t]||t||l.masks.default)).slice(0,4);"UTC:"!==r&&"GMT:"!==r||(t=t.slice(4),a=!0,"GMT:"===r&&(n=!0));var d=a?"getUTC":"get",h=e[d+"Date"](),f=e[d+"Day"](),g=e[d+"Month"](),p=e[d+"FullYear"](),E=e[d+"Hours"](),b=e[d+"Minutes"](),v=e[d+"Seconds"](),y=e[d+"Milliseconds"](),F=a?0:e.getTimezoneOffset(),C=c(e),w=m(e),k={d:h,dd:s(h),ddd:l.i18n.dayNames[f],dddd:l.i18n.dayNames[f+7],m:g+1,mm:s(g+1),mmm:l.i18n.monthNames[g],mmmm:l.i18n.monthNames[g+12],yy:String(p).slice(2),yyyy:p,h:E%12||12,hh:s(E%12||12),H:E,HH:s(E),M:b,MM:s(b),s:v,ss:s(v),l:s(y,3),L:s(Math.round(y/10)),t:E<12?l.i18n.timeNames[0]:l.i18n.timeNames[1],tt:E<12?l.i18n.timeNames[2]:l.i18n.timeNames[3],T:E<12?l.i18n.timeNames[4]:l.i18n.timeNames[5],TT:E<12?l.i18n.timeNames[6]:l.i18n.timeNames[7],Z:n?"GMT":a?"UTC":(String(e).match(i)||[""]).pop().replace(o,""),o:(F>0?"-":"+")+s(100*Math.floor(Math.abs(F)/60)+Math.abs(F)%60,4),S:["th","st","nd","rd"][h%10>3?0:(h%100-h%10!=10)*h%10],W:C,N:w};return t.replace(u,(function(e){return e in k?k[e]:e.slice(1,e.length-1)}))});function s(e,t){for(e=String(e),t=t||2;e.lengthy;y++)if((D||y in E)&&(g=b(f=E[y],y,p),e))if(a)F[y]=g;else if(g)switch(e){case 3:return!0;case 5:return f;case 6:return y;case 2:F.push(f)}else if(c)return!1;return m?-1:s||c?c:F}}},288:function(e,t,a){var n=a(289);e.exports=function(e,t){return new(n(e))(t)}},289:function(e,t,a){var n=a(14),r=a(309),u=a(2)("species");e.exports=function(e){var t;return r(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!r(t.prototype)||(t=void 0),n(t)&&null===(t=t[u])&&(t=void 0)),void 0===t?Array:t}},311:function(e,t,a){"use strict";var n=a(12),r=a(30),u=a(25),i=a(13),o=[].sort,l=[1,2,3];n(n.P+n.F*(i((function(){l.sort(void 0)}))||!i((function(){l.sort(null)}))||!a(312)(o)),"Array",{sort:function(e){return void 0===e?o.call(u(this)):o.call(u(this),r(e))}})},312:function(e,t,a){"use strict";var n=a(13);e.exports=function(e,t){return!!e&&n((function(){t?e.call(null,(function(){}),1):e.call(null)}))}},313:function(e,t,a){e.exports=function(){var e=[],t=[],a={},n={},r={};function u(e){return"string"==typeof e?new RegExp("^"+e+"$","i"):e}function i(e,t){return e===t?t:e===e.toLowerCase()?t.toLowerCase():e===e.toUpperCase()?t.toUpperCase():e[0]===e[0].toUpperCase()?t.charAt(0).toUpperCase()+t.substr(1).toLowerCase():t.toLowerCase()}function o(e,t){return e.replace(/\$(\d{1,2})/g,(function(e,a){return t[a]||""}))}function l(e,t){return e.replace(t[0],(function(a,n){var r=o(t[1],arguments);return i(""===a?e[n-1]:a,r)}))}function s(e,t,n){if(!e.length||a.hasOwnProperty(e))return t;for(var r=n.length;r--;){var u=n[r];if(u[0].test(t))return l(t,u)}return t}function c(e,t,a){return function(n){var r=n.toLowerCase();return t.hasOwnProperty(r)?i(n,r):e.hasOwnProperty(r)?i(n,e[r]):s(r,n,a)}}function m(e,t,a,n){return function(n){var r=n.toLowerCase();return!!t.hasOwnProperty(r)||!e.hasOwnProperty(r)&&s(r,r,a)===r}}function D(e,t,a){return(a?t+" ":"")+(1===t?D.singular(e):D.plural(e))}return D.plural=c(r,n,e),D.isPlural=m(r,n,e),D.singular=c(n,r,t),D.isSingular=m(n,r,t),D.addPluralRule=function(t,a){e.push([u(t),a])},D.addSingularRule=function(e,a){t.push([u(e),a])},D.addUncountableRule=function(e){"string"!=typeof e?(D.addPluralRule(e,"$0"),D.addSingularRule(e,"$0")):a[e.toLowerCase()]=!0},D.addIrregularRule=function(e,t){t=t.toLowerCase(),e=e.toLowerCase(),r[e]=t,n[t]=e},[["I","we"],["me","us"],["he","they"],["she","they"],["them","them"],["myself","ourselves"],["yourself","yourselves"],["itself","themselves"],["herself","themselves"],["himself","themselves"],["themself","themselves"],["is","are"],["was","were"],["has","have"],["this","these"],["that","those"],["echo","echoes"],["dingo","dingoes"],["volcano","volcanoes"],["tornado","tornadoes"],["torpedo","torpedoes"],["genus","genera"],["viscus","viscera"],["stigma","stigmata"],["stoma","stomata"],["dogma","dogmata"],["lemma","lemmata"],["schema","schemata"],["anathema","anathemata"],["ox","oxen"],["axe","axes"],["die","dice"],["yes","yeses"],["foot","feet"],["eave","eaves"],["goose","geese"],["tooth","teeth"],["quiz","quizzes"],["human","humans"],["proof","proofs"],["carve","carves"],["valve","valves"],["looey","looies"],["thief","thieves"],["groove","grooves"],["pickaxe","pickaxes"],["passerby","passersby"]].forEach((function(e){return D.addIrregularRule(e[0],e[1])})),[[/s?$/i,"s"],[/[^\u0000-\u007F]$/i,"$0"],[/([^aeiou]ese)$/i,"$1"],[/(ax|test)is$/i,"$1es"],[/(alias|[^aou]us|t[lm]as|gas|ris)$/i,"$1es"],[/(e[mn]u)s?$/i,"$1s"],[/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i,"$1"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1i"],[/(alumn|alg|vertebr)(?:a|ae)$/i,"$1ae"],[/(seraph|cherub)(?:im)?$/i,"$1im"],[/(her|at|gr)o$/i,"$1oes"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i,"$1a"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i,"$1a"],[/sis$/i,"ses"],[/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i,"$1$2ves"],[/([^aeiouy]|qu)y$/i,"$1ies"],[/([^ch][ieo][ln])ey$/i,"$1ies"],[/(x|ch|ss|sh|zz)$/i,"$1es"],[/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i,"$1ices"],[/\b((?:tit)?m|l)(?:ice|ouse)$/i,"$1ice"],[/(pe)(?:rson|ople)$/i,"$1ople"],[/(child)(?:ren)?$/i,"$1ren"],[/eaux$/i,"$0"],[/m[ae]n$/i,"men"],["thou","you"]].forEach((function(e){return D.addPluralRule(e[0],e[1])})),[[/s$/i,""],[/(ss)$/i,"$1"],[/(wi|kni|(?:after|half|high|low|mid|non|night|[^\w]|^)li)ves$/i,"$1fe"],[/(ar|(?:wo|[ae])l|[eo][ao])ves$/i,"$1f"],[/ies$/i,"y"],[/\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i,"$1ie"],[/\b(mon|smil)ies$/i,"$1ey"],[/\b((?:tit)?m|l)ice$/i,"$1ouse"],[/(seraph|cherub)im$/i,"$1"],[/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i,"$1"],[/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i,"$1sis"],[/(movie|twelve|abuse|e[mn]u)s$/i,"$1"],[/(test)(?:is|es)$/i,"$1is"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1us"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i,"$1um"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i,"$1on"],[/(alumn|alg|vertebr)ae$/i,"$1a"],[/(cod|mur|sil|vert|ind)ices$/i,"$1ex"],[/(matr|append)ices$/i,"$1ix"],[/(pe)(rson|ople)$/i,"$1rson"],[/(child)ren$/i,"$1"],[/(eau)x?$/i,"$1"],[/men$/i,"man"]].forEach((function(e){return D.addSingularRule(e[0],e[1])})),["adulthood","advice","agenda","aid","aircraft","alcohol","ammo","analytics","anime","athletics","audio","bison","blood","bream","buffalo","butter","carp","cash","chassis","chess","clothing","cod","commerce","cooperation","corps","debris","diabetes","digestion","elk","energy","equipment","excretion","expertise","firmware","flounder","fun","gallows","garbage","graffiti","hardware","headquarters","health","herpes","highjinks","homework","housework","information","jeans","justice","kudos","labour","literature","machinery","mackerel","mail","media","mews","moose","music","mud","manga","news","only","personnel","pike","plankton","pliers","police","pollution","premises","rain","research","rice","salmon","scissors","series","sewage","shambles","shrimp","software","species","staff","swine","tennis","traffic","transportation","trout","tuna","wealth","welfare","whiting","wildebeest","wildlife","you",/pok[e\xe9]mon$/i,/[^aeiou]ese$/i,/deer$/i,/fish$/i,/measles$/i,/o[iu]s$/i,/pox$/i,/sheep$/i].forEach(D.addUncountableRule),D}()},319:function(e,t,a){"use strict";var n=a(0),r=a.n(n),u=["second","minute","hour","day","week","month","year"],i=["\u79d2","\u5206\u949f","\u5c0f\u65f6","\u5929","\u5468","\u4e2a\u6708","\u5e74"],o={},l=function(e,t){o[e]=t},s=function(e){return o[e]||o.en_US},c=[60,60,24,7,365/7/12,12];function m(e){return e instanceof Date?e:!isNaN(e)||/^\d+$/.test(e)?new Date(parseInt(e)):(e=(e||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/(\d)T(\d)/,"$1 $2").replace(/Z/," UTC").replace(/([+-]\d\d):?(\d\d)/," $1$2"),new Date(e))}function D(e,t){for(var a=e<0?1:0,n=e=Math.abs(e),r=0;e>=c[r]&&r(0===(r*=2)?9:1)&&(r+=1),t(e,r,n)[a].replace("%s",e.toString())}function d(e,t){return(+(t?m(t):new Date)-+m(e))/1e3}function h(e){return parseInt(e.getAttribute("timeago-id"))}var f={},g=function(e){clearTimeout(e),delete f[e]};function p(e,t,a,n){g(h(e));var r=n.relativeDate,u=n.minInterval,i=d(t,r);e.innerText=D(i,a);var o=setTimeout((function(){p(e,t,a,n)}),Math.min(1e3*Math.max(function(e){for(var t=1,a=0,n=Math.abs(e);e>=c[a]&&a1&&(a+="s"),[e+" "+a+" ago","in "+e+" "+a]})),l("zh_CN",(function(e,t){if(0===t)return["\u521a\u521a","\u7247\u523b\u540e"];var a=i[~~(t/2)];return[e+" "+a+"\u524d",e+" "+a+"\u540e"]}));var b,v=(b=function(e,t){return(b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])})(e,t)},function(e,t){function a(){this.constructor=e}b(e,t),e.prototype=null===t?Object.create(t):(a.prototype=t.prototype,new a)}),y=function(){return(y=Object.assign||function(e){for(var t,a=1,n=arguments.length;a0&&u.a.createElement("div",null,u.a.createElement(s.a,{colorProfile:"blog",tags:F}))))},p=a(265),E=a.n(p),b=a(313),v=a.n(b),y=/\b(?:an?d?|a[st]|because|but|by|en|for|i[fn]|neither|nor|o[fnr]|only|over|per|so|some|tha[tn]|the|to|up|upon|vs?\.?|versus|via|when|with|without|yet)\b/i,F=/[^\s:\u2013\u2014-]+|./g,C=/\s/,w=/.(?=[A-Z]|\..)/,k=/[A-Za-z0-9\u00C0-\u00FF]/;function N(e){for(var t,a="";null!==(t=F.exec(e));){var n=t[0],r=t.index;w.test(n)||y.test(n)&&0!==r&&r+n.length!==e.length||":"===e.charAt(r+n.length)&&!C.test(e.charAt(r+n.length+1))?a+=n:a+=n.replace(k,(function(e){return e.toUpperCase()}))}return a}Object(i.a)("h2");var $=Object(i.a)("h3");function A(e){var t=e.groupBy,a=e.group,n=new E.a;switch(t){case"release":return u.a.createElement("li",{className:"header sticky"},u.a.createElement("h3",null,u.a.createElement(l.a,{to:"/releases/"+a+"/"},N(a))));case"type":var r=null,i=v()(N(a)),o=null;switch(a){case"breaking change":r="alert-triangle",o="danger";break;case"enhancement":r="arrow-up-circle",o="pink";break;case"new feature":r="gift",o="primary";break;case"performance":r="zap",i="Performance Improvements",o="warning"}return u.a.createElement("li",{className:"header sticky"},u.a.createElement($,{id:n.slug(a+"-highlights"),className:"text--"+o},r&&u.a.createElement("i",{className:"feather icon-"+r})," ",i));default:throw Error("unknown group: "+t)}}t.a=function(e){var t=e.author,a=(e.clean,e.colorize),r=e.groupBy,i=e.items,o=e.tags,l=e.timeline,s=r||"release",c=function(e){return e.map((function(e){if(e.content){var t=e.content,a=t.frontMatter,n=t.metadata,r=a.author_github,u=a.pr_numbers,i=a.release,o=a.title,l=n.date,s=n.description,c=n.permalink,m=n.tags,D={};return D.authorGithub=r,D.dateString=l,D.description=s,D.permalink=c,D.prNumbers=u,D.release=i,D.tags=m,D.title=o,D}return e}))}(i),m=_.groupBy(c,s),d=!1!==l?Object.keys(m):Object.keys(m).sort();return u.a.createElement("ul",{className:D()("connected-list","connected-list--clean")},d.map((function(e,r){var i=m[e];return u.a.createElement(u.a.Fragment,null,u.a.createElement(A,{groupBy:s,group:e}),u.a.createElement("ul",{className:D()("connected-list",{"connected-list--timeline":!1!==l})},i.map((function(e,r){return u.a.createElement("li",{key:r},u.a.createElement(g,Object(n.a)({},e,{colorize:a,hideAuthor:0==t,hideTags:0==o})))}))))})))}}}]); \ No newline at end of file diff --git a/5d1574ce.24733ddf.js b/5d1574ce.9b8081c4.js similarity index 99% rename from 5d1574ce.24733ddf.js rename to 5d1574ce.9b8081c4.js index 471a9fdd7..d881eb19d 100644 --- a/5d1574ce.24733ddf.js +++ b/5d1574ce.9b8081c4.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{180:function(e,t,a){"use strict";a.r(t);var n=a(0),r=a.n(n),u=a(278),l=a(314),i=a(264),c=a(259),o=a(254),s=a(285),D=a(251),m=a(325),d=a(279),E=a(319),f=a(252),p=a.n(f),h=a(280),g=a.n(h),b=a(261),v=a(181),y=a.n(v),F=Object(i.a)("h2");Object(i.a)("h3");function C(e){var t=e.release;return"features"==t?r.a.createElement(r.a.Fragment,null,"This kind of change with the `new feature` tag brings new features to gnet. Feel free to have a galance through ",r.a.createElement(o.a,{to:"/releases/nightly/download/"},"all those commits")," of new features if you are interested."):r.a.createElement("p",null,"This change was made available in ",r.a.createElement(o.a,{to:"https://github.com/panjf2000/gnet/releases/tag/v"+t+"/"},t),".")}t.default=function(e){var t=e.content,a=t.frontMatter,n=t.metadata,i=a.author_github,o=a.description,f=(a.id,a.pr_numbers),h=a.release,v=a.title,N=n.date,_=n.tags,O=new Date(Date.parse(N)),k=g()(O,"mmm dS, yyyy"),w=Object(b.a)(_,"highlights");return w=w.concat(f.map((function(e){return{enriched:!0,label:r.a.createElement(r.a.Fragment,null,r.a.createElement("i",{className:"feather icon-git-pull-request"})," ",e),permalink:"https://github.com/panjf2000/gnet/commit/"+e,style:"secondary"}}))),r.a.createElement(c.a,{title:v,description:v+", in minutes, for free"},r.a.createElement("article",{className:y.a.blogPost},r.a.createElement("header",{className:p()("hero","domain-bg","domain-bg--nodes",y.a.header)},r.a.createElement("div",{className:p()("container",y.a.headerContainer)},r.a.createElement("div",{class:"hero--avatar"},r.a.createElement(u.a,{github:i,size:"lg",nameSuffix:r.a.createElement(r.a.Fragment,null," / ",k," / ",r.a.createElement(E.a,{pubdate:"pubdate",title:k,datetime:O})),rel:"author",subTitle:!1,vertical:!0})),r.a.createElement("h1",null,v),r.a.createElement("div",{class:"hero--subtitle"},o),r.a.createElement("div",{className:"hero--tags"},r.a.createElement(d.a,{colorProfile:"blog",tags:w})))),r.a.createElement("div",{className:"container container--xs margin-vert--xl"},r.a.createElement("section",{className:"markdown"},r.a.createElement(D.a,{components:s.a},r.a.createElement(t,null))),r.a.createElement("section",null,r.a.createElement(F,{id:"get"},"Get This Change"),r.a.createElement(C,{release:h})),r.a.createElement("section",null,r.a.createElement(F,{id:"cta"},"Like What You See?"),r.a.createElement(l.a,null)),(n.nextItem||n.prevItem)&&r.a.createElement("div",{className:"margin-vert--xl"},r.a.createElement(m.a,{next:n.nextItem,previous:n.prevItem})))))}},251:function(e,t,a){"use strict";a.d(t,"a",(function(){return D})),a.d(t,"b",(function(){return E}));var n=a(0),r=a.n(n);function u(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=r.a.createContext({}),s=function(e){var t=r.a.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i({},t,{},e)),a},D=function(e){var t=s(e.components);return r.a.createElement(o.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},d=Object(n.forwardRef)((function(e,t){var a=e.components,n=e.mdxType,u=e.originalType,l=e.parentName,o=c(e,["components","mdxType","originalType","parentName"]),D=s(a),d=n,E=D["".concat(l,".").concat(d)]||D[d]||m[d]||u;return a?r.a.createElement(E,i({ref:t},o,{components:a})):r.a.createElement(E,i({ref:t},o))}));function E(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var u=a.length,l=new Array(u);l[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:n,l[1]=i;for(var o=2;o0&&r.a.createElement("div",{className:"row footer__links"},r.a.createElement("div",{className:"col col--5 footer__col"},r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(D.a,{className:"navbar__logo",src:"/img/logo-light.svg",alt:"gnet",width:"150",height:"auto"})),r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(B,{description:!1,width:"150px"})),r.a.createElement("div",null,r.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank"},r.a.createElement("i",{className:"feather icon-twitter",alt:"gnet's Twitter"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank"},r.a.createElement("i",{className:"feather icon-github",alt:"gnet's Github Repo"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://strikefreedom.top/rss.xml",target:"_blank"},r.a.createElement("i",{className:"feather icon-rss",alt:"gnet's RSS feed"})))),i.map((function(e,t){return r.a.createElement("div",{key:t,className:"col footer__col"},null!=e.title?r.a.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?r.a.createElement("ul",{className:"footer__items"},e.items.map((function(e,t){return e.html?r.a.createElement("li",{key:t,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):r.a.createElement("li",{key:e.href||e.to,className:"footer__item"},r.a.createElement(P,e))}))):null)}))),(o||u)&&r.a.createElement("div",{className:"text--center"},o&&o.src&&r.a.createElement("div",{className:"margin-bottom--sm"},o.href?r.a.createElement("a",{href:o.href,target:"_blank",rel:"noopener noreferrer",className:x.a.footerLogoLink},r.a.createElement(L,{alt:o.alt,url:s})):r.a.createElement(L,{alt:o.alt,url:s}),r.a.createElement("br",null),r.a.createElement("a",{href:"https://www.digitalocean.com/",target:"_blank",rel:"noopener noreferrer",className:x.a.footerLogoLink},r.a.createElement("img",{alt:"DigitalOcean",src:"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg",width:"201px"}))),u,r.a.createElement("br",null),r.a.createElement("small",null,r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/security/policy"},"Security Policy"),"\xa0\u2022\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/blob/master/PRIVACY.md"},"Privacy Policy"))))):null},I=a(276),U=a(277),W=a(3);a(135);t.a=function(e){var t=Object(E.a)().siteConfig,a=void 0===t?{}:t,n=a.favicon,i=(a.tagline,a.title),c=a.themeConfig.image,o=a.url,s=e.children,D=e.title,m=e.noFooter,d=e.description,f=e.image,p=e.keywords,h=(e.permalink,e.version),g=D?D+" | "+i:i,b=f||c,v=o+Object(C.a)(b),y=Object(C.a)(n),F=Object(W.h)(),N=F?"https://gnet.host"+(F.pathname.endsWith("/")?F.pathname:F.pathname+"/"):null;return r.a.createElement(U.a,null,r.a.createElement(I.a,null,r.a.createElement(l.a,null,r.a.createElement("html",{lang:"en"}),r.a.createElement("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),g&&r.a.createElement("title",null,g),g&&r.a.createElement("meta",{property:"og:title",content:g}),n&&r.a.createElement("link",{rel:"shortcut icon",href:y}),d&&r.a.createElement("meta",{name:"description",content:d}),d&&r.a.createElement("meta",{property:"og:description",content:d}),h&&r.a.createElement("meta",{name:"docsearch:version",content:h}),p&&p.length&&r.a.createElement("meta",{name:"keywords",content:p.join(",")}),b&&r.a.createElement("meta",{property:"og:image",content:v}),b&&r.a.createElement("meta",{property:"twitter:image",content:v}),b&&r.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+g}),b&&r.a.createElement("meta",{name:"twitter:site",content:"@vectordotdev"}),b&&r.a.createElement("meta",{name:"twitter:creator",content:"@vectordotdev"}),N&&r.a.createElement("meta",{property:"og:url",content:N}),r.a.createElement("meta",{name:"twitter:card",content:"summary"}),N&&r.a.createElement("link",{rel:"canonical",href:N})),r.a.createElement(u.a,null),r.a.createElement(A,null),r.a.createElement("div",{className:"main-wrapper"},s),!m&&r.a.createElement(H,null)))}},261:function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));a(79),a(284),a(260),a(78);var n=a(265),r=a.n(n);function u(e,t){var a=new r.a;return e.map((function(e){var n=e;return"string"==typeof e&&(n={label:e,permalink:"/"+t+"/tags/"+a.slug(e)}),function(e,t){if(e.enriched)return e;var a=e.label.split(": ",2),n=a[0],r=a[1],u="primary";switch(n){case"domain":u="blue";break;case"type":u="pink";break;default:u="primary"}return{category:n,count:e.count,enriched:!0,label:e.label,permalink:e.permalink,style:u,value:r}}(n)}))}},263:function(e,t,a){var n=a(24).f,r=Function.prototype,u=/^\s*function ([^ (]*)/;"name"in r||a(10)&&n(r,"name",{configurable:!0,get:function(){try{return(""+this).match(u)[1]}catch(e){return""}}})},265:function(e,t,a){var n=a(274);e.exports=i;var r=Object.hasOwnProperty,u=/\s/g,l=/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~\u2019]/g;function i(){if(!(this instanceof i))return new i;this.reset()}function c(e,t){return"string"!=typeof e?"":(t||(e=e.toLowerCase()),e.trim().replace(l,"").replace(n(),"").replace(u,"-"))}i.prototype.slug=function(e,t){for(var a=c(e,!0===t),n=a;r.call(this.occurrences,a);)this.occurrences[n]++,a=n+"-"+this.occurrences[n];return this.occurrences[a]=0,a},i.prototype.reset=function(){this.occurrences=Object.create(null)},i.slug=c},273:function(e,t,a){"use strict";var n=a(0),r=a.n(n),u=a(254),l=a(252),i=a.n(l);t.a=function(e){var t=e.count,a=e.label,n=e.permalink,l=e.style,c=e.value,o=e.valueOnly;return r.a.createElement(u.a,{to:n+"/",className:i()("badge","badge--rounded","badge--"+l)},o?c:a,t&&r.a.createElement(r.a.Fragment,null," (",t,")"))}},274:function(e,t){e.exports=function(){return/[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267B\u267F\u2692-\u2694\u2696\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD79\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED0\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3]|\uD83E[\uDD10-\uDD18\uDD80-\uDD84\uDDC0]|\uD83C\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uD83C\uDDFE\uD83C[\uDDEA\uDDF9]|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDFC\uD83C[\uDDEB\uDDF8]|\uD83C\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uD83C\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF8\uDDFE\uDDFF]|\uD83C\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uD83C\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uD83C\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uD83C\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uD83C\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uD83C\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uD83C\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uD83C\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uD83C\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uD83C\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uD83C\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uD83C\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uD83C\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uD83C\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uD83C\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uD83C\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|[#\*0-9]\u20E3/g}},278:function(e,t,a){"use strict";a(263),a(260);var n=a(0),r=a.n(n),u=a(252),l=a.n(u),i=a(253);a(137);t.a=function(e){var t,a=e.bio,n=e.className,u=e.github,c=e.nameSuffix,o=e.rel,s=e.size,D=e.subTitle,m=e.vertical,d=Object(i.a)().siteConfig,E=(void 0===d?{}:d).customFields.metadata.team,f=E.find((function(e){return e.github==u}))||E.find((function(e){return"ben"==e.id}));return r.a.createElement("div",{className:l()("avatar",n,(t={},t["avatar--"+s]=s,t["avatar--vertical"]=m,t))},r.a.createElement("img",{className:l()("avatar__photo","avatar__photo--"+s),src:f.avatar}),r.a.createElement("div",{className:"avatar__intro"},r.a.createElement("div",{className:"avatar__name"},r.a.createElement("a",{href:f.github,target:"_blank",rel:o},f.name),c),D&&r.a.createElement("small",{className:"avatar__subtitle"},D),!D&&a&&r.a.createElement("small",{className:"avatar__subtitle",dangerouslySetInnerHTML:{__html:f.bio}})))}},279:function(e,t,a){"use strict";var n=a(1),r=a(0),u=a.n(r),l=(a(254),a(273)),i=a(252),c=a.n(i),o=a(261),s=a(138),D=a.n(s);t.a=function(e){var t,a=e.block,r=e.colorProfile,i=e.tags,s=e.valuesOnly,m=Object(o.a)(i,r);return u.a.createElement("span",{className:c()(D.a.tags,(t={},t[D.a.tagsBlock]=a,t))},m.map((function(e,t){return u.a.createElement(l.a,Object(n.a)({key:t,valueOnly:s},e))})))}},280:function(e,t,a){var n;!function(r){"use strict";var u,l,i,c=(u=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZWN]|"[^"]*"|'[^']*'/g,l=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,i=/[^-+\dA-Z]/g,function(e,t,a,n){if(1!==arguments.length||"string"!==m(e)||/\d/.test(e)||(t=e,e=void 0),(e=e||new Date)instanceof Date||(e=new Date(e)),isNaN(e))throw TypeError("Invalid date");var r=(t=String(c.masks[t]||t||c.masks.default)).slice(0,4);"UTC:"!==r&&"GMT:"!==r||(t=t.slice(4),a=!0,"GMT:"===r&&(n=!0));var d=a?"getUTC":"get",E=e[d+"Date"](),f=e[d+"Day"](),p=e[d+"Month"](),h=e[d+"FullYear"](),g=e[d+"Hours"](),b=e[d+"Minutes"](),v=e[d+"Seconds"](),y=e[d+"Milliseconds"](),F=a?0:e.getTimezoneOffset(),C=s(e),N=D(e),_={d:E,dd:o(E),ddd:c.i18n.dayNames[f],dddd:c.i18n.dayNames[f+7],m:p+1,mm:o(p+1),mmm:c.i18n.monthNames[p],mmmm:c.i18n.monthNames[p+12],yy:String(h).slice(2),yyyy:h,h:g%12||12,hh:o(g%12||12),H:g,HH:o(g),M:b,MM:o(b),s:v,ss:o(v),l:o(y,3),L:o(Math.round(y/10)),t:g<12?c.i18n.timeNames[0]:c.i18n.timeNames[1],tt:g<12?c.i18n.timeNames[2]:c.i18n.timeNames[3],T:g<12?c.i18n.timeNames[4]:c.i18n.timeNames[5],TT:g<12?c.i18n.timeNames[6]:c.i18n.timeNames[7],Z:n?"GMT":a?"UTC":(String(e).match(l)||[""]).pop().replace(i,""),o:(F>0?"-":"+")+o(100*Math.floor(Math.abs(F)/60)+Math.abs(F)%60,4),S:["th","st","nd","rd"][E%10>3?0:(E%100-E%10!=10)*E%10],W:C,N:N};return t.replace(u,(function(e){return e in _?_[e]:e.slice(1,e.length-1)}))});function o(e,t){for(e=String(e),t=t||2;e.length0}))}l&&v.test(l)&&(w=l.match(v)[0].split("title=")[1].replace(/"+/g,"")),Object(r.useEffect)((function(){var e;return O.current&&(e=new i.a(O.current,{target:function(){return _.current}})),function(){e&&e.destroy()}}),[O.current,_.current]);var S=a&&a.replace(/language-/,"");!S&&s.defaultLanguage&&(S=s.defaultLanguage);var x=function(){window.getSelection().empty(),y(!0),setTimeout((function(){return y(!1)}),2e3)};return u.a.createElement(c.a,Object(n.a)({},c.b,{key:C,theme:M,code:t.trim(),language:S}),(function(e){var t,a,r=e.className,l=e.style,i=e.tokens,c=e.getLineProps,o=e.getTokenProps;return u.a.createElement(u.a.Fragment,null,w&&u.a.createElement("div",{style:l,className:g.a.codeBlockTitle},w),u.a.createElement("div",{className:g.a.codeBlockContent},u.a.createElement("button",{ref:O,type:"button","aria-label":"Copy code to clipboard",className:D()(g.a.copyButton,(t={},t[g.a.copyButtonWithTitle]=w,t)),onClick:x},h?"Copied":"Copy"),u.a.createElement("pre",{className:D()(r,g.a.codeBlock,(a={},a[g.a.codeBlockWithTitle]=w,a))},u.a.createElement("div",{ref:_,className:g.a.codeBlockLines,style:l},i.map((function(e,t){1===e.length&&""===e[0].content&&(e[0].content="\n");var a=c({line:e,key:t});return k.includes(t+1)&&(a.className=a.className+" docusaurus-highlight-code-line"),u.a.createElement("div",Object(n.a)({key:t},a),e.map((function(e,t){return u.a.createElement("span",Object(n.a)({key:t},o({token:e,key:t})))})))}))))))}))}}).call(this,a(77))},285:function(e,t,a){"use strict";var n=a(1),r=a(0),u=a.n(r),l=a(254),i=a(283),c=a(264),o=a(141),s=a.n(o);t.a={code:function(e){var t=e.children;return"string"==typeof t?u.a.createElement(i.a,e):t},a:function(e){return/\.[^./]+$/.test(e.href)?u.a.createElement("a",e):u.a.createElement(l.a,e)},pre:function(e){return u.a.createElement("div",Object(n.a)({className:s.a.mdxCodeBlock},e))},h1:Object(c.a)("h1"),h2:Object(c.a)("h2"),h3:Object(c.a)("h3"),h4:Object(c.a)("h4"),h5:Object(c.a)("h5"),h6:Object(c.a)("h6")}},314:function(e,t,a){"use strict";var n=a(0),r=a.n(n),u=a(252),l=a.n(u);t.a=function(e){var t=e.github,a=e.inline,n=e.size,u=e.style,i=l()("panel","panel--button","panel--"+n,"panel--"+u,{"panel--button--inline":a});return r.a.createElement("div",{className:"row row--squished"},r.a.createElement("div",{className:"col"},r.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank",className:i},r.a.createElement("div",{className:"panel--icon"},r.a.createElement("i",{className:"feather icon-twitter",title:"Twitter"})),r.a.createElement("div",null,r.a.createElement("div",{className:"panel--title"},"Follow @panjf2000"),r.a.createElement("div",{className:"panel--description"},"Get real-time updates!")))),0!=t&&r.a.createElement("div",{className:"col"},r.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank",className:i},r.a.createElement("div",{className:"panel--icon"},r.a.createElement("i",{className:"feather icon-github"})),r.a.createElement("div",null,r.a.createElement("div",{className:"panel--title"},"Star panjf2000/gnet"),r.a.createElement("div",{className:"panel--description"},"Star the repo to support us.")))))}},319:function(e,t,a){"use strict";var n=a(0),r=a.n(n),u=["second","minute","hour","day","week","month","year"],l=["\u79d2","\u5206\u949f","\u5c0f\u65f6","\u5929","\u5468","\u4e2a\u6708","\u5e74"],i={},c=function(e,t){i[e]=t},o=function(e){return i[e]||i.en_US},s=[60,60,24,7,365/7/12,12];function D(e){return e instanceof Date?e:!isNaN(e)||/^\d+$/.test(e)?new Date(parseInt(e)):(e=(e||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/(\d)T(\d)/,"$1 $2").replace(/Z/," UTC").replace(/([+-]\d\d):?(\d\d)/," $1$2"),new Date(e))}function m(e,t){for(var a=e<0?1:0,n=e=Math.abs(e),r=0;e>=s[r]&&r(0===(r*=2)?9:1)&&(r+=1),t(e,r,n)[a].replace("%s",e.toString())}function d(e,t){return(+(t?D(t):new Date)-+D(e))/1e3}function E(e){return parseInt(e.getAttribute("timeago-id"))}var f={},p=function(e){clearTimeout(e),delete f[e]};function h(e,t,a,n){p(E(e));var r=n.relativeDate,u=n.minInterval,l=d(t,r);e.innerText=m(l,a);var i=setTimeout((function(){h(e,t,a,n)}),Math.min(1e3*Math.max(function(e){for(var t=1,a=0,n=Math.abs(e);e>=s[a]&&a1&&(a+="s"),[e+" "+a+" ago","in "+e+" "+a]})),c("zh_CN",(function(e,t){if(0===t)return["\u521a\u521a","\u7247\u523b\u540e"];var a=l[~~(t/2)];return[e+" "+a+"\u524d",e+" "+a+"\u540e"]}));var b,v=(b=function(e,t){return(b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])})(e,t)},function(e,t){function a(){this.constructor=e}b(e,t),e.prototype=null===t?Object.create(t):(a.prototype=t.prototype,new a)}),y=function(){return(y=Object.assign||function(e){for(var t,a=1,n=arguments.length;a=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=r.a.createContext({}),s=function(e){var t=r.a.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i({},t,{},e)),a},D=function(e){var t=s(e.components);return r.a.createElement(o.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},d=Object(n.forwardRef)((function(e,t){var a=e.components,n=e.mdxType,u=e.originalType,l=e.parentName,o=c(e,["components","mdxType","originalType","parentName"]),D=s(a),d=n,E=D["".concat(l,".").concat(d)]||D[d]||m[d]||u;return a?r.a.createElement(E,i({ref:t},o,{components:a})):r.a.createElement(E,i({ref:t},o))}));function E(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var u=a.length,l=new Array(u);l[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:n,l[1]=i;for(var o=2;o0&&r.a.createElement("div",{className:"row footer__links"},r.a.createElement("div",{className:"col col--5 footer__col"},r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(D.a,{className:"navbar__logo",src:"/img/logo-light.svg",alt:"gnet",width:"150",height:"auto"})),r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(B,{description:!1,width:"150px"})),r.a.createElement("div",null,r.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank"},r.a.createElement("i",{className:"feather icon-twitter",alt:"gnet's Twitter"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank"},r.a.createElement("i",{className:"feather icon-github",alt:"gnet's Github Repo"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://strikefreedom.top/rss.xml",target:"_blank"},r.a.createElement("i",{className:"feather icon-rss",alt:"gnet's RSS feed"})))),i.map((function(e,t){return r.a.createElement("div",{key:t,className:"col footer__col"},null!=e.title?r.a.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?r.a.createElement("ul",{className:"footer__items"},e.items.map((function(e,t){return e.html?r.a.createElement("li",{key:t,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):r.a.createElement("li",{key:e.href||e.to,className:"footer__item"},r.a.createElement(P,e))}))):null)}))),(o||u)&&r.a.createElement("div",{className:"text--center"},o&&o.src&&r.a.createElement("div",{className:"margin-bottom--sm"},o.href?r.a.createElement("a",{href:o.href,target:"_blank",rel:"noopener noreferrer",className:x.a.footerLogoLink},r.a.createElement(L,{alt:o.alt,url:s})):r.a.createElement(L,{alt:o.alt,url:s}),r.a.createElement("br",null),r.a.createElement("a",{href:"https://www.digitalocean.com/",target:"_blank",rel:"noopener noreferrer",className:x.a.footerLogoLink},r.a.createElement("img",{alt:"DigitalOcean",src:"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg",width:"201px"}))),u,r.a.createElement("br",null),r.a.createElement("small",null,r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/security/policy"},"Security Policy"),"\xa0\u2022\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/blob/master/PRIVACY.md"},"Privacy Policy"))))):null},I=a(276),U=a(277),W=a(3);a(135);t.a=function(e){var t=Object(E.a)().siteConfig,a=void 0===t?{}:t,n=a.favicon,i=(a.tagline,a.title),c=a.themeConfig.image,o=a.url,s=e.children,D=e.title,m=e.noFooter,d=e.description,f=e.image,p=e.keywords,h=(e.permalink,e.version),g=D?D+" | "+i:i,b=f||c,v=o+Object(C.a)(b),y=Object(C.a)(n),F=Object(W.h)(),N=F?"https://gnet.host"+(F.pathname.endsWith("/")?F.pathname:F.pathname+"/"):null;return r.a.createElement(U.a,null,r.a.createElement(I.a,null,r.a.createElement(l.a,null,r.a.createElement("html",{lang:"en"}),r.a.createElement("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),g&&r.a.createElement("title",null,g),g&&r.a.createElement("meta",{property:"og:title",content:g}),n&&r.a.createElement("link",{rel:"shortcut icon",href:y}),d&&r.a.createElement("meta",{name:"description",content:d}),d&&r.a.createElement("meta",{property:"og:description",content:d}),h&&r.a.createElement("meta",{name:"docsearch:version",content:h}),p&&p.length&&r.a.createElement("meta",{name:"keywords",content:p.join(",")}),b&&r.a.createElement("meta",{property:"og:image",content:v}),b&&r.a.createElement("meta",{property:"twitter:image",content:v}),b&&r.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+g}),b&&r.a.createElement("meta",{name:"twitter:site",content:"@vectordotdev"}),b&&r.a.createElement("meta",{name:"twitter:creator",content:"@vectordotdev"}),N&&r.a.createElement("meta",{property:"og:url",content:N}),r.a.createElement("meta",{name:"twitter:card",content:"summary"}),N&&r.a.createElement("link",{rel:"canonical",href:N})),r.a.createElement(u.a,null),r.a.createElement(A,null),r.a.createElement("div",{className:"main-wrapper"},s),!m&&r.a.createElement(H,null)))}},261:function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));a(79),a(284),a(260),a(78);var n=a(265),r=a.n(n);function u(e,t){var a=new r.a;return e.map((function(e){var n=e;return"string"==typeof e&&(n={label:e,permalink:"/"+t+"/tags/"+a.slug(e)}),function(e,t){if(e.enriched)return e;var a=e.label.split(": ",2),n=a[0],r=a[1],u="primary";switch(n){case"domain":u="blue";break;case"type":u="pink";break;default:u="primary"}return{category:n,count:e.count,enriched:!0,label:e.label,permalink:e.permalink,style:u,value:r}}(n)}))}},263:function(e,t,a){var n=a(24).f,r=Function.prototype,u=/^\s*function ([^ (]*)/;"name"in r||a(10)&&n(r,"name",{configurable:!0,get:function(){try{return(""+this).match(u)[1]}catch(e){return""}}})},265:function(e,t,a){var n=a(274);e.exports=i;var r=Object.hasOwnProperty,u=/\s/g,l=/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~\u2019]/g;function i(){if(!(this instanceof i))return new i;this.reset()}function c(e,t){return"string"!=typeof e?"":(t||(e=e.toLowerCase()),e.trim().replace(l,"").replace(n(),"").replace(u,"-"))}i.prototype.slug=function(e,t){for(var a=c(e,!0===t),n=a;r.call(this.occurrences,a);)this.occurrences[n]++,a=n+"-"+this.occurrences[n];return this.occurrences[a]=0,a},i.prototype.reset=function(){this.occurrences=Object.create(null)},i.slug=c},273:function(e,t,a){"use strict";var n=a(0),r=a.n(n),u=a(254),l=a(252),i=a.n(l);t.a=function(e){var t=e.count,a=e.label,n=e.permalink,l=e.style,c=e.value,o=e.valueOnly;return r.a.createElement(u.a,{to:n+"/",className:i()("badge","badge--rounded","badge--"+l)},o?c:a,t&&r.a.createElement(r.a.Fragment,null," (",t,")"))}},274:function(e,t){e.exports=function(){return/[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267B\u267F\u2692-\u2694\u2696\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD79\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED0\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3]|\uD83E[\uDD10-\uDD18\uDD80-\uDD84\uDDC0]|\uD83C\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uD83C\uDDFE\uD83C[\uDDEA\uDDF9]|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDFC\uD83C[\uDDEB\uDDF8]|\uD83C\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uD83C\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF8\uDDFE\uDDFF]|\uD83C\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uD83C\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uD83C\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uD83C\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uD83C\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uD83C\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uD83C\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uD83C\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uD83C\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uD83C\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uD83C\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uD83C\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uD83C\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uD83C\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uD83C\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uD83C\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|[#\*0-9]\u20E3/g}},278:function(e,t,a){"use strict";a(263),a(260);var n=a(0),r=a.n(n),u=a(252),l=a.n(u),i=a(253);a(137);t.a=function(e){var t,a=e.bio,n=e.className,u=e.github,c=e.nameSuffix,o=e.rel,s=e.size,D=e.subTitle,m=e.vertical,d=Object(i.a)().siteConfig,E=(void 0===d?{}:d).customFields.metadata.team,f=E.find((function(e){return e.github==u}))||E.find((function(e){return"ben"==e.id}));return r.a.createElement("div",{className:l()("avatar",n,(t={},t["avatar--"+s]=s,t["avatar--vertical"]=m,t))},r.a.createElement("img",{className:l()("avatar__photo","avatar__photo--"+s),src:f.avatar}),r.a.createElement("div",{className:"avatar__intro"},r.a.createElement("div",{className:"avatar__name"},r.a.createElement("a",{href:f.github,target:"_blank",rel:o},f.name),c),D&&r.a.createElement("small",{className:"avatar__subtitle"},D),!D&&a&&r.a.createElement("small",{className:"avatar__subtitle",dangerouslySetInnerHTML:{__html:f.bio}})))}},279:function(e,t,a){"use strict";var n=a(1),r=a(0),u=a.n(r),l=(a(254),a(273)),i=a(252),c=a.n(i),o=a(261),s=a(138),D=a.n(s);t.a=function(e){var t,a=e.block,r=e.colorProfile,i=e.tags,s=e.valuesOnly,m=Object(o.a)(i,r);return u.a.createElement("span",{className:c()(D.a.tags,(t={},t[D.a.tagsBlock]=a,t))},m.map((function(e,t){return u.a.createElement(l.a,Object(n.a)({key:t,valueOnly:s},e))})))}},280:function(e,t,a){var n;!function(r){"use strict";var u,l,i,c=(u=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZWN]|"[^"]*"|'[^']*'/g,l=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,i=/[^-+\dA-Z]/g,function(e,t,a,n){if(1!==arguments.length||"string"!==m(e)||/\d/.test(e)||(t=e,e=void 0),(e=e||new Date)instanceof Date||(e=new Date(e)),isNaN(e))throw TypeError("Invalid date");var r=(t=String(c.masks[t]||t||c.masks.default)).slice(0,4);"UTC:"!==r&&"GMT:"!==r||(t=t.slice(4),a=!0,"GMT:"===r&&(n=!0));var d=a?"getUTC":"get",E=e[d+"Date"](),f=e[d+"Day"](),p=e[d+"Month"](),h=e[d+"FullYear"](),g=e[d+"Hours"](),b=e[d+"Minutes"](),v=e[d+"Seconds"](),y=e[d+"Milliseconds"](),F=a?0:e.getTimezoneOffset(),C=s(e),N=D(e),_={d:E,dd:o(E),ddd:c.i18n.dayNames[f],dddd:c.i18n.dayNames[f+7],m:p+1,mm:o(p+1),mmm:c.i18n.monthNames[p],mmmm:c.i18n.monthNames[p+12],yy:String(h).slice(2),yyyy:h,h:g%12||12,hh:o(g%12||12),H:g,HH:o(g),M:b,MM:o(b),s:v,ss:o(v),l:o(y,3),L:o(Math.round(y/10)),t:g<12?c.i18n.timeNames[0]:c.i18n.timeNames[1],tt:g<12?c.i18n.timeNames[2]:c.i18n.timeNames[3],T:g<12?c.i18n.timeNames[4]:c.i18n.timeNames[5],TT:g<12?c.i18n.timeNames[6]:c.i18n.timeNames[7],Z:n?"GMT":a?"UTC":(String(e).match(l)||[""]).pop().replace(i,""),o:(F>0?"-":"+")+o(100*Math.floor(Math.abs(F)/60)+Math.abs(F)%60,4),S:["th","st","nd","rd"][E%10>3?0:(E%100-E%10!=10)*E%10],W:C,N:N};return t.replace(u,(function(e){return e in _?_[e]:e.slice(1,e.length-1)}))});function o(e,t){for(e=String(e),t=t||2;e.length0}))}l&&v.test(l)&&(w=l.match(v)[0].split("title=")[1].replace(/"+/g,"")),Object(r.useEffect)((function(){var e;return O.current&&(e=new i.a(O.current,{target:function(){return _.current}})),function(){e&&e.destroy()}}),[O.current,_.current]);var S=a&&a.replace(/language-/,"");!S&&s.defaultLanguage&&(S=s.defaultLanguage);var x=function(){window.getSelection().empty(),y(!0),setTimeout((function(){return y(!1)}),2e3)};return u.a.createElement(c.a,Object(n.a)({},c.b,{key:C,theme:M,code:t.trim(),language:S}),(function(e){var t,a,r=e.className,l=e.style,i=e.tokens,c=e.getLineProps,o=e.getTokenProps;return u.a.createElement(u.a.Fragment,null,w&&u.a.createElement("div",{style:l,className:g.a.codeBlockTitle},w),u.a.createElement("div",{className:g.a.codeBlockContent},u.a.createElement("button",{ref:O,type:"button","aria-label":"Copy code to clipboard",className:D()(g.a.copyButton,(t={},t[g.a.copyButtonWithTitle]=w,t)),onClick:x},h?"Copied":"Copy"),u.a.createElement("pre",{className:D()(r,g.a.codeBlock,(a={},a[g.a.codeBlockWithTitle]=w,a))},u.a.createElement("div",{ref:_,className:g.a.codeBlockLines,style:l},i.map((function(e,t){1===e.length&&""===e[0].content&&(e[0].content="\n");var a=c({line:e,key:t});return k.includes(t+1)&&(a.className=a.className+" docusaurus-highlight-code-line"),u.a.createElement("div",Object(n.a)({key:t},a),e.map((function(e,t){return u.a.createElement("span",Object(n.a)({key:t},o({token:e,key:t})))})))}))))))}))}}).call(this,a(77))},285:function(e,t,a){"use strict";var n=a(1),r=a(0),u=a.n(r),l=a(254),i=a(283),c=a(264),o=a(141),s=a.n(o);t.a={code:function(e){var t=e.children;return"string"==typeof t?u.a.createElement(i.a,e):t},a:function(e){return/\.[^./]+$/.test(e.href)?u.a.createElement("a",e):u.a.createElement(l.a,e)},pre:function(e){return u.a.createElement("div",Object(n.a)({className:s.a.mdxCodeBlock},e))},h1:Object(c.a)("h1"),h2:Object(c.a)("h2"),h3:Object(c.a)("h3"),h4:Object(c.a)("h4"),h5:Object(c.a)("h5"),h6:Object(c.a)("h6")}},314:function(e,t,a){"use strict";var n=a(0),r=a.n(n),u=a(252),l=a.n(u);t.a=function(e){var t=e.github,a=e.inline,n=e.size,u=e.style,i=l()("panel","panel--button","panel--"+n,"panel--"+u,{"panel--button--inline":a});return r.a.createElement("div",{className:"row row--squished"},r.a.createElement("div",{className:"col"},r.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank",className:i},r.a.createElement("div",{className:"panel--icon"},r.a.createElement("i",{className:"feather icon-twitter",title:"Twitter"})),r.a.createElement("div",null,r.a.createElement("div",{className:"panel--title"},"Follow @panjf2000"),r.a.createElement("div",{className:"panel--description"},"Get real-time updates!")))),0!=t&&r.a.createElement("div",{className:"col"},r.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank",className:i},r.a.createElement("div",{className:"panel--icon"},r.a.createElement("i",{className:"feather icon-github"})),r.a.createElement("div",null,r.a.createElement("div",{className:"panel--title"},"Star panjf2000/gnet"),r.a.createElement("div",{className:"panel--description"},"Star the repo to support us.")))))}},319:function(e,t,a){"use strict";var n=a(0),r=a.n(n),u=["second","minute","hour","day","week","month","year"],l=["\u79d2","\u5206\u949f","\u5c0f\u65f6","\u5929","\u5468","\u4e2a\u6708","\u5e74"],i={},c=function(e,t){i[e]=t},o=function(e){return i[e]||i.en_US},s=[60,60,24,7,365/7/12,12];function D(e){return e instanceof Date?e:!isNaN(e)||/^\d+$/.test(e)?new Date(parseInt(e)):(e=(e||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/(\d)T(\d)/,"$1 $2").replace(/Z/," UTC").replace(/([+-]\d\d):?(\d\d)/," $1$2"),new Date(e))}function m(e,t){for(var a=e<0?1:0,n=e=Math.abs(e),r=0;e>=s[r]&&r(0===(r*=2)?9:1)&&(r+=1),t(e,r,n)[a].replace("%s",e.toString())}function d(e,t){return(+(t?D(t):new Date)-+D(e))/1e3}function E(e){return parseInt(e.getAttribute("timeago-id"))}var f={},p=function(e){clearTimeout(e),delete f[e]};function h(e,t,a,n){p(E(e));var r=n.relativeDate,u=n.minInterval,l=d(t,r);e.innerText=m(l,a);var i=setTimeout((function(){h(e,t,a,n)}),Math.min(1e3*Math.max(function(e){for(var t=1,a=0,n=Math.abs(e);e>=s[a]&&a1&&(a+="s"),[e+" "+a+" ago","in "+e+" "+a]})),c("zh_CN",(function(e,t){if(0===t)return["\u521a\u521a","\u7247\u523b\u540e"];var a=l[~~(t/2)];return[e+" "+a+"\u524d",e+" "+a+"\u540e"]}));var b,v=(b=function(e,t){return(b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])})(e,t)},function(e,t){function a(){this.constructor=e}b(e,t),e.prototype=null===t?Object.create(t):(a.prototype=t.prototype,new a)}),y=function(){return(y=Object.assign||function(e){for(var t,a=1,n=arguments.length;a0&&r.a.createElement("div",{className:"row footer__links"},r.a.createElement("div",{className:"col col--5 footer__col"},r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(d.a,{className:"navbar__logo",src:"/img/logo-light.svg",alt:"gnet",width:"150",height:"auto"})),r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(L,{description:!1,width:"150px"})),r.a.createElement("div",null,r.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank"},r.a.createElement("i",{className:"feather icon-twitter",alt:"gnet's Twitter"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank"},r.a.createElement("i",{className:"feather icon-github",alt:"gnet's Github Repo"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://strikefreedom.top/rss.xml",target:"_blank"},r.a.createElement("i",{className:"feather icon-rss",alt:"gnet's RSS feed"})))),i.map((function(e,a){return r.a.createElement("div",{key:a,className:"col footer__col"},null!=e.title?r.a.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?r.a.createElement("ul",{className:"footer__items"},e.items.map((function(e,a){return e.html?r.a.createElement("li",{key:a,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):r.a.createElement("li",{key:e.href||e.to,className:"footer__item"},r.a.createElement(P,e))}))):null)}))),(m||l)&&r.a.createElement("div",{className:"text--center"},m&&m.src&&r.a.createElement("div",{className:"margin-bottom--sm"},m.href?r.a.createElement("a",{href:m.href,target:"_blank",rel:"noopener noreferrer",className:A.a.footerLogoLink},r.a.createElement(F,{alt:m.alt,url:s})):r.a.createElement(F,{alt:m.alt,url:s}),r.a.createElement("br",null),r.a.createElement("a",{href:"https://www.digitalocean.com/",target:"_blank",rel:"noopener noreferrer",className:A.a.footerLogoLink},r.a.createElement("img",{alt:"DigitalOcean",src:"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg",width:"201px"}))),l,r.a.createElement("br",null),r.a.createElement("small",null,r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/security/policy"},"Security Policy"),"\xa0\u2022\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/blob/master/PRIVACY.md"},"Privacy Policy"))))):null},V=t(276),H=t(277),J=t(3);t(135);a.a=function(e){var a=Object(g.a)().siteConfig,t=void 0===a?{}:a,n=t.favicon,i=(t.tagline,t.title),o=t.themeConfig.image,m=t.url,s=e.children,d=e.title,u=e.noFooter,h=e.description,b=e.image,E=e.keywords,v=(e.permalink,e.version),f=d?d+" | "+i:i,p=b||o,N=m+Object(w.a)(p),_=Object(w.a)(n),k=Object(J.h)(),y=k?"https://gnet.host"+(k.pathname.endsWith("/")?k.pathname:k.pathname+"/"):null;return r.a.createElement(H.a,null,r.a.createElement(V.a,null,r.a.createElement(c.a,null,r.a.createElement("html",{lang:"en"}),r.a.createElement("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),f&&r.a.createElement("title",null,f),f&&r.a.createElement("meta",{property:"og:title",content:f}),n&&r.a.createElement("link",{rel:"shortcut icon",href:_}),h&&r.a.createElement("meta",{name:"description",content:h}),h&&r.a.createElement("meta",{property:"og:description",content:h}),v&&r.a.createElement("meta",{name:"docsearch:version",content:v}),E&&E.length&&r.a.createElement("meta",{name:"keywords",content:E.join(",")}),p&&r.a.createElement("meta",{property:"og:image",content:N}),p&&r.a.createElement("meta",{property:"twitter:image",content:N}),p&&r.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+f}),p&&r.a.createElement("meta",{name:"twitter:site",content:"@vectordotdev"}),p&&r.a.createElement("meta",{name:"twitter:creator",content:"@vectordotdev"}),y&&r.a.createElement("meta",{property:"og:url",content:y}),r.a.createElement("meta",{name:"twitter:card",content:"summary"}),y&&r.a.createElement("link",{rel:"canonical",href:y})),r.a.createElement(l.a,null),r.a.createElement(S,null),r.a.createElement("div",{className:"main-wrapper"},s),!u&&r.a.createElement(B,null)))}},263:function(e,a,t){var n=t(24).f,r=Function.prototype,l=/^\s*function ([^ (]*)/;"name"in r||t(10)&&n(r,"name",{configurable:!0,get:function(){try{return(""+this).match(l)[1]}catch(e){return""}}})},264:function(e,a,t){"use strict";var n=t(9),r=t(0),l=t.n(r),c=t(252),i=t.n(c),o=t(253),m=(t(139),t(140)),s=t.n(m);a.a=function(e){return function(a){var t,r=a.id,c=Object(n.a)(a,["id"]),m=Object(o.a)().siteConfig,d=(m=void 0===m?{}:m).themeConfig,u=(d=void 0===d?{}:d).navbar,h=(u=void 0===u?{}:u).hideOnScroll,g=void 0!==h&&h;return r?l.a.createElement(e,c,l.a.createElement("a",{"aria-hidden":"true",tabIndex:"-1",className:i()("anchor",(t={},t[s.a.enhancedAnchor]=!g,t)),id:r}),l.a.createElement("a",{"aria-hidden":"true",tabIndex:"-1",className:"hash-link",href:"#"+r,title:"Direct link to heading"},"#"),c.children):l.a.createElement(e,c)}}}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[38],{182:function(e,a,t){"use strict";t.r(a);t(263);var n=t(0),r=t.n(n),l=t(264),c=t(259),i=t(254),o=t(143),m=t.n(o),s=t(253),d=Object(l.a)("h2");Object(l.a)("h3");a.default=function(){var e=Object(s.a)().siteConfig,a=(void 0===e?{}:e).customFields.metadata.team;return r.a.createElement(c.a,{title:"Community",description:"Join the gnet community. Connect with other gnet users and help make gnet better."},r.a.createElement("header",{className:"hero hero--clean"},r.a.createElement("div",{className:"container container--fluid"},r.a.createElement("h1",null,"gnet Community"),r.a.createElement("div",{className:"hero--subtitle"},"Join the gnet community. Connect with other gnet users and help make gnet better."))),r.a.createElement("main",null,r.a.createElement("section",null,r.a.createElement("div",{className:"container"},r.a.createElement("div",{className:"row"},r.a.createElement("div",{className:"col"},r.a.createElement("a",{href:"https://discord.gg/UyKD7NZcfH",target:"_blank",className:"panel panel--button"},r.a.createElement("div",{className:"panel--icon"},r.a.createElement("i",{className:"feather icon-message-circle"})),r.a.createElement("div",{className:"panel--title"},"Chat"),r.a.createElement("div",{className:"panel--description"},"Ask questions and get help"))),r.a.createElement("div",{className:"col"},r.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank",className:"panel panel--button"},r.a.createElement("div",{className:"panel--icon"},r.a.createElement("i",{className:"feather icon-twitter",title:"Twitter"})),r.a.createElement("div",{className:"panel--title"},"@panjf2000"),r.a.createElement("div",{className:"panel--description"},"Follow me in real-time"))),r.a.createElement("div",{className:"col"},r.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank",className:"panel panel--button"},r.a.createElement("div",{className:"panel--icon"},r.a.createElement("i",{className:"feather icon-github"})),r.a.createElement("div",{className:"panel--title"},"Github panjf2000/gnet"),r.a.createElement("div",{className:"panel--description"},"Code, issues, and pull requests")))))),r.a.createElement("section",null,r.a.createElement("div",{className:"container"},r.a.createElement(d,{id:"team"},"Meet The Team"),r.a.createElement("div",{className:"sub-title"},"Andy Pan is the creator of gnet and the only core contributor at present, hoping more developers will join me in the future."),r.a.createElement("div",{className:m.a.coreTeam},a.map((function(e,a){return r.a.createElement(i.a,{key:a,to:e.github,className:"avatar avatar--vertical"},r.a.createElement("img",{className:"avatar__photo avatar__photo--xl",src:e.avatar}),r.a.createElement("div",{className:"avatar__intro"},r.a.createElement("h4",{className:"avatar__name"},e.name)))})))))))}},258:function(e,a,t){"use strict";t.d(a,"a",(function(){return r})),t.d(a,"b",(function(){return l}));var n=t(253);function r(){var e=Object(n.a)().siteConfig,a=(void 0===e?{}:e).customFields.metadata.latest_highlight,t=Date.parse(a.date),r=new Date,l=Math.abs(r-t),c=Math.ceil(l/864e5),i=null;return"undefined"!=typeof window&&(i=new Date(parseInt(window.localStorage.getItem("highlightsViewedAt")||"0"))),c<30&&(!i||i0&&r.a.createElement("div",{className:"row footer__links"},r.a.createElement("div",{className:"col col--5 footer__col"},r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(d.a,{className:"navbar__logo",src:"/img/logo-light.svg",alt:"gnet",width:"150",height:"auto"})),r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(L,{description:!1,width:"150px"})),r.a.createElement("div",null,r.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank"},r.a.createElement("i",{className:"feather icon-twitter",alt:"gnet's Twitter"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank"},r.a.createElement("i",{className:"feather icon-github",alt:"gnet's Github Repo"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://strikefreedom.top/rss.xml",target:"_blank"},r.a.createElement("i",{className:"feather icon-rss",alt:"gnet's RSS feed"})))),i.map((function(e,a){return r.a.createElement("div",{key:a,className:"col footer__col"},null!=e.title?r.a.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?r.a.createElement("ul",{className:"footer__items"},e.items.map((function(e,a){return e.html?r.a.createElement("li",{key:a,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):r.a.createElement("li",{key:e.href||e.to,className:"footer__item"},r.a.createElement(P,e))}))):null)}))),(m||l)&&r.a.createElement("div",{className:"text--center"},m&&m.src&&r.a.createElement("div",{className:"margin-bottom--sm"},m.href?r.a.createElement("a",{href:m.href,target:"_blank",rel:"noopener noreferrer",className:A.a.footerLogoLink},r.a.createElement(F,{alt:m.alt,url:s})):r.a.createElement(F,{alt:m.alt,url:s}),r.a.createElement("br",null),r.a.createElement("a",{href:"https://www.digitalocean.com/",target:"_blank",rel:"noopener noreferrer",className:A.a.footerLogoLink},r.a.createElement("img",{alt:"DigitalOcean",src:"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg",width:"201px"}))),l,r.a.createElement("br",null),r.a.createElement("small",null,r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/security/policy"},"Security Policy"),"\xa0\u2022\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/blob/master/PRIVACY.md"},"Privacy Policy"))))):null},V=t(276),H=t(277),J=t(3);t(135);a.a=function(e){var a=Object(g.a)().siteConfig,t=void 0===a?{}:a,n=t.favicon,i=(t.tagline,t.title),o=t.themeConfig.image,m=t.url,s=e.children,d=e.title,u=e.noFooter,h=e.description,b=e.image,E=e.keywords,v=(e.permalink,e.version),f=d?d+" | "+i:i,p=b||o,N=m+Object(w.a)(p),_=Object(w.a)(n),k=Object(J.h)(),y=k?"https://gnet.host"+(k.pathname.endsWith("/")?k.pathname:k.pathname+"/"):null;return r.a.createElement(H.a,null,r.a.createElement(V.a,null,r.a.createElement(c.a,null,r.a.createElement("html",{lang:"en"}),r.a.createElement("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),f&&r.a.createElement("title",null,f),f&&r.a.createElement("meta",{property:"og:title",content:f}),n&&r.a.createElement("link",{rel:"shortcut icon",href:_}),h&&r.a.createElement("meta",{name:"description",content:h}),h&&r.a.createElement("meta",{property:"og:description",content:h}),v&&r.a.createElement("meta",{name:"docsearch:version",content:v}),E&&E.length&&r.a.createElement("meta",{name:"keywords",content:E.join(",")}),p&&r.a.createElement("meta",{property:"og:image",content:N}),p&&r.a.createElement("meta",{property:"twitter:image",content:N}),p&&r.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+f}),p&&r.a.createElement("meta",{name:"twitter:site",content:"@vectordotdev"}),p&&r.a.createElement("meta",{name:"twitter:creator",content:"@vectordotdev"}),y&&r.a.createElement("meta",{property:"og:url",content:y}),r.a.createElement("meta",{name:"twitter:card",content:"summary"}),y&&r.a.createElement("link",{rel:"canonical",href:y})),r.a.createElement(l.a,null),r.a.createElement(S,null),r.a.createElement("div",{className:"main-wrapper"},s),!u&&r.a.createElement(B,null)))}},263:function(e,a,t){var n=t(24).f,r=Function.prototype,l=/^\s*function ([^ (]*)/;"name"in r||t(10)&&n(r,"name",{configurable:!0,get:function(){try{return(""+this).match(l)[1]}catch(e){return""}}})},264:function(e,a,t){"use strict";var n=t(9),r=t(0),l=t.n(r),c=t(252),i=t.n(c),o=t(253),m=(t(139),t(140)),s=t.n(m);a.a=function(e){return function(a){var t,r=a.id,c=Object(n.a)(a,["id"]),m=Object(o.a)().siteConfig,d=(m=void 0===m?{}:m).themeConfig,u=(d=void 0===d?{}:d).navbar,h=(u=void 0===u?{}:u).hideOnScroll,g=void 0!==h&&h;return r?l.a.createElement(e,c,l.a.createElement("a",{"aria-hidden":"true",tabIndex:"-1",className:i()("anchor",(t={},t[s.a.enhancedAnchor]=!g,t)),id:r}),l.a.createElement("a",{"aria-hidden":"true",tabIndex:"-1",className:"hash-link",href:"#"+r,title:"Direct link to heading"},"#"),c.children):l.a.createElement(e,c)}}}}]); \ No newline at end of file diff --git a/6875c492.48e3e0be.js b/6875c492.0225c621.js similarity index 99% rename from 6875c492.48e3e0be.js rename to 6875c492.0225c621.js index cffec666e..128539cb6 100644 --- a/6875c492.48e3e0be.js +++ b/6875c492.0225c621.js @@ -1,2 +1,2 @@ -/*! For license information please see 6875c492.48e3e0be.js.LICENSE.txt */ -(window.webpackJsonp=window.webpackJsonp||[]).push([[40],{184:function(e,t,a){"use strict";a.r(t);a(263);var n=a(0),r=a.n(n),u=a(259),l=a(315),c=a(254);t.default=function(e){var t=e.metadata,a=e.items,n=t.allTagsPath,i=t.name,o=t.count;return r.a.createElement(u.a,{title:'Posts tagged "'+i+'"',description:'Blog | Tagged "'+i+'"'},r.a.createElement("div",{className:"container margin-vert--lg"},r.a.createElement("div",{className:"row"},r.a.createElement("div",{className:"col col--8 col--offset-2"},r.a.createElement("h1",null,o," ",function(e,t){return e>1?t+"s":t}(o,"post"),' tagged with "',i,'"'),r.a.createElement(c.a,{href:n},"View All Tags"),r.a.createElement("div",{className:"margin-vert--xl"},a.map((function(e){var t=e.content;return r.a.createElement(l.a,{key:t.metadata.permalink,frontMatter:t.frontMatter,metadata:t.metadata,truncated:!0},r.a.createElement(t,null))})))))))}},251:function(e,t,a){"use strict";a.d(t,"a",(function(){return s})),a.d(t,"b",(function(){return E}));var n=a(0),r=a.n(n);function u(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function c(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=r.a.createContext({}),D=function(e){var t=r.a.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):c({},t,{},e)),a},s=function(e){var t=D(e.components);return r.a.createElement(o.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},d=Object(n.forwardRef)((function(e,t){var a=e.components,n=e.mdxType,u=e.originalType,l=e.parentName,o=i(e,["components","mdxType","originalType","parentName"]),s=D(a),d=n,E=s["".concat(l,".").concat(d)]||s[d]||m[d]||u;return a?r.a.createElement(E,c({ref:t},o,{components:a})):r.a.createElement(E,c({ref:t},o))}));function E(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var u=a.length,l=new Array(u);l[0]=d;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c.mdxType="string"==typeof e?e:n,l[1]=c;for(var o=2;o0&&r.a.createElement("div",{className:"row footer__links"},r.a.createElement("div",{className:"col col--5 footer__col"},r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(s.a,{className:"navbar__logo",src:"/img/logo-light.svg",alt:"gnet",width:"150",height:"auto"})),r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(B,{description:!1,width:"150px"})),r.a.createElement("div",null,r.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank"},r.a.createElement("i",{className:"feather icon-twitter",alt:"gnet's Twitter"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank"},r.a.createElement("i",{className:"feather icon-github",alt:"gnet's Github Repo"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://strikefreedom.top/rss.xml",target:"_blank"},r.a.createElement("i",{className:"feather icon-rss",alt:"gnet's RSS feed"})))),c.map((function(e,t){return r.a.createElement("div",{key:t,className:"col footer__col"},null!=e.title?r.a.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?r.a.createElement("ul",{className:"footer__items"},e.items.map((function(e,t){return e.html?r.a.createElement("li",{key:t,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):r.a.createElement("li",{key:e.href||e.to,className:"footer__item"},r.a.createElement(P,e))}))):null)}))),(o||u)&&r.a.createElement("div",{className:"text--center"},o&&o.src&&r.a.createElement("div",{className:"margin-bottom--sm"},o.href?r.a.createElement("a",{href:o.href,target:"_blank",rel:"noopener noreferrer",className:x.a.footerLogoLink},r.a.createElement(H,{alt:o.alt,url:D})):r.a.createElement(H,{alt:o.alt,url:D}),r.a.createElement("br",null),r.a.createElement("a",{href:"https://www.digitalocean.com/",target:"_blank",rel:"noopener noreferrer",className:x.a.footerLogoLink},r.a.createElement("img",{alt:"DigitalOcean",src:"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg",width:"201px"}))),u,r.a.createElement("br",null),r.a.createElement("small",null,r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/security/policy"},"Security Policy"),"\xa0\u2022\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/blob/master/PRIVACY.md"},"Privacy Policy"))))):null},I=a(276),R=a(277),J=a(3);a(135);t.a=function(e){var t=Object(E.a)().siteConfig,a=void 0===t?{}:t,n=a.favicon,c=(a.tagline,a.title),i=a.themeConfig.image,o=a.url,D=e.children,s=e.title,m=e.noFooter,d=e.description,f=e.image,g=e.keywords,b=(e.permalink,e.version),h=s?s+" | "+c:c,p=f||i,v=o+Object(C.a)(p),F=Object(C.a)(n),y=Object(J.h)(),N=y?"https://gnet.host"+(y.pathname.endsWith("/")?y.pathname:y.pathname+"/"):null;return r.a.createElement(R.a,null,r.a.createElement(I.a,null,r.a.createElement(l.a,null,r.a.createElement("html",{lang:"en"}),r.a.createElement("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),h&&r.a.createElement("title",null,h),h&&r.a.createElement("meta",{property:"og:title",content:h}),n&&r.a.createElement("link",{rel:"shortcut icon",href:F}),d&&r.a.createElement("meta",{name:"description",content:d}),d&&r.a.createElement("meta",{property:"og:description",content:d}),b&&r.a.createElement("meta",{name:"docsearch:version",content:b}),g&&g.length&&r.a.createElement("meta",{name:"keywords",content:g.join(",")}),p&&r.a.createElement("meta",{property:"og:image",content:v}),p&&r.a.createElement("meta",{property:"twitter:image",content:v}),p&&r.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+h}),p&&r.a.createElement("meta",{name:"twitter:site",content:"@vectordotdev"}),p&&r.a.createElement("meta",{name:"twitter:creator",content:"@vectordotdev"}),N&&r.a.createElement("meta",{property:"og:url",content:N}),r.a.createElement("meta",{name:"twitter:card",content:"summary"}),N&&r.a.createElement("link",{rel:"canonical",href:N})),r.a.createElement(u.a,null),r.a.createElement(A,null),r.a.createElement("div",{className:"main-wrapper"},D),!m&&r.a.createElement(L,null)))}},261:function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));a(79),a(284),a(260),a(78);var n=a(265),r=a.n(n);function u(e,t){var a=new r.a;return e.map((function(e){var n=e;return"string"==typeof e&&(n={label:e,permalink:"/"+t+"/tags/"+a.slug(e)}),function(e,t){if(e.enriched)return e;var a=e.label.split(": ",2),n=a[0],r=a[1],u="primary";switch(n){case"domain":u="blue";break;case"type":u="pink";break;default:u="primary"}return{category:n,count:e.count,enriched:!0,label:e.label,permalink:e.permalink,style:u,value:r}}(n)}))}},263:function(e,t,a){var n=a(24).f,r=Function.prototype,u=/^\s*function ([^ (]*)/;"name"in r||a(10)&&n(r,"name",{configurable:!0,get:function(){try{return(""+this).match(u)[1]}catch(e){return""}}})},265:function(e,t,a){var n=a(274);e.exports=c;var r=Object.hasOwnProperty,u=/\s/g,l=/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~\u2019]/g;function c(){if(!(this instanceof c))return new c;this.reset()}function i(e,t){return"string"!=typeof e?"":(t||(e=e.toLowerCase()),e.trim().replace(l,"").replace(n(),"").replace(u,"-"))}c.prototype.slug=function(e,t){for(var a=i(e,!0===t),n=a;r.call(this.occurrences,a);)this.occurrences[n]++,a=n+"-"+this.occurrences[n];return this.occurrences[a]=0,a},c.prototype.reset=function(){this.occurrences=Object.create(null)},c.slug=i},273:function(e,t,a){"use strict";var n=a(0),r=a.n(n),u=a(254),l=a(252),c=a.n(l);t.a=function(e){var t=e.count,a=e.label,n=e.permalink,l=e.style,i=e.value,o=e.valueOnly;return r.a.createElement(u.a,{to:n+"/",className:c()("badge","badge--rounded","badge--"+l)},o?i:a,t&&r.a.createElement(r.a.Fragment,null," (",t,")"))}},274:function(e,t){e.exports=function(){return/[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267B\u267F\u2692-\u2694\u2696\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD79\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED0\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3]|\uD83E[\uDD10-\uDD18\uDD80-\uDD84\uDDC0]|\uD83C\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uD83C\uDDFE\uD83C[\uDDEA\uDDF9]|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDFC\uD83C[\uDDEB\uDDF8]|\uD83C\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uD83C\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF8\uDDFE\uDDFF]|\uD83C\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uD83C\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uD83C\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uD83C\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uD83C\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uD83C\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uD83C\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uD83C\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uD83C\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uD83C\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uD83C\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uD83C\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uD83C\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uD83C\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uD83C\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uD83C\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|[#\*0-9]\u20E3/g}},278:function(e,t,a){"use strict";a(263),a(260);var n=a(0),r=a.n(n),u=a(252),l=a.n(u),c=a(253);a(137);t.a=function(e){var t,a=e.bio,n=e.className,u=e.github,i=e.nameSuffix,o=e.rel,D=e.size,s=e.subTitle,m=e.vertical,d=Object(c.a)().siteConfig,E=(void 0===d?{}:d).customFields.metadata.team,f=E.find((function(e){return e.github==u}))||E.find((function(e){return"ben"==e.id}));return r.a.createElement("div",{className:l()("avatar",n,(t={},t["avatar--"+D]=D,t["avatar--vertical"]=m,t))},r.a.createElement("img",{className:l()("avatar__photo","avatar__photo--"+D),src:f.avatar}),r.a.createElement("div",{className:"avatar__intro"},r.a.createElement("div",{className:"avatar__name"},r.a.createElement("a",{href:f.github,target:"_blank",rel:o},f.name),i),s&&r.a.createElement("small",{className:"avatar__subtitle"},s),!s&&a&&r.a.createElement("small",{className:"avatar__subtitle",dangerouslySetInnerHTML:{__html:f.bio}})))}},279:function(e,t,a){"use strict";var n=a(1),r=a(0),u=a.n(r),l=(a(254),a(273)),c=a(252),i=a.n(c),o=a(261),D=a(138),s=a.n(D);t.a=function(e){var t,a=e.block,r=e.colorProfile,c=e.tags,D=e.valuesOnly,m=Object(o.a)(c,r);return u.a.createElement("span",{className:i()(s.a.tags,(t={},t[s.a.tagsBlock]=a,t))},m.map((function(e,t){return u.a.createElement(l.a,Object(n.a)({key:t,valueOnly:D},e))})))}},280:function(e,t,a){var n;!function(r){"use strict";var u,l,c,i=(u=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZWN]|"[^"]*"|'[^']*'/g,l=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,c=/[^-+\dA-Z]/g,function(e,t,a,n){if(1!==arguments.length||"string"!==m(e)||/\d/.test(e)||(t=e,e=void 0),(e=e||new Date)instanceof Date||(e=new Date(e)),isNaN(e))throw TypeError("Invalid date");var r=(t=String(i.masks[t]||t||i.masks.default)).slice(0,4);"UTC:"!==r&&"GMT:"!==r||(t=t.slice(4),a=!0,"GMT:"===r&&(n=!0));var d=a?"getUTC":"get",E=e[d+"Date"](),f=e[d+"Day"](),g=e[d+"Month"](),b=e[d+"FullYear"](),h=e[d+"Hours"](),p=e[d+"Minutes"](),v=e[d+"Seconds"](),F=e[d+"Milliseconds"](),y=a?0:e.getTimezoneOffset(),C=D(e),N=s(e),O={d:E,dd:o(E),ddd:i.i18n.dayNames[f],dddd:i.i18n.dayNames[f+7],m:g+1,mm:o(g+1),mmm:i.i18n.monthNames[g],mmmm:i.i18n.monthNames[g+12],yy:String(b).slice(2),yyyy:b,h:h%12||12,hh:o(h%12||12),H:h,HH:o(h),M:p,MM:o(p),s:v,ss:o(v),l:o(F,3),L:o(Math.round(F/10)),t:h<12?i.i18n.timeNames[0]:i.i18n.timeNames[1],tt:h<12?i.i18n.timeNames[2]:i.i18n.timeNames[3],T:h<12?i.i18n.timeNames[4]:i.i18n.timeNames[5],TT:h<12?i.i18n.timeNames[6]:i.i18n.timeNames[7],Z:n?"GMT":a?"UTC":(String(e).match(l)||[""]).pop().replace(c,""),o:(y>0?"-":"+")+o(100*Math.floor(Math.abs(y)/60)+Math.abs(y)%60,4),S:["th","st","nd","rd"][E%10>3?0:(E%100-E%10!=10)*E%10],W:C,N:N};return t.replace(u,(function(e){return e in O?O[e]:e.slice(1,e.length-1)}))});function o(e,t){for(e=String(e),t=t||2;e.length0}))}l&&v.test(l)&&(_=l.match(v)[0].split("title=")[1].replace(/"+/g,"")),Object(r.useEffect)((function(){var e;return k.current&&(e=new c.a(k.current,{target:function(){return O.current}})),function(){e&&e.destroy()}}),[k.current,O.current]);var S=a&&a.replace(/language-/,"");!S&&D.defaultLanguage&&(S=D.defaultLanguage);var x=function(){window.getSelection().empty(),F(!0),setTimeout((function(){return F(!1)}),2e3)};return u.a.createElement(i.a,Object(n.a)({},i.b,{key:C,theme:M,code:t.trim(),language:S}),(function(e){var t,a,r=e.className,l=e.style,c=e.tokens,i=e.getLineProps,o=e.getTokenProps;return u.a.createElement(u.a.Fragment,null,_&&u.a.createElement("div",{style:l,className:h.a.codeBlockTitle},_),u.a.createElement("div",{className:h.a.codeBlockContent},u.a.createElement("button",{ref:k,type:"button","aria-label":"Copy code to clipboard",className:s()(h.a.copyButton,(t={},t[h.a.copyButtonWithTitle]=_,t)),onClick:x},b?"Copied":"Copy"),u.a.createElement("pre",{className:s()(r,h.a.codeBlock,(a={},a[h.a.codeBlockWithTitle]=_,a))},u.a.createElement("div",{ref:O,className:h.a.codeBlockLines,style:l},c.map((function(e,t){1===e.length&&""===e[0].content&&(e[0].content="\n");var a=i({line:e,key:t});return w.includes(t+1)&&(a.className=a.className+" docusaurus-highlight-code-line"),u.a.createElement("div",Object(n.a)({key:t},a),e.map((function(e,t){return u.a.createElement("span",Object(n.a)({key:t},o({token:e,key:t})))})))}))))))}))}}).call(this,a(77))},285:function(e,t,a){"use strict";var n=a(1),r=a(0),u=a.n(r),l=a(254),c=a(283),i=a(264),o=a(141),D=a.n(o);t.a={code:function(e){var t=e.children;return"string"==typeof t?u.a.createElement(c.a,e):t},a:function(e){return/\.[^./]+$/.test(e.href)?u.a.createElement("a",e):u.a.createElement(l.a,e)},pre:function(e){return u.a.createElement("div",Object(n.a)({className:D.a.mdxCodeBlock},e))},h1:Object(i.a)("h1"),h2:Object(i.a)("h2"),h3:Object(i.a)("h3"),h4:Object(i.a)("h4"),h5:Object(i.a)("h5"),h6:Object(i.a)("h6")}},302:function(e,t,a){"use strict";a(316);var n=a(8),r=a(81),u=a(10),l=/./.toString,c=function(e){a(15)(RegExp.prototype,"toString",e,!0)};a(13)((function(){return"/a/b"!=l.call({source:"a",flags:"b"})}))?c((function(){var e=n(this);return"/".concat(e.source,"/","flags"in e?e.flags:!u&&e instanceof RegExp?r.call(e):void 0)})):"toString"!=l.name&&c((function(){return l.call(this)}))},303:function(e,t,a){e.exports=a(317)},315:function(e,t,a){"use strict";a(260),a(302),a(19);var n=a(0),r=a.n(n),u=a(278),l=a(254),c=(a(285),a(251),a(279)),i=a(252),o=a.n(i),D=a(280),s=a.n(D),m=a(261),d=a(303),E=a.n(d);t.a=function(e){var t=e.children,a=e.frontMatter,n=e.metadata,i=(e.truncated,e.isBlogPostPage,n.date),D=n.description,d=n.permalink,f=n.tags,g=a.author_github,b=a.title,h=E()(t.toString()),p=new Date(Date.parse(i)),v=Object(m.a)(f,"blog").find((function(e){return"domain"==e.category})),F=v?v.value:null;return r.a.createElement(l.a,{to:d+"/",className:o()("panel","domain-bg","domain-bg--hover","domain-bg--"+F)},r.a.createElement("article",null,r.a.createElement("h2",null,b),r.a.createElement("div",{className:"subtitle"},D),r.a.createElement(u.a,{github:g,size:"sm",subTitle:r.a.createElement(r.a.Fragment,null,r.a.createElement("time",{pubdate:"pubdate",dateTime:p.toISOString()},s()(p,"mmm dS"))," / ",h.text),rel:"author"}),r.a.createElement(c.a,{colorProfile:"blog",tags:f})))}},316:function(e,t,a){a(10)&&"g"!=/./g.flags&&a(24).f(RegExp.prototype,"flags",{configurable:!0,get:a(81)})},317:function(e,t,a){"use strict";function n(e){return" "===e||"\n"===e||"\r"===e||"\t"===e}e.exports=function(e,t){var a,r,u=0,l=0,c=e.length-1;for((t=t||{}).wordsPerMinute=t.wordsPerMinute||200,a=t.wordBound||n;a(e[l]);)l++;for(;a(e[c]);)c--;for(r=l;r<=c;){for(;r<=c&&!a(e[r]);r++);for(u++;r<=c&&a(e[r]);r++);}var i=u/t.wordsPerMinute,o=60*i*1e3;return{text:Math.ceil(i.toFixed(2))+" min read",minutes:i,time:o,words:u}}}}]); \ No newline at end of file +/*! For license information please see 6875c492.0225c621.js.LICENSE.txt */ +(window.webpackJsonp=window.webpackJsonp||[]).push([[40],{184:function(e,t,a){"use strict";a.r(t);a(263);var n=a(0),r=a.n(n),u=a(259),l=a(315),c=a(254);t.default=function(e){var t=e.metadata,a=e.items,n=t.allTagsPath,i=t.name,o=t.count;return r.a.createElement(u.a,{title:'Posts tagged "'+i+'"',description:'Blog | Tagged "'+i+'"'},r.a.createElement("div",{className:"container margin-vert--lg"},r.a.createElement("div",{className:"row"},r.a.createElement("div",{className:"col col--8 col--offset-2"},r.a.createElement("h1",null,o," ",function(e,t){return e>1?t+"s":t}(o,"post"),' tagged with "',i,'"'),r.a.createElement(c.a,{href:n},"View All Tags"),r.a.createElement("div",{className:"margin-vert--xl"},a.map((function(e){var t=e.content;return r.a.createElement(l.a,{key:t.metadata.permalink,frontMatter:t.frontMatter,metadata:t.metadata,truncated:!0},r.a.createElement(t,null))})))))))}},251:function(e,t,a){"use strict";a.d(t,"a",(function(){return s})),a.d(t,"b",(function(){return E}));var n=a(0),r=a.n(n);function u(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function c(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=r.a.createContext({}),D=function(e){var t=r.a.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):c({},t,{},e)),a},s=function(e){var t=D(e.components);return r.a.createElement(o.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},d=Object(n.forwardRef)((function(e,t){var a=e.components,n=e.mdxType,u=e.originalType,l=e.parentName,o=i(e,["components","mdxType","originalType","parentName"]),s=D(a),d=n,E=s["".concat(l,".").concat(d)]||s[d]||m[d]||u;return a?r.a.createElement(E,c({ref:t},o,{components:a})):r.a.createElement(E,c({ref:t},o))}));function E(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var u=a.length,l=new Array(u);l[0]=d;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c.mdxType="string"==typeof e?e:n,l[1]=c;for(var o=2;o0&&r.a.createElement("div",{className:"row footer__links"},r.a.createElement("div",{className:"col col--5 footer__col"},r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(s.a,{className:"navbar__logo",src:"/img/logo-light.svg",alt:"gnet",width:"150",height:"auto"})),r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(B,{description:!1,width:"150px"})),r.a.createElement("div",null,r.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank"},r.a.createElement("i",{className:"feather icon-twitter",alt:"gnet's Twitter"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank"},r.a.createElement("i",{className:"feather icon-github",alt:"gnet's Github Repo"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://strikefreedom.top/rss.xml",target:"_blank"},r.a.createElement("i",{className:"feather icon-rss",alt:"gnet's RSS feed"})))),c.map((function(e,t){return r.a.createElement("div",{key:t,className:"col footer__col"},null!=e.title?r.a.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?r.a.createElement("ul",{className:"footer__items"},e.items.map((function(e,t){return e.html?r.a.createElement("li",{key:t,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):r.a.createElement("li",{key:e.href||e.to,className:"footer__item"},r.a.createElement(P,e))}))):null)}))),(o||u)&&r.a.createElement("div",{className:"text--center"},o&&o.src&&r.a.createElement("div",{className:"margin-bottom--sm"},o.href?r.a.createElement("a",{href:o.href,target:"_blank",rel:"noopener noreferrer",className:x.a.footerLogoLink},r.a.createElement(H,{alt:o.alt,url:D})):r.a.createElement(H,{alt:o.alt,url:D}),r.a.createElement("br",null),r.a.createElement("a",{href:"https://www.digitalocean.com/",target:"_blank",rel:"noopener noreferrer",className:x.a.footerLogoLink},r.a.createElement("img",{alt:"DigitalOcean",src:"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg",width:"201px"}))),u,r.a.createElement("br",null),r.a.createElement("small",null,r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/security/policy"},"Security Policy"),"\xa0\u2022\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/blob/master/PRIVACY.md"},"Privacy Policy"))))):null},I=a(276),R=a(277),J=a(3);a(135);t.a=function(e){var t=Object(E.a)().siteConfig,a=void 0===t?{}:t,n=a.favicon,c=(a.tagline,a.title),i=a.themeConfig.image,o=a.url,D=e.children,s=e.title,m=e.noFooter,d=e.description,f=e.image,g=e.keywords,b=(e.permalink,e.version),h=s?s+" | "+c:c,p=f||i,v=o+Object(C.a)(p),F=Object(C.a)(n),y=Object(J.h)(),N=y?"https://gnet.host"+(y.pathname.endsWith("/")?y.pathname:y.pathname+"/"):null;return r.a.createElement(R.a,null,r.a.createElement(I.a,null,r.a.createElement(l.a,null,r.a.createElement("html",{lang:"en"}),r.a.createElement("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),h&&r.a.createElement("title",null,h),h&&r.a.createElement("meta",{property:"og:title",content:h}),n&&r.a.createElement("link",{rel:"shortcut icon",href:F}),d&&r.a.createElement("meta",{name:"description",content:d}),d&&r.a.createElement("meta",{property:"og:description",content:d}),b&&r.a.createElement("meta",{name:"docsearch:version",content:b}),g&&g.length&&r.a.createElement("meta",{name:"keywords",content:g.join(",")}),p&&r.a.createElement("meta",{property:"og:image",content:v}),p&&r.a.createElement("meta",{property:"twitter:image",content:v}),p&&r.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+h}),p&&r.a.createElement("meta",{name:"twitter:site",content:"@vectordotdev"}),p&&r.a.createElement("meta",{name:"twitter:creator",content:"@vectordotdev"}),N&&r.a.createElement("meta",{property:"og:url",content:N}),r.a.createElement("meta",{name:"twitter:card",content:"summary"}),N&&r.a.createElement("link",{rel:"canonical",href:N})),r.a.createElement(u.a,null),r.a.createElement(A,null),r.a.createElement("div",{className:"main-wrapper"},D),!m&&r.a.createElement(L,null)))}},261:function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));a(79),a(284),a(260),a(78);var n=a(265),r=a.n(n);function u(e,t){var a=new r.a;return e.map((function(e){var n=e;return"string"==typeof e&&(n={label:e,permalink:"/"+t+"/tags/"+a.slug(e)}),function(e,t){if(e.enriched)return e;var a=e.label.split(": ",2),n=a[0],r=a[1],u="primary";switch(n){case"domain":u="blue";break;case"type":u="pink";break;default:u="primary"}return{category:n,count:e.count,enriched:!0,label:e.label,permalink:e.permalink,style:u,value:r}}(n)}))}},263:function(e,t,a){var n=a(24).f,r=Function.prototype,u=/^\s*function ([^ (]*)/;"name"in r||a(10)&&n(r,"name",{configurable:!0,get:function(){try{return(""+this).match(u)[1]}catch(e){return""}}})},265:function(e,t,a){var n=a(274);e.exports=c;var r=Object.hasOwnProperty,u=/\s/g,l=/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~\u2019]/g;function c(){if(!(this instanceof c))return new c;this.reset()}function i(e,t){return"string"!=typeof e?"":(t||(e=e.toLowerCase()),e.trim().replace(l,"").replace(n(),"").replace(u,"-"))}c.prototype.slug=function(e,t){for(var a=i(e,!0===t),n=a;r.call(this.occurrences,a);)this.occurrences[n]++,a=n+"-"+this.occurrences[n];return this.occurrences[a]=0,a},c.prototype.reset=function(){this.occurrences=Object.create(null)},c.slug=i},273:function(e,t,a){"use strict";var n=a(0),r=a.n(n),u=a(254),l=a(252),c=a.n(l);t.a=function(e){var t=e.count,a=e.label,n=e.permalink,l=e.style,i=e.value,o=e.valueOnly;return r.a.createElement(u.a,{to:n+"/",className:c()("badge","badge--rounded","badge--"+l)},o?i:a,t&&r.a.createElement(r.a.Fragment,null," (",t,")"))}},274:function(e,t){e.exports=function(){return/[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267B\u267F\u2692-\u2694\u2696\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD79\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED0\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3]|\uD83E[\uDD10-\uDD18\uDD80-\uDD84\uDDC0]|\uD83C\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uD83C\uDDFE\uD83C[\uDDEA\uDDF9]|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDFC\uD83C[\uDDEB\uDDF8]|\uD83C\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uD83C\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF8\uDDFE\uDDFF]|\uD83C\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uD83C\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uD83C\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uD83C\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uD83C\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uD83C\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uD83C\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uD83C\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uD83C\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uD83C\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uD83C\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uD83C\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uD83C\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uD83C\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uD83C\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uD83C\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|[#\*0-9]\u20E3/g}},278:function(e,t,a){"use strict";a(263),a(260);var n=a(0),r=a.n(n),u=a(252),l=a.n(u),c=a(253);a(137);t.a=function(e){var t,a=e.bio,n=e.className,u=e.github,i=e.nameSuffix,o=e.rel,D=e.size,s=e.subTitle,m=e.vertical,d=Object(c.a)().siteConfig,E=(void 0===d?{}:d).customFields.metadata.team,f=E.find((function(e){return e.github==u}))||E.find((function(e){return"ben"==e.id}));return r.a.createElement("div",{className:l()("avatar",n,(t={},t["avatar--"+D]=D,t["avatar--vertical"]=m,t))},r.a.createElement("img",{className:l()("avatar__photo","avatar__photo--"+D),src:f.avatar}),r.a.createElement("div",{className:"avatar__intro"},r.a.createElement("div",{className:"avatar__name"},r.a.createElement("a",{href:f.github,target:"_blank",rel:o},f.name),i),s&&r.a.createElement("small",{className:"avatar__subtitle"},s),!s&&a&&r.a.createElement("small",{className:"avatar__subtitle",dangerouslySetInnerHTML:{__html:f.bio}})))}},279:function(e,t,a){"use strict";var n=a(1),r=a(0),u=a.n(r),l=(a(254),a(273)),c=a(252),i=a.n(c),o=a(261),D=a(138),s=a.n(D);t.a=function(e){var t,a=e.block,r=e.colorProfile,c=e.tags,D=e.valuesOnly,m=Object(o.a)(c,r);return u.a.createElement("span",{className:i()(s.a.tags,(t={},t[s.a.tagsBlock]=a,t))},m.map((function(e,t){return u.a.createElement(l.a,Object(n.a)({key:t,valueOnly:D},e))})))}},280:function(e,t,a){var n;!function(r){"use strict";var u,l,c,i=(u=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZWN]|"[^"]*"|'[^']*'/g,l=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,c=/[^-+\dA-Z]/g,function(e,t,a,n){if(1!==arguments.length||"string"!==m(e)||/\d/.test(e)||(t=e,e=void 0),(e=e||new Date)instanceof Date||(e=new Date(e)),isNaN(e))throw TypeError("Invalid date");var r=(t=String(i.masks[t]||t||i.masks.default)).slice(0,4);"UTC:"!==r&&"GMT:"!==r||(t=t.slice(4),a=!0,"GMT:"===r&&(n=!0));var d=a?"getUTC":"get",E=e[d+"Date"](),f=e[d+"Day"](),g=e[d+"Month"](),b=e[d+"FullYear"](),h=e[d+"Hours"](),p=e[d+"Minutes"](),v=e[d+"Seconds"](),F=e[d+"Milliseconds"](),y=a?0:e.getTimezoneOffset(),C=D(e),N=s(e),O={d:E,dd:o(E),ddd:i.i18n.dayNames[f],dddd:i.i18n.dayNames[f+7],m:g+1,mm:o(g+1),mmm:i.i18n.monthNames[g],mmmm:i.i18n.monthNames[g+12],yy:String(b).slice(2),yyyy:b,h:h%12||12,hh:o(h%12||12),H:h,HH:o(h),M:p,MM:o(p),s:v,ss:o(v),l:o(F,3),L:o(Math.round(F/10)),t:h<12?i.i18n.timeNames[0]:i.i18n.timeNames[1],tt:h<12?i.i18n.timeNames[2]:i.i18n.timeNames[3],T:h<12?i.i18n.timeNames[4]:i.i18n.timeNames[5],TT:h<12?i.i18n.timeNames[6]:i.i18n.timeNames[7],Z:n?"GMT":a?"UTC":(String(e).match(l)||[""]).pop().replace(c,""),o:(y>0?"-":"+")+o(100*Math.floor(Math.abs(y)/60)+Math.abs(y)%60,4),S:["th","st","nd","rd"][E%10>3?0:(E%100-E%10!=10)*E%10],W:C,N:N};return t.replace(u,(function(e){return e in O?O[e]:e.slice(1,e.length-1)}))});function o(e,t){for(e=String(e),t=t||2;e.length0}))}l&&v.test(l)&&(_=l.match(v)[0].split("title=")[1].replace(/"+/g,"")),Object(r.useEffect)((function(){var e;return k.current&&(e=new c.a(k.current,{target:function(){return O.current}})),function(){e&&e.destroy()}}),[k.current,O.current]);var S=a&&a.replace(/language-/,"");!S&&D.defaultLanguage&&(S=D.defaultLanguage);var x=function(){window.getSelection().empty(),F(!0),setTimeout((function(){return F(!1)}),2e3)};return u.a.createElement(i.a,Object(n.a)({},i.b,{key:C,theme:M,code:t.trim(),language:S}),(function(e){var t,a,r=e.className,l=e.style,c=e.tokens,i=e.getLineProps,o=e.getTokenProps;return u.a.createElement(u.a.Fragment,null,_&&u.a.createElement("div",{style:l,className:h.a.codeBlockTitle},_),u.a.createElement("div",{className:h.a.codeBlockContent},u.a.createElement("button",{ref:k,type:"button","aria-label":"Copy code to clipboard",className:s()(h.a.copyButton,(t={},t[h.a.copyButtonWithTitle]=_,t)),onClick:x},b?"Copied":"Copy"),u.a.createElement("pre",{className:s()(r,h.a.codeBlock,(a={},a[h.a.codeBlockWithTitle]=_,a))},u.a.createElement("div",{ref:O,className:h.a.codeBlockLines,style:l},c.map((function(e,t){1===e.length&&""===e[0].content&&(e[0].content="\n");var a=i({line:e,key:t});return w.includes(t+1)&&(a.className=a.className+" docusaurus-highlight-code-line"),u.a.createElement("div",Object(n.a)({key:t},a),e.map((function(e,t){return u.a.createElement("span",Object(n.a)({key:t},o({token:e,key:t})))})))}))))))}))}}).call(this,a(77))},285:function(e,t,a){"use strict";var n=a(1),r=a(0),u=a.n(r),l=a(254),c=a(283),i=a(264),o=a(141),D=a.n(o);t.a={code:function(e){var t=e.children;return"string"==typeof t?u.a.createElement(c.a,e):t},a:function(e){return/\.[^./]+$/.test(e.href)?u.a.createElement("a",e):u.a.createElement(l.a,e)},pre:function(e){return u.a.createElement("div",Object(n.a)({className:D.a.mdxCodeBlock},e))},h1:Object(i.a)("h1"),h2:Object(i.a)("h2"),h3:Object(i.a)("h3"),h4:Object(i.a)("h4"),h5:Object(i.a)("h5"),h6:Object(i.a)("h6")}},302:function(e,t,a){"use strict";a(316);var n=a(8),r=a(81),u=a(10),l=/./.toString,c=function(e){a(15)(RegExp.prototype,"toString",e,!0)};a(13)((function(){return"/a/b"!=l.call({source:"a",flags:"b"})}))?c((function(){var e=n(this);return"/".concat(e.source,"/","flags"in e?e.flags:!u&&e instanceof RegExp?r.call(e):void 0)})):"toString"!=l.name&&c((function(){return l.call(this)}))},303:function(e,t,a){e.exports=a(317)},315:function(e,t,a){"use strict";a(260),a(302),a(19);var n=a(0),r=a.n(n),u=a(278),l=a(254),c=(a(285),a(251),a(279)),i=a(252),o=a.n(i),D=a(280),s=a.n(D),m=a(261),d=a(303),E=a.n(d);t.a=function(e){var t=e.children,a=e.frontMatter,n=e.metadata,i=(e.truncated,e.isBlogPostPage,n.date),D=n.description,d=n.permalink,f=n.tags,g=a.author_github,b=a.title,h=E()(t.toString()),p=new Date(Date.parse(i)),v=Object(m.a)(f,"blog").find((function(e){return"domain"==e.category})),F=v?v.value:null;return r.a.createElement(l.a,{to:d+"/",className:o()("panel","domain-bg","domain-bg--hover","domain-bg--"+F)},r.a.createElement("article",null,r.a.createElement("h2",null,b),r.a.createElement("div",{className:"subtitle"},D),r.a.createElement(u.a,{github:g,size:"sm",subTitle:r.a.createElement(r.a.Fragment,null,r.a.createElement("time",{pubdate:"pubdate",dateTime:p.toISOString()},s()(p,"mmm dS"))," / ",h.text),rel:"author"}),r.a.createElement(c.a,{colorProfile:"blog",tags:f})))}},316:function(e,t,a){a(10)&&"g"!=/./g.flags&&a(24).f(RegExp.prototype,"flags",{configurable:!0,get:a(81)})},317:function(e,t,a){"use strict";function n(e){return" "===e||"\n"===e||"\r"===e||"\t"===e}e.exports=function(e,t){var a,r,u=0,l=0,c=e.length-1;for((t=t||{}).wordsPerMinute=t.wordsPerMinute||200,a=t.wordBound||n;a(e[l]);)l++;for(;a(e[c]);)c--;for(r=l;r<=c;){for(;r<=c&&!a(e[r]);r++);for(u++;r<=c&&a(e[r]);r++);}var i=u/t.wordsPerMinute,o=60*i*1e3;return{text:Math.ceil(i.toFixed(2))+" min read",minutes:i,time:o,words:u}}}}]); \ No newline at end of file diff --git a/6875c492.48e3e0be.js.LICENSE.txt b/6875c492.0225c621.js.LICENSE.txt similarity index 100% rename from 6875c492.48e3e0be.js.LICENSE.txt rename to 6875c492.0225c621.js.LICENSE.txt diff --git a/83e9e333.47b839ba.js b/83e9e333.36ed0ec0.js similarity index 99% rename from 83e9e333.47b839ba.js rename to 83e9e333.36ed0ec0.js index ea53bad93..34914c4a0 100644 --- a/83e9e333.47b839ba.js +++ b/83e9e333.36ed0ec0.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[54],{198:function(e,a,t){"use strict";t.r(a);var n=t(0),l=t.n(n),r=t(259),c=(t(143),t(253));a.default=function(){var e=Object(c.a)().siteConfig;return(void 0===e?{}:e).customFields.metadata.team,l.a.createElement(r.a,{title:"Contact",description:"Contact the gnet author"},l.a.createElement("header",{className:"hero"},l.a.createElement("div",{className:"container container--fluid"},l.a.createElement("h1",null,"Contact"),l.a.createElement("div",{className:"hero--subtitle"},"gnet is an open-source software created by ",l.a.createElement("a",{href:"https://github.com/panjf2000"},"Andy Pan"),". You can contact the author using any of the options below."))),l.a.createElement("main",null,l.a.createElement("section",null,l.a.createElement("div",{className:"container"},l.a.createElement("div",{className:"row"},l.a.createElement("div",{className:"col"},l.a.createElement("a",{href:"mailto:i@andypan.me",className:"panel text--center"},l.a.createElement("div",{className:"panel--icon"},l.a.createElement("i",{className:"feather icon-mail"})),l.a.createElement("div",{className:"panel--title"},"i@andypan.me"),l.a.createElement("div",{className:"panel--description"},"Send me an email"))),l.a.createElement("div",{className:"col"},l.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank",className:"panel text--center"},l.a.createElement("div",{className:"panel--icon"},l.a.createElement("i",{className:"feather icon-twitter"})),l.a.createElement("div",{className:"panel--title"},"@panjf2000"),l.a.createElement("div",{className:"panel--description"},"Tweet at me"))),l.a.createElement("div",{className:"col"},l.a.createElement("a",{href:"https://discord.gg/UyKD7NZcfH",target:"_blank",className:"panel text--center"},l.a.createElement("div",{className:"panel--icon"},l.a.createElement("i",{className:"feather icon-message-circle"})),l.a.createElement("div",{className:"panel--title"},"Chat"),l.a.createElement("div",{className:"panel--description"},"Join our chat"))))))))}},258:function(e,a,t){"use strict";t.d(a,"a",(function(){return l})),t.d(a,"b",(function(){return r}));var n=t(253);function l(){var e=Object(n.a)().siteConfig,a=(void 0===e?{}:e).customFields.metadata.latest_highlight,t=Date.parse(a.date),l=new Date,r=Math.abs(l-t),c=Math.ceil(r/864e5),i=null;return"undefined"!=typeof window&&(i=new Date(parseInt(window.localStorage.getItem("highlightsViewedAt")||"0"))),c<30&&(!i||i0&&l.a.createElement("div",{className:"row footer__links"},l.a.createElement("div",{className:"col col--5 footer__col"},l.a.createElement("div",{className:"margin-bottom--md"},l.a.createElement(d.a,{className:"navbar__logo",src:"/img/logo-light.svg",alt:"gnet",width:"150",height:"auto"})),l.a.createElement("div",{className:"margin-bottom--md"},l.a.createElement(I,{description:!1,width:"150px"})),l.a.createElement("div",null,l.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank"},l.a.createElement("i",{className:"feather icon-twitter",alt:"gnet's Twitter"})),"\xa0\xa0\xa0\xa0",l.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank"},l.a.createElement("i",{className:"feather icon-github",alt:"gnet's Github Repo"})),"\xa0\xa0\xa0\xa0",l.a.createElement("a",{href:"https://strikefreedom.top/rss.xml",target:"_blank"},l.a.createElement("i",{className:"feather icon-rss",alt:"gnet's RSS feed"})))),i.map((function(e,a){return l.a.createElement("div",{key:a,className:"col footer__col"},null!=e.title?l.a.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?l.a.createElement("ul",{className:"footer__items"},e.items.map((function(e,a){return e.html?l.a.createElement("li",{key:a,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):l.a.createElement("li",{key:e.href||e.to,className:"footer__item"},l.a.createElement(A,e))}))):null)}))),(m||r)&&l.a.createElement("div",{className:"text--center"},m&&m.src&&l.a.createElement("div",{className:"margin-bottom--sm"},m.href?l.a.createElement("a",{href:m.href,target:"_blank",rel:"noopener noreferrer",className:P.a.footerLogoLink},l.a.createElement(B,{alt:m.alt,url:s})):l.a.createElement(B,{alt:m.alt,url:s}),l.a.createElement("br",null),l.a.createElement("a",{href:"https://www.digitalocean.com/",target:"_blank",rel:"noopener noreferrer",className:P.a.footerLogoLink},l.a.createElement("img",{alt:"DigitalOcean",src:"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg",width:"201px"}))),r,l.a.createElement("br",null),l.a.createElement("small",null,l.a.createElement("a",{href:"https://github.com/panjf2000/gnet/security/policy"},"Security Policy"),"\xa0\u2022\xa0",l.a.createElement("a",{href:"https://github.com/panjf2000/gnet/blob/master/PRIVACY.md"},"Privacy Policy"))))):null},F=t(276),H=t(277),R=t(3);t(135);a.a=function(e){var a=Object(g.a)().siteConfig,t=void 0===a?{}:a,n=t.favicon,i=(t.tagline,t.title),o=t.themeConfig.image,m=t.url,s=e.children,d=e.title,u=e.noFooter,h=e.description,b=e.image,E=e.keywords,f=(e.permalink,e.version),p=d?d+" | "+i:i,v=b||o,N=m+Object(w.a)(v),_=Object(w.a)(n),k=Object(R.h)(),y=k?"https://gnet.host"+(k.pathname.endsWith("/")?k.pathname:k.pathname+"/"):null;return l.a.createElement(H.a,null,l.a.createElement(F.a,null,l.a.createElement(c.a,null,l.a.createElement("html",{lang:"en"}),l.a.createElement("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),p&&l.a.createElement("title",null,p),p&&l.a.createElement("meta",{property:"og:title",content:p}),n&&l.a.createElement("link",{rel:"shortcut icon",href:_}),h&&l.a.createElement("meta",{name:"description",content:h}),h&&l.a.createElement("meta",{property:"og:description",content:h}),f&&l.a.createElement("meta",{name:"docsearch:version",content:f}),E&&E.length&&l.a.createElement("meta",{name:"keywords",content:E.join(",")}),v&&l.a.createElement("meta",{property:"og:image",content:N}),v&&l.a.createElement("meta",{property:"twitter:image",content:N}),v&&l.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+p}),v&&l.a.createElement("meta",{name:"twitter:site",content:"@vectordotdev"}),v&&l.a.createElement("meta",{name:"twitter:creator",content:"@vectordotdev"}),y&&l.a.createElement("meta",{property:"og:url",content:y}),l.a.createElement("meta",{name:"twitter:card",content:"summary"}),y&&l.a.createElement("link",{rel:"canonical",href:y})),l.a.createElement(r.a,null),l.a.createElement(D,null),l.a.createElement("div",{className:"main-wrapper"},s),!u&&l.a.createElement(V,null)))}}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[54],{198:function(e,a,t){"use strict";t.r(a);var n=t(0),l=t.n(n),r=t(259),c=(t(143),t(253));a.default=function(){var e=Object(c.a)().siteConfig;return(void 0===e?{}:e).customFields.metadata.team,l.a.createElement(r.a,{title:"Contact",description:"Contact the gnet author"},l.a.createElement("header",{className:"hero"},l.a.createElement("div",{className:"container container--fluid"},l.a.createElement("h1",null,"Contact"),l.a.createElement("div",{className:"hero--subtitle"},"gnet is an open-source software created by ",l.a.createElement("a",{href:"https://github.com/panjf2000"},"Andy Pan"),". You can contact the author using any of the options below."))),l.a.createElement("main",null,l.a.createElement("section",null,l.a.createElement("div",{className:"container"},l.a.createElement("div",{className:"row"},l.a.createElement("div",{className:"col"},l.a.createElement("a",{href:"mailto:i@andypan.me",className:"panel text--center"},l.a.createElement("div",{className:"panel--icon"},l.a.createElement("i",{className:"feather icon-mail"})),l.a.createElement("div",{className:"panel--title"},"i@andypan.me"),l.a.createElement("div",{className:"panel--description"},"Send me an email"))),l.a.createElement("div",{className:"col"},l.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank",className:"panel text--center"},l.a.createElement("div",{className:"panel--icon"},l.a.createElement("i",{className:"feather icon-twitter"})),l.a.createElement("div",{className:"panel--title"},"@panjf2000"),l.a.createElement("div",{className:"panel--description"},"Tweet at me"))),l.a.createElement("div",{className:"col"},l.a.createElement("a",{href:"https://discord.gg/UyKD7NZcfH",target:"_blank",className:"panel text--center"},l.a.createElement("div",{className:"panel--icon"},l.a.createElement("i",{className:"feather icon-message-circle"})),l.a.createElement("div",{className:"panel--title"},"Chat"),l.a.createElement("div",{className:"panel--description"},"Join our chat"))))))))}},258:function(e,a,t){"use strict";t.d(a,"a",(function(){return l})),t.d(a,"b",(function(){return r}));var n=t(253);function l(){var e=Object(n.a)().siteConfig,a=(void 0===e?{}:e).customFields.metadata.latest_highlight,t=Date.parse(a.date),l=new Date,r=Math.abs(l-t),c=Math.ceil(r/864e5),i=null;return"undefined"!=typeof window&&(i=new Date(parseInt(window.localStorage.getItem("highlightsViewedAt")||"0"))),c<30&&(!i||i0&&l.a.createElement("div",{className:"row footer__links"},l.a.createElement("div",{className:"col col--5 footer__col"},l.a.createElement("div",{className:"margin-bottom--md"},l.a.createElement(d.a,{className:"navbar__logo",src:"/img/logo-light.svg",alt:"gnet",width:"150",height:"auto"})),l.a.createElement("div",{className:"margin-bottom--md"},l.a.createElement(I,{description:!1,width:"150px"})),l.a.createElement("div",null,l.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank"},l.a.createElement("i",{className:"feather icon-twitter",alt:"gnet's Twitter"})),"\xa0\xa0\xa0\xa0",l.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank"},l.a.createElement("i",{className:"feather icon-github",alt:"gnet's Github Repo"})),"\xa0\xa0\xa0\xa0",l.a.createElement("a",{href:"https://strikefreedom.top/rss.xml",target:"_blank"},l.a.createElement("i",{className:"feather icon-rss",alt:"gnet's RSS feed"})))),i.map((function(e,a){return l.a.createElement("div",{key:a,className:"col footer__col"},null!=e.title?l.a.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?l.a.createElement("ul",{className:"footer__items"},e.items.map((function(e,a){return e.html?l.a.createElement("li",{key:a,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):l.a.createElement("li",{key:e.href||e.to,className:"footer__item"},l.a.createElement(A,e))}))):null)}))),(m||r)&&l.a.createElement("div",{className:"text--center"},m&&m.src&&l.a.createElement("div",{className:"margin-bottom--sm"},m.href?l.a.createElement("a",{href:m.href,target:"_blank",rel:"noopener noreferrer",className:P.a.footerLogoLink},l.a.createElement(B,{alt:m.alt,url:s})):l.a.createElement(B,{alt:m.alt,url:s}),l.a.createElement("br",null),l.a.createElement("a",{href:"https://www.digitalocean.com/",target:"_blank",rel:"noopener noreferrer",className:P.a.footerLogoLink},l.a.createElement("img",{alt:"DigitalOcean",src:"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg",width:"201px"}))),r,l.a.createElement("br",null),l.a.createElement("small",null,l.a.createElement("a",{href:"https://github.com/panjf2000/gnet/security/policy"},"Security Policy"),"\xa0\u2022\xa0",l.a.createElement("a",{href:"https://github.com/panjf2000/gnet/blob/master/PRIVACY.md"},"Privacy Policy"))))):null},F=t(276),H=t(277),R=t(3);t(135);a.a=function(e){var a=Object(g.a)().siteConfig,t=void 0===a?{}:a,n=t.favicon,i=(t.tagline,t.title),o=t.themeConfig.image,m=t.url,s=e.children,d=e.title,u=e.noFooter,h=e.description,b=e.image,E=e.keywords,f=(e.permalink,e.version),p=d?d+" | "+i:i,v=b||o,N=m+Object(w.a)(v),_=Object(w.a)(n),k=Object(R.h)(),y=k?"https://gnet.host"+(k.pathname.endsWith("/")?k.pathname:k.pathname+"/"):null;return l.a.createElement(H.a,null,l.a.createElement(F.a,null,l.a.createElement(c.a,null,l.a.createElement("html",{lang:"en"}),l.a.createElement("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),p&&l.a.createElement("title",null,p),p&&l.a.createElement("meta",{property:"og:title",content:p}),n&&l.a.createElement("link",{rel:"shortcut icon",href:_}),h&&l.a.createElement("meta",{name:"description",content:h}),h&&l.a.createElement("meta",{property:"og:description",content:h}),f&&l.a.createElement("meta",{name:"docsearch:version",content:f}),E&&E.length&&l.a.createElement("meta",{name:"keywords",content:E.join(",")}),v&&l.a.createElement("meta",{property:"og:image",content:N}),v&&l.a.createElement("meta",{property:"twitter:image",content:N}),v&&l.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+p}),v&&l.a.createElement("meta",{name:"twitter:site",content:"@vectordotdev"}),v&&l.a.createElement("meta",{name:"twitter:creator",content:"@vectordotdev"}),y&&l.a.createElement("meta",{property:"og:url",content:y}),l.a.createElement("meta",{name:"twitter:card",content:"summary"}),y&&l.a.createElement("link",{rel:"canonical",href:y})),l.a.createElement(r.a,null),l.a.createElement(D,null),l.a.createElement("div",{className:"main-wrapper"},s),!u&&l.a.createElement(V,null)))}}}]); \ No newline at end of file diff --git a/9c0c4329.222d6e57.js b/9c0c4329.87db3bb3.js similarity index 99% rename from 9c0c4329.222d6e57.js rename to 9c0c4329.87db3bb3.js index 2fdfd9f32..112f2ecbb 100644 --- a/9c0c4329.222d6e57.js +++ b/9c0c4329.87db3bb3.js @@ -1,2 +1,2 @@ -/*! For license information please see 9c0c4329.222d6e57.js.LICENSE.txt */ -(window.webpackJsonp=window.webpackJsonp||[]).push([[61],{205:function(d,u,e){"use strict";e.r(u);var a=e(1),c=(e(53),e(263),e(26),e(20),e(19),e(90),e(0)),n=e.n(c),f=e(264),t=e(259),r=(e(254),e(273)),i=e(291),l=e.n(i),s=e(261),o=e(372),m=e.n(o),b=e(313),p=e.n(b),D=Object(f.a)("h2");u.default=function(d){var u=d.tags,e=Object.values(u).map((function(d){return{count:d.count,label:d.name,permalink:d.permalink}})),c=Object(s.a)(e,"highlights"),f=l.a.groupBy(c,"category");return n.a.createElement(t.a,{title:"Tags",description:"gnet highlight tags"},n.a.createElement("header",{className:"hero hero--clean"},n.a.createElement("div",{className:"container"},n.a.createElement("h1",null,"All Highlight Tags"))),n.a.createElement("main",{className:"container container--xs"},Object.keys(f).map((function(d,u){var e=f[d];return n.a.createElement("section",null,n.a.createElement(D,{id:d.name},p()(m()(d))),e.map((function(d,u){return n.a.createElement("div",null,n.a.createElement(r.a,Object(a.a)({key:u,valueOnly:!0},d)))})))}))))}},258:function(d,u,e){"use strict";e.d(u,"a",(function(){return c})),e.d(u,"b",(function(){return n}));var a=e(253);function c(){var d=Object(a.a)().siteConfig,u=(void 0===d?{}:d).customFields.metadata.latest_highlight,e=Date.parse(u.date),c=new Date,n=Math.abs(c-e),f=Math.ceil(n/864e5),t=null;return"undefined"!=typeof window&&(t=new Date(parseInt(window.localStorage.getItem("highlightsViewedAt")||"0"))),f<30&&(!t||t0&&c.a.createElement("div",{className:"row footer__links"},c.a.createElement("div",{className:"col col--5 footer__col"},c.a.createElement("div",{className:"margin-bottom--md"},c.a.createElement(s.a,{className:"navbar__logo",src:"/img/logo-light.svg",alt:"gnet",width:"150",height:"auto"})),c.a.createElement("div",{className:"margin-bottom--md"},c.a.createElement(N,{description:!1,width:"150px"})),c.a.createElement("div",null,c.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank"},c.a.createElement("i",{className:"feather icon-twitter",alt:"gnet's Twitter"})),"\xa0\xa0\xa0\xa0",c.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank"},c.a.createElement("i",{className:"feather icon-github",alt:"gnet's Github Repo"})),"\xa0\xa0\xa0\xa0",c.a.createElement("a",{href:"https://strikefreedom.top/rss.xml",target:"_blank"},c.a.createElement("i",{className:"feather icon-rss",alt:"gnet's RSS feed"})))),t.map((function(d,u){return c.a.createElement("div",{key:u,className:"col footer__col"},null!=d.title?c.a.createElement("h4",{className:"footer__title"},d.title):null,null!=d.items&&Array.isArray(d.items)&&d.items.length>0?c.a.createElement("ul",{className:"footer__items"},d.items.map((function(d,u){return d.html?c.a.createElement("li",{key:u,className:"footer__item",dangerouslySetInnerHTML:{__html:d.html}}):c.a.createElement("li",{key:d.href||d.to,className:"footer__item"},c.a.createElement(M,d))}))):null)}))),(i||n)&&c.a.createElement("div",{className:"text--center"},i&&i.src&&c.a.createElement("div",{className:"margin-bottom--sm"},i.href?c.a.createElement("a",{href:i.href,target:"_blank",rel:"noopener noreferrer",className:P.a.footerLogoLink},c.a.createElement(L,{alt:i.alt,url:l})):c.a.createElement(L,{alt:i.alt,url:l}),c.a.createElement("br",null),c.a.createElement("a",{href:"https://www.digitalocean.com/",target:"_blank",rel:"noopener noreferrer",className:P.a.footerLogoLink},c.a.createElement("img",{alt:"DigitalOcean",src:"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg",width:"201px"}))),n,c.a.createElement("br",null),c.a.createElement("small",null,c.a.createElement("a",{href:"https://github.com/panjf2000/gnet/security/policy"},"Security Policy"),"\xa0\u2022\xa0",c.a.createElement("a",{href:"https://github.com/panjf2000/gnet/blob/master/PRIVACY.md"},"Privacy Policy"))))):null},j=e(276),R=e(277),U=e(3);e(135);u.a=function(d){var u=Object(b.a)().siteConfig,e=void 0===u?{}:u,a=e.favicon,t=(e.tagline,e.title),r=e.themeConfig.image,i=e.url,l=d.children,s=d.title,o=d.noFooter,m=d.description,p=d.image,D=d.keywords,h=(d.permalink,d.version),g=s?s+" | "+t:t,_=p||r,E=i+Object(x.a)(_),I=Object(x.a)(a),v=Object(U.h)(),y=v?"https://gnet.host"+(v.pathname.endsWith("/")?v.pathname:v.pathname+"/"):null;return c.a.createElement(R.a,null,c.a.createElement(j.a,null,c.a.createElement(f.a,null,c.a.createElement("html",{lang:"en"}),c.a.createElement("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),g&&c.a.createElement("title",null,g),g&&c.a.createElement("meta",{property:"og:title",content:g}),a&&c.a.createElement("link",{rel:"shortcut icon",href:I}),m&&c.a.createElement("meta",{name:"description",content:m}),m&&c.a.createElement("meta",{property:"og:description",content:m}),h&&c.a.createElement("meta",{name:"docsearch:version",content:h}),D&&D.length&&c.a.createElement("meta",{name:"keywords",content:D.join(",")}),_&&c.a.createElement("meta",{property:"og:image",content:E}),_&&c.a.createElement("meta",{property:"twitter:image",content:E}),_&&c.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+g}),_&&c.a.createElement("meta",{name:"twitter:site",content:"@vectordotdev"}),_&&c.a.createElement("meta",{name:"twitter:creator",content:"@vectordotdev"}),y&&c.a.createElement("meta",{property:"og:url",content:y}),c.a.createElement("meta",{name:"twitter:card",content:"summary"}),y&&c.a.createElement("link",{rel:"canonical",href:y})),c.a.createElement(n.a,null),c.a.createElement(O,null),c.a.createElement("div",{className:"main-wrapper"},l),!o&&c.a.createElement(T,null)))}},260:function(d,u,e){"use strict";var a=e(12),c=e(287)(5),n=!0;"find"in[]&&Array(1).find((function(){n=!1})),a(a.P+a.F*n,"Array",{find:function(d){return c(this,d,arguments.length>1?arguments[1]:void 0)}}),e(80)("find")},261:function(d,u,e){"use strict";e.d(u,"a",(function(){return n}));e(79),e(284),e(260),e(78);var a=e(265),c=e.n(a);function n(d,u){var e=new c.a;return d.map((function(d){var a=d;return"string"==typeof d&&(a={label:d,permalink:"/"+u+"/tags/"+e.slug(d)}),function(d,u){if(d.enriched)return d;var e=d.label.split(": ",2),a=e[0],c=e[1],n="primary";switch(a){case"domain":n="blue";break;case"type":n="pink";break;default:n="primary"}return{category:a,count:d.count,enriched:!0,label:d.label,permalink:d.permalink,style:n,value:c}}(a)}))}},263:function(d,u,e){var a=e(24).f,c=Function.prototype,n=/^\s*function ([^ (]*)/;"name"in c||e(10)&&a(c,"name",{configurable:!0,get:function(){try{return(""+this).match(n)[1]}catch(d){return""}}})},264:function(d,u,e){"use strict";var a=e(9),c=e(0),n=e.n(c),f=e(252),t=e.n(f),r=e(253),i=(e(139),e(140)),l=e.n(i);u.a=function(d){return function(u){var e,c=u.id,f=Object(a.a)(u,["id"]),i=Object(r.a)().siteConfig,s=(i=void 0===i?{}:i).themeConfig,o=(s=void 0===s?{}:s).navbar,m=(o=void 0===o?{}:o).hideOnScroll,b=void 0!==m&&m;return c?n.a.createElement(d,f,n.a.createElement("a",{"aria-hidden":"true",tabIndex:"-1",className:t()("anchor",(e={},e[l.a.enhancedAnchor]=!b,e)),id:c}),n.a.createElement("a",{"aria-hidden":"true",tabIndex:"-1",className:"hash-link",href:"#"+c,title:"Direct link to heading"},"#"),f.children):n.a.createElement(d,f)}}},265:function(d,u,e){var a=e(274);d.exports=t;var c=Object.hasOwnProperty,n=/\s/g,f=/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~\u2019]/g;function t(){if(!(this instanceof t))return new t;this.reset()}function r(d,u){return"string"!=typeof d?"":(u||(d=d.toLowerCase()),d.trim().replace(f,"").replace(a(),"").replace(n,"-"))}t.prototype.slug=function(d,u){for(var e=r(d,!0===u),a=e;c.call(this.occurrences,e);)this.occurrences[a]++,e=a+"-"+this.occurrences[a];return this.occurrences[e]=0,e},t.prototype.reset=function(){this.occurrences=Object.create(null)},t.slug=r},273:function(d,u,e){"use strict";var a=e(0),c=e.n(a),n=e(254),f=e(252),t=e.n(f);u.a=function(d){var u=d.count,e=d.label,a=d.permalink,f=d.style,r=d.value,i=d.valueOnly;return c.a.createElement(n.a,{to:a+"/",className:t()("badge","badge--rounded","badge--"+f)},i?r:e,u&&c.a.createElement(c.a.Fragment,null," (",u,")"))}},274:function(d,u){d.exports=function(){return/[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267B\u267F\u2692-\u2694\u2696\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD79\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED0\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3]|\uD83E[\uDD10-\uDD18\uDD80-\uDD84\uDDC0]|\uD83C\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uD83C\uDDFE\uD83C[\uDDEA\uDDF9]|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDFC\uD83C[\uDDEB\uDDF8]|\uD83C\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uD83C\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF8\uDDFE\uDDFF]|\uD83C\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uD83C\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uD83C\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uD83C\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uD83C\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uD83C\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uD83C\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uD83C\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uD83C\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uD83C\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uD83C\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uD83C\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uD83C\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uD83C\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uD83C\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uD83C\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|[#\*0-9]\u20E3/g}},287:function(d,u,e){var a=e(28),c=e(54),n=e(25),f=e(27),t=e(288);d.exports=function(d,u){var e=1==d,r=2==d,i=3==d,l=4==d,s=6==d,o=5==d||s,m=u||t;return function(u,t,b){for(var p,D,h=n(u),g=c(h),_=a(t,b,3),E=f(g.length),I=0,v=e?m(u,E):r?m(u,0):void 0;E>I;I++)if((o||I in g)&&(D=_(p=g[I],I,h),d))if(e)v[I]=D;else if(D)switch(d){case 3:return!0;case 5:return p;case 6:return I;case 2:v.push(p)}else if(l)return!1;return s?-1:i||l?l:v}}},288:function(d,u,e){var a=e(289);d.exports=function(d,u){return new(a(d))(u)}},289:function(d,u,e){var a=e(14),c=e(309),n=e(2)("species");d.exports=function(d){var u;return c(d)&&("function"!=typeof(u=d.constructor)||u!==Array&&!c(u.prototype)||(u=void 0),a(u)&&null===(u=u[n])&&(u=void 0)),void 0===u?Array:u}},313:function(d,u,e){d.exports=function(){var d=[],u=[],e={},a={},c={};function n(d){return"string"==typeof d?new RegExp("^"+d+"$","i"):d}function f(d,u){return d===u?u:d===d.toLowerCase()?u.toLowerCase():d===d.toUpperCase()?u.toUpperCase():d[0]===d[0].toUpperCase()?u.charAt(0).toUpperCase()+u.substr(1).toLowerCase():u.toLowerCase()}function t(d,u){return d.replace(/\$(\d{1,2})/g,(function(d,e){return u[e]||""}))}function r(d,u){return d.replace(u[0],(function(e,a){var c=t(u[1],arguments);return f(""===e?d[a-1]:e,c)}))}function i(d,u,a){if(!d.length||e.hasOwnProperty(d))return u;for(var c=a.length;c--;){var n=a[c];if(n[0].test(u))return r(u,n)}return u}function l(d,u,e){return function(a){var c=a.toLowerCase();return u.hasOwnProperty(c)?f(a,c):d.hasOwnProperty(c)?f(a,d[c]):i(c,a,e)}}function s(d,u,e,a){return function(a){var c=a.toLowerCase();return!!u.hasOwnProperty(c)||!d.hasOwnProperty(c)&&i(c,c,e)===c}}function o(d,u,e){return(e?u+" ":"")+(1===u?o.singular(d):o.plural(d))}return o.plural=l(c,a,d),o.isPlural=s(c,a,d),o.singular=l(a,c,u),o.isSingular=s(a,c,u),o.addPluralRule=function(u,e){d.push([n(u),e])},o.addSingularRule=function(d,e){u.push([n(d),e])},o.addUncountableRule=function(d){"string"!=typeof d?(o.addPluralRule(d,"$0"),o.addSingularRule(d,"$0")):e[d.toLowerCase()]=!0},o.addIrregularRule=function(d,u){u=u.toLowerCase(),d=d.toLowerCase(),c[d]=u,a[u]=d},[["I","we"],["me","us"],["he","they"],["she","they"],["them","them"],["myself","ourselves"],["yourself","yourselves"],["itself","themselves"],["herself","themselves"],["himself","themselves"],["themself","themselves"],["is","are"],["was","were"],["has","have"],["this","these"],["that","those"],["echo","echoes"],["dingo","dingoes"],["volcano","volcanoes"],["tornado","tornadoes"],["torpedo","torpedoes"],["genus","genera"],["viscus","viscera"],["stigma","stigmata"],["stoma","stomata"],["dogma","dogmata"],["lemma","lemmata"],["schema","schemata"],["anathema","anathemata"],["ox","oxen"],["axe","axes"],["die","dice"],["yes","yeses"],["foot","feet"],["eave","eaves"],["goose","geese"],["tooth","teeth"],["quiz","quizzes"],["human","humans"],["proof","proofs"],["carve","carves"],["valve","valves"],["looey","looies"],["thief","thieves"],["groove","grooves"],["pickaxe","pickaxes"],["passerby","passersby"]].forEach((function(d){return o.addIrregularRule(d[0],d[1])})),[[/s?$/i,"s"],[/[^\u0000-\u007F]$/i,"$0"],[/([^aeiou]ese)$/i,"$1"],[/(ax|test)is$/i,"$1es"],[/(alias|[^aou]us|t[lm]as|gas|ris)$/i,"$1es"],[/(e[mn]u)s?$/i,"$1s"],[/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i,"$1"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1i"],[/(alumn|alg|vertebr)(?:a|ae)$/i,"$1ae"],[/(seraph|cherub)(?:im)?$/i,"$1im"],[/(her|at|gr)o$/i,"$1oes"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i,"$1a"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i,"$1a"],[/sis$/i,"ses"],[/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i,"$1$2ves"],[/([^aeiouy]|qu)y$/i,"$1ies"],[/([^ch][ieo][ln])ey$/i,"$1ies"],[/(x|ch|ss|sh|zz)$/i,"$1es"],[/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i,"$1ices"],[/\b((?:tit)?m|l)(?:ice|ouse)$/i,"$1ice"],[/(pe)(?:rson|ople)$/i,"$1ople"],[/(child)(?:ren)?$/i,"$1ren"],[/eaux$/i,"$0"],[/m[ae]n$/i,"men"],["thou","you"]].forEach((function(d){return o.addPluralRule(d[0],d[1])})),[[/s$/i,""],[/(ss)$/i,"$1"],[/(wi|kni|(?:after|half|high|low|mid|non|night|[^\w]|^)li)ves$/i,"$1fe"],[/(ar|(?:wo|[ae])l|[eo][ao])ves$/i,"$1f"],[/ies$/i,"y"],[/\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i,"$1ie"],[/\b(mon|smil)ies$/i,"$1ey"],[/\b((?:tit)?m|l)ice$/i,"$1ouse"],[/(seraph|cherub)im$/i,"$1"],[/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i,"$1"],[/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i,"$1sis"],[/(movie|twelve|abuse|e[mn]u)s$/i,"$1"],[/(test)(?:is|es)$/i,"$1is"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1us"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i,"$1um"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i,"$1on"],[/(alumn|alg|vertebr)ae$/i,"$1a"],[/(cod|mur|sil|vert|ind)ices$/i,"$1ex"],[/(matr|append)ices$/i,"$1ix"],[/(pe)(rson|ople)$/i,"$1rson"],[/(child)ren$/i,"$1"],[/(eau)x?$/i,"$1"],[/men$/i,"man"]].forEach((function(d){return o.addSingularRule(d[0],d[1])})),["adulthood","advice","agenda","aid","aircraft","alcohol","ammo","analytics","anime","athletics","audio","bison","blood","bream","buffalo","butter","carp","cash","chassis","chess","clothing","cod","commerce","cooperation","corps","debris","diabetes","digestion","elk","energy","equipment","excretion","expertise","firmware","flounder","fun","gallows","garbage","graffiti","hardware","headquarters","health","herpes","highjinks","homework","housework","information","jeans","justice","kudos","labour","literature","machinery","mackerel","mail","media","mews","moose","music","mud","manga","news","only","personnel","pike","plankton","pliers","police","pollution","premises","rain","research","rice","salmon","scissors","series","sewage","shambles","shrimp","software","species","staff","swine","tennis","traffic","transportation","trout","tuna","wealth","welfare","whiting","wildebeest","wildlife","you",/pok[e\xe9]mon$/i,/[^aeiou]ese$/i,/deer$/i,/fish$/i,/measles$/i,/o[iu]s$/i,/pox$/i,/sheep$/i].forEach(o.addUncountableRule),o}()},372:function(d,u,e){"use strict";const a=e(373),c=d=>{if("string"!=typeof d)throw new TypeError("Expected a string");return d=(d=(d=a(d)).toLowerCase().replace(/[_-]+/g," ").replace(/\s{2,}/g," ").trim()).charAt(0).toUpperCase()+d.slice(1)};d.exports=c,d.exports.default=c},373:function(d,u,e){"use strict";const a=e(374);d.exports=(d,u)=>{if("string"!=typeof d)throw new TypeError("Expected a string");u=void 0===u?"_":u;const e=a("([\\p{Ll}\\d])(\\p{Lu})","g"),c=a("(\\p{Lu}+)(\\p{Lu}[\\p{Ll}\\d]+)","g");return d.replace(e,`$1${u}$2`).replace(c,`$1${u}$2`).toLowerCase()}},374:function(d,u,e){"use strict";Object.defineProperty(u,"__esModule",{value:!0});var a=s(e(375)),c=s(e(376)),n=s(e(377)),f=s(e(378)),t=s(e(379)),r=s(e(380)),i=s(e(381)),l=s(e(382));function s(d){return d&&d.__esModule?d:{default:d}}(0,c.default)(a.default),(0,n.default)(a.default),(0,f.default)(a.default),(0,t.default)(a.default),(0,r.default)(a.default),(0,i.default)(a.default),(0,l.default)(a.default),u.default=a.default,d.exports=u.default},375:function(d,u,e){"use strict";Object.defineProperty(u,"__esModule",{value:!0});var a={astral:!1},c={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},n={},f={},t={},r=[],i={default:/\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|\(\?(?:[:=!]|<[=!])|[?*+]\?|{\d+(?:,\d*)?}\??|[\s\S]/,class:/\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|[\s\S]/},l=/\$(?:{([\w$]+)}|<([\w$]+)>|(\d\d?|[\s\S]))/g,s=void 0===c.exec.call(/()??/,"")[1],o=void 0!==/x/.flags,m={}.toString;function b(d){var u=!0;try{new RegExp("",d)}catch(e){u=!1}return u}var p=b("u"),D=b("y"),h={g:!0,i:!0,m:!0,u:p,y:D};function g(d,u,e,a,c){var n=void 0;if(d.xregexp={captureNames:u},c)return d;if(d.__proto__)d.__proto__=O.prototype;else for(n in O.prototype)d[n]=O.prototype[n];return d.xregexp.source=e,d.xregexp.flags=a?a.split("").sort().join(""):a,d}function _(d){return c.replace.call(d,/([\s\S])(?=[\s\S]*\1)/g,"")}function E(d,u){if(!O.isRegExp(d))throw new TypeError("Type RegExp expected");var e=d.xregexp||{},a=function(d){return o?d.flags:c.exec.call(/\/([a-z]*)$/i,RegExp.prototype.toString.call(d))[1]}(d),n="",f="",t=null,r=null;return(u=u||{}).removeG&&(f+="g"),u.removeY&&(f+="y"),f&&(a=c.replace.call(a,new RegExp("["+f+"]+","g"),"")),u.addG&&(n+="g"),u.addY&&(n+="y"),n&&(a=_(a+n)),u.isInternalOnly||(void 0!==e.source&&(t=e.source),null!=e.flags&&(r=n?_(e.flags+n):e.flags)),d=g(new RegExp(u.source||d.source,a),function(d){return!(!d.xregexp||!d.xregexp.captureNames)}(d)?e.captureNames.slice(0):null,t,r,u.isInternalOnly)}function I(d){return parseInt(d,16)}function v(d,u,e){return"("===d.input[d.index-1]||")"===d.input[d.index+d[0].length]||function(d,u,e){return c.test.call(-1!==e.indexOf("x")?/^(?:\s|#[^#\n]*|\(\?#[^)]*\))*(?:[?*+]|{\d+(?:,\d*)?})/:/^(?:\(\?#[^)]*\))*(?:[?*+]|{\d+(?:,\d*)?})/,d.slice(u))}(d.input,d.index+d[0].length,e)?"":"(?:)"}function x(d){return parseInt(d,10).toString(16)}function y(d,u){return m.call(d)==="[object "+u+"]"}function C(d){for(;d.length<4;)d="0"+d;return d}function F(d){var u={};return y(d,"String")?(O.forEach(d,/[^\s,]+/,(function(d){u[d]=!0})),u):d}function w(d){if(!/^[\w$]$/.test(d))throw new Error("Flag must be a single character A-Za-z0-9_$");h[d]=!0}function S(d,u,e,a,c){for(var n=r.length,f=d[e],t=null,i=void 0,l=void 0;n--;)if(!((l=r[n]).leadChar&&l.leadChar!==f||l.scope!==a&&"all"!==l.scope||l.flag&&-1===u.indexOf(l.flag))&&(i=O.exec(d,l.regex,e,"sticky"))){t={matchLength:i[0].length,output:l.handler.call(c,i,a,u),reparse:l.reparse};break}return t}function k(d){a.astral=d}function A(d){if(null==d)throw new TypeError("Cannot convert null or undefined to object");return d}function O(d,u){if(O.isRegExp(d)){if(void 0!==u)throw new TypeError("Cannot supply flags when copying a RegExp");return E(d)}if(d=void 0===d?"":String(d),u=void 0===u?"":String(u),O.isInstalled("astral")&&-1===u.indexOf("A")&&(u+="A"),t[d]||(t[d]={}),!t[d][u]){for(var e={hasNamedCapture:!1,captureNames:[]},a="default",n="",f=0,r=void 0,l=function(d,u){var e=void 0;if(_(u)!==u)throw new SyntaxError("Invalid duplicate regex flag "+u);for(d=c.replace.call(d,/^\(\?([\w$]+)\)/,(function(d,e){if(c.test.call(/[gy]/,e))throw new SyntaxError("Cannot use flag g or y in mode modifier "+d);return u=_(u+e),""})),e=0;e"}else if(e)return"\\"+(+e+f);return d}if(!y(d,"Array")||!d.length)throw new TypeError("Must provide a nonempty array of patterns to merge");for(var i=/(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*\]/g,l=[],s=void 0,o=0;o1&&-1!==e.indexOf("")){var a=E(this,{removeG:!0,isInternalOnly:!0});c.replace.call(String(d).slice(e.index),a,(function(){for(var d=arguments.length,u=Array(d),a=0;ae.index&&(this.lastIndex=e.index)}return this.global||(this.lastIndex=u),e},n.test=function(d){return!!n.exec.call(this,d)},n.match=function(d){if(O.isRegExp(d)){if(d.global){var u=c.match.apply(this,arguments);return d.lastIndex=0,u}}else d=new RegExp(d);return n.exec.call(d,A(this))},n.replace=function(d,u){var e=O.isRegExp(d),a=void 0,n=void 0,f=void 0;return e?(d.xregexp&&(n=d.xregexp.captureNames),a=d.lastIndex):d+="",f=y(u,"Function")?c.replace.call(String(this),d,(function(){for(var a=arguments.length,c=Array(a),f=0;fe.length-3)throw new SyntaxError("Backreference to undefined group "+d);return e[c]||""}throw new SyntaxError("Invalid token "+d)}})),e&&(d.global?d.lastIndex=0:d.lastIndex=a),f},n.split=function(d,u){if(!O.isRegExp(d))return c.split.apply(this,arguments);var e=String(this),a=[],n=d.lastIndex,f=0,t=void 0;return u=(void 0===u?-1:u)>>>0,O.forEach(e,d,(function(d){d.index+d[0].length>f&&(a.push(e.slice(f,d.index)),d.length>1&&d.indexu?a.slice(0,u):a},O.addToken(/\\([ABCE-RTUVXYZaeg-mopqyz]|c(?![A-Za-z])|u(?![\dA-Fa-f]{4}|{[\dA-Fa-f]+})|x(?![\dA-Fa-f]{2}))/,(function(d,u){if("B"===d[1]&&"default"===u)return d[0];throw new SyntaxError("Invalid escape "+d[0])}),{scope:"all",leadChar:"\\"}),O.addToken(/\\u{([\dA-Fa-f]+)}/,(function(d,u,e){var a=I(d[1]);if(a>1114111)throw new SyntaxError("Invalid Unicode code point "+d[0]);if(a<=65535)return"\\u"+C(x(a));if(p&&-1!==e.indexOf("u"))return d[0];throw new SyntaxError("Cannot use Unicode code point above \\u{FFFF} without flag u")}),{scope:"all",leadChar:"\\"}),O.addToken(/\[(\^?)\]/,(function(d){return d[1]?"[\\s\\S]":"\\b\\B"}),{leadChar:"["}),O.addToken(/\(\?#[^)]*\)/,v,{leadChar:"("}),O.addToken(/\s+|#[^\n]*\n?/,v,{flag:"x"}),O.addToken(/\./,(function(){return"[\\s\\S]"}),{flag:"s",leadChar:"."}),O.addToken(/\\k<([\w$]+)>/,(function(d){var u=isNaN(d[1])?this.captureNames.indexOf(d[1])+1:+d[1],e=d.index+d[0].length;if(!u||u>this.captureNames.length)throw new SyntaxError("Backreference to undefined group "+d[0]);return"\\"+u+(e===d.input.length||isNaN(d.input[e])?"":"(?:)")}),{leadChar:"\\"}),O.addToken(/\\(\d+)/,(function(d,u){if(!("default"===u&&/^[1-9]/.test(d[1])&&+d[1]<=this.captureNames.length)&&"0"!==d[1])throw new SyntaxError("Cannot use octal escape or backreference to undefined group "+d[0]);return d[0]}),{scope:"all",leadChar:"\\"}),O.addToken(/\(\?P?<([\w$]+)>/,(function(d){if(!isNaN(d[1]))throw new SyntaxError("Cannot use integer as capture name "+d[0]);if("length"===d[1]||"__proto__"===d[1])throw new SyntaxError("Cannot use reserved word as capture name "+d[0]);if(-1!==this.captureNames.indexOf(d[1]))throw new SyntaxError("Cannot use same name for multiple groups "+d[0]);return this.captureNames.push(d[1]),this.hasNamedCapture=!0,"("}),{leadChar:"("}),O.addToken(/\((?!\?)/,(function(d,u,e){return-1!==e.indexOf("n")?"(?:":(this.captureNames.push(null),"(")}),{optionalFlags:"n",leadChar:"("}),u.default=O,d.exports=u.default},376:function(d,u,e){"use strict";Object.defineProperty(u,"__esModule",{value:!0}),u.default=function(d){var u=/(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*\]/g,e=d.union([/\({{([\w$]+)}}\)|{{([\w$]+)}}/,u],"g",{conjunction:"or"});function a(d){var u=/^(?:\(\?:\))*\^/,e=/\$(?:\(\?:\))*$/;return u.test(d)&&e.test(d)&&e.test(d.replace(/\\[\s\S]/g,""))?d.replace(u,"").replace(e,""):d}function c(u,e){var a=e?"x":"";return d.isRegExp(u)?u.xregexp&&u.xregexp.captureNames?u:d(u.source,a):d(u,a)}function n(u){return u instanceof RegExp?u:d.escape(u)}function f(d,u,e){return d["subpattern"+e]=u,d}function t(d,u,e){return d+(u1?a-1:0),r=1;r"):r="(?:",p=b,""+r+l[f].pattern.replace(u,(function(d,u,e){if(u){if(t=l[f].names[b-p],++b,t)return"(?<"+t+">"}else if(e)return i=+e-1,l[f].names[i]?"\\k<"+l[f].names[i]+">":"\\"+(+e+p);return d}))+")"}if(c){if(t=g[D],h[++D]=++b,t)return"(?<"+t+">"}else if(n)return g[i=+n-1]?"\\k<"+g[i]+">":"\\"+h[+n];return d}));return d(_,t)}},d.exports=u.default},377:function(d,u,e){"use strict";Object.defineProperty(u,"__esModule",{value:!0}),u.default=function(d){function u(d,u,e,a){return{name:d,value:u,start:e,end:a}}d.matchRecursive=function(e,a,c,n,f){f=f||{};var t=-1!==(n=n||"").indexOf("g"),r=-1!==n.indexOf("y"),i=n.replace(/y/g,""),l=f.escapeChar,s=f.valueNames,o=[],m=0,b=0,p=0,D=0,h=void 0,g=void 0,_=void 0,E=void 0,I=void 0;if(a=d(a,i),c=d(c,i),l){if(l.length>1)throw new Error("Cannot use more than one escape character");l=d.escape(l),I=new RegExp("(?:"+l+"[\\S\\s]|(?:(?!"+d.union([a,c],"",{conjunction:"or"}).source+")[^"+l+"])+)+",n.replace(/[^imu]+/g,""))}for(;;){if(l&&(p+=(d.exec(e,I,p,"sticky")||[""])[0].length),_=d.exec(e,a,p),E=d.exec(e,c,p),_&&E&&(_.index<=E.index?E=null:_=null),_||E)p=(b=(_||E).index)+(_||E)[0].length;else if(!m)break;if(r&&!m&&b>D)break;if(_)m||(h=b,g=p),++m;else{if(!E||!m)throw new Error("Unbalanced delimiter found in string");if(!--m&&(s?(s[0]&&h>D&&o.push(u(s[0],e.slice(D,h),D,h)),s[1]&&o.push(u(s[1],e.slice(h,g),h,g)),s[2]&&o.push(u(s[2],e.slice(g,b),g,b)),s[3]&&o.push(u(s[3],e.slice(b,p),b,p))):o.push(e.slice(g,b)),D=p,!t))break}b===p&&++p}return t&&!r&&s&&s[0]&&e.length>D&&o.push(u(s[0],e.slice(D),D,e.length)),o}},d.exports=u.default},378:function(d,u,e){"use strict";Object.defineProperty(u,"__esModule",{value:!0}),u.default=function(d){var u={},e=d._dec,a=d._hex,c=d._pad4;function n(d){return d.replace(/[- _]+/g,"").toLowerCase()}function f(d){var u=/^\\[xu](.+)/.exec(d);return u?e(u[1]):d.charCodeAt("\\"===d[0]?1:0)}function t(e){var n,t,r;return u[e]["b!"]||(u[e]["b!"]=(n=u[e].bmp,t="",r=-1,d.forEach(n,/(\\x..|\\u....|\\?[\s\S])(?:-(\\x..|\\u....|\\?[\s\S]))?/,(function(d){var u=f(d[1]);u>r+1&&(t+="\\u"+c(a(r+1)),u>r+2&&(t+="-\\u"+c(a(u-1)))),r=f(d[2]||d[1])})),r<65535&&(t+="\\u"+c(a(r+1)),r<65534&&(t+="-\\uFFFF")),t))}function r(d,e){var a=e?"a!":"a=";return u[d][a]||(u[d][a]=function(d,e){var a=u[d],c="";return a.bmp&&!a.isBmpLast&&(c="["+a.bmp+"]"+(a.astral?"|":"")),a.astral&&(c+=a.astral),a.isBmpLast&&a.bmp&&(c+=(a.astral?"|":"")+"["+a.bmp+"]"),e?"(?:(?!"+c+")(?:[\ud800-\udbff][\udc00-\udfff]|[\0-\uffff]))":"(?:"+c+")"}(d,e))}d.addToken(/\\([pP])(?:{(\^?)([^}]*)}|([A-Za-z]))/,(function(d,e,a){var c="P"===d[1]||!!d[2],f=-1!==a.indexOf("A"),i=n(d[4]||d[3]),l=u[i];if("P"===d[1]&&d[2])throw new SyntaxError("Invalid double negation "+d[0]);if(!u.hasOwnProperty(i))throw new SyntaxError("Unknown Unicode token "+d[0]);if(l.inverseOf){if(i=n(l.inverseOf),!u.hasOwnProperty(i))throw new ReferenceError("Unicode token missing data "+d[0]+" -> "+l.inverseOf);l=u[i],c=!c}if(!l.bmp&&!f)throw new SyntaxError("Astral mode required for Unicode token "+d[0]);if(f){if("class"===e)throw new SyntaxError("Astral mode does not support Unicode tokens within character classes");return r(i,c)}return"class"===e?c?t(i):l.bmp:(c?"[^":"[")+l.bmp+"]"}),{scope:"all",optionalFlags:"A",leadChar:"\\"}),d.addUnicodeData=function(e){for(var a=void 0,c=0;c\\x5E`\\x7C~\xa2-\xa6\xa8\xa9\xac\xae-\xb1\xb4\xb8\xd7\xf7\u02c2-\u02c5\u02d2-\u02df\u02e5-\u02eb\u02ed\u02ef-\u02ff\u0375\u0384\u0385\u03f6\u0482\u058d-\u058f\u0606-\u0608\u060b\u060e\u060f\u06de\u06e9\u06fd\u06fe\u07f6\u09f2\u09f3\u09fa\u09fb\u0af1\u0b70\u0bf3-\u0bfa\u0c7f\u0d4f\u0d79\u0e3f\u0f01-\u0f03\u0f13\u0f15-\u0f17\u0f1a-\u0f1f\u0f34\u0f36\u0f38\u0fbe-\u0fc5\u0fc7-\u0fcc\u0fce\u0fcf\u0fd5-\u0fd8\u109e\u109f\u1390-\u1399\u17db\u1940\u19de-\u19ff\u1b61-\u1b6a\u1b74-\u1b7c\u1fbd\u1fbf-\u1fc1\u1fcd-\u1fcf\u1fdd-\u1fdf\u1fed-\u1fef\u1ffd\u1ffe\u2044\u2052\u207a-\u207c\u208a-\u208c\u20a0-\u20be\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211e-\u2123\u2125\u2127\u2129\u212e\u213a\u213b\u2140-\u2144\u214a-\u214d\u214f\u218a\u218b\u2190-\u2307\u230c-\u2328\u232b-\u23fe\u2400-\u2426\u2440-\u244a\u249c-\u24e9\u2500-\u2767\u2794-\u27c4\u27c7-\u27e5\u27f0-\u2982\u2999-\u29d7\u29dc-\u29fb\u29fe-\u2b73\u2b76-\u2b95\u2b98-\u2bb9\u2bbd-\u2bc8\u2bca-\u2bd1\u2bec-\u2bef\u2ce5-\u2cea\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3004\u3012\u3013\u3020\u3036\u3037\u303e\u303f\u309b\u309c\u3190\u3191\u3196-\u319f\u31c0-\u31e3\u3200-\u321e\u322a-\u3247\u3250\u3260-\u327f\u328a-\u32b0\u32c0-\u32fe\u3300-\u33ff\u4dc0-\u4dff\ua490-\ua4c6\ua700-\ua716\ua720\ua721\ua789\ua78a\ua828-\ua82b\ua836-\ua839\uaa77-\uaa79\uab5b\ufb29\ufbb2-\ufbc1\ufdfc\ufdfd\ufe62\ufe64-\ufe66\ufe69\uff04\uff0b\uff1c-\uff1e\uff3e\uff40\uff5c\uff5e\uffe0-\uffe6\uffe8-\uffee\ufffc\ufffd",astral:"\ud800[\udd37-\udd3f\udd79-\udd89\udd8c-\udd8e\udd90-\udd9b\udda0\uddd0-\uddfc]|\ud802[\udc77\udc78\udec8]|\ud805\udf3f|\ud81a[\udf3c-\udf3f\udf45]|\ud82f\udc9c|\ud834[\udc00-\udcf5\udd00-\udd26\udd29-\udd64\udd6a-\udd6c\udd83\udd84\udd8c-\udda9\uddae-\udde8\ude00-\ude41\ude45\udf00-\udf56]|\ud835[\udec1\udedb\udefb\udf15\udf35\udf4f\udf6f\udf89\udfa9\udfc3]|\ud836[\udc00-\uddff\ude37-\ude3a\ude6d-\ude74\ude76-\ude83\ude85\ude86]|\ud83b[\udef0\udef1]|\ud83c[\udc00-\udc2b\udc30-\udc93\udca0-\udcae\udcb1-\udcbf\udcc1-\udccf\udcd1-\udcf5\udd10-\udd2e\udd30-\udd6b\udd70-\uddac\udde6-\ude02\ude10-\ude3b\ude40-\ude48\ude50\ude51\udf00-\udfff]|\ud83d[\udc00-\uded2\udee0-\udeec\udef0-\udef6\udf00-\udf73\udf80-\udfd4]|\ud83e[\udc00-\udc0b\udc10-\udc47\udc50-\udc59\udc60-\udc87\udc90-\udcad\udd10-\udd1e\udd20-\udd27\udd30\udd33-\udd3e\udd40-\udd4b\udd50-\udd5e\udd80-\udd91\uddc0]"},{name:"Sc",alias:"Currency_Symbol",bmp:"\\x24\xa2-\xa5\u058f\u060b\u09f2\u09f3\u09fb\u0af1\u0bf9\u0e3f\u17db\u20a0-\u20be\ua838\ufdfc\ufe69\uff04\uffe0\uffe1\uffe5\uffe6"},{name:"Sk",alias:"Modifier_Symbol",bmp:"\\x5E`\xa8\xaf\xb4\xb8\u02c2-\u02c5\u02d2-\u02df\u02e5-\u02eb\u02ed\u02ef-\u02ff\u0375\u0384\u0385\u1fbd\u1fbf-\u1fc1\u1fcd-\u1fcf\u1fdd-\u1fdf\u1fed-\u1fef\u1ffd\u1ffe\u309b\u309c\ua700-\ua716\ua720\ua721\ua789\ua78a\uab5b\ufbb2-\ufbc1\uff3e\uff40\uffe3",astral:"\ud83c[\udffb-\udfff]"},{name:"Sm",alias:"Math_Symbol",bmp:"\\x2B<->\\x7C~\xac\xb1\xd7\xf7\u03f6\u0606-\u0608\u2044\u2052\u207a-\u207c\u208a-\u208c\u2118\u2140-\u2144\u214b\u2190-\u2194\u219a\u219b\u21a0\u21a3\u21a6\u21ae\u21ce\u21cf\u21d2\u21d4\u21f4-\u22ff\u2320\u2321\u237c\u239b-\u23b3\u23dc-\u23e1\u25b7\u25c1\u25f8-\u25ff\u266f\u27c0-\u27c4\u27c7-\u27e5\u27f0-\u27ff\u2900-\u2982\u2999-\u29d7\u29dc-\u29fb\u29fe-\u2aff\u2b30-\u2b44\u2b47-\u2b4c\ufb29\ufe62\ufe64-\ufe66\uff0b\uff1c-\uff1e\uff5c\uff5e\uffe2\uffe9-\uffec",astral:"\ud835[\udec1\udedb\udefb\udf15\udf35\udf4f\udf6f\udf89\udfa9\udfc3]|\ud83b[\udef0\udef1]"},{name:"So",alias:"Other_Symbol",bmp:"\xa6\xa9\xae\xb0\u0482\u058d\u058e\u060e\u060f\u06de\u06e9\u06fd\u06fe\u07f6\u09fa\u0b70\u0bf3-\u0bf8\u0bfa\u0c7f\u0d4f\u0d79\u0f01-\u0f03\u0f13\u0f15-\u0f17\u0f1a-\u0f1f\u0f34\u0f36\u0f38\u0fbe-\u0fc5\u0fc7-\u0fcc\u0fce\u0fcf\u0fd5-\u0fd8\u109e\u109f\u1390-\u1399\u1940\u19de-\u19ff\u1b61-\u1b6a\u1b74-\u1b7c\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116\u2117\u211e-\u2123\u2125\u2127\u2129\u212e\u213a\u213b\u214a\u214c\u214d\u214f\u218a\u218b\u2195-\u2199\u219c-\u219f\u21a1\u21a2\u21a4\u21a5\u21a7-\u21ad\u21af-\u21cd\u21d0\u21d1\u21d3\u21d5-\u21f3\u2300-\u2307\u230c-\u231f\u2322-\u2328\u232b-\u237b\u237d-\u239a\u23b4-\u23db\u23e2-\u23fe\u2400-\u2426\u2440-\u244a\u249c-\u24e9\u2500-\u25b6\u25b8-\u25c0\u25c2-\u25f7\u2600-\u266e\u2670-\u2767\u2794-\u27bf\u2800-\u28ff\u2b00-\u2b2f\u2b45\u2b46\u2b4d-\u2b73\u2b76-\u2b95\u2b98-\u2bb9\u2bbd-\u2bc8\u2bca-\u2bd1\u2bec-\u2bef\u2ce5-\u2cea\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3004\u3012\u3013\u3020\u3036\u3037\u303e\u303f\u3190\u3191\u3196-\u319f\u31c0-\u31e3\u3200-\u321e\u322a-\u3247\u3250\u3260-\u327f\u328a-\u32b0\u32c0-\u32fe\u3300-\u33ff\u4dc0-\u4dff\ua490-\ua4c6\ua828-\ua82b\ua836\ua837\ua839\uaa77-\uaa79\ufdfd\uffe4\uffe8\uffed\uffee\ufffc\ufffd",astral:"\ud800[\udd37-\udd3f\udd79-\udd89\udd8c-\udd8e\udd90-\udd9b\udda0\uddd0-\uddfc]|\ud802[\udc77\udc78\udec8]|\ud805\udf3f|\ud81a[\udf3c-\udf3f\udf45]|\ud82f\udc9c|\ud834[\udc00-\udcf5\udd00-\udd26\udd29-\udd64\udd6a-\udd6c\udd83\udd84\udd8c-\udda9\uddae-\udde8\ude00-\ude41\ude45\udf00-\udf56]|\ud836[\udc00-\uddff\ude37-\ude3a\ude6d-\ude74\ude76-\ude83\ude85\ude86]|\ud83c[\udc00-\udc2b\udc30-\udc93\udca0-\udcae\udcb1-\udcbf\udcc1-\udccf\udcd1-\udcf5\udd10-\udd2e\udd30-\udd6b\udd70-\uddac\udde6-\ude02\ude10-\ude3b\ude40-\ude48\ude50\ude51\udf00-\udffa]|\ud83d[\udc00-\uded2\udee0-\udeec\udef0-\udef6\udf00-\udf73\udf80-\udfd4]|\ud83e[\udc00-\udc0b\udc10-\udc47\udc50-\udc59\udc60-\udc87\udc90-\udcad\udd10-\udd1e\udd20-\udd27\udd30\udd33-\udd3e\udd40-\udd4b\udd50-\udd5e\udd80-\udd91\uddc0]"},{name:"Z",alias:"Separator",bmp:" \xa0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000"},{name:"Zl",alias:"Line_Separator",bmp:"\u2028"},{name:"Zp",alias:"Paragraph_Separator",bmp:"\u2029"},{name:"Zs",alias:"Space_Separator",bmp:" \xa0\u1680\u2000-\u200a\u202f\u205f\u3000"}])},d.exports=u.default},381:function(d,u,e){"use strict";Object.defineProperty(u,"__esModule",{value:!0}),u.default=function(d){if(!d.addUnicodeData)throw new ReferenceError("Unicode Base must be loaded before Unicode Properties");var u=[{name:"ASCII",bmp:"\0-\x7f"},{name:"Alphabetic",bmp:"A-Za-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0345\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0561-\u0587\u05b0-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u05d0-\u05ea\u05f0-\u05f2\u0610-\u061a\u0620-\u0657\u0659-\u065f\u066e-\u06d3\u06d5-\u06dc\u06e1-\u06e8\u06ed-\u06ef\u06fa-\u06fc\u06ff\u0710-\u073f\u074d-\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0817\u081a-\u082c\u0840-\u0858\u08a0-\u08b4\u08b6-\u08bd\u08d4-\u08df\u08e3-\u08e9\u08f0-\u093b\u093d-\u094c\u094e-\u0950\u0955-\u0963\u0971-\u0983\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd-\u09c4\u09c7\u09c8\u09cb\u09cc\u09ce\u09d7\u09dc\u09dd\u09df-\u09e3\u09f0\u09f1\u0a01-\u0a03\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a3e-\u0a42\u0a47\u0a48\u0a4b\u0a4c\u0a51\u0a59-\u0a5c\u0a5e\u0a70-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd-\u0ac5\u0ac7-\u0ac9\u0acb\u0acc\u0ad0\u0ae0-\u0ae3\u0af9\u0b01-\u0b03\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d-\u0b44\u0b47\u0b48\u0b4b\u0b4c\u0b56\u0b57\u0b5c\u0b5d\u0b5f-\u0b63\u0b71\u0b82\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcc\u0bd0\u0bd7\u0c00-\u0c03\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4c\u0c55\u0c56\u0c58-\u0c5a\u0c60-\u0c63\u0c80-\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccc\u0cd5\u0cd6\u0cde\u0ce0-\u0ce3\u0cf1\u0cf2\u0d01-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d-\u0d44\u0d46-\u0d48\u0d4a-\u0d4c\u0d4e\u0d54-\u0d57\u0d5f-\u0d63\u0d7a-\u0d7f\u0d82\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e01-\u0e3a\u0e40-\u0e46\u0e4d\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb9\u0ebb-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ecd\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f71-\u0f81\u0f88-\u0f97\u0f99-\u0fbc\u1000-\u1036\u1038\u103b-\u103f\u1050-\u1062\u1065-\u1068\u106e-\u1086\u108e\u109c\u109d\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135f\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1713\u1720-\u1733\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772\u1773\u1780-\u17b3\u17b6-\u17c8\u17d7\u17dc\u1820-\u1877\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u1938\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a1b\u1a20-\u1a5e\u1a61-\u1a74\u1aa7\u1b00-\u1b33\u1b35-\u1b43\u1b45-\u1b4b\u1b80-\u1ba9\u1bac-\u1baf\u1bba-\u1be5\u1be7-\u1bf1\u1c00-\u1c35\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1d00-\u1dbf\u1de7-\u1df4\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u24b6-\u24e9\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fd5\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua674-\ua67b\ua67f-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ae\ua7b0-\ua7b7\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua827\ua840-\ua873\ua880-\ua8c3\ua8c5\ua8f2-\ua8f7\ua8fb\ua8fd\ua90a-\ua92a\ua930-\ua952\ua960-\ua97c\ua980-\ua9b2\ua9b4-\ua9bf\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa60-\uaa76\uaa7a\uaa7e-\uaabe\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf5\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab65\uab70-\uabea\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc",astral:"\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf30-\udf4a\udf50-\udf7a\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe\uddbf\ude00-\ude03\ude05\ude06\ude0c-\ude13\ude15-\ude17\ude19-\ude33\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2]|\ud804[\udc00-\udc45\udc82-\udcb8\udcd0-\udce8\udd00-\udd32\udd50-\udd72\udd76\udd80-\uddbf\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude34\ude37\ude3e\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udee8\udf00-\udf03\udf05-\udf0c\udf0f\udf10\udf13-\udf28\udf2a-\udf30\udf32\udf33\udf35-\udf39\udf3d-\udf44\udf47\udf48\udf4b\udf4c\udf50\udf57\udf5d-\udf63]|\ud805[\udc00-\udc41\udc43-\udc45\udc47-\udc4a\udc80-\udcc1\udcc4\udcc5\udcc7\udd80-\uddb5\uddb8-\uddbe\uddd8-\udddd\ude00-\ude3e\ude40\ude44\ude80-\udeb5\udf00-\udf19\udf1d-\udf2a]|\ud806[\udca0-\udcdf\udcff\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc36\udc38-\udc3e\udc40\udc72-\udc8f\udc92-\udca7\udca9-\udcb6]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|[\ud80c\ud81c-\ud820\ud840-\ud868\ud86a-\ud86c\ud86f-\ud872][\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf36\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\udf00-\udf44\udf50-\udf7e\udf93-\udf9f\udfe0]|\ud821[\udc00-\udfec]|\ud822[\udc00-\udef2]|\ud82c[\udc00\udc01]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99\udc9e]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e\udc9f\udca2\udca5\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23\udc24\udc26-\udc2a]|\ud83a[\udc00-\udcc4\udd00-\udd43\udd47]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud83c[\udd30-\udd49\udd50-\udd69\udd70-\udd89]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud873[\udc00-\udea1]|\ud87e[\udc00-\ude1d]"},{name:"Any",isBmpLast:!0,bmp:"\0-\uffff",astral:"[\ud800-\udbff][\udc00-\udfff]"},{name:"Default_Ignorable_Code_Point",bmp:"\xad\u034f\u061c\u115f\u1160\u17b4\u17b5\u180b-\u180e\u200b-\u200f\u202a-\u202e\u2060-\u206f\u3164\ufe00-\ufe0f\ufeff\uffa0\ufff0-\ufff8",astral:"\ud82f[\udca0-\udca3]|\ud834[\udd73-\udd7a]|[\udb40-\udb43][\udc00-\udfff]"},{name:"Lowercase",bmp:"a-z\xaa\xb5\xba\xdf-\xf6\xf8-\xff\u0101\u0103\u0105\u0107\u0109\u010b\u010d\u010f\u0111\u0113\u0115\u0117\u0119\u011b\u011d\u011f\u0121\u0123\u0125\u0127\u0129\u012b\u012d\u012f\u0131\u0133\u0135\u0137\u0138\u013a\u013c\u013e\u0140\u0142\u0144\u0146\u0148\u0149\u014b\u014d\u014f\u0151\u0153\u0155\u0157\u0159\u015b\u015d\u015f\u0161\u0163\u0165\u0167\u0169\u016b\u016d\u016f\u0171\u0173\u0175\u0177\u017a\u017c\u017e-\u0180\u0183\u0185\u0188\u018c\u018d\u0192\u0195\u0199-\u019b\u019e\u01a1\u01a3\u01a5\u01a8\u01aa\u01ab\u01ad\u01b0\u01b4\u01b6\u01b9\u01ba\u01bd-\u01bf\u01c6\u01c9\u01cc\u01ce\u01d0\u01d2\u01d4\u01d6\u01d8\u01da\u01dc\u01dd\u01df\u01e1\u01e3\u01e5\u01e7\u01e9\u01eb\u01ed\u01ef\u01f0\u01f3\u01f5\u01f9\u01fb\u01fd\u01ff\u0201\u0203\u0205\u0207\u0209\u020b\u020d\u020f\u0211\u0213\u0215\u0217\u0219\u021b\u021d\u021f\u0221\u0223\u0225\u0227\u0229\u022b\u022d\u022f\u0231\u0233-\u0239\u023c\u023f\u0240\u0242\u0247\u0249\u024b\u024d\u024f-\u0293\u0295-\u02b8\u02c0\u02c1\u02e0-\u02e4\u0345\u0371\u0373\u0377\u037a-\u037d\u0390\u03ac-\u03ce\u03d0\u03d1\u03d5-\u03d7\u03d9\u03db\u03dd\u03df\u03e1\u03e3\u03e5\u03e7\u03e9\u03eb\u03ed\u03ef-\u03f3\u03f5\u03f8\u03fb\u03fc\u0430-\u045f\u0461\u0463\u0465\u0467\u0469\u046b\u046d\u046f\u0471\u0473\u0475\u0477\u0479\u047b\u047d\u047f\u0481\u048b\u048d\u048f\u0491\u0493\u0495\u0497\u0499\u049b\u049d\u049f\u04a1\u04a3\u04a5\u04a7\u04a9\u04ab\u04ad\u04af\u04b1\u04b3\u04b5\u04b7\u04b9\u04bb\u04bd\u04bf\u04c2\u04c4\u04c6\u04c8\u04ca\u04cc\u04ce\u04cf\u04d1\u04d3\u04d5\u04d7\u04d9\u04db\u04dd\u04df\u04e1\u04e3\u04e5\u04e7\u04e9\u04eb\u04ed\u04ef\u04f1\u04f3\u04f5\u04f7\u04f9\u04fb\u04fd\u04ff\u0501\u0503\u0505\u0507\u0509\u050b\u050d\u050f\u0511\u0513\u0515\u0517\u0519\u051b\u051d\u051f\u0521\u0523\u0525\u0527\u0529\u052b\u052d\u052f\u0561-\u0587\u13f8-\u13fd\u1c80-\u1c88\u1d00-\u1dbf\u1e01\u1e03\u1e05\u1e07\u1e09\u1e0b\u1e0d\u1e0f\u1e11\u1e13\u1e15\u1e17\u1e19\u1e1b\u1e1d\u1e1f\u1e21\u1e23\u1e25\u1e27\u1e29\u1e2b\u1e2d\u1e2f\u1e31\u1e33\u1e35\u1e37\u1e39\u1e3b\u1e3d\u1e3f\u1e41\u1e43\u1e45\u1e47\u1e49\u1e4b\u1e4d\u1e4f\u1e51\u1e53\u1e55\u1e57\u1e59\u1e5b\u1e5d\u1e5f\u1e61\u1e63\u1e65\u1e67\u1e69\u1e6b\u1e6d\u1e6f\u1e71\u1e73\u1e75\u1e77\u1e79\u1e7b\u1e7d\u1e7f\u1e81\u1e83\u1e85\u1e87\u1e89\u1e8b\u1e8d\u1e8f\u1e91\u1e93\u1e95-\u1e9d\u1e9f\u1ea1\u1ea3\u1ea5\u1ea7\u1ea9\u1eab\u1ead\u1eaf\u1eb1\u1eb3\u1eb5\u1eb7\u1eb9\u1ebb\u1ebd\u1ebf\u1ec1\u1ec3\u1ec5\u1ec7\u1ec9\u1ecb\u1ecd\u1ecf\u1ed1\u1ed3\u1ed5\u1ed7\u1ed9\u1edb\u1edd\u1edf\u1ee1\u1ee3\u1ee5\u1ee7\u1ee9\u1eeb\u1eed\u1eef\u1ef1\u1ef3\u1ef5\u1ef7\u1ef9\u1efb\u1efd\u1eff-\u1f07\u1f10-\u1f15\u1f20-\u1f27\u1f30-\u1f37\u1f40-\u1f45\u1f50-\u1f57\u1f60-\u1f67\u1f70-\u1f7d\u1f80-\u1f87\u1f90-\u1f97\u1fa0-\u1fa7\u1fb0-\u1fb4\u1fb6\u1fb7\u1fbe\u1fc2-\u1fc4\u1fc6\u1fc7\u1fd0-\u1fd3\u1fd6\u1fd7\u1fe0-\u1fe7\u1ff2-\u1ff4\u1ff6\u1ff7\u2071\u207f\u2090-\u209c\u210a\u210e\u210f\u2113\u212f\u2134\u2139\u213c\u213d\u2146-\u2149\u214e\u2170-\u217f\u2184\u24d0-\u24e9\u2c30-\u2c5e\u2c61\u2c65\u2c66\u2c68\u2c6a\u2c6c\u2c71\u2c73\u2c74\u2c76-\u2c7d\u2c81\u2c83\u2c85\u2c87\u2c89\u2c8b\u2c8d\u2c8f\u2c91\u2c93\u2c95\u2c97\u2c99\u2c9b\u2c9d\u2c9f\u2ca1\u2ca3\u2ca5\u2ca7\u2ca9\u2cab\u2cad\u2caf\u2cb1\u2cb3\u2cb5\u2cb7\u2cb9\u2cbb\u2cbd\u2cbf\u2cc1\u2cc3\u2cc5\u2cc7\u2cc9\u2ccb\u2ccd\u2ccf\u2cd1\u2cd3\u2cd5\u2cd7\u2cd9\u2cdb\u2cdd\u2cdf\u2ce1\u2ce3\u2ce4\u2cec\u2cee\u2cf3\u2d00-\u2d25\u2d27\u2d2d\ua641\ua643\ua645\ua647\ua649\ua64b\ua64d\ua64f\ua651\ua653\ua655\ua657\ua659\ua65b\ua65d\ua65f\ua661\ua663\ua665\ua667\ua669\ua66b\ua66d\ua681\ua683\ua685\ua687\ua689\ua68b\ua68d\ua68f\ua691\ua693\ua695\ua697\ua699\ua69b-\ua69d\ua723\ua725\ua727\ua729\ua72b\ua72d\ua72f-\ua731\ua733\ua735\ua737\ua739\ua73b\ua73d\ua73f\ua741\ua743\ua745\ua747\ua749\ua74b\ua74d\ua74f\ua751\ua753\ua755\ua757\ua759\ua75b\ua75d\ua75f\ua761\ua763\ua765\ua767\ua769\ua76b\ua76d\ua76f-\ua778\ua77a\ua77c\ua77f\ua781\ua783\ua785\ua787\ua78c\ua78e\ua791\ua793-\ua795\ua797\ua799\ua79b\ua79d\ua79f\ua7a1\ua7a3\ua7a5\ua7a7\ua7a9\ua7b5\ua7b7\ua7f8-\ua7fa\uab30-\uab5a\uab5c-\uab65\uab70-\uabbf\ufb00-\ufb06\ufb13-\ufb17\uff41-\uff5a",astral:"\ud801[\udc28-\udc4f\udcd8-\udcfb]|\ud803[\udcc0-\udcf2]|\ud806[\udcc0-\udcdf]|\ud835[\udc1a-\udc33\udc4e-\udc54\udc56-\udc67\udc82-\udc9b\udcb6-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udccf\udcea-\udd03\udd1e-\udd37\udd52-\udd6b\udd86-\udd9f\uddba-\uddd3\uddee-\ude07\ude22-\ude3b\ude56-\ude6f\ude8a-\udea5\udec2-\udeda\udedc-\udee1\udefc-\udf14\udf16-\udf1b\udf36-\udf4e\udf50-\udf55\udf70-\udf88\udf8a-\udf8f\udfaa-\udfc2\udfc4-\udfc9\udfcb]|\ud83a[\udd22-\udd43]"},{name:"Noncharacter_Code_Point",bmp:"\ufdd0-\ufdef\ufffe\uffff",astral:"[\ud83f\ud87f\ud8bf\ud8ff\ud93f\ud97f\ud9bf\ud9ff\uda3f\uda7f\udabf\udaff\udb3f\udb7f\udbbf\udbff][\udffe\udfff]"},{name:"Uppercase",bmp:"A-Z\xc0-\xd6\xd8-\xde\u0100\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136\u0139\u013b\u013d\u013f\u0141\u0143\u0145\u0147\u014a\u014c\u014e\u0150\u0152\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174\u0176\u0178\u0179\u017b\u017d\u0181\u0182\u0184\u0186\u0187\u0189-\u018b\u018e-\u0191\u0193\u0194\u0196-\u0198\u019c\u019d\u019f\u01a0\u01a2\u01a4\u01a6\u01a7\u01a9\u01ac\u01ae\u01af\u01b1-\u01b3\u01b5\u01b7\u01b8\u01bc\u01c4\u01c7\u01ca\u01cd\u01cf\u01d1\u01d3\u01d5\u01d7\u01d9\u01db\u01de\u01e0\u01e2\u01e4\u01e6\u01e8\u01ea\u01ec\u01ee\u01f1\u01f4\u01f6-\u01f8\u01fa\u01fc\u01fe\u0200\u0202\u0204\u0206\u0208\u020a\u020c\u020e\u0210\u0212\u0214\u0216\u0218\u021a\u021c\u021e\u0220\u0222\u0224\u0226\u0228\u022a\u022c\u022e\u0230\u0232\u023a\u023b\u023d\u023e\u0241\u0243-\u0246\u0248\u024a\u024c\u024e\u0370\u0372\u0376\u037f\u0386\u0388-\u038a\u038c\u038e\u038f\u0391-\u03a1\u03a3-\u03ab\u03cf\u03d2-\u03d4\u03d8\u03da\u03dc\u03de\u03e0\u03e2\u03e4\u03e6\u03e8\u03ea\u03ec\u03ee\u03f4\u03f7\u03f9\u03fa\u03fd-\u042f\u0460\u0462\u0464\u0466\u0468\u046a\u046c\u046e\u0470\u0472\u0474\u0476\u0478\u047a\u047c\u047e\u0480\u048a\u048c\u048e\u0490\u0492\u0494\u0496\u0498\u049a\u049c\u049e\u04a0\u04a2\u04a4\u04a6\u04a8\u04aa\u04ac\u04ae\u04b0\u04b2\u04b4\u04b6\u04b8\u04ba\u04bc\u04be\u04c0\u04c1\u04c3\u04c5\u04c7\u04c9\u04cb\u04cd\u04d0\u04d2\u04d4\u04d6\u04d8\u04da\u04dc\u04de\u04e0\u04e2\u04e4\u04e6\u04e8\u04ea\u04ec\u04ee\u04f0\u04f2\u04f4\u04f6\u04f8\u04fa\u04fc\u04fe\u0500\u0502\u0504\u0506\u0508\u050a\u050c\u050e\u0510\u0512\u0514\u0516\u0518\u051a\u051c\u051e\u0520\u0522\u0524\u0526\u0528\u052a\u052c\u052e\u0531-\u0556\u10a0-\u10c5\u10c7\u10cd\u13a0-\u13f5\u1e00\u1e02\u1e04\u1e06\u1e08\u1e0a\u1e0c\u1e0e\u1e10\u1e12\u1e14\u1e16\u1e18\u1e1a\u1e1c\u1e1e\u1e20\u1e22\u1e24\u1e26\u1e28\u1e2a\u1e2c\u1e2e\u1e30\u1e32\u1e34\u1e36\u1e38\u1e3a\u1e3c\u1e3e\u1e40\u1e42\u1e44\u1e46\u1e48\u1e4a\u1e4c\u1e4e\u1e50\u1e52\u1e54\u1e56\u1e58\u1e5a\u1e5c\u1e5e\u1e60\u1e62\u1e64\u1e66\u1e68\u1e6a\u1e6c\u1e6e\u1e70\u1e72\u1e74\u1e76\u1e78\u1e7a\u1e7c\u1e7e\u1e80\u1e82\u1e84\u1e86\u1e88\u1e8a\u1e8c\u1e8e\u1e90\u1e92\u1e94\u1e9e\u1ea0\u1ea2\u1ea4\u1ea6\u1ea8\u1eaa\u1eac\u1eae\u1eb0\u1eb2\u1eb4\u1eb6\u1eb8\u1eba\u1ebc\u1ebe\u1ec0\u1ec2\u1ec4\u1ec6\u1ec8\u1eca\u1ecc\u1ece\u1ed0\u1ed2\u1ed4\u1ed6\u1ed8\u1eda\u1edc\u1ede\u1ee0\u1ee2\u1ee4\u1ee6\u1ee8\u1eea\u1eec\u1eee\u1ef0\u1ef2\u1ef4\u1ef6\u1ef8\u1efa\u1efc\u1efe\u1f08-\u1f0f\u1f18-\u1f1d\u1f28-\u1f2f\u1f38-\u1f3f\u1f48-\u1f4d\u1f59\u1f5b\u1f5d\u1f5f\u1f68-\u1f6f\u1fb8-\u1fbb\u1fc8-\u1fcb\u1fd8-\u1fdb\u1fe8-\u1fec\u1ff8-\u1ffb\u2102\u2107\u210b-\u210d\u2110-\u2112\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u2130-\u2133\u213e\u213f\u2145\u2160-\u216f\u2183\u24b6-\u24cf\u2c00-\u2c2e\u2c60\u2c62-\u2c64\u2c67\u2c69\u2c6b\u2c6d-\u2c70\u2c72\u2c75\u2c7e-\u2c80\u2c82\u2c84\u2c86\u2c88\u2c8a\u2c8c\u2c8e\u2c90\u2c92\u2c94\u2c96\u2c98\u2c9a\u2c9c\u2c9e\u2ca0\u2ca2\u2ca4\u2ca6\u2ca8\u2caa\u2cac\u2cae\u2cb0\u2cb2\u2cb4\u2cb6\u2cb8\u2cba\u2cbc\u2cbe\u2cc0\u2cc2\u2cc4\u2cc6\u2cc8\u2cca\u2ccc\u2cce\u2cd0\u2cd2\u2cd4\u2cd6\u2cd8\u2cda\u2cdc\u2cde\u2ce0\u2ce2\u2ceb\u2ced\u2cf2\ua640\ua642\ua644\ua646\ua648\ua64a\ua64c\ua64e\ua650\ua652\ua654\ua656\ua658\ua65a\ua65c\ua65e\ua660\ua662\ua664\ua666\ua668\ua66a\ua66c\ua680\ua682\ua684\ua686\ua688\ua68a\ua68c\ua68e\ua690\ua692\ua694\ua696\ua698\ua69a\ua722\ua724\ua726\ua728\ua72a\ua72c\ua72e\ua732\ua734\ua736\ua738\ua73a\ua73c\ua73e\ua740\ua742\ua744\ua746\ua748\ua74a\ua74c\ua74e\ua750\ua752\ua754\ua756\ua758\ua75a\ua75c\ua75e\ua760\ua762\ua764\ua766\ua768\ua76a\ua76c\ua76e\ua779\ua77b\ua77d\ua77e\ua780\ua782\ua784\ua786\ua78b\ua78d\ua790\ua792\ua796\ua798\ua79a\ua79c\ua79e\ua7a0\ua7a2\ua7a4\ua7a6\ua7a8\ua7aa-\ua7ae\ua7b0-\ua7b4\ua7b6\uff21-\uff3a",astral:"\ud801[\udc00-\udc27\udcb0-\udcd3]|\ud803[\udc80-\udcb2]|\ud806[\udca0-\udcbf]|\ud835[\udc00-\udc19\udc34-\udc4d\udc68-\udc81\udc9c\udc9e\udc9f\udca2\udca5\udca6\udca9-\udcac\udcae-\udcb5\udcd0-\udce9\udd04\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd38\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd6c-\udd85\udda0-\uddb9\uddd4-\udded\ude08-\ude21\ude3c-\ude55\ude70-\ude89\udea8-\udec0\udee2-\udefa\udf1c-\udf34\udf56-\udf6e\udf90-\udfa8\udfca]|\ud83a[\udd00-\udd21]|\ud83c[\udd30-\udd49\udd50-\udd69\udd70-\udd89]"},{name:"White_Space",bmp:"\t-\r \x85\xa0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000"}];u.push({name:"Assigned",inverseOf:"Cn"}),d.addUnicodeData(u)},d.exports=u.default},382:function(d,u,e){"use strict";Object.defineProperty(u,"__esModule",{value:!0}),u.default=function(d){if(!d.addUnicodeData)throw new ReferenceError("Unicode Base must be loaded before Unicode Scripts");d.addUnicodeData([{name:"Adlam",astral:"\ud83a[\udd00-\udd4a\udd50-\udd59\udd5e\udd5f]"},{name:"Ahom",astral:"\ud805[\udf00-\udf19\udf1d-\udf2b\udf30-\udf3f]"},{name:"Anatolian_Hieroglyphs",astral:"\ud811[\udc00-\ude46]"},{name:"Arabic",bmp:"\u0600-\u0604\u0606-\u060b\u060d-\u061a\u061e\u0620-\u063f\u0641-\u064a\u0656-\u066f\u0671-\u06dc\u06de-\u06ff\u0750-\u077f\u08a0-\u08b4\u08b6-\u08bd\u08d4-\u08e1\u08e3-\u08ff\ufb50-\ufbc1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfd\ufe70-\ufe74\ufe76-\ufefc",astral:"\ud803[\ude60-\ude7e]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb\udef0\udef1]"},{name:"Armenian",bmp:"\u0531-\u0556\u0559-\u055f\u0561-\u0587\u058a\u058d-\u058f\ufb13-\ufb17"},{name:"Avestan",astral:"\ud802[\udf00-\udf35\udf39-\udf3f]"},{name:"Balinese",bmp:"\u1b00-\u1b4b\u1b50-\u1b7c"},{name:"Bamum",bmp:"\ua6a0-\ua6f7",astral:"\ud81a[\udc00-\ude38]"},{name:"Bassa_Vah",astral:"\ud81a[\uded0-\udeed\udef0-\udef5]"},{name:"Batak",bmp:"\u1bc0-\u1bf3\u1bfc-\u1bff"},{name:"Bengali",bmp:"\u0980-\u0983\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7\u09c8\u09cb-\u09ce\u09d7\u09dc\u09dd\u09df-\u09e3\u09e6-\u09fb"},{name:"Bhaiksuki",astral:"\ud807[\udc00-\udc08\udc0a-\udc36\udc38-\udc45\udc50-\udc6c]"},{name:"Bopomofo",bmp:"\u02ea\u02eb\u3105-\u312d\u31a0-\u31ba"},{name:"Brahmi",astral:"\ud804[\udc00-\udc4d\udc52-\udc6f\udc7f]"},{name:"Braille",bmp:"\u2800-\u28ff"},{name:"Buginese",bmp:"\u1a00-\u1a1b\u1a1e\u1a1f"},{name:"Buhid",bmp:"\u1740-\u1753"},{name:"Canadian_Aboriginal",bmp:"\u1400-\u167f\u18b0-\u18f5"},{name:"Carian",astral:"\ud800[\udea0-\uded0]"},{name:"Caucasian_Albanian",astral:"\ud801[\udd30-\udd63\udd6f]"},{name:"Chakma",astral:"\ud804[\udd00-\udd34\udd36-\udd43]"},{name:"Cham",bmp:"\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaa5f"},{name:"Cherokee",bmp:"\u13a0-\u13f5\u13f8-\u13fd\uab70-\uabbf"},{name:"Common",bmp:"\0-@\\x5B-`\\x7B-\xa9\xab-\xb9\xbb-\xbf\xd7\xf7\u02b9-\u02df\u02e5-\u02e9\u02ec-\u02ff\u0374\u037e\u0385\u0387\u0589\u0605\u060c\u061b\u061c\u061f\u0640\u06dd\u08e2\u0964\u0965\u0e3f\u0fd5-\u0fd8\u10fb\u16eb-\u16ed\u1735\u1736\u1802\u1803\u1805\u1cd3\u1ce1\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u2000-\u200b\u200e-\u2064\u2066-\u2070\u2074-\u207e\u2080-\u208e\u20a0-\u20be\u2100-\u2125\u2127-\u2129\u212c-\u2131\u2133-\u214d\u214f-\u215f\u2189-\u218b\u2190-\u23fe\u2400-\u2426\u2440-\u244a\u2460-\u27ff\u2900-\u2b73\u2b76-\u2b95\u2b98-\u2bb9\u2bbd-\u2bc8\u2bca-\u2bd1\u2bec-\u2bef\u2e00-\u2e44\u2ff0-\u2ffb\u3000-\u3004\u3006\u3008-\u3020\u3030-\u3037\u303c-\u303f\u309b\u309c\u30a0\u30fb\u30fc\u3190-\u319f\u31c0-\u31e3\u3220-\u325f\u327f-\u32cf\u3358-\u33ff\u4dc0-\u4dff\ua700-\ua721\ua788-\ua78a\ua830-\ua839\ua92e\ua9cf\uab5b\ufd3e\ufd3f\ufe10-\ufe19\ufe30-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufeff\uff01-\uff20\uff3b-\uff40\uff5b-\uff65\uff70\uff9e\uff9f\uffe0-\uffe6\uffe8-\uffee\ufff9-\ufffd",astral:"\ud800[\udd00-\udd02\udd07-\udd33\udd37-\udd3f\udd90-\udd9b\uddd0-\uddfc\udee1-\udefb]|\ud82f[\udca0-\udca3]|\ud834[\udc00-\udcf5\udd00-\udd26\udd29-\udd66\udd6a-\udd7a\udd83\udd84\udd8c-\udda9\uddae-\udde8\udf00-\udf56\udf60-\udf71]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e\udc9f\udca2\udca5\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udfcb\udfce-\udfff]|\ud83c[\udc00-\udc2b\udc30-\udc93\udca0-\udcae\udcb1-\udcbf\udcc1-\udccf\udcd1-\udcf5\udd00-\udd0c\udd10-\udd2e\udd30-\udd6b\udd70-\uddac\udde6-\uddff\ude01\ude02\ude10-\ude3b\ude40-\ude48\ude50\ude51\udf00-\udfff]|\ud83d[\udc00-\uded2\udee0-\udeec\udef0-\udef6\udf00-\udf73\udf80-\udfd4]|\ud83e[\udc00-\udc0b\udc10-\udc47\udc50-\udc59\udc60-\udc87\udc90-\udcad\udd10-\udd1e\udd20-\udd27\udd30\udd33-\udd3e\udd40-\udd4b\udd50-\udd5e\udd80-\udd91\uddc0]|\udb40[\udc01\udc20-\udc7f]"},{name:"Coptic",bmp:"\u03e2-\u03ef\u2c80-\u2cf3\u2cf9-\u2cff"},{name:"Cuneiform",astral:"\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc70-\udc74\udc80-\udd43]"},{name:"Cypriot",astral:"\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37\udc38\udc3c\udc3f]"},{name:"Cyrillic",bmp:"\u0400-\u0484\u0487-\u052f\u1c80-\u1c88\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f"},{name:"Deseret",astral:"\ud801[\udc00-\udc4f]"},{name:"Devanagari",bmp:"\u0900-\u0950\u0953-\u0963\u0966-\u097f\ua8e0-\ua8fd"},{name:"Duployan",astral:"\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99\udc9c-\udc9f]"},{name:"Egyptian_Hieroglyphs",astral:"\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]"},{name:"Elbasan",astral:"\ud801[\udd00-\udd27]"},{name:"Ethiopic",bmp:"\u1200-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e"},{name:"Georgian",bmp:"\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u10ff\u2d00-\u2d25\u2d27\u2d2d"},{name:"Glagolitic",bmp:"\u2c00-\u2c2e\u2c30-\u2c5e",astral:"\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23\udc24\udc26-\udc2a]"},{name:"Gothic",astral:"\ud800[\udf30-\udf4a]"},{name:"Grantha",astral:"\ud804[\udf00-\udf03\udf05-\udf0c\udf0f\udf10\udf13-\udf28\udf2a-\udf30\udf32\udf33\udf35-\udf39\udf3c-\udf44\udf47\udf48\udf4b-\udf4d\udf50\udf57\udf5d-\udf63\udf66-\udf6c\udf70-\udf74]"},{name:"Greek",bmp:"\u0370-\u0373\u0375-\u0377\u037a-\u037d\u037f\u0384\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03e1\u03f0-\u03ff\u1d26-\u1d2a\u1d5d-\u1d61\u1d66-\u1d6a\u1dbf\u1f00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2126\uab65",astral:"\ud800[\udd40-\udd8e\udda0]|\ud834[\ude00-\ude45]"},{name:"Gujarati",bmp:"\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9"},{name:"Gurmukhi",bmp:"\u0a01-\u0a03\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a75"},{name:"Han",bmp:"\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u3005\u3007\u3021-\u3029\u3038-\u303b\u3400-\u4db5\u4e00-\u9fd5\uf900-\ufa6d\ufa70-\ufad9",astral:"[\ud840-\ud868\ud86a-\ud86c\ud86f-\ud872][\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud873[\udc00-\udea1]|\ud87e[\udc00-\ude1d]"},{name:"Hangul",bmp:"\u1100-\u11ff\u302e\u302f\u3131-\u318e\u3200-\u321e\u3260-\u327e\ua960-\ua97c\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uffa0-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"},{name:"Hanunoo",bmp:"\u1720-\u1734"},{name:"Hatran",astral:"\ud802[\udce0-\udcf2\udcf4\udcf5\udcfb-\udcff]"},{name:"Hebrew",bmp:"\u0591-\u05c7\u05d0-\u05ea\u05f0-\u05f4\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufb4f"},{name:"Hiragana",bmp:"\u3041-\u3096\u309d-\u309f",astral:"\ud82c\udc01|\ud83c\ude00"},{name:"Imperial_Aramaic",astral:"\ud802[\udc40-\udc55\udc57-\udc5f]"},{name:"Inherited",bmp:"\u0300-\u036f\u0485\u0486\u064b-\u0655\u0670\u0951\u0952\u1ab0-\u1abe\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1cf4\u1cf8\u1cf9\u1dc0-\u1df5\u1dfb-\u1dff\u200c\u200d\u20d0-\u20f0\u302a-\u302d\u3099\u309a\ufe00-\ufe0f\ufe20-\ufe2d",astral:"\ud800[\uddfd\udee0]|\ud834[\udd67-\udd69\udd7b-\udd82\udd85-\udd8b\uddaa-\uddad]|\udb40[\udd00-\uddef]"},{name:"Inscriptional_Pahlavi",astral:"\ud802[\udf60-\udf72\udf78-\udf7f]"},{name:"Inscriptional_Parthian",astral:"\ud802[\udf40-\udf55\udf58-\udf5f]"},{name:"Javanese",bmp:"\ua980-\ua9cd\ua9d0-\ua9d9\ua9de\ua9df"},{name:"Kaithi",astral:"\ud804[\udc80-\udcc1]"},{name:"Kannada",bmp:"\u0c80-\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1\u0cf2"},{name:"Katakana",bmp:"\u30a1-\u30fa\u30fd-\u30ff\u31f0-\u31ff\u32d0-\u32fe\u3300-\u3357\uff66-\uff6f\uff71-\uff9d",astral:"\ud82c\udc00"},{name:"Kayah_Li",bmp:"\ua900-\ua92d\ua92f"},{name:"Kharoshthi",astral:"\ud802[\ude00-\ude03\ude05\ude06\ude0c-\ude13\ude15-\ude17\ude19-\ude33\ude38-\ude3a\ude3f-\ude47\ude50-\ude58]"},{name:"Khmer",bmp:"\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u19e0-\u19ff"},{name:"Khojki",astral:"\ud804[\ude00-\ude11\ude13-\ude3e]"},{name:"Khudawadi",astral:"\ud804[\udeb0-\udeea\udef0-\udef9]"},{name:"Lao",bmp:"\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb9\u0ebb-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf"},{name:"Latin",bmp:"A-Za-z\xaa\xba\xc0-\xd6\xd8-\xf6\xf8-\u02b8\u02e0-\u02e4\u1d00-\u1d25\u1d2c-\u1d5c\u1d62-\u1d65\u1d6b-\u1d77\u1d79-\u1dbe\u1e00-\u1eff\u2071\u207f\u2090-\u209c\u212a\u212b\u2132\u214e\u2160-\u2188\u2c60-\u2c7f\ua722-\ua787\ua78b-\ua7ae\ua7b0-\ua7b7\ua7f7-\ua7ff\uab30-\uab5a\uab5c-\uab64\ufb00-\ufb06\uff21-\uff3a\uff41-\uff5a"},{name:"Lepcha",bmp:"\u1c00-\u1c37\u1c3b-\u1c49\u1c4d-\u1c4f"},{name:"Limbu",bmp:"\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u194f"},{name:"Linear_A",astral:"\ud801[\ude00-\udf36\udf40-\udf55\udf60-\udf67]"},{name:"Linear_B",astral:"\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa]"},{name:"Lisu",bmp:"\ua4d0-\ua4ff"},{name:"Lycian",astral:"\ud800[\ude80-\ude9c]"},{name:"Lydian",astral:"\ud802[\udd20-\udd39\udd3f]"},{name:"Mahajani",astral:"\ud804[\udd50-\udd76]"},{name:"Malayalam",bmp:"\u0d01-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f"},{name:"Mandaic",bmp:"\u0840-\u085b\u085e"},{name:"Manichaean",astral:"\ud802[\udec0-\udee6\udeeb-\udef6]"},{name:"Marchen",astral:"\ud807[\udc70-\udc8f\udc92-\udca7\udca9-\udcb6]"},{name:"Meetei_Mayek",bmp:"\uaae0-\uaaf6\uabc0-\uabed\uabf0-\uabf9"},{name:"Mende_Kikakui",astral:"\ud83a[\udc00-\udcc4\udcc7-\udcd6]"},{name:"Meroitic_Cursive",astral:"\ud802[\udda0-\uddb7\uddbc-\uddcf\uddd2-\uddff]"},{name:"Meroitic_Hieroglyphs",astral:"\ud802[\udd80-\udd9f]"},{name:"Miao",astral:"\ud81b[\udf00-\udf44\udf50-\udf7e\udf8f-\udf9f]"},{name:"Modi",astral:"\ud805[\ude00-\ude44\ude50-\ude59]"},{name:"Mongolian",bmp:"\u1800\u1801\u1804\u1806-\u180e\u1810-\u1819\u1820-\u1877\u1880-\u18aa",astral:"\ud805[\ude60-\ude6c]"},{name:"Mro",astral:"\ud81a[\ude40-\ude5e\ude60-\ude69\ude6e\ude6f]"},{name:"Multani",astral:"\ud804[\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea9]"},{name:"Myanmar",bmp:"\u1000-\u109f\ua9e0-\ua9fe\uaa60-\uaa7f"},{name:"Nabataean",astral:"\ud802[\udc80-\udc9e\udca7-\udcaf]"},{name:"New_Tai_Lue",bmp:"\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de\u19df"},{name:"Newa",astral:"\ud805[\udc00-\udc59\udc5b\udc5d]"},{name:"Nko",bmp:"\u07c0-\u07fa"},{name:"Ogham",bmp:"\u1680-\u169c"},{name:"Ol_Chiki",bmp:"\u1c50-\u1c7f"},{name:"Old_Hungarian",astral:"\ud803[\udc80-\udcb2\udcc0-\udcf2\udcfa-\udcff]"},{name:"Old_Italic",astral:"\ud800[\udf00-\udf23]"},{name:"Old_North_Arabian",astral:"\ud802[\ude80-\ude9f]"},{name:"Old_Permic",astral:"\ud800[\udf50-\udf7a]"},{name:"Old_Persian",astral:"\ud800[\udfa0-\udfc3\udfc8-\udfd5]"},{name:"Old_South_Arabian",astral:"\ud802[\ude60-\ude7f]"},{name:"Old_Turkic",astral:"\ud803[\udc00-\udc48]"},{name:"Oriya",bmp:"\u0b01-\u0b03\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b5c\u0b5d\u0b5f-\u0b63\u0b66-\u0b77"},{name:"Osage",astral:"\ud801[\udcb0-\udcd3\udcd8-\udcfb]"},{name:"Osmanya",astral:"\ud801[\udc80-\udc9d\udca0-\udca9]"},{name:"Pahawh_Hmong",astral:"\ud81a[\udf00-\udf45\udf50-\udf59\udf5b-\udf61\udf63-\udf77\udf7d-\udf8f]"},{name:"Palmyrene",astral:"\ud802[\udc60-\udc7f]"},{name:"Pau_Cin_Hau",astral:"\ud806[\udec0-\udef8]"},{name:"Phags_Pa",bmp:"\ua840-\ua877"},{name:"Phoenician",astral:"\ud802[\udd00-\udd1b\udd1f]"},{name:"Psalter_Pahlavi",astral:"\ud802[\udf80-\udf91\udf99-\udf9c\udfa9-\udfaf]"},{name:"Rejang",bmp:"\ua930-\ua953\ua95f"},{name:"Runic",bmp:"\u16a0-\u16ea\u16ee-\u16f8"},{name:"Samaritan",bmp:"\u0800-\u082d\u0830-\u083e"},{name:"Saurashtra",bmp:"\ua880-\ua8c5\ua8ce-\ua8d9"},{name:"Sharada",astral:"\ud804[\udd80-\uddcd\uddd0-\udddf]"},{name:"Shavian",astral:"\ud801[\udc50-\udc7f]"},{name:"Siddham",astral:"\ud805[\udd80-\uddb5\uddb8-\udddd]"},{name:"SignWriting",astral:"\ud836[\udc00-\ude8b\ude9b-\ude9f\udea1-\udeaf]"},{name:"Sinhala",bmp:"\u0d82\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4",astral:"\ud804[\udde1-\uddf4]"},{name:"Sora_Sompeng",astral:"\ud804[\udcd0-\udce8\udcf0-\udcf9]"},{name:"Sundanese",bmp:"\u1b80-\u1bbf\u1cc0-\u1cc7"},{name:"Syloti_Nagri",bmp:"\ua800-\ua82b"},{name:"Syriac",bmp:"\u0700-\u070d\u070f-\u074a\u074d-\u074f"},{name:"Tagalog",bmp:"\u1700-\u170c\u170e-\u1714"},{name:"Tagbanwa",bmp:"\u1760-\u176c\u176e-\u1770\u1772\u1773"},{name:"Tai_Le",bmp:"\u1950-\u196d\u1970-\u1974"},{name:"Tai_Tham",bmp:"\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad"},{name:"Tai_Viet",bmp:"\uaa80-\uaac2\uaadb-\uaadf"},{name:"Takri",astral:"\ud805[\ude80-\udeb7\udec0-\udec9]"},{name:"Tamil",bmp:"\u0b82\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa"},{name:"Tangut",astral:"\ud81b\udfe0|[\ud81c-\ud820][\udc00-\udfff]|\ud821[\udc00-\udfec]|\ud822[\udc00-\udef2]"},{name:"Telugu",bmp:"\u0c00-\u0c03\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c58-\u0c5a\u0c60-\u0c63\u0c66-\u0c6f\u0c78-\u0c7f"},{name:"Thaana",bmp:"\u0780-\u07b1"},{name:"Thai",bmp:"\u0e01-\u0e3a\u0e40-\u0e5b"},{name:"Tibetan",bmp:"\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fd4\u0fd9\u0fda"},{name:"Tifinagh",bmp:"\u2d30-\u2d67\u2d6f\u2d70\u2d7f"},{name:"Tirhuta",astral:"\ud805[\udc80-\udcc7\udcd0-\udcd9]"},{name:"Ugaritic",astral:"\ud800[\udf80-\udf9d\udf9f]"},{name:"Vai",bmp:"\ua500-\ua62b"},{name:"Warang_Citi",astral:"\ud806[\udca0-\udcf2\udcff]"},{name:"Yi",bmp:"\ua000-\ua48c\ua490-\ua4c6"}])},d.exports=u.default}}]); \ No newline at end of file +/*! For license information please see 9c0c4329.87db3bb3.js.LICENSE.txt */ +(window.webpackJsonp=window.webpackJsonp||[]).push([[61],{205:function(d,u,e){"use strict";e.r(u);var a=e(1),c=(e(53),e(263),e(26),e(20),e(19),e(90),e(0)),n=e.n(c),f=e(264),t=e(259),r=(e(254),e(273)),i=e(291),l=e.n(i),s=e(261),o=e(372),m=e.n(o),b=e(313),p=e.n(b),D=Object(f.a)("h2");u.default=function(d){var u=d.tags,e=Object.values(u).map((function(d){return{count:d.count,label:d.name,permalink:d.permalink}})),c=Object(s.a)(e,"highlights"),f=l.a.groupBy(c,"category");return n.a.createElement(t.a,{title:"Tags",description:"gnet highlight tags"},n.a.createElement("header",{className:"hero hero--clean"},n.a.createElement("div",{className:"container"},n.a.createElement("h1",null,"All Highlight Tags"))),n.a.createElement("main",{className:"container container--xs"},Object.keys(f).map((function(d,u){var e=f[d];return n.a.createElement("section",null,n.a.createElement(D,{id:d.name},p()(m()(d))),e.map((function(d,u){return n.a.createElement("div",null,n.a.createElement(r.a,Object(a.a)({key:u,valueOnly:!0},d)))})))}))))}},258:function(d,u,e){"use strict";e.d(u,"a",(function(){return c})),e.d(u,"b",(function(){return n}));var a=e(253);function c(){var d=Object(a.a)().siteConfig,u=(void 0===d?{}:d).customFields.metadata.latest_highlight,e=Date.parse(u.date),c=new Date,n=Math.abs(c-e),f=Math.ceil(n/864e5),t=null;return"undefined"!=typeof window&&(t=new Date(parseInt(window.localStorage.getItem("highlightsViewedAt")||"0"))),f<30&&(!t||t0&&c.a.createElement("div",{className:"row footer__links"},c.a.createElement("div",{className:"col col--5 footer__col"},c.a.createElement("div",{className:"margin-bottom--md"},c.a.createElement(s.a,{className:"navbar__logo",src:"/img/logo-light.svg",alt:"gnet",width:"150",height:"auto"})),c.a.createElement("div",{className:"margin-bottom--md"},c.a.createElement(N,{description:!1,width:"150px"})),c.a.createElement("div",null,c.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank"},c.a.createElement("i",{className:"feather icon-twitter",alt:"gnet's Twitter"})),"\xa0\xa0\xa0\xa0",c.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank"},c.a.createElement("i",{className:"feather icon-github",alt:"gnet's Github Repo"})),"\xa0\xa0\xa0\xa0",c.a.createElement("a",{href:"https://strikefreedom.top/rss.xml",target:"_blank"},c.a.createElement("i",{className:"feather icon-rss",alt:"gnet's RSS feed"})))),t.map((function(d,u){return c.a.createElement("div",{key:u,className:"col footer__col"},null!=d.title?c.a.createElement("h4",{className:"footer__title"},d.title):null,null!=d.items&&Array.isArray(d.items)&&d.items.length>0?c.a.createElement("ul",{className:"footer__items"},d.items.map((function(d,u){return d.html?c.a.createElement("li",{key:u,className:"footer__item",dangerouslySetInnerHTML:{__html:d.html}}):c.a.createElement("li",{key:d.href||d.to,className:"footer__item"},c.a.createElement(M,d))}))):null)}))),(i||n)&&c.a.createElement("div",{className:"text--center"},i&&i.src&&c.a.createElement("div",{className:"margin-bottom--sm"},i.href?c.a.createElement("a",{href:i.href,target:"_blank",rel:"noopener noreferrer",className:P.a.footerLogoLink},c.a.createElement(L,{alt:i.alt,url:l})):c.a.createElement(L,{alt:i.alt,url:l}),c.a.createElement("br",null),c.a.createElement("a",{href:"https://www.digitalocean.com/",target:"_blank",rel:"noopener noreferrer",className:P.a.footerLogoLink},c.a.createElement("img",{alt:"DigitalOcean",src:"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg",width:"201px"}))),n,c.a.createElement("br",null),c.a.createElement("small",null,c.a.createElement("a",{href:"https://github.com/panjf2000/gnet/security/policy"},"Security Policy"),"\xa0\u2022\xa0",c.a.createElement("a",{href:"https://github.com/panjf2000/gnet/blob/master/PRIVACY.md"},"Privacy Policy"))))):null},j=e(276),R=e(277),U=e(3);e(135);u.a=function(d){var u=Object(b.a)().siteConfig,e=void 0===u?{}:u,a=e.favicon,t=(e.tagline,e.title),r=e.themeConfig.image,i=e.url,l=d.children,s=d.title,o=d.noFooter,m=d.description,p=d.image,D=d.keywords,h=(d.permalink,d.version),g=s?s+" | "+t:t,_=p||r,E=i+Object(x.a)(_),I=Object(x.a)(a),v=Object(U.h)(),y=v?"https://gnet.host"+(v.pathname.endsWith("/")?v.pathname:v.pathname+"/"):null;return c.a.createElement(R.a,null,c.a.createElement(j.a,null,c.a.createElement(f.a,null,c.a.createElement("html",{lang:"en"}),c.a.createElement("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),g&&c.a.createElement("title",null,g),g&&c.a.createElement("meta",{property:"og:title",content:g}),a&&c.a.createElement("link",{rel:"shortcut icon",href:I}),m&&c.a.createElement("meta",{name:"description",content:m}),m&&c.a.createElement("meta",{property:"og:description",content:m}),h&&c.a.createElement("meta",{name:"docsearch:version",content:h}),D&&D.length&&c.a.createElement("meta",{name:"keywords",content:D.join(",")}),_&&c.a.createElement("meta",{property:"og:image",content:E}),_&&c.a.createElement("meta",{property:"twitter:image",content:E}),_&&c.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+g}),_&&c.a.createElement("meta",{name:"twitter:site",content:"@vectordotdev"}),_&&c.a.createElement("meta",{name:"twitter:creator",content:"@vectordotdev"}),y&&c.a.createElement("meta",{property:"og:url",content:y}),c.a.createElement("meta",{name:"twitter:card",content:"summary"}),y&&c.a.createElement("link",{rel:"canonical",href:y})),c.a.createElement(n.a,null),c.a.createElement(O,null),c.a.createElement("div",{className:"main-wrapper"},l),!o&&c.a.createElement(T,null)))}},260:function(d,u,e){"use strict";var a=e(12),c=e(287)(5),n=!0;"find"in[]&&Array(1).find((function(){n=!1})),a(a.P+a.F*n,"Array",{find:function(d){return c(this,d,arguments.length>1?arguments[1]:void 0)}}),e(80)("find")},261:function(d,u,e){"use strict";e.d(u,"a",(function(){return n}));e(79),e(284),e(260),e(78);var a=e(265),c=e.n(a);function n(d,u){var e=new c.a;return d.map((function(d){var a=d;return"string"==typeof d&&(a={label:d,permalink:"/"+u+"/tags/"+e.slug(d)}),function(d,u){if(d.enriched)return d;var e=d.label.split(": ",2),a=e[0],c=e[1],n="primary";switch(a){case"domain":n="blue";break;case"type":n="pink";break;default:n="primary"}return{category:a,count:d.count,enriched:!0,label:d.label,permalink:d.permalink,style:n,value:c}}(a)}))}},263:function(d,u,e){var a=e(24).f,c=Function.prototype,n=/^\s*function ([^ (]*)/;"name"in c||e(10)&&a(c,"name",{configurable:!0,get:function(){try{return(""+this).match(n)[1]}catch(d){return""}}})},264:function(d,u,e){"use strict";var a=e(9),c=e(0),n=e.n(c),f=e(252),t=e.n(f),r=e(253),i=(e(139),e(140)),l=e.n(i);u.a=function(d){return function(u){var e,c=u.id,f=Object(a.a)(u,["id"]),i=Object(r.a)().siteConfig,s=(i=void 0===i?{}:i).themeConfig,o=(s=void 0===s?{}:s).navbar,m=(o=void 0===o?{}:o).hideOnScroll,b=void 0!==m&&m;return c?n.a.createElement(d,f,n.a.createElement("a",{"aria-hidden":"true",tabIndex:"-1",className:t()("anchor",(e={},e[l.a.enhancedAnchor]=!b,e)),id:c}),n.a.createElement("a",{"aria-hidden":"true",tabIndex:"-1",className:"hash-link",href:"#"+c,title:"Direct link to heading"},"#"),f.children):n.a.createElement(d,f)}}},265:function(d,u,e){var a=e(274);d.exports=t;var c=Object.hasOwnProperty,n=/\s/g,f=/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~\u2019]/g;function t(){if(!(this instanceof t))return new t;this.reset()}function r(d,u){return"string"!=typeof d?"":(u||(d=d.toLowerCase()),d.trim().replace(f,"").replace(a(),"").replace(n,"-"))}t.prototype.slug=function(d,u){for(var e=r(d,!0===u),a=e;c.call(this.occurrences,e);)this.occurrences[a]++,e=a+"-"+this.occurrences[a];return this.occurrences[e]=0,e},t.prototype.reset=function(){this.occurrences=Object.create(null)},t.slug=r},273:function(d,u,e){"use strict";var a=e(0),c=e.n(a),n=e(254),f=e(252),t=e.n(f);u.a=function(d){var u=d.count,e=d.label,a=d.permalink,f=d.style,r=d.value,i=d.valueOnly;return c.a.createElement(n.a,{to:a+"/",className:t()("badge","badge--rounded","badge--"+f)},i?r:e,u&&c.a.createElement(c.a.Fragment,null," (",u,")"))}},274:function(d,u){d.exports=function(){return/[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267B\u267F\u2692-\u2694\u2696\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD79\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED0\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3]|\uD83E[\uDD10-\uDD18\uDD80-\uDD84\uDDC0]|\uD83C\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uD83C\uDDFE\uD83C[\uDDEA\uDDF9]|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDFC\uD83C[\uDDEB\uDDF8]|\uD83C\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uD83C\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF8\uDDFE\uDDFF]|\uD83C\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uD83C\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uD83C\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uD83C\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uD83C\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uD83C\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uD83C\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uD83C\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uD83C\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uD83C\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uD83C\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uD83C\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uD83C\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uD83C\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uD83C\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uD83C\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|[#\*0-9]\u20E3/g}},287:function(d,u,e){var a=e(28),c=e(54),n=e(25),f=e(27),t=e(288);d.exports=function(d,u){var e=1==d,r=2==d,i=3==d,l=4==d,s=6==d,o=5==d||s,m=u||t;return function(u,t,b){for(var p,D,h=n(u),g=c(h),_=a(t,b,3),E=f(g.length),I=0,v=e?m(u,E):r?m(u,0):void 0;E>I;I++)if((o||I in g)&&(D=_(p=g[I],I,h),d))if(e)v[I]=D;else if(D)switch(d){case 3:return!0;case 5:return p;case 6:return I;case 2:v.push(p)}else if(l)return!1;return s?-1:i||l?l:v}}},288:function(d,u,e){var a=e(289);d.exports=function(d,u){return new(a(d))(u)}},289:function(d,u,e){var a=e(14),c=e(309),n=e(2)("species");d.exports=function(d){var u;return c(d)&&("function"!=typeof(u=d.constructor)||u!==Array&&!c(u.prototype)||(u=void 0),a(u)&&null===(u=u[n])&&(u=void 0)),void 0===u?Array:u}},313:function(d,u,e){d.exports=function(){var d=[],u=[],e={},a={},c={};function n(d){return"string"==typeof d?new RegExp("^"+d+"$","i"):d}function f(d,u){return d===u?u:d===d.toLowerCase()?u.toLowerCase():d===d.toUpperCase()?u.toUpperCase():d[0]===d[0].toUpperCase()?u.charAt(0).toUpperCase()+u.substr(1).toLowerCase():u.toLowerCase()}function t(d,u){return d.replace(/\$(\d{1,2})/g,(function(d,e){return u[e]||""}))}function r(d,u){return d.replace(u[0],(function(e,a){var c=t(u[1],arguments);return f(""===e?d[a-1]:e,c)}))}function i(d,u,a){if(!d.length||e.hasOwnProperty(d))return u;for(var c=a.length;c--;){var n=a[c];if(n[0].test(u))return r(u,n)}return u}function l(d,u,e){return function(a){var c=a.toLowerCase();return u.hasOwnProperty(c)?f(a,c):d.hasOwnProperty(c)?f(a,d[c]):i(c,a,e)}}function s(d,u,e,a){return function(a){var c=a.toLowerCase();return!!u.hasOwnProperty(c)||!d.hasOwnProperty(c)&&i(c,c,e)===c}}function o(d,u,e){return(e?u+" ":"")+(1===u?o.singular(d):o.plural(d))}return o.plural=l(c,a,d),o.isPlural=s(c,a,d),o.singular=l(a,c,u),o.isSingular=s(a,c,u),o.addPluralRule=function(u,e){d.push([n(u),e])},o.addSingularRule=function(d,e){u.push([n(d),e])},o.addUncountableRule=function(d){"string"!=typeof d?(o.addPluralRule(d,"$0"),o.addSingularRule(d,"$0")):e[d.toLowerCase()]=!0},o.addIrregularRule=function(d,u){u=u.toLowerCase(),d=d.toLowerCase(),c[d]=u,a[u]=d},[["I","we"],["me","us"],["he","they"],["she","they"],["them","them"],["myself","ourselves"],["yourself","yourselves"],["itself","themselves"],["herself","themselves"],["himself","themselves"],["themself","themselves"],["is","are"],["was","were"],["has","have"],["this","these"],["that","those"],["echo","echoes"],["dingo","dingoes"],["volcano","volcanoes"],["tornado","tornadoes"],["torpedo","torpedoes"],["genus","genera"],["viscus","viscera"],["stigma","stigmata"],["stoma","stomata"],["dogma","dogmata"],["lemma","lemmata"],["schema","schemata"],["anathema","anathemata"],["ox","oxen"],["axe","axes"],["die","dice"],["yes","yeses"],["foot","feet"],["eave","eaves"],["goose","geese"],["tooth","teeth"],["quiz","quizzes"],["human","humans"],["proof","proofs"],["carve","carves"],["valve","valves"],["looey","looies"],["thief","thieves"],["groove","grooves"],["pickaxe","pickaxes"],["passerby","passersby"]].forEach((function(d){return o.addIrregularRule(d[0],d[1])})),[[/s?$/i,"s"],[/[^\u0000-\u007F]$/i,"$0"],[/([^aeiou]ese)$/i,"$1"],[/(ax|test)is$/i,"$1es"],[/(alias|[^aou]us|t[lm]as|gas|ris)$/i,"$1es"],[/(e[mn]u)s?$/i,"$1s"],[/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i,"$1"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1i"],[/(alumn|alg|vertebr)(?:a|ae)$/i,"$1ae"],[/(seraph|cherub)(?:im)?$/i,"$1im"],[/(her|at|gr)o$/i,"$1oes"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i,"$1a"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i,"$1a"],[/sis$/i,"ses"],[/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i,"$1$2ves"],[/([^aeiouy]|qu)y$/i,"$1ies"],[/([^ch][ieo][ln])ey$/i,"$1ies"],[/(x|ch|ss|sh|zz)$/i,"$1es"],[/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i,"$1ices"],[/\b((?:tit)?m|l)(?:ice|ouse)$/i,"$1ice"],[/(pe)(?:rson|ople)$/i,"$1ople"],[/(child)(?:ren)?$/i,"$1ren"],[/eaux$/i,"$0"],[/m[ae]n$/i,"men"],["thou","you"]].forEach((function(d){return o.addPluralRule(d[0],d[1])})),[[/s$/i,""],[/(ss)$/i,"$1"],[/(wi|kni|(?:after|half|high|low|mid|non|night|[^\w]|^)li)ves$/i,"$1fe"],[/(ar|(?:wo|[ae])l|[eo][ao])ves$/i,"$1f"],[/ies$/i,"y"],[/\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i,"$1ie"],[/\b(mon|smil)ies$/i,"$1ey"],[/\b((?:tit)?m|l)ice$/i,"$1ouse"],[/(seraph|cherub)im$/i,"$1"],[/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i,"$1"],[/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i,"$1sis"],[/(movie|twelve|abuse|e[mn]u)s$/i,"$1"],[/(test)(?:is|es)$/i,"$1is"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1us"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i,"$1um"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i,"$1on"],[/(alumn|alg|vertebr)ae$/i,"$1a"],[/(cod|mur|sil|vert|ind)ices$/i,"$1ex"],[/(matr|append)ices$/i,"$1ix"],[/(pe)(rson|ople)$/i,"$1rson"],[/(child)ren$/i,"$1"],[/(eau)x?$/i,"$1"],[/men$/i,"man"]].forEach((function(d){return o.addSingularRule(d[0],d[1])})),["adulthood","advice","agenda","aid","aircraft","alcohol","ammo","analytics","anime","athletics","audio","bison","blood","bream","buffalo","butter","carp","cash","chassis","chess","clothing","cod","commerce","cooperation","corps","debris","diabetes","digestion","elk","energy","equipment","excretion","expertise","firmware","flounder","fun","gallows","garbage","graffiti","hardware","headquarters","health","herpes","highjinks","homework","housework","information","jeans","justice","kudos","labour","literature","machinery","mackerel","mail","media","mews","moose","music","mud","manga","news","only","personnel","pike","plankton","pliers","police","pollution","premises","rain","research","rice","salmon","scissors","series","sewage","shambles","shrimp","software","species","staff","swine","tennis","traffic","transportation","trout","tuna","wealth","welfare","whiting","wildebeest","wildlife","you",/pok[e\xe9]mon$/i,/[^aeiou]ese$/i,/deer$/i,/fish$/i,/measles$/i,/o[iu]s$/i,/pox$/i,/sheep$/i].forEach(o.addUncountableRule),o}()},372:function(d,u,e){"use strict";const a=e(373),c=d=>{if("string"!=typeof d)throw new TypeError("Expected a string");return d=(d=(d=a(d)).toLowerCase().replace(/[_-]+/g," ").replace(/\s{2,}/g," ").trim()).charAt(0).toUpperCase()+d.slice(1)};d.exports=c,d.exports.default=c},373:function(d,u,e){"use strict";const a=e(374);d.exports=(d,u)=>{if("string"!=typeof d)throw new TypeError("Expected a string");u=void 0===u?"_":u;const e=a("([\\p{Ll}\\d])(\\p{Lu})","g"),c=a("(\\p{Lu}+)(\\p{Lu}[\\p{Ll}\\d]+)","g");return d.replace(e,`$1${u}$2`).replace(c,`$1${u}$2`).toLowerCase()}},374:function(d,u,e){"use strict";Object.defineProperty(u,"__esModule",{value:!0});var a=s(e(375)),c=s(e(376)),n=s(e(377)),f=s(e(378)),t=s(e(379)),r=s(e(380)),i=s(e(381)),l=s(e(382));function s(d){return d&&d.__esModule?d:{default:d}}(0,c.default)(a.default),(0,n.default)(a.default),(0,f.default)(a.default),(0,t.default)(a.default),(0,r.default)(a.default),(0,i.default)(a.default),(0,l.default)(a.default),u.default=a.default,d.exports=u.default},375:function(d,u,e){"use strict";Object.defineProperty(u,"__esModule",{value:!0});var a={astral:!1},c={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},n={},f={},t={},r=[],i={default:/\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|\(\?(?:[:=!]|<[=!])|[?*+]\?|{\d+(?:,\d*)?}\??|[\s\S]/,class:/\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|[\s\S]/},l=/\$(?:{([\w$]+)}|<([\w$]+)>|(\d\d?|[\s\S]))/g,s=void 0===c.exec.call(/()??/,"")[1],o=void 0!==/x/.flags,m={}.toString;function b(d){var u=!0;try{new RegExp("",d)}catch(e){u=!1}return u}var p=b("u"),D=b("y"),h={g:!0,i:!0,m:!0,u:p,y:D};function g(d,u,e,a,c){var n=void 0;if(d.xregexp={captureNames:u},c)return d;if(d.__proto__)d.__proto__=O.prototype;else for(n in O.prototype)d[n]=O.prototype[n];return d.xregexp.source=e,d.xregexp.flags=a?a.split("").sort().join(""):a,d}function _(d){return c.replace.call(d,/([\s\S])(?=[\s\S]*\1)/g,"")}function E(d,u){if(!O.isRegExp(d))throw new TypeError("Type RegExp expected");var e=d.xregexp||{},a=function(d){return o?d.flags:c.exec.call(/\/([a-z]*)$/i,RegExp.prototype.toString.call(d))[1]}(d),n="",f="",t=null,r=null;return(u=u||{}).removeG&&(f+="g"),u.removeY&&(f+="y"),f&&(a=c.replace.call(a,new RegExp("["+f+"]+","g"),"")),u.addG&&(n+="g"),u.addY&&(n+="y"),n&&(a=_(a+n)),u.isInternalOnly||(void 0!==e.source&&(t=e.source),null!=e.flags&&(r=n?_(e.flags+n):e.flags)),d=g(new RegExp(u.source||d.source,a),function(d){return!(!d.xregexp||!d.xregexp.captureNames)}(d)?e.captureNames.slice(0):null,t,r,u.isInternalOnly)}function I(d){return parseInt(d,16)}function v(d,u,e){return"("===d.input[d.index-1]||")"===d.input[d.index+d[0].length]||function(d,u,e){return c.test.call(-1!==e.indexOf("x")?/^(?:\s|#[^#\n]*|\(\?#[^)]*\))*(?:[?*+]|{\d+(?:,\d*)?})/:/^(?:\(\?#[^)]*\))*(?:[?*+]|{\d+(?:,\d*)?})/,d.slice(u))}(d.input,d.index+d[0].length,e)?"":"(?:)"}function x(d){return parseInt(d,10).toString(16)}function y(d,u){return m.call(d)==="[object "+u+"]"}function C(d){for(;d.length<4;)d="0"+d;return d}function F(d){var u={};return y(d,"String")?(O.forEach(d,/[^\s,]+/,(function(d){u[d]=!0})),u):d}function w(d){if(!/^[\w$]$/.test(d))throw new Error("Flag must be a single character A-Za-z0-9_$");h[d]=!0}function S(d,u,e,a,c){for(var n=r.length,f=d[e],t=null,i=void 0,l=void 0;n--;)if(!((l=r[n]).leadChar&&l.leadChar!==f||l.scope!==a&&"all"!==l.scope||l.flag&&-1===u.indexOf(l.flag))&&(i=O.exec(d,l.regex,e,"sticky"))){t={matchLength:i[0].length,output:l.handler.call(c,i,a,u),reparse:l.reparse};break}return t}function k(d){a.astral=d}function A(d){if(null==d)throw new TypeError("Cannot convert null or undefined to object");return d}function O(d,u){if(O.isRegExp(d)){if(void 0!==u)throw new TypeError("Cannot supply flags when copying a RegExp");return E(d)}if(d=void 0===d?"":String(d),u=void 0===u?"":String(u),O.isInstalled("astral")&&-1===u.indexOf("A")&&(u+="A"),t[d]||(t[d]={}),!t[d][u]){for(var e={hasNamedCapture:!1,captureNames:[]},a="default",n="",f=0,r=void 0,l=function(d,u){var e=void 0;if(_(u)!==u)throw new SyntaxError("Invalid duplicate regex flag "+u);for(d=c.replace.call(d,/^\(\?([\w$]+)\)/,(function(d,e){if(c.test.call(/[gy]/,e))throw new SyntaxError("Cannot use flag g or y in mode modifier "+d);return u=_(u+e),""})),e=0;e"}else if(e)return"\\"+(+e+f);return d}if(!y(d,"Array")||!d.length)throw new TypeError("Must provide a nonempty array of patterns to merge");for(var i=/(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*\]/g,l=[],s=void 0,o=0;o1&&-1!==e.indexOf("")){var a=E(this,{removeG:!0,isInternalOnly:!0});c.replace.call(String(d).slice(e.index),a,(function(){for(var d=arguments.length,u=Array(d),a=0;ae.index&&(this.lastIndex=e.index)}return this.global||(this.lastIndex=u),e},n.test=function(d){return!!n.exec.call(this,d)},n.match=function(d){if(O.isRegExp(d)){if(d.global){var u=c.match.apply(this,arguments);return d.lastIndex=0,u}}else d=new RegExp(d);return n.exec.call(d,A(this))},n.replace=function(d,u){var e=O.isRegExp(d),a=void 0,n=void 0,f=void 0;return e?(d.xregexp&&(n=d.xregexp.captureNames),a=d.lastIndex):d+="",f=y(u,"Function")?c.replace.call(String(this),d,(function(){for(var a=arguments.length,c=Array(a),f=0;fe.length-3)throw new SyntaxError("Backreference to undefined group "+d);return e[c]||""}throw new SyntaxError("Invalid token "+d)}})),e&&(d.global?d.lastIndex=0:d.lastIndex=a),f},n.split=function(d,u){if(!O.isRegExp(d))return c.split.apply(this,arguments);var e=String(this),a=[],n=d.lastIndex,f=0,t=void 0;return u=(void 0===u?-1:u)>>>0,O.forEach(e,d,(function(d){d.index+d[0].length>f&&(a.push(e.slice(f,d.index)),d.length>1&&d.indexu?a.slice(0,u):a},O.addToken(/\\([ABCE-RTUVXYZaeg-mopqyz]|c(?![A-Za-z])|u(?![\dA-Fa-f]{4}|{[\dA-Fa-f]+})|x(?![\dA-Fa-f]{2}))/,(function(d,u){if("B"===d[1]&&"default"===u)return d[0];throw new SyntaxError("Invalid escape "+d[0])}),{scope:"all",leadChar:"\\"}),O.addToken(/\\u{([\dA-Fa-f]+)}/,(function(d,u,e){var a=I(d[1]);if(a>1114111)throw new SyntaxError("Invalid Unicode code point "+d[0]);if(a<=65535)return"\\u"+C(x(a));if(p&&-1!==e.indexOf("u"))return d[0];throw new SyntaxError("Cannot use Unicode code point above \\u{FFFF} without flag u")}),{scope:"all",leadChar:"\\"}),O.addToken(/\[(\^?)\]/,(function(d){return d[1]?"[\\s\\S]":"\\b\\B"}),{leadChar:"["}),O.addToken(/\(\?#[^)]*\)/,v,{leadChar:"("}),O.addToken(/\s+|#[^\n]*\n?/,v,{flag:"x"}),O.addToken(/\./,(function(){return"[\\s\\S]"}),{flag:"s",leadChar:"."}),O.addToken(/\\k<([\w$]+)>/,(function(d){var u=isNaN(d[1])?this.captureNames.indexOf(d[1])+1:+d[1],e=d.index+d[0].length;if(!u||u>this.captureNames.length)throw new SyntaxError("Backreference to undefined group "+d[0]);return"\\"+u+(e===d.input.length||isNaN(d.input[e])?"":"(?:)")}),{leadChar:"\\"}),O.addToken(/\\(\d+)/,(function(d,u){if(!("default"===u&&/^[1-9]/.test(d[1])&&+d[1]<=this.captureNames.length)&&"0"!==d[1])throw new SyntaxError("Cannot use octal escape or backreference to undefined group "+d[0]);return d[0]}),{scope:"all",leadChar:"\\"}),O.addToken(/\(\?P?<([\w$]+)>/,(function(d){if(!isNaN(d[1]))throw new SyntaxError("Cannot use integer as capture name "+d[0]);if("length"===d[1]||"__proto__"===d[1])throw new SyntaxError("Cannot use reserved word as capture name "+d[0]);if(-1!==this.captureNames.indexOf(d[1]))throw new SyntaxError("Cannot use same name for multiple groups "+d[0]);return this.captureNames.push(d[1]),this.hasNamedCapture=!0,"("}),{leadChar:"("}),O.addToken(/\((?!\?)/,(function(d,u,e){return-1!==e.indexOf("n")?"(?:":(this.captureNames.push(null),"(")}),{optionalFlags:"n",leadChar:"("}),u.default=O,d.exports=u.default},376:function(d,u,e){"use strict";Object.defineProperty(u,"__esModule",{value:!0}),u.default=function(d){var u=/(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*\]/g,e=d.union([/\({{([\w$]+)}}\)|{{([\w$]+)}}/,u],"g",{conjunction:"or"});function a(d){var u=/^(?:\(\?:\))*\^/,e=/\$(?:\(\?:\))*$/;return u.test(d)&&e.test(d)&&e.test(d.replace(/\\[\s\S]/g,""))?d.replace(u,"").replace(e,""):d}function c(u,e){var a=e?"x":"";return d.isRegExp(u)?u.xregexp&&u.xregexp.captureNames?u:d(u.source,a):d(u,a)}function n(u){return u instanceof RegExp?u:d.escape(u)}function f(d,u,e){return d["subpattern"+e]=u,d}function t(d,u,e){return d+(u1?a-1:0),r=1;r"):r="(?:",p=b,""+r+l[f].pattern.replace(u,(function(d,u,e){if(u){if(t=l[f].names[b-p],++b,t)return"(?<"+t+">"}else if(e)return i=+e-1,l[f].names[i]?"\\k<"+l[f].names[i]+">":"\\"+(+e+p);return d}))+")"}if(c){if(t=g[D],h[++D]=++b,t)return"(?<"+t+">"}else if(n)return g[i=+n-1]?"\\k<"+g[i]+">":"\\"+h[+n];return d}));return d(_,t)}},d.exports=u.default},377:function(d,u,e){"use strict";Object.defineProperty(u,"__esModule",{value:!0}),u.default=function(d){function u(d,u,e,a){return{name:d,value:u,start:e,end:a}}d.matchRecursive=function(e,a,c,n,f){f=f||{};var t=-1!==(n=n||"").indexOf("g"),r=-1!==n.indexOf("y"),i=n.replace(/y/g,""),l=f.escapeChar,s=f.valueNames,o=[],m=0,b=0,p=0,D=0,h=void 0,g=void 0,_=void 0,E=void 0,I=void 0;if(a=d(a,i),c=d(c,i),l){if(l.length>1)throw new Error("Cannot use more than one escape character");l=d.escape(l),I=new RegExp("(?:"+l+"[\\S\\s]|(?:(?!"+d.union([a,c],"",{conjunction:"or"}).source+")[^"+l+"])+)+",n.replace(/[^imu]+/g,""))}for(;;){if(l&&(p+=(d.exec(e,I,p,"sticky")||[""])[0].length),_=d.exec(e,a,p),E=d.exec(e,c,p),_&&E&&(_.index<=E.index?E=null:_=null),_||E)p=(b=(_||E).index)+(_||E)[0].length;else if(!m)break;if(r&&!m&&b>D)break;if(_)m||(h=b,g=p),++m;else{if(!E||!m)throw new Error("Unbalanced delimiter found in string");if(!--m&&(s?(s[0]&&h>D&&o.push(u(s[0],e.slice(D,h),D,h)),s[1]&&o.push(u(s[1],e.slice(h,g),h,g)),s[2]&&o.push(u(s[2],e.slice(g,b),g,b)),s[3]&&o.push(u(s[3],e.slice(b,p),b,p))):o.push(e.slice(g,b)),D=p,!t))break}b===p&&++p}return t&&!r&&s&&s[0]&&e.length>D&&o.push(u(s[0],e.slice(D),D,e.length)),o}},d.exports=u.default},378:function(d,u,e){"use strict";Object.defineProperty(u,"__esModule",{value:!0}),u.default=function(d){var u={},e=d._dec,a=d._hex,c=d._pad4;function n(d){return d.replace(/[- _]+/g,"").toLowerCase()}function f(d){var u=/^\\[xu](.+)/.exec(d);return u?e(u[1]):d.charCodeAt("\\"===d[0]?1:0)}function t(e){var n,t,r;return u[e]["b!"]||(u[e]["b!"]=(n=u[e].bmp,t="",r=-1,d.forEach(n,/(\\x..|\\u....|\\?[\s\S])(?:-(\\x..|\\u....|\\?[\s\S]))?/,(function(d){var u=f(d[1]);u>r+1&&(t+="\\u"+c(a(r+1)),u>r+2&&(t+="-\\u"+c(a(u-1)))),r=f(d[2]||d[1])})),r<65535&&(t+="\\u"+c(a(r+1)),r<65534&&(t+="-\\uFFFF")),t))}function r(d,e){var a=e?"a!":"a=";return u[d][a]||(u[d][a]=function(d,e){var a=u[d],c="";return a.bmp&&!a.isBmpLast&&(c="["+a.bmp+"]"+(a.astral?"|":"")),a.astral&&(c+=a.astral),a.isBmpLast&&a.bmp&&(c+=(a.astral?"|":"")+"["+a.bmp+"]"),e?"(?:(?!"+c+")(?:[\ud800-\udbff][\udc00-\udfff]|[\0-\uffff]))":"(?:"+c+")"}(d,e))}d.addToken(/\\([pP])(?:{(\^?)([^}]*)}|([A-Za-z]))/,(function(d,e,a){var c="P"===d[1]||!!d[2],f=-1!==a.indexOf("A"),i=n(d[4]||d[3]),l=u[i];if("P"===d[1]&&d[2])throw new SyntaxError("Invalid double negation "+d[0]);if(!u.hasOwnProperty(i))throw new SyntaxError("Unknown Unicode token "+d[0]);if(l.inverseOf){if(i=n(l.inverseOf),!u.hasOwnProperty(i))throw new ReferenceError("Unicode token missing data "+d[0]+" -> "+l.inverseOf);l=u[i],c=!c}if(!l.bmp&&!f)throw new SyntaxError("Astral mode required for Unicode token "+d[0]);if(f){if("class"===e)throw new SyntaxError("Astral mode does not support Unicode tokens within character classes");return r(i,c)}return"class"===e?c?t(i):l.bmp:(c?"[^":"[")+l.bmp+"]"}),{scope:"all",optionalFlags:"A",leadChar:"\\"}),d.addUnicodeData=function(e){for(var a=void 0,c=0;c\\x5E`\\x7C~\xa2-\xa6\xa8\xa9\xac\xae-\xb1\xb4\xb8\xd7\xf7\u02c2-\u02c5\u02d2-\u02df\u02e5-\u02eb\u02ed\u02ef-\u02ff\u0375\u0384\u0385\u03f6\u0482\u058d-\u058f\u0606-\u0608\u060b\u060e\u060f\u06de\u06e9\u06fd\u06fe\u07f6\u09f2\u09f3\u09fa\u09fb\u0af1\u0b70\u0bf3-\u0bfa\u0c7f\u0d4f\u0d79\u0e3f\u0f01-\u0f03\u0f13\u0f15-\u0f17\u0f1a-\u0f1f\u0f34\u0f36\u0f38\u0fbe-\u0fc5\u0fc7-\u0fcc\u0fce\u0fcf\u0fd5-\u0fd8\u109e\u109f\u1390-\u1399\u17db\u1940\u19de-\u19ff\u1b61-\u1b6a\u1b74-\u1b7c\u1fbd\u1fbf-\u1fc1\u1fcd-\u1fcf\u1fdd-\u1fdf\u1fed-\u1fef\u1ffd\u1ffe\u2044\u2052\u207a-\u207c\u208a-\u208c\u20a0-\u20be\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211e-\u2123\u2125\u2127\u2129\u212e\u213a\u213b\u2140-\u2144\u214a-\u214d\u214f\u218a\u218b\u2190-\u2307\u230c-\u2328\u232b-\u23fe\u2400-\u2426\u2440-\u244a\u249c-\u24e9\u2500-\u2767\u2794-\u27c4\u27c7-\u27e5\u27f0-\u2982\u2999-\u29d7\u29dc-\u29fb\u29fe-\u2b73\u2b76-\u2b95\u2b98-\u2bb9\u2bbd-\u2bc8\u2bca-\u2bd1\u2bec-\u2bef\u2ce5-\u2cea\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3004\u3012\u3013\u3020\u3036\u3037\u303e\u303f\u309b\u309c\u3190\u3191\u3196-\u319f\u31c0-\u31e3\u3200-\u321e\u322a-\u3247\u3250\u3260-\u327f\u328a-\u32b0\u32c0-\u32fe\u3300-\u33ff\u4dc0-\u4dff\ua490-\ua4c6\ua700-\ua716\ua720\ua721\ua789\ua78a\ua828-\ua82b\ua836-\ua839\uaa77-\uaa79\uab5b\ufb29\ufbb2-\ufbc1\ufdfc\ufdfd\ufe62\ufe64-\ufe66\ufe69\uff04\uff0b\uff1c-\uff1e\uff3e\uff40\uff5c\uff5e\uffe0-\uffe6\uffe8-\uffee\ufffc\ufffd",astral:"\ud800[\udd37-\udd3f\udd79-\udd89\udd8c-\udd8e\udd90-\udd9b\udda0\uddd0-\uddfc]|\ud802[\udc77\udc78\udec8]|\ud805\udf3f|\ud81a[\udf3c-\udf3f\udf45]|\ud82f\udc9c|\ud834[\udc00-\udcf5\udd00-\udd26\udd29-\udd64\udd6a-\udd6c\udd83\udd84\udd8c-\udda9\uddae-\udde8\ude00-\ude41\ude45\udf00-\udf56]|\ud835[\udec1\udedb\udefb\udf15\udf35\udf4f\udf6f\udf89\udfa9\udfc3]|\ud836[\udc00-\uddff\ude37-\ude3a\ude6d-\ude74\ude76-\ude83\ude85\ude86]|\ud83b[\udef0\udef1]|\ud83c[\udc00-\udc2b\udc30-\udc93\udca0-\udcae\udcb1-\udcbf\udcc1-\udccf\udcd1-\udcf5\udd10-\udd2e\udd30-\udd6b\udd70-\uddac\udde6-\ude02\ude10-\ude3b\ude40-\ude48\ude50\ude51\udf00-\udfff]|\ud83d[\udc00-\uded2\udee0-\udeec\udef0-\udef6\udf00-\udf73\udf80-\udfd4]|\ud83e[\udc00-\udc0b\udc10-\udc47\udc50-\udc59\udc60-\udc87\udc90-\udcad\udd10-\udd1e\udd20-\udd27\udd30\udd33-\udd3e\udd40-\udd4b\udd50-\udd5e\udd80-\udd91\uddc0]"},{name:"Sc",alias:"Currency_Symbol",bmp:"\\x24\xa2-\xa5\u058f\u060b\u09f2\u09f3\u09fb\u0af1\u0bf9\u0e3f\u17db\u20a0-\u20be\ua838\ufdfc\ufe69\uff04\uffe0\uffe1\uffe5\uffe6"},{name:"Sk",alias:"Modifier_Symbol",bmp:"\\x5E`\xa8\xaf\xb4\xb8\u02c2-\u02c5\u02d2-\u02df\u02e5-\u02eb\u02ed\u02ef-\u02ff\u0375\u0384\u0385\u1fbd\u1fbf-\u1fc1\u1fcd-\u1fcf\u1fdd-\u1fdf\u1fed-\u1fef\u1ffd\u1ffe\u309b\u309c\ua700-\ua716\ua720\ua721\ua789\ua78a\uab5b\ufbb2-\ufbc1\uff3e\uff40\uffe3",astral:"\ud83c[\udffb-\udfff]"},{name:"Sm",alias:"Math_Symbol",bmp:"\\x2B<->\\x7C~\xac\xb1\xd7\xf7\u03f6\u0606-\u0608\u2044\u2052\u207a-\u207c\u208a-\u208c\u2118\u2140-\u2144\u214b\u2190-\u2194\u219a\u219b\u21a0\u21a3\u21a6\u21ae\u21ce\u21cf\u21d2\u21d4\u21f4-\u22ff\u2320\u2321\u237c\u239b-\u23b3\u23dc-\u23e1\u25b7\u25c1\u25f8-\u25ff\u266f\u27c0-\u27c4\u27c7-\u27e5\u27f0-\u27ff\u2900-\u2982\u2999-\u29d7\u29dc-\u29fb\u29fe-\u2aff\u2b30-\u2b44\u2b47-\u2b4c\ufb29\ufe62\ufe64-\ufe66\uff0b\uff1c-\uff1e\uff5c\uff5e\uffe2\uffe9-\uffec",astral:"\ud835[\udec1\udedb\udefb\udf15\udf35\udf4f\udf6f\udf89\udfa9\udfc3]|\ud83b[\udef0\udef1]"},{name:"So",alias:"Other_Symbol",bmp:"\xa6\xa9\xae\xb0\u0482\u058d\u058e\u060e\u060f\u06de\u06e9\u06fd\u06fe\u07f6\u09fa\u0b70\u0bf3-\u0bf8\u0bfa\u0c7f\u0d4f\u0d79\u0f01-\u0f03\u0f13\u0f15-\u0f17\u0f1a-\u0f1f\u0f34\u0f36\u0f38\u0fbe-\u0fc5\u0fc7-\u0fcc\u0fce\u0fcf\u0fd5-\u0fd8\u109e\u109f\u1390-\u1399\u1940\u19de-\u19ff\u1b61-\u1b6a\u1b74-\u1b7c\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116\u2117\u211e-\u2123\u2125\u2127\u2129\u212e\u213a\u213b\u214a\u214c\u214d\u214f\u218a\u218b\u2195-\u2199\u219c-\u219f\u21a1\u21a2\u21a4\u21a5\u21a7-\u21ad\u21af-\u21cd\u21d0\u21d1\u21d3\u21d5-\u21f3\u2300-\u2307\u230c-\u231f\u2322-\u2328\u232b-\u237b\u237d-\u239a\u23b4-\u23db\u23e2-\u23fe\u2400-\u2426\u2440-\u244a\u249c-\u24e9\u2500-\u25b6\u25b8-\u25c0\u25c2-\u25f7\u2600-\u266e\u2670-\u2767\u2794-\u27bf\u2800-\u28ff\u2b00-\u2b2f\u2b45\u2b46\u2b4d-\u2b73\u2b76-\u2b95\u2b98-\u2bb9\u2bbd-\u2bc8\u2bca-\u2bd1\u2bec-\u2bef\u2ce5-\u2cea\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3004\u3012\u3013\u3020\u3036\u3037\u303e\u303f\u3190\u3191\u3196-\u319f\u31c0-\u31e3\u3200-\u321e\u322a-\u3247\u3250\u3260-\u327f\u328a-\u32b0\u32c0-\u32fe\u3300-\u33ff\u4dc0-\u4dff\ua490-\ua4c6\ua828-\ua82b\ua836\ua837\ua839\uaa77-\uaa79\ufdfd\uffe4\uffe8\uffed\uffee\ufffc\ufffd",astral:"\ud800[\udd37-\udd3f\udd79-\udd89\udd8c-\udd8e\udd90-\udd9b\udda0\uddd0-\uddfc]|\ud802[\udc77\udc78\udec8]|\ud805\udf3f|\ud81a[\udf3c-\udf3f\udf45]|\ud82f\udc9c|\ud834[\udc00-\udcf5\udd00-\udd26\udd29-\udd64\udd6a-\udd6c\udd83\udd84\udd8c-\udda9\uddae-\udde8\ude00-\ude41\ude45\udf00-\udf56]|\ud836[\udc00-\uddff\ude37-\ude3a\ude6d-\ude74\ude76-\ude83\ude85\ude86]|\ud83c[\udc00-\udc2b\udc30-\udc93\udca0-\udcae\udcb1-\udcbf\udcc1-\udccf\udcd1-\udcf5\udd10-\udd2e\udd30-\udd6b\udd70-\uddac\udde6-\ude02\ude10-\ude3b\ude40-\ude48\ude50\ude51\udf00-\udffa]|\ud83d[\udc00-\uded2\udee0-\udeec\udef0-\udef6\udf00-\udf73\udf80-\udfd4]|\ud83e[\udc00-\udc0b\udc10-\udc47\udc50-\udc59\udc60-\udc87\udc90-\udcad\udd10-\udd1e\udd20-\udd27\udd30\udd33-\udd3e\udd40-\udd4b\udd50-\udd5e\udd80-\udd91\uddc0]"},{name:"Z",alias:"Separator",bmp:" \xa0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000"},{name:"Zl",alias:"Line_Separator",bmp:"\u2028"},{name:"Zp",alias:"Paragraph_Separator",bmp:"\u2029"},{name:"Zs",alias:"Space_Separator",bmp:" \xa0\u1680\u2000-\u200a\u202f\u205f\u3000"}])},d.exports=u.default},381:function(d,u,e){"use strict";Object.defineProperty(u,"__esModule",{value:!0}),u.default=function(d){if(!d.addUnicodeData)throw new ReferenceError("Unicode Base must be loaded before Unicode Properties");var u=[{name:"ASCII",bmp:"\0-\x7f"},{name:"Alphabetic",bmp:"A-Za-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0345\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0561-\u0587\u05b0-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u05d0-\u05ea\u05f0-\u05f2\u0610-\u061a\u0620-\u0657\u0659-\u065f\u066e-\u06d3\u06d5-\u06dc\u06e1-\u06e8\u06ed-\u06ef\u06fa-\u06fc\u06ff\u0710-\u073f\u074d-\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0817\u081a-\u082c\u0840-\u0858\u08a0-\u08b4\u08b6-\u08bd\u08d4-\u08df\u08e3-\u08e9\u08f0-\u093b\u093d-\u094c\u094e-\u0950\u0955-\u0963\u0971-\u0983\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd-\u09c4\u09c7\u09c8\u09cb\u09cc\u09ce\u09d7\u09dc\u09dd\u09df-\u09e3\u09f0\u09f1\u0a01-\u0a03\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a3e-\u0a42\u0a47\u0a48\u0a4b\u0a4c\u0a51\u0a59-\u0a5c\u0a5e\u0a70-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd-\u0ac5\u0ac7-\u0ac9\u0acb\u0acc\u0ad0\u0ae0-\u0ae3\u0af9\u0b01-\u0b03\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d-\u0b44\u0b47\u0b48\u0b4b\u0b4c\u0b56\u0b57\u0b5c\u0b5d\u0b5f-\u0b63\u0b71\u0b82\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcc\u0bd0\u0bd7\u0c00-\u0c03\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4c\u0c55\u0c56\u0c58-\u0c5a\u0c60-\u0c63\u0c80-\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccc\u0cd5\u0cd6\u0cde\u0ce0-\u0ce3\u0cf1\u0cf2\u0d01-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d-\u0d44\u0d46-\u0d48\u0d4a-\u0d4c\u0d4e\u0d54-\u0d57\u0d5f-\u0d63\u0d7a-\u0d7f\u0d82\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e01-\u0e3a\u0e40-\u0e46\u0e4d\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb9\u0ebb-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ecd\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f71-\u0f81\u0f88-\u0f97\u0f99-\u0fbc\u1000-\u1036\u1038\u103b-\u103f\u1050-\u1062\u1065-\u1068\u106e-\u1086\u108e\u109c\u109d\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135f\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1713\u1720-\u1733\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772\u1773\u1780-\u17b3\u17b6-\u17c8\u17d7\u17dc\u1820-\u1877\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u1938\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a1b\u1a20-\u1a5e\u1a61-\u1a74\u1aa7\u1b00-\u1b33\u1b35-\u1b43\u1b45-\u1b4b\u1b80-\u1ba9\u1bac-\u1baf\u1bba-\u1be5\u1be7-\u1bf1\u1c00-\u1c35\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1d00-\u1dbf\u1de7-\u1df4\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u24b6-\u24e9\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fd5\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua674-\ua67b\ua67f-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ae\ua7b0-\ua7b7\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua827\ua840-\ua873\ua880-\ua8c3\ua8c5\ua8f2-\ua8f7\ua8fb\ua8fd\ua90a-\ua92a\ua930-\ua952\ua960-\ua97c\ua980-\ua9b2\ua9b4-\ua9bf\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa60-\uaa76\uaa7a\uaa7e-\uaabe\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf5\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab65\uab70-\uabea\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc",astral:"\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf30-\udf4a\udf50-\udf7a\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe\uddbf\ude00-\ude03\ude05\ude06\ude0c-\ude13\ude15-\ude17\ude19-\ude33\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2]|\ud804[\udc00-\udc45\udc82-\udcb8\udcd0-\udce8\udd00-\udd32\udd50-\udd72\udd76\udd80-\uddbf\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude34\ude37\ude3e\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udee8\udf00-\udf03\udf05-\udf0c\udf0f\udf10\udf13-\udf28\udf2a-\udf30\udf32\udf33\udf35-\udf39\udf3d-\udf44\udf47\udf48\udf4b\udf4c\udf50\udf57\udf5d-\udf63]|\ud805[\udc00-\udc41\udc43-\udc45\udc47-\udc4a\udc80-\udcc1\udcc4\udcc5\udcc7\udd80-\uddb5\uddb8-\uddbe\uddd8-\udddd\ude00-\ude3e\ude40\ude44\ude80-\udeb5\udf00-\udf19\udf1d-\udf2a]|\ud806[\udca0-\udcdf\udcff\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc36\udc38-\udc3e\udc40\udc72-\udc8f\udc92-\udca7\udca9-\udcb6]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|[\ud80c\ud81c-\ud820\ud840-\ud868\ud86a-\ud86c\ud86f-\ud872][\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf36\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\udf00-\udf44\udf50-\udf7e\udf93-\udf9f\udfe0]|\ud821[\udc00-\udfec]|\ud822[\udc00-\udef2]|\ud82c[\udc00\udc01]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99\udc9e]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e\udc9f\udca2\udca5\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23\udc24\udc26-\udc2a]|\ud83a[\udc00-\udcc4\udd00-\udd43\udd47]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud83c[\udd30-\udd49\udd50-\udd69\udd70-\udd89]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud873[\udc00-\udea1]|\ud87e[\udc00-\ude1d]"},{name:"Any",isBmpLast:!0,bmp:"\0-\uffff",astral:"[\ud800-\udbff][\udc00-\udfff]"},{name:"Default_Ignorable_Code_Point",bmp:"\xad\u034f\u061c\u115f\u1160\u17b4\u17b5\u180b-\u180e\u200b-\u200f\u202a-\u202e\u2060-\u206f\u3164\ufe00-\ufe0f\ufeff\uffa0\ufff0-\ufff8",astral:"\ud82f[\udca0-\udca3]|\ud834[\udd73-\udd7a]|[\udb40-\udb43][\udc00-\udfff]"},{name:"Lowercase",bmp:"a-z\xaa\xb5\xba\xdf-\xf6\xf8-\xff\u0101\u0103\u0105\u0107\u0109\u010b\u010d\u010f\u0111\u0113\u0115\u0117\u0119\u011b\u011d\u011f\u0121\u0123\u0125\u0127\u0129\u012b\u012d\u012f\u0131\u0133\u0135\u0137\u0138\u013a\u013c\u013e\u0140\u0142\u0144\u0146\u0148\u0149\u014b\u014d\u014f\u0151\u0153\u0155\u0157\u0159\u015b\u015d\u015f\u0161\u0163\u0165\u0167\u0169\u016b\u016d\u016f\u0171\u0173\u0175\u0177\u017a\u017c\u017e-\u0180\u0183\u0185\u0188\u018c\u018d\u0192\u0195\u0199-\u019b\u019e\u01a1\u01a3\u01a5\u01a8\u01aa\u01ab\u01ad\u01b0\u01b4\u01b6\u01b9\u01ba\u01bd-\u01bf\u01c6\u01c9\u01cc\u01ce\u01d0\u01d2\u01d4\u01d6\u01d8\u01da\u01dc\u01dd\u01df\u01e1\u01e3\u01e5\u01e7\u01e9\u01eb\u01ed\u01ef\u01f0\u01f3\u01f5\u01f9\u01fb\u01fd\u01ff\u0201\u0203\u0205\u0207\u0209\u020b\u020d\u020f\u0211\u0213\u0215\u0217\u0219\u021b\u021d\u021f\u0221\u0223\u0225\u0227\u0229\u022b\u022d\u022f\u0231\u0233-\u0239\u023c\u023f\u0240\u0242\u0247\u0249\u024b\u024d\u024f-\u0293\u0295-\u02b8\u02c0\u02c1\u02e0-\u02e4\u0345\u0371\u0373\u0377\u037a-\u037d\u0390\u03ac-\u03ce\u03d0\u03d1\u03d5-\u03d7\u03d9\u03db\u03dd\u03df\u03e1\u03e3\u03e5\u03e7\u03e9\u03eb\u03ed\u03ef-\u03f3\u03f5\u03f8\u03fb\u03fc\u0430-\u045f\u0461\u0463\u0465\u0467\u0469\u046b\u046d\u046f\u0471\u0473\u0475\u0477\u0479\u047b\u047d\u047f\u0481\u048b\u048d\u048f\u0491\u0493\u0495\u0497\u0499\u049b\u049d\u049f\u04a1\u04a3\u04a5\u04a7\u04a9\u04ab\u04ad\u04af\u04b1\u04b3\u04b5\u04b7\u04b9\u04bb\u04bd\u04bf\u04c2\u04c4\u04c6\u04c8\u04ca\u04cc\u04ce\u04cf\u04d1\u04d3\u04d5\u04d7\u04d9\u04db\u04dd\u04df\u04e1\u04e3\u04e5\u04e7\u04e9\u04eb\u04ed\u04ef\u04f1\u04f3\u04f5\u04f7\u04f9\u04fb\u04fd\u04ff\u0501\u0503\u0505\u0507\u0509\u050b\u050d\u050f\u0511\u0513\u0515\u0517\u0519\u051b\u051d\u051f\u0521\u0523\u0525\u0527\u0529\u052b\u052d\u052f\u0561-\u0587\u13f8-\u13fd\u1c80-\u1c88\u1d00-\u1dbf\u1e01\u1e03\u1e05\u1e07\u1e09\u1e0b\u1e0d\u1e0f\u1e11\u1e13\u1e15\u1e17\u1e19\u1e1b\u1e1d\u1e1f\u1e21\u1e23\u1e25\u1e27\u1e29\u1e2b\u1e2d\u1e2f\u1e31\u1e33\u1e35\u1e37\u1e39\u1e3b\u1e3d\u1e3f\u1e41\u1e43\u1e45\u1e47\u1e49\u1e4b\u1e4d\u1e4f\u1e51\u1e53\u1e55\u1e57\u1e59\u1e5b\u1e5d\u1e5f\u1e61\u1e63\u1e65\u1e67\u1e69\u1e6b\u1e6d\u1e6f\u1e71\u1e73\u1e75\u1e77\u1e79\u1e7b\u1e7d\u1e7f\u1e81\u1e83\u1e85\u1e87\u1e89\u1e8b\u1e8d\u1e8f\u1e91\u1e93\u1e95-\u1e9d\u1e9f\u1ea1\u1ea3\u1ea5\u1ea7\u1ea9\u1eab\u1ead\u1eaf\u1eb1\u1eb3\u1eb5\u1eb7\u1eb9\u1ebb\u1ebd\u1ebf\u1ec1\u1ec3\u1ec5\u1ec7\u1ec9\u1ecb\u1ecd\u1ecf\u1ed1\u1ed3\u1ed5\u1ed7\u1ed9\u1edb\u1edd\u1edf\u1ee1\u1ee3\u1ee5\u1ee7\u1ee9\u1eeb\u1eed\u1eef\u1ef1\u1ef3\u1ef5\u1ef7\u1ef9\u1efb\u1efd\u1eff-\u1f07\u1f10-\u1f15\u1f20-\u1f27\u1f30-\u1f37\u1f40-\u1f45\u1f50-\u1f57\u1f60-\u1f67\u1f70-\u1f7d\u1f80-\u1f87\u1f90-\u1f97\u1fa0-\u1fa7\u1fb0-\u1fb4\u1fb6\u1fb7\u1fbe\u1fc2-\u1fc4\u1fc6\u1fc7\u1fd0-\u1fd3\u1fd6\u1fd7\u1fe0-\u1fe7\u1ff2-\u1ff4\u1ff6\u1ff7\u2071\u207f\u2090-\u209c\u210a\u210e\u210f\u2113\u212f\u2134\u2139\u213c\u213d\u2146-\u2149\u214e\u2170-\u217f\u2184\u24d0-\u24e9\u2c30-\u2c5e\u2c61\u2c65\u2c66\u2c68\u2c6a\u2c6c\u2c71\u2c73\u2c74\u2c76-\u2c7d\u2c81\u2c83\u2c85\u2c87\u2c89\u2c8b\u2c8d\u2c8f\u2c91\u2c93\u2c95\u2c97\u2c99\u2c9b\u2c9d\u2c9f\u2ca1\u2ca3\u2ca5\u2ca7\u2ca9\u2cab\u2cad\u2caf\u2cb1\u2cb3\u2cb5\u2cb7\u2cb9\u2cbb\u2cbd\u2cbf\u2cc1\u2cc3\u2cc5\u2cc7\u2cc9\u2ccb\u2ccd\u2ccf\u2cd1\u2cd3\u2cd5\u2cd7\u2cd9\u2cdb\u2cdd\u2cdf\u2ce1\u2ce3\u2ce4\u2cec\u2cee\u2cf3\u2d00-\u2d25\u2d27\u2d2d\ua641\ua643\ua645\ua647\ua649\ua64b\ua64d\ua64f\ua651\ua653\ua655\ua657\ua659\ua65b\ua65d\ua65f\ua661\ua663\ua665\ua667\ua669\ua66b\ua66d\ua681\ua683\ua685\ua687\ua689\ua68b\ua68d\ua68f\ua691\ua693\ua695\ua697\ua699\ua69b-\ua69d\ua723\ua725\ua727\ua729\ua72b\ua72d\ua72f-\ua731\ua733\ua735\ua737\ua739\ua73b\ua73d\ua73f\ua741\ua743\ua745\ua747\ua749\ua74b\ua74d\ua74f\ua751\ua753\ua755\ua757\ua759\ua75b\ua75d\ua75f\ua761\ua763\ua765\ua767\ua769\ua76b\ua76d\ua76f-\ua778\ua77a\ua77c\ua77f\ua781\ua783\ua785\ua787\ua78c\ua78e\ua791\ua793-\ua795\ua797\ua799\ua79b\ua79d\ua79f\ua7a1\ua7a3\ua7a5\ua7a7\ua7a9\ua7b5\ua7b7\ua7f8-\ua7fa\uab30-\uab5a\uab5c-\uab65\uab70-\uabbf\ufb00-\ufb06\ufb13-\ufb17\uff41-\uff5a",astral:"\ud801[\udc28-\udc4f\udcd8-\udcfb]|\ud803[\udcc0-\udcf2]|\ud806[\udcc0-\udcdf]|\ud835[\udc1a-\udc33\udc4e-\udc54\udc56-\udc67\udc82-\udc9b\udcb6-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udccf\udcea-\udd03\udd1e-\udd37\udd52-\udd6b\udd86-\udd9f\uddba-\uddd3\uddee-\ude07\ude22-\ude3b\ude56-\ude6f\ude8a-\udea5\udec2-\udeda\udedc-\udee1\udefc-\udf14\udf16-\udf1b\udf36-\udf4e\udf50-\udf55\udf70-\udf88\udf8a-\udf8f\udfaa-\udfc2\udfc4-\udfc9\udfcb]|\ud83a[\udd22-\udd43]"},{name:"Noncharacter_Code_Point",bmp:"\ufdd0-\ufdef\ufffe\uffff",astral:"[\ud83f\ud87f\ud8bf\ud8ff\ud93f\ud97f\ud9bf\ud9ff\uda3f\uda7f\udabf\udaff\udb3f\udb7f\udbbf\udbff][\udffe\udfff]"},{name:"Uppercase",bmp:"A-Z\xc0-\xd6\xd8-\xde\u0100\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136\u0139\u013b\u013d\u013f\u0141\u0143\u0145\u0147\u014a\u014c\u014e\u0150\u0152\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174\u0176\u0178\u0179\u017b\u017d\u0181\u0182\u0184\u0186\u0187\u0189-\u018b\u018e-\u0191\u0193\u0194\u0196-\u0198\u019c\u019d\u019f\u01a0\u01a2\u01a4\u01a6\u01a7\u01a9\u01ac\u01ae\u01af\u01b1-\u01b3\u01b5\u01b7\u01b8\u01bc\u01c4\u01c7\u01ca\u01cd\u01cf\u01d1\u01d3\u01d5\u01d7\u01d9\u01db\u01de\u01e0\u01e2\u01e4\u01e6\u01e8\u01ea\u01ec\u01ee\u01f1\u01f4\u01f6-\u01f8\u01fa\u01fc\u01fe\u0200\u0202\u0204\u0206\u0208\u020a\u020c\u020e\u0210\u0212\u0214\u0216\u0218\u021a\u021c\u021e\u0220\u0222\u0224\u0226\u0228\u022a\u022c\u022e\u0230\u0232\u023a\u023b\u023d\u023e\u0241\u0243-\u0246\u0248\u024a\u024c\u024e\u0370\u0372\u0376\u037f\u0386\u0388-\u038a\u038c\u038e\u038f\u0391-\u03a1\u03a3-\u03ab\u03cf\u03d2-\u03d4\u03d8\u03da\u03dc\u03de\u03e0\u03e2\u03e4\u03e6\u03e8\u03ea\u03ec\u03ee\u03f4\u03f7\u03f9\u03fa\u03fd-\u042f\u0460\u0462\u0464\u0466\u0468\u046a\u046c\u046e\u0470\u0472\u0474\u0476\u0478\u047a\u047c\u047e\u0480\u048a\u048c\u048e\u0490\u0492\u0494\u0496\u0498\u049a\u049c\u049e\u04a0\u04a2\u04a4\u04a6\u04a8\u04aa\u04ac\u04ae\u04b0\u04b2\u04b4\u04b6\u04b8\u04ba\u04bc\u04be\u04c0\u04c1\u04c3\u04c5\u04c7\u04c9\u04cb\u04cd\u04d0\u04d2\u04d4\u04d6\u04d8\u04da\u04dc\u04de\u04e0\u04e2\u04e4\u04e6\u04e8\u04ea\u04ec\u04ee\u04f0\u04f2\u04f4\u04f6\u04f8\u04fa\u04fc\u04fe\u0500\u0502\u0504\u0506\u0508\u050a\u050c\u050e\u0510\u0512\u0514\u0516\u0518\u051a\u051c\u051e\u0520\u0522\u0524\u0526\u0528\u052a\u052c\u052e\u0531-\u0556\u10a0-\u10c5\u10c7\u10cd\u13a0-\u13f5\u1e00\u1e02\u1e04\u1e06\u1e08\u1e0a\u1e0c\u1e0e\u1e10\u1e12\u1e14\u1e16\u1e18\u1e1a\u1e1c\u1e1e\u1e20\u1e22\u1e24\u1e26\u1e28\u1e2a\u1e2c\u1e2e\u1e30\u1e32\u1e34\u1e36\u1e38\u1e3a\u1e3c\u1e3e\u1e40\u1e42\u1e44\u1e46\u1e48\u1e4a\u1e4c\u1e4e\u1e50\u1e52\u1e54\u1e56\u1e58\u1e5a\u1e5c\u1e5e\u1e60\u1e62\u1e64\u1e66\u1e68\u1e6a\u1e6c\u1e6e\u1e70\u1e72\u1e74\u1e76\u1e78\u1e7a\u1e7c\u1e7e\u1e80\u1e82\u1e84\u1e86\u1e88\u1e8a\u1e8c\u1e8e\u1e90\u1e92\u1e94\u1e9e\u1ea0\u1ea2\u1ea4\u1ea6\u1ea8\u1eaa\u1eac\u1eae\u1eb0\u1eb2\u1eb4\u1eb6\u1eb8\u1eba\u1ebc\u1ebe\u1ec0\u1ec2\u1ec4\u1ec6\u1ec8\u1eca\u1ecc\u1ece\u1ed0\u1ed2\u1ed4\u1ed6\u1ed8\u1eda\u1edc\u1ede\u1ee0\u1ee2\u1ee4\u1ee6\u1ee8\u1eea\u1eec\u1eee\u1ef0\u1ef2\u1ef4\u1ef6\u1ef8\u1efa\u1efc\u1efe\u1f08-\u1f0f\u1f18-\u1f1d\u1f28-\u1f2f\u1f38-\u1f3f\u1f48-\u1f4d\u1f59\u1f5b\u1f5d\u1f5f\u1f68-\u1f6f\u1fb8-\u1fbb\u1fc8-\u1fcb\u1fd8-\u1fdb\u1fe8-\u1fec\u1ff8-\u1ffb\u2102\u2107\u210b-\u210d\u2110-\u2112\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u2130-\u2133\u213e\u213f\u2145\u2160-\u216f\u2183\u24b6-\u24cf\u2c00-\u2c2e\u2c60\u2c62-\u2c64\u2c67\u2c69\u2c6b\u2c6d-\u2c70\u2c72\u2c75\u2c7e-\u2c80\u2c82\u2c84\u2c86\u2c88\u2c8a\u2c8c\u2c8e\u2c90\u2c92\u2c94\u2c96\u2c98\u2c9a\u2c9c\u2c9e\u2ca0\u2ca2\u2ca4\u2ca6\u2ca8\u2caa\u2cac\u2cae\u2cb0\u2cb2\u2cb4\u2cb6\u2cb8\u2cba\u2cbc\u2cbe\u2cc0\u2cc2\u2cc4\u2cc6\u2cc8\u2cca\u2ccc\u2cce\u2cd0\u2cd2\u2cd4\u2cd6\u2cd8\u2cda\u2cdc\u2cde\u2ce0\u2ce2\u2ceb\u2ced\u2cf2\ua640\ua642\ua644\ua646\ua648\ua64a\ua64c\ua64e\ua650\ua652\ua654\ua656\ua658\ua65a\ua65c\ua65e\ua660\ua662\ua664\ua666\ua668\ua66a\ua66c\ua680\ua682\ua684\ua686\ua688\ua68a\ua68c\ua68e\ua690\ua692\ua694\ua696\ua698\ua69a\ua722\ua724\ua726\ua728\ua72a\ua72c\ua72e\ua732\ua734\ua736\ua738\ua73a\ua73c\ua73e\ua740\ua742\ua744\ua746\ua748\ua74a\ua74c\ua74e\ua750\ua752\ua754\ua756\ua758\ua75a\ua75c\ua75e\ua760\ua762\ua764\ua766\ua768\ua76a\ua76c\ua76e\ua779\ua77b\ua77d\ua77e\ua780\ua782\ua784\ua786\ua78b\ua78d\ua790\ua792\ua796\ua798\ua79a\ua79c\ua79e\ua7a0\ua7a2\ua7a4\ua7a6\ua7a8\ua7aa-\ua7ae\ua7b0-\ua7b4\ua7b6\uff21-\uff3a",astral:"\ud801[\udc00-\udc27\udcb0-\udcd3]|\ud803[\udc80-\udcb2]|\ud806[\udca0-\udcbf]|\ud835[\udc00-\udc19\udc34-\udc4d\udc68-\udc81\udc9c\udc9e\udc9f\udca2\udca5\udca6\udca9-\udcac\udcae-\udcb5\udcd0-\udce9\udd04\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd38\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd6c-\udd85\udda0-\uddb9\uddd4-\udded\ude08-\ude21\ude3c-\ude55\ude70-\ude89\udea8-\udec0\udee2-\udefa\udf1c-\udf34\udf56-\udf6e\udf90-\udfa8\udfca]|\ud83a[\udd00-\udd21]|\ud83c[\udd30-\udd49\udd50-\udd69\udd70-\udd89]"},{name:"White_Space",bmp:"\t-\r \x85\xa0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000"}];u.push({name:"Assigned",inverseOf:"Cn"}),d.addUnicodeData(u)},d.exports=u.default},382:function(d,u,e){"use strict";Object.defineProperty(u,"__esModule",{value:!0}),u.default=function(d){if(!d.addUnicodeData)throw new ReferenceError("Unicode Base must be loaded before Unicode Scripts");d.addUnicodeData([{name:"Adlam",astral:"\ud83a[\udd00-\udd4a\udd50-\udd59\udd5e\udd5f]"},{name:"Ahom",astral:"\ud805[\udf00-\udf19\udf1d-\udf2b\udf30-\udf3f]"},{name:"Anatolian_Hieroglyphs",astral:"\ud811[\udc00-\ude46]"},{name:"Arabic",bmp:"\u0600-\u0604\u0606-\u060b\u060d-\u061a\u061e\u0620-\u063f\u0641-\u064a\u0656-\u066f\u0671-\u06dc\u06de-\u06ff\u0750-\u077f\u08a0-\u08b4\u08b6-\u08bd\u08d4-\u08e1\u08e3-\u08ff\ufb50-\ufbc1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfd\ufe70-\ufe74\ufe76-\ufefc",astral:"\ud803[\ude60-\ude7e]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb\udef0\udef1]"},{name:"Armenian",bmp:"\u0531-\u0556\u0559-\u055f\u0561-\u0587\u058a\u058d-\u058f\ufb13-\ufb17"},{name:"Avestan",astral:"\ud802[\udf00-\udf35\udf39-\udf3f]"},{name:"Balinese",bmp:"\u1b00-\u1b4b\u1b50-\u1b7c"},{name:"Bamum",bmp:"\ua6a0-\ua6f7",astral:"\ud81a[\udc00-\ude38]"},{name:"Bassa_Vah",astral:"\ud81a[\uded0-\udeed\udef0-\udef5]"},{name:"Batak",bmp:"\u1bc0-\u1bf3\u1bfc-\u1bff"},{name:"Bengali",bmp:"\u0980-\u0983\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7\u09c8\u09cb-\u09ce\u09d7\u09dc\u09dd\u09df-\u09e3\u09e6-\u09fb"},{name:"Bhaiksuki",astral:"\ud807[\udc00-\udc08\udc0a-\udc36\udc38-\udc45\udc50-\udc6c]"},{name:"Bopomofo",bmp:"\u02ea\u02eb\u3105-\u312d\u31a0-\u31ba"},{name:"Brahmi",astral:"\ud804[\udc00-\udc4d\udc52-\udc6f\udc7f]"},{name:"Braille",bmp:"\u2800-\u28ff"},{name:"Buginese",bmp:"\u1a00-\u1a1b\u1a1e\u1a1f"},{name:"Buhid",bmp:"\u1740-\u1753"},{name:"Canadian_Aboriginal",bmp:"\u1400-\u167f\u18b0-\u18f5"},{name:"Carian",astral:"\ud800[\udea0-\uded0]"},{name:"Caucasian_Albanian",astral:"\ud801[\udd30-\udd63\udd6f]"},{name:"Chakma",astral:"\ud804[\udd00-\udd34\udd36-\udd43]"},{name:"Cham",bmp:"\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaa5f"},{name:"Cherokee",bmp:"\u13a0-\u13f5\u13f8-\u13fd\uab70-\uabbf"},{name:"Common",bmp:"\0-@\\x5B-`\\x7B-\xa9\xab-\xb9\xbb-\xbf\xd7\xf7\u02b9-\u02df\u02e5-\u02e9\u02ec-\u02ff\u0374\u037e\u0385\u0387\u0589\u0605\u060c\u061b\u061c\u061f\u0640\u06dd\u08e2\u0964\u0965\u0e3f\u0fd5-\u0fd8\u10fb\u16eb-\u16ed\u1735\u1736\u1802\u1803\u1805\u1cd3\u1ce1\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u2000-\u200b\u200e-\u2064\u2066-\u2070\u2074-\u207e\u2080-\u208e\u20a0-\u20be\u2100-\u2125\u2127-\u2129\u212c-\u2131\u2133-\u214d\u214f-\u215f\u2189-\u218b\u2190-\u23fe\u2400-\u2426\u2440-\u244a\u2460-\u27ff\u2900-\u2b73\u2b76-\u2b95\u2b98-\u2bb9\u2bbd-\u2bc8\u2bca-\u2bd1\u2bec-\u2bef\u2e00-\u2e44\u2ff0-\u2ffb\u3000-\u3004\u3006\u3008-\u3020\u3030-\u3037\u303c-\u303f\u309b\u309c\u30a0\u30fb\u30fc\u3190-\u319f\u31c0-\u31e3\u3220-\u325f\u327f-\u32cf\u3358-\u33ff\u4dc0-\u4dff\ua700-\ua721\ua788-\ua78a\ua830-\ua839\ua92e\ua9cf\uab5b\ufd3e\ufd3f\ufe10-\ufe19\ufe30-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufeff\uff01-\uff20\uff3b-\uff40\uff5b-\uff65\uff70\uff9e\uff9f\uffe0-\uffe6\uffe8-\uffee\ufff9-\ufffd",astral:"\ud800[\udd00-\udd02\udd07-\udd33\udd37-\udd3f\udd90-\udd9b\uddd0-\uddfc\udee1-\udefb]|\ud82f[\udca0-\udca3]|\ud834[\udc00-\udcf5\udd00-\udd26\udd29-\udd66\udd6a-\udd7a\udd83\udd84\udd8c-\udda9\uddae-\udde8\udf00-\udf56\udf60-\udf71]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e\udc9f\udca2\udca5\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udfcb\udfce-\udfff]|\ud83c[\udc00-\udc2b\udc30-\udc93\udca0-\udcae\udcb1-\udcbf\udcc1-\udccf\udcd1-\udcf5\udd00-\udd0c\udd10-\udd2e\udd30-\udd6b\udd70-\uddac\udde6-\uddff\ude01\ude02\ude10-\ude3b\ude40-\ude48\ude50\ude51\udf00-\udfff]|\ud83d[\udc00-\uded2\udee0-\udeec\udef0-\udef6\udf00-\udf73\udf80-\udfd4]|\ud83e[\udc00-\udc0b\udc10-\udc47\udc50-\udc59\udc60-\udc87\udc90-\udcad\udd10-\udd1e\udd20-\udd27\udd30\udd33-\udd3e\udd40-\udd4b\udd50-\udd5e\udd80-\udd91\uddc0]|\udb40[\udc01\udc20-\udc7f]"},{name:"Coptic",bmp:"\u03e2-\u03ef\u2c80-\u2cf3\u2cf9-\u2cff"},{name:"Cuneiform",astral:"\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc70-\udc74\udc80-\udd43]"},{name:"Cypriot",astral:"\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37\udc38\udc3c\udc3f]"},{name:"Cyrillic",bmp:"\u0400-\u0484\u0487-\u052f\u1c80-\u1c88\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f"},{name:"Deseret",astral:"\ud801[\udc00-\udc4f]"},{name:"Devanagari",bmp:"\u0900-\u0950\u0953-\u0963\u0966-\u097f\ua8e0-\ua8fd"},{name:"Duployan",astral:"\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99\udc9c-\udc9f]"},{name:"Egyptian_Hieroglyphs",astral:"\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]"},{name:"Elbasan",astral:"\ud801[\udd00-\udd27]"},{name:"Ethiopic",bmp:"\u1200-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e"},{name:"Georgian",bmp:"\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u10ff\u2d00-\u2d25\u2d27\u2d2d"},{name:"Glagolitic",bmp:"\u2c00-\u2c2e\u2c30-\u2c5e",astral:"\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23\udc24\udc26-\udc2a]"},{name:"Gothic",astral:"\ud800[\udf30-\udf4a]"},{name:"Grantha",astral:"\ud804[\udf00-\udf03\udf05-\udf0c\udf0f\udf10\udf13-\udf28\udf2a-\udf30\udf32\udf33\udf35-\udf39\udf3c-\udf44\udf47\udf48\udf4b-\udf4d\udf50\udf57\udf5d-\udf63\udf66-\udf6c\udf70-\udf74]"},{name:"Greek",bmp:"\u0370-\u0373\u0375-\u0377\u037a-\u037d\u037f\u0384\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03e1\u03f0-\u03ff\u1d26-\u1d2a\u1d5d-\u1d61\u1d66-\u1d6a\u1dbf\u1f00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2126\uab65",astral:"\ud800[\udd40-\udd8e\udda0]|\ud834[\ude00-\ude45]"},{name:"Gujarati",bmp:"\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9"},{name:"Gurmukhi",bmp:"\u0a01-\u0a03\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a75"},{name:"Han",bmp:"\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u3005\u3007\u3021-\u3029\u3038-\u303b\u3400-\u4db5\u4e00-\u9fd5\uf900-\ufa6d\ufa70-\ufad9",astral:"[\ud840-\ud868\ud86a-\ud86c\ud86f-\ud872][\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud873[\udc00-\udea1]|\ud87e[\udc00-\ude1d]"},{name:"Hangul",bmp:"\u1100-\u11ff\u302e\u302f\u3131-\u318e\u3200-\u321e\u3260-\u327e\ua960-\ua97c\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uffa0-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"},{name:"Hanunoo",bmp:"\u1720-\u1734"},{name:"Hatran",astral:"\ud802[\udce0-\udcf2\udcf4\udcf5\udcfb-\udcff]"},{name:"Hebrew",bmp:"\u0591-\u05c7\u05d0-\u05ea\u05f0-\u05f4\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufb4f"},{name:"Hiragana",bmp:"\u3041-\u3096\u309d-\u309f",astral:"\ud82c\udc01|\ud83c\ude00"},{name:"Imperial_Aramaic",astral:"\ud802[\udc40-\udc55\udc57-\udc5f]"},{name:"Inherited",bmp:"\u0300-\u036f\u0485\u0486\u064b-\u0655\u0670\u0951\u0952\u1ab0-\u1abe\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1cf4\u1cf8\u1cf9\u1dc0-\u1df5\u1dfb-\u1dff\u200c\u200d\u20d0-\u20f0\u302a-\u302d\u3099\u309a\ufe00-\ufe0f\ufe20-\ufe2d",astral:"\ud800[\uddfd\udee0]|\ud834[\udd67-\udd69\udd7b-\udd82\udd85-\udd8b\uddaa-\uddad]|\udb40[\udd00-\uddef]"},{name:"Inscriptional_Pahlavi",astral:"\ud802[\udf60-\udf72\udf78-\udf7f]"},{name:"Inscriptional_Parthian",astral:"\ud802[\udf40-\udf55\udf58-\udf5f]"},{name:"Javanese",bmp:"\ua980-\ua9cd\ua9d0-\ua9d9\ua9de\ua9df"},{name:"Kaithi",astral:"\ud804[\udc80-\udcc1]"},{name:"Kannada",bmp:"\u0c80-\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1\u0cf2"},{name:"Katakana",bmp:"\u30a1-\u30fa\u30fd-\u30ff\u31f0-\u31ff\u32d0-\u32fe\u3300-\u3357\uff66-\uff6f\uff71-\uff9d",astral:"\ud82c\udc00"},{name:"Kayah_Li",bmp:"\ua900-\ua92d\ua92f"},{name:"Kharoshthi",astral:"\ud802[\ude00-\ude03\ude05\ude06\ude0c-\ude13\ude15-\ude17\ude19-\ude33\ude38-\ude3a\ude3f-\ude47\ude50-\ude58]"},{name:"Khmer",bmp:"\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u19e0-\u19ff"},{name:"Khojki",astral:"\ud804[\ude00-\ude11\ude13-\ude3e]"},{name:"Khudawadi",astral:"\ud804[\udeb0-\udeea\udef0-\udef9]"},{name:"Lao",bmp:"\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb9\u0ebb-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf"},{name:"Latin",bmp:"A-Za-z\xaa\xba\xc0-\xd6\xd8-\xf6\xf8-\u02b8\u02e0-\u02e4\u1d00-\u1d25\u1d2c-\u1d5c\u1d62-\u1d65\u1d6b-\u1d77\u1d79-\u1dbe\u1e00-\u1eff\u2071\u207f\u2090-\u209c\u212a\u212b\u2132\u214e\u2160-\u2188\u2c60-\u2c7f\ua722-\ua787\ua78b-\ua7ae\ua7b0-\ua7b7\ua7f7-\ua7ff\uab30-\uab5a\uab5c-\uab64\ufb00-\ufb06\uff21-\uff3a\uff41-\uff5a"},{name:"Lepcha",bmp:"\u1c00-\u1c37\u1c3b-\u1c49\u1c4d-\u1c4f"},{name:"Limbu",bmp:"\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u194f"},{name:"Linear_A",astral:"\ud801[\ude00-\udf36\udf40-\udf55\udf60-\udf67]"},{name:"Linear_B",astral:"\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa]"},{name:"Lisu",bmp:"\ua4d0-\ua4ff"},{name:"Lycian",astral:"\ud800[\ude80-\ude9c]"},{name:"Lydian",astral:"\ud802[\udd20-\udd39\udd3f]"},{name:"Mahajani",astral:"\ud804[\udd50-\udd76]"},{name:"Malayalam",bmp:"\u0d01-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f"},{name:"Mandaic",bmp:"\u0840-\u085b\u085e"},{name:"Manichaean",astral:"\ud802[\udec0-\udee6\udeeb-\udef6]"},{name:"Marchen",astral:"\ud807[\udc70-\udc8f\udc92-\udca7\udca9-\udcb6]"},{name:"Meetei_Mayek",bmp:"\uaae0-\uaaf6\uabc0-\uabed\uabf0-\uabf9"},{name:"Mende_Kikakui",astral:"\ud83a[\udc00-\udcc4\udcc7-\udcd6]"},{name:"Meroitic_Cursive",astral:"\ud802[\udda0-\uddb7\uddbc-\uddcf\uddd2-\uddff]"},{name:"Meroitic_Hieroglyphs",astral:"\ud802[\udd80-\udd9f]"},{name:"Miao",astral:"\ud81b[\udf00-\udf44\udf50-\udf7e\udf8f-\udf9f]"},{name:"Modi",astral:"\ud805[\ude00-\ude44\ude50-\ude59]"},{name:"Mongolian",bmp:"\u1800\u1801\u1804\u1806-\u180e\u1810-\u1819\u1820-\u1877\u1880-\u18aa",astral:"\ud805[\ude60-\ude6c]"},{name:"Mro",astral:"\ud81a[\ude40-\ude5e\ude60-\ude69\ude6e\ude6f]"},{name:"Multani",astral:"\ud804[\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea9]"},{name:"Myanmar",bmp:"\u1000-\u109f\ua9e0-\ua9fe\uaa60-\uaa7f"},{name:"Nabataean",astral:"\ud802[\udc80-\udc9e\udca7-\udcaf]"},{name:"New_Tai_Lue",bmp:"\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de\u19df"},{name:"Newa",astral:"\ud805[\udc00-\udc59\udc5b\udc5d]"},{name:"Nko",bmp:"\u07c0-\u07fa"},{name:"Ogham",bmp:"\u1680-\u169c"},{name:"Ol_Chiki",bmp:"\u1c50-\u1c7f"},{name:"Old_Hungarian",astral:"\ud803[\udc80-\udcb2\udcc0-\udcf2\udcfa-\udcff]"},{name:"Old_Italic",astral:"\ud800[\udf00-\udf23]"},{name:"Old_North_Arabian",astral:"\ud802[\ude80-\ude9f]"},{name:"Old_Permic",astral:"\ud800[\udf50-\udf7a]"},{name:"Old_Persian",astral:"\ud800[\udfa0-\udfc3\udfc8-\udfd5]"},{name:"Old_South_Arabian",astral:"\ud802[\ude60-\ude7f]"},{name:"Old_Turkic",astral:"\ud803[\udc00-\udc48]"},{name:"Oriya",bmp:"\u0b01-\u0b03\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b5c\u0b5d\u0b5f-\u0b63\u0b66-\u0b77"},{name:"Osage",astral:"\ud801[\udcb0-\udcd3\udcd8-\udcfb]"},{name:"Osmanya",astral:"\ud801[\udc80-\udc9d\udca0-\udca9]"},{name:"Pahawh_Hmong",astral:"\ud81a[\udf00-\udf45\udf50-\udf59\udf5b-\udf61\udf63-\udf77\udf7d-\udf8f]"},{name:"Palmyrene",astral:"\ud802[\udc60-\udc7f]"},{name:"Pau_Cin_Hau",astral:"\ud806[\udec0-\udef8]"},{name:"Phags_Pa",bmp:"\ua840-\ua877"},{name:"Phoenician",astral:"\ud802[\udd00-\udd1b\udd1f]"},{name:"Psalter_Pahlavi",astral:"\ud802[\udf80-\udf91\udf99-\udf9c\udfa9-\udfaf]"},{name:"Rejang",bmp:"\ua930-\ua953\ua95f"},{name:"Runic",bmp:"\u16a0-\u16ea\u16ee-\u16f8"},{name:"Samaritan",bmp:"\u0800-\u082d\u0830-\u083e"},{name:"Saurashtra",bmp:"\ua880-\ua8c5\ua8ce-\ua8d9"},{name:"Sharada",astral:"\ud804[\udd80-\uddcd\uddd0-\udddf]"},{name:"Shavian",astral:"\ud801[\udc50-\udc7f]"},{name:"Siddham",astral:"\ud805[\udd80-\uddb5\uddb8-\udddd]"},{name:"SignWriting",astral:"\ud836[\udc00-\ude8b\ude9b-\ude9f\udea1-\udeaf]"},{name:"Sinhala",bmp:"\u0d82\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4",astral:"\ud804[\udde1-\uddf4]"},{name:"Sora_Sompeng",astral:"\ud804[\udcd0-\udce8\udcf0-\udcf9]"},{name:"Sundanese",bmp:"\u1b80-\u1bbf\u1cc0-\u1cc7"},{name:"Syloti_Nagri",bmp:"\ua800-\ua82b"},{name:"Syriac",bmp:"\u0700-\u070d\u070f-\u074a\u074d-\u074f"},{name:"Tagalog",bmp:"\u1700-\u170c\u170e-\u1714"},{name:"Tagbanwa",bmp:"\u1760-\u176c\u176e-\u1770\u1772\u1773"},{name:"Tai_Le",bmp:"\u1950-\u196d\u1970-\u1974"},{name:"Tai_Tham",bmp:"\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad"},{name:"Tai_Viet",bmp:"\uaa80-\uaac2\uaadb-\uaadf"},{name:"Takri",astral:"\ud805[\ude80-\udeb7\udec0-\udec9]"},{name:"Tamil",bmp:"\u0b82\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa"},{name:"Tangut",astral:"\ud81b\udfe0|[\ud81c-\ud820][\udc00-\udfff]|\ud821[\udc00-\udfec]|\ud822[\udc00-\udef2]"},{name:"Telugu",bmp:"\u0c00-\u0c03\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c58-\u0c5a\u0c60-\u0c63\u0c66-\u0c6f\u0c78-\u0c7f"},{name:"Thaana",bmp:"\u0780-\u07b1"},{name:"Thai",bmp:"\u0e01-\u0e3a\u0e40-\u0e5b"},{name:"Tibetan",bmp:"\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fd4\u0fd9\u0fda"},{name:"Tifinagh",bmp:"\u2d30-\u2d67\u2d6f\u2d70\u2d7f"},{name:"Tirhuta",astral:"\ud805[\udc80-\udcc7\udcd0-\udcd9]"},{name:"Ugaritic",astral:"\ud800[\udf80-\udf9d\udf9f]"},{name:"Vai",bmp:"\ua500-\ua62b"},{name:"Warang_Citi",astral:"\ud806[\udca0-\udcf2\udcff]"},{name:"Yi",bmp:"\ua000-\ua48c\ua490-\ua4c6"}])},d.exports=u.default}}]); \ No newline at end of file diff --git a/9c0c4329.222d6e57.js.LICENSE.txt b/9c0c4329.87db3bb3.js.LICENSE.txt similarity index 100% rename from 9c0c4329.222d6e57.js.LICENSE.txt rename to 9c0c4329.87db3bb3.js.LICENSE.txt diff --git a/a6aa9e1f.73cb4941.js b/a6aa9e1f.f24a48f9.js similarity index 99% rename from a6aa9e1f.73cb4941.js rename to a6aa9e1f.f24a48f9.js index 9b41739d6..bc9820a4d 100644 --- a/a6aa9e1f.73cb4941.js +++ b/a6aa9e1f.f24a48f9.js @@ -1,2 +1,2 @@ -/*! For license information please see a6aa9e1f.73cb4941.js.LICENSE.txt */ -(window.webpackJsonp=window.webpackJsonp||[]).push([[69],{249:function(e,t,a){"use strict";a.r(t);var n=a(0),r=a.n(n),u=a(315),l=a(254);var i=function(e){var t=e.metadata,a=t.previousPage,n=t.nextPage;return r.a.createElement("nav",{className:"pagination-nav"},r.a.createElement("div",{className:"pagination-nav__item"},a&&r.a.createElement(l.a,{className:"pagination-nav__link",to:a},r.a.createElement("h4",{className:"pagination-nav__link--label"},"\xab Newer Entries"))),r.a.createElement("div",{className:"pagination-nav__item pagination-nav__item--next"},n&&r.a.createElement(l.a,{className:"pagination-nav__link",to:n},r.a.createElement("h4",{className:"pagination-nav__link--label"},"Older Entries \xbb"))))},c=a(314),o=a(259),s=a(261),D=a(253),m=a(318);a(213);t.default=function(e){var t=e.metadata,a=e.items,n=Object(D.a)().siteConfig,d=(void 0===n?{title:siteTitle}:n).customFields.metadata.post_tags,E=Object(s.a)(d,"blog"),g=(E.filter((function(e){return"type"==e.category})),E.filter((function(e){return"domain"==e.category})),"/"===t.permalink?siteTitle:"Blog");return Object(m.b)(),r.a.createElement(o.a,{title:g,description:"gnet blog posts, articles, and tips from the gnet core team."},r.a.createElement("div",{className:"blog-list container"},r.a.createElement("div",{className:"blog-list--filters"},r.a.createElement("a",{href:"/blog/rss.xml",style:{float:"right",fontSize:"1.5em",marginTop:"0px",marginLeft:"-30px",width:"30px"}},r.a.createElement("i",{className:"feather icon-rss"})),r.a.createElement("h1",null,"The gnet Blog"),r.a.createElement("p",null,"gnet is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go, created by ",r.a.createElement(l.a,{to:"https://github.com/panjf2000"},"Andy Pan"),"."),r.a.createElement("div",{className:"margin-vert--lg"},r.a.createElement(c.a,{github:!1,size:"s",inline:!0,style:"highlight"})),r.a.createElement("p",{className:"margin-vert--sm"},"Looking for product updates & announcements?"),r.a.createElement("p",null,r.a.createElement(l.a,{to:"/highlights/"},r.a.createElement("i",{className:"feather icon-gift"})," Check out the highlights section"))),r.a.createElement("div",{className:"blog-list--items"},a.map((function(e){var t=e.content;return r.a.createElement(u.a,{key:t.metadata.permalink,frontMatter:t.frontMatter,metadata:t.metadata,truncated:t.metadata.truncated},r.a.createElement(t,null))})),r.a.createElement(i,{metadata:t}))))}},251:function(e,t,a){"use strict";a.d(t,"a",(function(){return D})),a.d(t,"b",(function(){return E}));var n=a(0),r=a.n(n);function u(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=r.a.createContext({}),s=function(e){var t=r.a.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i({},t,{},e)),a},D=function(e){var t=s(e.components);return r.a.createElement(o.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},d=Object(n.forwardRef)((function(e,t){var a=e.components,n=e.mdxType,u=e.originalType,l=e.parentName,o=c(e,["components","mdxType","originalType","parentName"]),D=s(a),d=n,E=D["".concat(l,".").concat(d)]||D[d]||m[d]||u;return a?r.a.createElement(E,i({ref:t},o,{components:a})):r.a.createElement(E,i({ref:t},o))}));function E(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var u=a.length,l=new Array(u);l[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:n,l[1]=i;for(var o=2;o0&&r.a.createElement("div",{className:"row footer__links"},r.a.createElement("div",{className:"col col--5 footer__col"},r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(D.a,{className:"navbar__logo",src:"/img/logo-light.svg",alt:"gnet",width:"150",height:"auto"})),r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(B,{description:!1,width:"150px"})),r.a.createElement("div",null,r.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank"},r.a.createElement("i",{className:"feather icon-twitter",alt:"gnet's Twitter"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank"},r.a.createElement("i",{className:"feather icon-github",alt:"gnet's Github Repo"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://strikefreedom.top/rss.xml",target:"_blank"},r.a.createElement("i",{className:"feather icon-rss",alt:"gnet's RSS feed"})))),i.map((function(e,t){return r.a.createElement("div",{key:t,className:"col footer__col"},null!=e.title?r.a.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?r.a.createElement("ul",{className:"footer__items"},e.items.map((function(e,t){return e.html?r.a.createElement("li",{key:t,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):r.a.createElement("li",{key:e.href||e.to,className:"footer__item"},r.a.createElement(P,e))}))):null)}))),(o||u)&&r.a.createElement("div",{className:"text--center"},o&&o.src&&r.a.createElement("div",{className:"margin-bottom--sm"},o.href?r.a.createElement("a",{href:o.href,target:"_blank",rel:"noopener noreferrer",className:x.a.footerLogoLink},r.a.createElement(L,{alt:o.alt,url:s})):r.a.createElement(L,{alt:o.alt,url:s}),r.a.createElement("br",null),r.a.createElement("a",{href:"https://www.digitalocean.com/",target:"_blank",rel:"noopener noreferrer",className:x.a.footerLogoLink},r.a.createElement("img",{alt:"DigitalOcean",src:"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg",width:"201px"}))),u,r.a.createElement("br",null),r.a.createElement("small",null,r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/security/policy"},"Security Policy"),"\xa0\u2022\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/blob/master/PRIVACY.md"},"Privacy Policy"))))):null},I=a(276),R=a(277),z=a(3);a(135);t.a=function(e){var t=Object(E.a)().siteConfig,a=void 0===t?{}:t,n=a.favicon,i=(a.tagline,a.title),c=a.themeConfig.image,o=a.url,s=e.children,D=e.title,m=e.noFooter,d=e.description,g=e.image,f=e.keywords,p=(e.permalink,e.version),h=D?D+" | "+i:i,b=g||c,v=o+Object(C.a)(b),F=Object(C.a)(n),y=Object(z.h)(),N=y?"https://gnet.host"+(y.pathname.endsWith("/")?y.pathname:y.pathname+"/"):null;return r.a.createElement(R.a,null,r.a.createElement(I.a,null,r.a.createElement(l.a,null,r.a.createElement("html",{lang:"en"}),r.a.createElement("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),h&&r.a.createElement("title",null,h),h&&r.a.createElement("meta",{property:"og:title",content:h}),n&&r.a.createElement("link",{rel:"shortcut icon",href:F}),d&&r.a.createElement("meta",{name:"description",content:d}),d&&r.a.createElement("meta",{property:"og:description",content:d}),p&&r.a.createElement("meta",{name:"docsearch:version",content:p}),f&&f.length&&r.a.createElement("meta",{name:"keywords",content:f.join(",")}),b&&r.a.createElement("meta",{property:"og:image",content:v}),b&&r.a.createElement("meta",{property:"twitter:image",content:v}),b&&r.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+h}),b&&r.a.createElement("meta",{name:"twitter:site",content:"@vectordotdev"}),b&&r.a.createElement("meta",{name:"twitter:creator",content:"@vectordotdev"}),N&&r.a.createElement("meta",{property:"og:url",content:N}),r.a.createElement("meta",{name:"twitter:card",content:"summary"}),N&&r.a.createElement("link",{rel:"canonical",href:N})),r.a.createElement(u.a,null),r.a.createElement(A,null),r.a.createElement("div",{className:"main-wrapper"},s),!m&&r.a.createElement(H,null)))}},261:function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));a(79),a(284),a(260),a(78);var n=a(265),r=a.n(n);function u(e,t){var a=new r.a;return e.map((function(e){var n=e;return"string"==typeof e&&(n={label:e,permalink:"/"+t+"/tags/"+a.slug(e)}),function(e,t){if(e.enriched)return e;var a=e.label.split(": ",2),n=a[0],r=a[1],u="primary";switch(n){case"domain":u="blue";break;case"type":u="pink";break;default:u="primary"}return{category:n,count:e.count,enriched:!0,label:e.label,permalink:e.permalink,style:u,value:r}}(n)}))}},263:function(e,t,a){var n=a(24).f,r=Function.prototype,u=/^\s*function ([^ (]*)/;"name"in r||a(10)&&n(r,"name",{configurable:!0,get:function(){try{return(""+this).match(u)[1]}catch(e){return""}}})},265:function(e,t,a){var n=a(274);e.exports=i;var r=Object.hasOwnProperty,u=/\s/g,l=/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~\u2019]/g;function i(){if(!(this instanceof i))return new i;this.reset()}function c(e,t){return"string"!=typeof e?"":(t||(e=e.toLowerCase()),e.trim().replace(l,"").replace(n(),"").replace(u,"-"))}i.prototype.slug=function(e,t){for(var a=c(e,!0===t),n=a;r.call(this.occurrences,a);)this.occurrences[n]++,a=n+"-"+this.occurrences[n];return this.occurrences[a]=0,a},i.prototype.reset=function(){this.occurrences=Object.create(null)},i.slug=c},273:function(e,t,a){"use strict";var n=a(0),r=a.n(n),u=a(254),l=a(252),i=a.n(l);t.a=function(e){var t=e.count,a=e.label,n=e.permalink,l=e.style,c=e.value,o=e.valueOnly;return r.a.createElement(u.a,{to:n+"/",className:i()("badge","badge--rounded","badge--"+l)},o?c:a,t&&r.a.createElement(r.a.Fragment,null," (",t,")"))}},274:function(e,t){e.exports=function(){return/[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267B\u267F\u2692-\u2694\u2696\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD79\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED0\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3]|\uD83E[\uDD10-\uDD18\uDD80-\uDD84\uDDC0]|\uD83C\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uD83C\uDDFE\uD83C[\uDDEA\uDDF9]|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDFC\uD83C[\uDDEB\uDDF8]|\uD83C\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uD83C\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF8\uDDFE\uDDFF]|\uD83C\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uD83C\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uD83C\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uD83C\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uD83C\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uD83C\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uD83C\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uD83C\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uD83C\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uD83C\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uD83C\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uD83C\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uD83C\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uD83C\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uD83C\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uD83C\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|[#\*0-9]\u20E3/g}},278:function(e,t,a){"use strict";a(263),a(260);var n=a(0),r=a.n(n),u=a(252),l=a.n(u),i=a(253);a(137);t.a=function(e){var t,a=e.bio,n=e.className,u=e.github,c=e.nameSuffix,o=e.rel,s=e.size,D=e.subTitle,m=e.vertical,d=Object(i.a)().siteConfig,E=(void 0===d?{}:d).customFields.metadata.team,g=E.find((function(e){return e.github==u}))||E.find((function(e){return"ben"==e.id}));return r.a.createElement("div",{className:l()("avatar",n,(t={},t["avatar--"+s]=s,t["avatar--vertical"]=m,t))},r.a.createElement("img",{className:l()("avatar__photo","avatar__photo--"+s),src:g.avatar}),r.a.createElement("div",{className:"avatar__intro"},r.a.createElement("div",{className:"avatar__name"},r.a.createElement("a",{href:g.github,target:"_blank",rel:o},g.name),c),D&&r.a.createElement("small",{className:"avatar__subtitle"},D),!D&&a&&r.a.createElement("small",{className:"avatar__subtitle",dangerouslySetInnerHTML:{__html:g.bio}})))}},279:function(e,t,a){"use strict";var n=a(1),r=a(0),u=a.n(r),l=(a(254),a(273)),i=a(252),c=a.n(i),o=a(261),s=a(138),D=a.n(s);t.a=function(e){var t,a=e.block,r=e.colorProfile,i=e.tags,s=e.valuesOnly,m=Object(o.a)(i,r);return u.a.createElement("span",{className:c()(D.a.tags,(t={},t[D.a.tagsBlock]=a,t))},m.map((function(e,t){return u.a.createElement(l.a,Object(n.a)({key:t,valueOnly:s},e))})))}},280:function(e,t,a){var n;!function(r){"use strict";var u,l,i,c=(u=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZWN]|"[^"]*"|'[^']*'/g,l=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,i=/[^-+\dA-Z]/g,function(e,t,a,n){if(1!==arguments.length||"string"!==m(e)||/\d/.test(e)||(t=e,e=void 0),(e=e||new Date)instanceof Date||(e=new Date(e)),isNaN(e))throw TypeError("Invalid date");var r=(t=String(c.masks[t]||t||c.masks.default)).slice(0,4);"UTC:"!==r&&"GMT:"!==r||(t=t.slice(4),a=!0,"GMT:"===r&&(n=!0));var d=a?"getUTC":"get",E=e[d+"Date"](),g=e[d+"Day"](),f=e[d+"Month"](),p=e[d+"FullYear"](),h=e[d+"Hours"](),b=e[d+"Minutes"](),v=e[d+"Seconds"](),F=e[d+"Milliseconds"](),y=a?0:e.getTimezoneOffset(),C=s(e),N=D(e),w={d:E,dd:o(E),ddd:c.i18n.dayNames[g],dddd:c.i18n.dayNames[g+7],m:f+1,mm:o(f+1),mmm:c.i18n.monthNames[f],mmmm:c.i18n.monthNames[f+12],yy:String(p).slice(2),yyyy:p,h:h%12||12,hh:o(h%12||12),H:h,HH:o(h),M:b,MM:o(b),s:v,ss:o(v),l:o(F,3),L:o(Math.round(F/10)),t:h<12?c.i18n.timeNames[0]:c.i18n.timeNames[1],tt:h<12?c.i18n.timeNames[2]:c.i18n.timeNames[3],T:h<12?c.i18n.timeNames[4]:c.i18n.timeNames[5],TT:h<12?c.i18n.timeNames[6]:c.i18n.timeNames[7],Z:n?"GMT":a?"UTC":(String(e).match(l)||[""]).pop().replace(i,""),o:(y>0?"-":"+")+o(100*Math.floor(Math.abs(y)/60)+Math.abs(y)%60,4),S:["th","st","nd","rd"][E%10>3?0:(E%100-E%10!=10)*E%10],W:C,N:N};return t.replace(u,(function(e){return e in w?w[e]:e.slice(1,e.length-1)}))});function o(e,t){for(e=String(e),t=t||2;e.length0}))}l&&v.test(l)&&(O=l.match(v)[0].split("title=")[1].replace(/"+/g,"")),Object(r.useEffect)((function(){var e;return k.current&&(e=new i.a(k.current,{target:function(){return w.current}})),function(){e&&e.destroy()}}),[k.current,w.current]);var S=a&&a.replace(/language-/,"");!S&&s.defaultLanguage&&(S=s.defaultLanguage);var x=function(){window.getSelection().empty(),F(!0),setTimeout((function(){return F(!1)}),2e3)};return u.a.createElement(c.a,Object(n.a)({},c.b,{key:C,theme:M,code:t.trim(),language:S}),(function(e){var t,a,r=e.className,l=e.style,i=e.tokens,c=e.getLineProps,o=e.getTokenProps;return u.a.createElement(u.a.Fragment,null,O&&u.a.createElement("div",{style:l,className:h.a.codeBlockTitle},O),u.a.createElement("div",{className:h.a.codeBlockContent},u.a.createElement("button",{ref:k,type:"button","aria-label":"Copy code to clipboard",className:D()(h.a.copyButton,(t={},t[h.a.copyButtonWithTitle]=O,t)),onClick:x},p?"Copied":"Copy"),u.a.createElement("pre",{className:D()(r,h.a.codeBlock,(a={},a[h.a.codeBlockWithTitle]=O,a))},u.a.createElement("div",{ref:w,className:h.a.codeBlockLines,style:l},i.map((function(e,t){1===e.length&&""===e[0].content&&(e[0].content="\n");var a=c({line:e,key:t});return _.includes(t+1)&&(a.className=a.className+" docusaurus-highlight-code-line"),u.a.createElement("div",Object(n.a)({key:t},a),e.map((function(e,t){return u.a.createElement("span",Object(n.a)({key:t},o({token:e,key:t})))})))}))))))}))}}).call(this,a(77))},285:function(e,t,a){"use strict";var n=a(1),r=a(0),u=a.n(r),l=a(254),i=a(283),c=a(264),o=a(141),s=a.n(o);t.a={code:function(e){var t=e.children;return"string"==typeof t?u.a.createElement(i.a,e):t},a:function(e){return/\.[^./]+$/.test(e.href)?u.a.createElement("a",e):u.a.createElement(l.a,e)},pre:function(e){return u.a.createElement("div",Object(n.a)({className:s.a.mdxCodeBlock},e))},h1:Object(c.a)("h1"),h2:Object(c.a)("h2"),h3:Object(c.a)("h3"),h4:Object(c.a)("h4"),h5:Object(c.a)("h5"),h6:Object(c.a)("h6")}},302:function(e,t,a){"use strict";a(316);var n=a(8),r=a(81),u=a(10),l=/./.toString,i=function(e){a(15)(RegExp.prototype,"toString",e,!0)};a(13)((function(){return"/a/b"!=l.call({source:"a",flags:"b"})}))?i((function(){var e=n(this);return"/".concat(e.source,"/","flags"in e?e.flags:!u&&e instanceof RegExp?r.call(e):void 0)})):"toString"!=l.name&&i((function(){return l.call(this)}))},303:function(e,t,a){e.exports=a(317)},314:function(e,t,a){"use strict";var n=a(0),r=a.n(n),u=a(252),l=a.n(u);t.a=function(e){var t=e.github,a=e.inline,n=e.size,u=e.style,i=l()("panel","panel--button","panel--"+n,"panel--"+u,{"panel--button--inline":a});return r.a.createElement("div",{className:"row row--squished"},r.a.createElement("div",{className:"col"},r.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank",className:i},r.a.createElement("div",{className:"panel--icon"},r.a.createElement("i",{className:"feather icon-twitter",title:"Twitter"})),r.a.createElement("div",null,r.a.createElement("div",{className:"panel--title"},"Follow @panjf2000"),r.a.createElement("div",{className:"panel--description"},"Get real-time updates!")))),0!=t&&r.a.createElement("div",{className:"col"},r.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank",className:i},r.a.createElement("div",{className:"panel--icon"},r.a.createElement("i",{className:"feather icon-github"})),r.a.createElement("div",null,r.a.createElement("div",{className:"panel--title"},"Star panjf2000/gnet"),r.a.createElement("div",{className:"panel--description"},"Star the repo to support us.")))))}},315:function(e,t,a){"use strict";a(260),a(302),a(19);var n=a(0),r=a.n(n),u=a(278),l=a(254),i=(a(285),a(251),a(279)),c=a(252),o=a.n(c),s=a(280),D=a.n(s),m=a(261),d=a(303),E=a.n(d);t.a=function(e){var t=e.children,a=e.frontMatter,n=e.metadata,c=(e.truncated,e.isBlogPostPage,n.date),s=n.description,d=n.permalink,g=n.tags,f=a.author_github,p=a.title,h=E()(t.toString()),b=new Date(Date.parse(c)),v=Object(m.a)(g,"blog").find((function(e){return"domain"==e.category})),F=v?v.value:null;return r.a.createElement(l.a,{to:d+"/",className:o()("panel","domain-bg","domain-bg--hover","domain-bg--"+F)},r.a.createElement("article",null,r.a.createElement("h2",null,p),r.a.createElement("div",{className:"subtitle"},s),r.a.createElement(u.a,{github:f,size:"sm",subTitle:r.a.createElement(r.a.Fragment,null,r.a.createElement("time",{pubdate:"pubdate",dateTime:b.toISOString()},D()(b,"mmm dS"))," / ",h.text),rel:"author"}),r.a.createElement(i.a,{colorProfile:"blog",tags:g})))}},316:function(e,t,a){a(10)&&"g"!=/./g.flags&&a(24).f(RegExp.prototype,"flags",{configurable:!0,get:a(81)})},317:function(e,t,a){"use strict";function n(e){return" "===e||"\n"===e||"\r"===e||"\t"===e}e.exports=function(e,t){var a,r,u=0,l=0,i=e.length-1;for((t=t||{}).wordsPerMinute=t.wordsPerMinute||200,a=t.wordBound||n;a(e[l]);)l++;for(;a(e[i]);)i--;for(r=l;r<=i;){for(;r<=i&&!a(e[r]);r++);for(u++;r<=i&&a(e[r]);r++);}var c=u/t.wordsPerMinute,o=60*c*1e3;return{text:Math.ceil(c.toFixed(2))+" min read",minutes:c,time:o,words:u}}},318:function(e,t,a){"use strict";a.d(t,"a",(function(){return r})),a.d(t,"b",(function(){return u}));var n=a(253);function r(){var e=Object(n.a)().siteConfig,t=(void 0===e?{}:e).customFields.metadata.latest_post,a=Date.parse(t.date),r=new Date,u=Math.abs(r-a),l=Math.ceil(u/864e5),i=null;return"undefined"!=typeof window&&(i=new Date(parseInt(window.localStorage.getItem("blogViewedAt")||"0"))),l<30&&(!i||i=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=r.a.createContext({}),s=function(e){var t=r.a.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i({},t,{},e)),a},D=function(e){var t=s(e.components);return r.a.createElement(o.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},d=Object(n.forwardRef)((function(e,t){var a=e.components,n=e.mdxType,u=e.originalType,l=e.parentName,o=c(e,["components","mdxType","originalType","parentName"]),D=s(a),d=n,E=D["".concat(l,".").concat(d)]||D[d]||m[d]||u;return a?r.a.createElement(E,i({ref:t},o,{components:a})):r.a.createElement(E,i({ref:t},o))}));function E(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var u=a.length,l=new Array(u);l[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:n,l[1]=i;for(var o=2;o0&&r.a.createElement("div",{className:"row footer__links"},r.a.createElement("div",{className:"col col--5 footer__col"},r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(D.a,{className:"navbar__logo",src:"/img/logo-light.svg",alt:"gnet",width:"150",height:"auto"})),r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(B,{description:!1,width:"150px"})),r.a.createElement("div",null,r.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank"},r.a.createElement("i",{className:"feather icon-twitter",alt:"gnet's Twitter"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank"},r.a.createElement("i",{className:"feather icon-github",alt:"gnet's Github Repo"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://strikefreedom.top/rss.xml",target:"_blank"},r.a.createElement("i",{className:"feather icon-rss",alt:"gnet's RSS feed"})))),i.map((function(e,t){return r.a.createElement("div",{key:t,className:"col footer__col"},null!=e.title?r.a.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?r.a.createElement("ul",{className:"footer__items"},e.items.map((function(e,t){return e.html?r.a.createElement("li",{key:t,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):r.a.createElement("li",{key:e.href||e.to,className:"footer__item"},r.a.createElement(P,e))}))):null)}))),(o||u)&&r.a.createElement("div",{className:"text--center"},o&&o.src&&r.a.createElement("div",{className:"margin-bottom--sm"},o.href?r.a.createElement("a",{href:o.href,target:"_blank",rel:"noopener noreferrer",className:x.a.footerLogoLink},r.a.createElement(L,{alt:o.alt,url:s})):r.a.createElement(L,{alt:o.alt,url:s}),r.a.createElement("br",null),r.a.createElement("a",{href:"https://www.digitalocean.com/",target:"_blank",rel:"noopener noreferrer",className:x.a.footerLogoLink},r.a.createElement("img",{alt:"DigitalOcean",src:"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg",width:"201px"}))),u,r.a.createElement("br",null),r.a.createElement("small",null,r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/security/policy"},"Security Policy"),"\xa0\u2022\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/blob/master/PRIVACY.md"},"Privacy Policy"))))):null},I=a(276),R=a(277),z=a(3);a(135);t.a=function(e){var t=Object(E.a)().siteConfig,a=void 0===t?{}:t,n=a.favicon,i=(a.tagline,a.title),c=a.themeConfig.image,o=a.url,s=e.children,D=e.title,m=e.noFooter,d=e.description,g=e.image,f=e.keywords,p=(e.permalink,e.version),h=D?D+" | "+i:i,b=g||c,v=o+Object(C.a)(b),F=Object(C.a)(n),y=Object(z.h)(),N=y?"https://gnet.host"+(y.pathname.endsWith("/")?y.pathname:y.pathname+"/"):null;return r.a.createElement(R.a,null,r.a.createElement(I.a,null,r.a.createElement(l.a,null,r.a.createElement("html",{lang:"en"}),r.a.createElement("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),h&&r.a.createElement("title",null,h),h&&r.a.createElement("meta",{property:"og:title",content:h}),n&&r.a.createElement("link",{rel:"shortcut icon",href:F}),d&&r.a.createElement("meta",{name:"description",content:d}),d&&r.a.createElement("meta",{property:"og:description",content:d}),p&&r.a.createElement("meta",{name:"docsearch:version",content:p}),f&&f.length&&r.a.createElement("meta",{name:"keywords",content:f.join(",")}),b&&r.a.createElement("meta",{property:"og:image",content:v}),b&&r.a.createElement("meta",{property:"twitter:image",content:v}),b&&r.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+h}),b&&r.a.createElement("meta",{name:"twitter:site",content:"@vectordotdev"}),b&&r.a.createElement("meta",{name:"twitter:creator",content:"@vectordotdev"}),N&&r.a.createElement("meta",{property:"og:url",content:N}),r.a.createElement("meta",{name:"twitter:card",content:"summary"}),N&&r.a.createElement("link",{rel:"canonical",href:N})),r.a.createElement(u.a,null),r.a.createElement(A,null),r.a.createElement("div",{className:"main-wrapper"},s),!m&&r.a.createElement(H,null)))}},261:function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));a(79),a(284),a(260),a(78);var n=a(265),r=a.n(n);function u(e,t){var a=new r.a;return e.map((function(e){var n=e;return"string"==typeof e&&(n={label:e,permalink:"/"+t+"/tags/"+a.slug(e)}),function(e,t){if(e.enriched)return e;var a=e.label.split(": ",2),n=a[0],r=a[1],u="primary";switch(n){case"domain":u="blue";break;case"type":u="pink";break;default:u="primary"}return{category:n,count:e.count,enriched:!0,label:e.label,permalink:e.permalink,style:u,value:r}}(n)}))}},263:function(e,t,a){var n=a(24).f,r=Function.prototype,u=/^\s*function ([^ (]*)/;"name"in r||a(10)&&n(r,"name",{configurable:!0,get:function(){try{return(""+this).match(u)[1]}catch(e){return""}}})},265:function(e,t,a){var n=a(274);e.exports=i;var r=Object.hasOwnProperty,u=/\s/g,l=/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~\u2019]/g;function i(){if(!(this instanceof i))return new i;this.reset()}function c(e,t){return"string"!=typeof e?"":(t||(e=e.toLowerCase()),e.trim().replace(l,"").replace(n(),"").replace(u,"-"))}i.prototype.slug=function(e,t){for(var a=c(e,!0===t),n=a;r.call(this.occurrences,a);)this.occurrences[n]++,a=n+"-"+this.occurrences[n];return this.occurrences[a]=0,a},i.prototype.reset=function(){this.occurrences=Object.create(null)},i.slug=c},273:function(e,t,a){"use strict";var n=a(0),r=a.n(n),u=a(254),l=a(252),i=a.n(l);t.a=function(e){var t=e.count,a=e.label,n=e.permalink,l=e.style,c=e.value,o=e.valueOnly;return r.a.createElement(u.a,{to:n+"/",className:i()("badge","badge--rounded","badge--"+l)},o?c:a,t&&r.a.createElement(r.a.Fragment,null," (",t,")"))}},274:function(e,t){e.exports=function(){return/[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267B\u267F\u2692-\u2694\u2696\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD79\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED0\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3]|\uD83E[\uDD10-\uDD18\uDD80-\uDD84\uDDC0]|\uD83C\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uD83C\uDDFE\uD83C[\uDDEA\uDDF9]|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDFC\uD83C[\uDDEB\uDDF8]|\uD83C\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uD83C\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF8\uDDFE\uDDFF]|\uD83C\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uD83C\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uD83C\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uD83C\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uD83C\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uD83C\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uD83C\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uD83C\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uD83C\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uD83C\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uD83C\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uD83C\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uD83C\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uD83C\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uD83C\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uD83C\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|[#\*0-9]\u20E3/g}},278:function(e,t,a){"use strict";a(263),a(260);var n=a(0),r=a.n(n),u=a(252),l=a.n(u),i=a(253);a(137);t.a=function(e){var t,a=e.bio,n=e.className,u=e.github,c=e.nameSuffix,o=e.rel,s=e.size,D=e.subTitle,m=e.vertical,d=Object(i.a)().siteConfig,E=(void 0===d?{}:d).customFields.metadata.team,g=E.find((function(e){return e.github==u}))||E.find((function(e){return"ben"==e.id}));return r.a.createElement("div",{className:l()("avatar",n,(t={},t["avatar--"+s]=s,t["avatar--vertical"]=m,t))},r.a.createElement("img",{className:l()("avatar__photo","avatar__photo--"+s),src:g.avatar}),r.a.createElement("div",{className:"avatar__intro"},r.a.createElement("div",{className:"avatar__name"},r.a.createElement("a",{href:g.github,target:"_blank",rel:o},g.name),c),D&&r.a.createElement("small",{className:"avatar__subtitle"},D),!D&&a&&r.a.createElement("small",{className:"avatar__subtitle",dangerouslySetInnerHTML:{__html:g.bio}})))}},279:function(e,t,a){"use strict";var n=a(1),r=a(0),u=a.n(r),l=(a(254),a(273)),i=a(252),c=a.n(i),o=a(261),s=a(138),D=a.n(s);t.a=function(e){var t,a=e.block,r=e.colorProfile,i=e.tags,s=e.valuesOnly,m=Object(o.a)(i,r);return u.a.createElement("span",{className:c()(D.a.tags,(t={},t[D.a.tagsBlock]=a,t))},m.map((function(e,t){return u.a.createElement(l.a,Object(n.a)({key:t,valueOnly:s},e))})))}},280:function(e,t,a){var n;!function(r){"use strict";var u,l,i,c=(u=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZWN]|"[^"]*"|'[^']*'/g,l=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,i=/[^-+\dA-Z]/g,function(e,t,a,n){if(1!==arguments.length||"string"!==m(e)||/\d/.test(e)||(t=e,e=void 0),(e=e||new Date)instanceof Date||(e=new Date(e)),isNaN(e))throw TypeError("Invalid date");var r=(t=String(c.masks[t]||t||c.masks.default)).slice(0,4);"UTC:"!==r&&"GMT:"!==r||(t=t.slice(4),a=!0,"GMT:"===r&&(n=!0));var d=a?"getUTC":"get",E=e[d+"Date"](),g=e[d+"Day"](),f=e[d+"Month"](),p=e[d+"FullYear"](),h=e[d+"Hours"](),b=e[d+"Minutes"](),v=e[d+"Seconds"](),F=e[d+"Milliseconds"](),y=a?0:e.getTimezoneOffset(),C=s(e),N=D(e),w={d:E,dd:o(E),ddd:c.i18n.dayNames[g],dddd:c.i18n.dayNames[g+7],m:f+1,mm:o(f+1),mmm:c.i18n.monthNames[f],mmmm:c.i18n.monthNames[f+12],yy:String(p).slice(2),yyyy:p,h:h%12||12,hh:o(h%12||12),H:h,HH:o(h),M:b,MM:o(b),s:v,ss:o(v),l:o(F,3),L:o(Math.round(F/10)),t:h<12?c.i18n.timeNames[0]:c.i18n.timeNames[1],tt:h<12?c.i18n.timeNames[2]:c.i18n.timeNames[3],T:h<12?c.i18n.timeNames[4]:c.i18n.timeNames[5],TT:h<12?c.i18n.timeNames[6]:c.i18n.timeNames[7],Z:n?"GMT":a?"UTC":(String(e).match(l)||[""]).pop().replace(i,""),o:(y>0?"-":"+")+o(100*Math.floor(Math.abs(y)/60)+Math.abs(y)%60,4),S:["th","st","nd","rd"][E%10>3?0:(E%100-E%10!=10)*E%10],W:C,N:N};return t.replace(u,(function(e){return e in w?w[e]:e.slice(1,e.length-1)}))});function o(e,t){for(e=String(e),t=t||2;e.length0}))}l&&v.test(l)&&(O=l.match(v)[0].split("title=")[1].replace(/"+/g,"")),Object(r.useEffect)((function(){var e;return k.current&&(e=new i.a(k.current,{target:function(){return w.current}})),function(){e&&e.destroy()}}),[k.current,w.current]);var S=a&&a.replace(/language-/,"");!S&&s.defaultLanguage&&(S=s.defaultLanguage);var x=function(){window.getSelection().empty(),F(!0),setTimeout((function(){return F(!1)}),2e3)};return u.a.createElement(c.a,Object(n.a)({},c.b,{key:C,theme:M,code:t.trim(),language:S}),(function(e){var t,a,r=e.className,l=e.style,i=e.tokens,c=e.getLineProps,o=e.getTokenProps;return u.a.createElement(u.a.Fragment,null,O&&u.a.createElement("div",{style:l,className:h.a.codeBlockTitle},O),u.a.createElement("div",{className:h.a.codeBlockContent},u.a.createElement("button",{ref:k,type:"button","aria-label":"Copy code to clipboard",className:D()(h.a.copyButton,(t={},t[h.a.copyButtonWithTitle]=O,t)),onClick:x},p?"Copied":"Copy"),u.a.createElement("pre",{className:D()(r,h.a.codeBlock,(a={},a[h.a.codeBlockWithTitle]=O,a))},u.a.createElement("div",{ref:w,className:h.a.codeBlockLines,style:l},i.map((function(e,t){1===e.length&&""===e[0].content&&(e[0].content="\n");var a=c({line:e,key:t});return _.includes(t+1)&&(a.className=a.className+" docusaurus-highlight-code-line"),u.a.createElement("div",Object(n.a)({key:t},a),e.map((function(e,t){return u.a.createElement("span",Object(n.a)({key:t},o({token:e,key:t})))})))}))))))}))}}).call(this,a(77))},285:function(e,t,a){"use strict";var n=a(1),r=a(0),u=a.n(r),l=a(254),i=a(283),c=a(264),o=a(141),s=a.n(o);t.a={code:function(e){var t=e.children;return"string"==typeof t?u.a.createElement(i.a,e):t},a:function(e){return/\.[^./]+$/.test(e.href)?u.a.createElement("a",e):u.a.createElement(l.a,e)},pre:function(e){return u.a.createElement("div",Object(n.a)({className:s.a.mdxCodeBlock},e))},h1:Object(c.a)("h1"),h2:Object(c.a)("h2"),h3:Object(c.a)("h3"),h4:Object(c.a)("h4"),h5:Object(c.a)("h5"),h6:Object(c.a)("h6")}},302:function(e,t,a){"use strict";a(316);var n=a(8),r=a(81),u=a(10),l=/./.toString,i=function(e){a(15)(RegExp.prototype,"toString",e,!0)};a(13)((function(){return"/a/b"!=l.call({source:"a",flags:"b"})}))?i((function(){var e=n(this);return"/".concat(e.source,"/","flags"in e?e.flags:!u&&e instanceof RegExp?r.call(e):void 0)})):"toString"!=l.name&&i((function(){return l.call(this)}))},303:function(e,t,a){e.exports=a(317)},314:function(e,t,a){"use strict";var n=a(0),r=a.n(n),u=a(252),l=a.n(u);t.a=function(e){var t=e.github,a=e.inline,n=e.size,u=e.style,i=l()("panel","panel--button","panel--"+n,"panel--"+u,{"panel--button--inline":a});return r.a.createElement("div",{className:"row row--squished"},r.a.createElement("div",{className:"col"},r.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank",className:i},r.a.createElement("div",{className:"panel--icon"},r.a.createElement("i",{className:"feather icon-twitter",title:"Twitter"})),r.a.createElement("div",null,r.a.createElement("div",{className:"panel--title"},"Follow @panjf2000"),r.a.createElement("div",{className:"panel--description"},"Get real-time updates!")))),0!=t&&r.a.createElement("div",{className:"col"},r.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank",className:i},r.a.createElement("div",{className:"panel--icon"},r.a.createElement("i",{className:"feather icon-github"})),r.a.createElement("div",null,r.a.createElement("div",{className:"panel--title"},"Star panjf2000/gnet"),r.a.createElement("div",{className:"panel--description"},"Star the repo to support us.")))))}},315:function(e,t,a){"use strict";a(260),a(302),a(19);var n=a(0),r=a.n(n),u=a(278),l=a(254),i=(a(285),a(251),a(279)),c=a(252),o=a.n(c),s=a(280),D=a.n(s),m=a(261),d=a(303),E=a.n(d);t.a=function(e){var t=e.children,a=e.frontMatter,n=e.metadata,c=(e.truncated,e.isBlogPostPage,n.date),s=n.description,d=n.permalink,g=n.tags,f=a.author_github,p=a.title,h=E()(t.toString()),b=new Date(Date.parse(c)),v=Object(m.a)(g,"blog").find((function(e){return"domain"==e.category})),F=v?v.value:null;return r.a.createElement(l.a,{to:d+"/",className:o()("panel","domain-bg","domain-bg--hover","domain-bg--"+F)},r.a.createElement("article",null,r.a.createElement("h2",null,p),r.a.createElement("div",{className:"subtitle"},s),r.a.createElement(u.a,{github:f,size:"sm",subTitle:r.a.createElement(r.a.Fragment,null,r.a.createElement("time",{pubdate:"pubdate",dateTime:b.toISOString()},D()(b,"mmm dS"))," / ",h.text),rel:"author"}),r.a.createElement(i.a,{colorProfile:"blog",tags:g})))}},316:function(e,t,a){a(10)&&"g"!=/./g.flags&&a(24).f(RegExp.prototype,"flags",{configurable:!0,get:a(81)})},317:function(e,t,a){"use strict";function n(e){return" "===e||"\n"===e||"\r"===e||"\t"===e}e.exports=function(e,t){var a,r,u=0,l=0,i=e.length-1;for((t=t||{}).wordsPerMinute=t.wordsPerMinute||200,a=t.wordBound||n;a(e[l]);)l++;for(;a(e[i]);)i--;for(r=l;r<=i;){for(;r<=i&&!a(e[r]);r++);for(u++;r<=i&&a(e[r]);r++);}var c=u/t.wordsPerMinute,o=60*c*1e3;return{text:Math.ceil(c.toFixed(2))+" min read",minutes:c,time:o,words:u}}},318:function(e,t,a){"use strict";a.d(t,"a",(function(){return r})),a.d(t,"b",(function(){return u}));var n=a(253);function r(){var e=Object(n.a)().siteConfig,t=(void 0===e?{}:e).customFields.metadata.latest_post,a=Date.parse(t.date),r=new Date,u=Math.abs(r-a),l=Math.ceil(u/864e5),i=null;return"undefined"!=typeof window&&(i=new Date(parseInt(window.localStorage.getItem("blogViewedAt")||"0"))),l<30&&(!i||i - + @@ -31,7 +31,7 @@ - + @@ -39,12 +39,12 @@
-
/ / 4 min read

官宣 gnet v1.0.0

最快的 Go 网络框架 gnet 来啦!

今天,gnet v1.0.0 正式版本发布,享受这个高性能的网络框架吧!

gnet

📖 简介

gnet 是一个基于事件驱动的高性能和轻量级网络框架。它直接使用 epollkqueue 系统调用而非标准 Go 网络包:net 来构建网络应用,它的工作原理类似两个开源的网络库:nettylibuv,这也使得 gnet 达到了一个远超 Go net 的性能表现。

gnet 设计开发的初衷不是为了取代 Go 的标准网络库:net,而是为了创造出一个类似于 RedisHaproxy 能高效处理网络包的 Go 语言网络服务器框架。

gnet 的卖点在于它是一个高性能、轻量级、非阻塞的纯 Go 实现的传输层(TCP/UDP/Unix Domain Socket)网络框架,开发者可以使用 gnet 来实现自己的应用层网络协议(HTTP、RPC、Redis、WebSocket 等等),从而构建出自己的应用层网络应用:比如在 gnet 上实现 HTTP 协议就可以创建出一个 HTTP 服务器 或者 Web 开发框架,实现 Redis 协议就可以创建出自己的 Redis 服务器等等。

gnet 衍生自另一个项目:evio,但拥有更丰富的功能特性,且性能远胜之。

🚀 功能

  • 高性能 的基于多线程/Go程网络模型的 event-loop 事件驱动
  • 内置 Round-Robin 轮询负载均衡算法
  • 内置 goroutine 池,由开源库 ants 提供支持
  • 内置 bytes 内存池,由开源库 bytebufferpool 提供支持
  • 简洁的 APIs
  • 基于 Ring-Buffer 的高效内存利用
  • 支持多种网络协议/IPC 机制:TCP、UDP 和 Unix Domain Socket
  • 支持两种事件驱动机制:Linux 里的 epoll 以及 FreeBSD 里的 kqueue
  • 支持异步写操作
  • 灵活的事件定时器
  • SO_REUSEPORT 端口重用
  • 内置多种编解码器,支持对 TCP 数据流分包:LineBasedFrameCodec, DelimiterBasedFrameCodec, FixedLengthFrameCodec 和 LengthFieldBasedFrameCodec,参考自 netty codec,而且支持自定制编解码器
  • 支持 Windows 平台,基于 IOCP 事件驱动机制 Go 标准网络库
  • 加入更多的负载均衡算法:随机、最少连接、一致性哈希等等
  • 支持 TLS
  • 实现 gnet 客户端

💡 核心设计

多线程/Go程网络模型

主从多 Reactors

gnet 重新设计开发了一个新内置的多线程/Go程网络模型:『主从多 Reactors』,这也是 netty 默认的多线程网络模型,下面是这个模型的原理图:

multi_reactor

它的运行流程如下面的时序图:

reactor

主从多 Reactors + 线程/Go程池

你可能会问一个问题:如果我的业务逻辑是阻塞的,那么在 EventHandler.React 注册方法里的逻辑也会阻塞,从而导致阻塞 event-loop 线程,这时候怎么办?

正如你所知,基于 gnet 编写你的网络服务器有一条最重要的原则:永远不能让你业务逻辑(一般写在 EventHandler.React 里)阻塞 event-loop 线程,这也是 netty 的一条最重要的原则,否则的话将会极大地降低服务器的吞吐量。

我的回答是,基于gnet 的另一种多线程/Go程网络模型:『带线程/Go程池的主从多 Reactors』可以解决阻塞问题,这个新网络模型通过引入一个 worker pool 来解决业务逻辑阻塞的问题:它会在启动的时候初始化一个 worker pool,然后在把 EventHandler.React里面的阻塞代码放到 worker pool 里执行,从而避免阻塞 event-loop 线程。

模型的架构图如下所示:

multi_reactor_thread_pool

它的运行流程如下面的时序图:

multi-reactors

gnet 通过利用 ants goroutine 池(一个基于 Go 开发的高性能的 goroutine 池 ,实现了对大规模 goroutines 的调度管理、goroutines 复用)来实现『主从多 Reactors + 线程/Go程池』网络模型。关于 ants 的全部功能和使用,可以在 ants 文档 里找到。

gnet 内部集成了 ants 以及提供了 pool.goroutine.Default() 方法来初始化一个 ants goroutine 池,然后你可以把 EventHandler.React 中阻塞的业务逻辑提交到 goroutine 池里执行,最后在 goroutine 池里的代码调用 gnet.Conn.AsyncWrite([]byte) 方法把处理完阻塞逻辑之后得到的输出数据异步写回客户端,这样就可以避免阻塞 event-loop 线程。

有关在 gnet 里使用 ants goroutine 池的细节可以到这里进一步了解。

可重用且自动扩容的 Ring-Buffer

gnet 内置了inbound 和 outbound 两个 buffers,基于 Ring-Buffer 原理实现,分别用来缓冲输入输出的网络数据以及管理内存,gnet 里面的 ring buffer 能够重用内存以及按需扩容。

对于 TCP 协议的流数据,使用 gnet 不需要业务方为了解析应用层协议而自己维护和管理 buffers,gnet 会替业务方完成缓冲和管理网络数据的任务,降低业务代码的复杂性以及降低开发者的心智负担,使得开发者能够专注于业务逻辑而非一些底层实现。

Like What You See?

+
/ / 4 min read

官宣 gnet v1.0.0

最快的 Go 网络框架 gnet 来啦!

今天,gnet v1.0.0 正式版本发布,享受这个高性能的网络框架吧!

gnet

📖 简介

gnet 是一个基于事件驱动的高性能和轻量级网络框架。它直接使用 epollkqueue 系统调用而非标准 Go 网络包:net 来构建网络应用,它的工作原理类似两个开源的网络库:nettylibuv,这也使得 gnet 达到了一个远超 Go net 的性能表现。

gnet 设计开发的初衷不是为了取代 Go 的标准网络库:net,而是为了创造出一个类似于 RedisHaproxy 能高效处理网络包的 Go 语言网络服务器框架。

gnet 的卖点在于它是一个高性能、轻量级、非阻塞的纯 Go 实现的传输层(TCP/UDP/Unix Domain Socket)网络框架,开发者可以使用 gnet 来实现自己的应用层网络协议(HTTP、RPC、Redis、WebSocket 等等),从而构建出自己的应用层网络应用:比如在 gnet 上实现 HTTP 协议就可以创建出一个 HTTP 服务器 或者 Web 开发框架,实现 Redis 协议就可以创建出自己的 Redis 服务器等等。

gnet 衍生自另一个项目:evio,但拥有更丰富的功能特性,且性能远胜之。

🚀 功能

  • 高性能 的基于多线程/Go程网络模型的 event-loop 事件驱动
  • 内置 Round-Robin 轮询负载均衡算法
  • 内置 goroutine 池,由开源库 ants 提供支持
  • 内置 bytes 内存池,由开源库 bytebufferpool 提供支持
  • 简洁的 APIs
  • 基于 Ring-Buffer 的高效内存利用
  • 支持多种网络协议/IPC 机制:TCP、UDP 和 Unix Domain Socket
  • 支持两种事件驱动机制:Linux 里的 epoll 以及 FreeBSD 里的 kqueue
  • 支持异步写操作
  • 灵活的事件定时器
  • SO_REUSEPORT 端口重用
  • 内置多种编解码器,支持对 TCP 数据流分包:LineBasedFrameCodec, DelimiterBasedFrameCodec, FixedLengthFrameCodec 和 LengthFieldBasedFrameCodec,参考自 netty codec,而且支持自定制编解码器
  • 支持 Windows 平台,基于 IOCP 事件驱动机制 Go 标准网络库
  • 加入更多的负载均衡算法:随机、最少连接、一致性哈希等等
  • 支持 TLS
  • 实现 gnet 客户端

💡 核心设计

多线程/Go程网络模型

主从多 Reactors

gnet 重新设计开发了一个新内置的多线程/Go程网络模型:『主从多 Reactors』,这也是 netty 默认的多线程网络模型,下面是这个模型的原理图:

multi_reactor

它的运行流程如下面的时序图:

reactor

主从多 Reactors + 线程/Go程池

你可能会问一个问题:如果我的业务逻辑是阻塞的,那么在 EventHandler.React 注册方法里的逻辑也会阻塞,从而导致阻塞 event-loop 线程,这时候怎么办?

正如你所知,基于 gnet 编写你的网络服务器有一条最重要的原则:永远不能让你业务逻辑(一般写在 EventHandler.React 里)阻塞 event-loop 线程,这也是 netty 的一条最重要的原则,否则的话将会极大地降低服务器的吞吐量。

我的回答是,基于gnet 的另一种多线程/Go程网络模型:『带线程/Go程池的主从多 Reactors』可以解决阻塞问题,这个新网络模型通过引入一个 worker pool 来解决业务逻辑阻塞的问题:它会在启动的时候初始化一个 worker pool,然后在把 EventHandler.React里面的阻塞代码放到 worker pool 里执行,从而避免阻塞 event-loop 线程。

模型的架构图如下所示:

multi_reactor_thread_pool

它的运行流程如下面的时序图:

multi-reactors

gnet 通过利用 ants goroutine 池(一个基于 Go 开发的高性能的 goroutine 池 ,实现了对大规模 goroutines 的调度管理、goroutines 复用)来实现『主从多 Reactors + 线程/Go程池』网络模型。关于 ants 的全部功能和使用,可以在 ants 文档 里找到。

gnet 内部集成了 ants 以及提供了 pool.goroutine.Default() 方法来初始化一个 ants goroutine 池,然后你可以把 EventHandler.React 中阻塞的业务逻辑提交到 goroutine 池里执行,最后在 goroutine 池里的代码调用 gnet.Conn.AsyncWrite([]byte) 方法把处理完阻塞逻辑之后得到的输出数据异步写回客户端,这样就可以避免阻塞 event-loop 线程。

有关在 gnet 里使用 ants goroutine 池的细节可以到这里进一步了解。

可重用且自动扩容的 Ring-Buffer

gnet 内置了inbound 和 outbound 两个 buffers,基于 Ring-Buffer 原理实现,分别用来缓冲输入输出的网络数据以及管理内存,gnet 里面的 ring buffer 能够重用内存以及按需扩容。

对于 TCP 协议的流数据,使用 gnet 不需要业务方为了解析应用层协议而自己维护和管理 buffers,gnet 会替业务方完成缓冲和管理网络数据的任务,降低业务代码的复杂性以及降低开发者的心智负担,使得开发者能够专注于业务逻辑而非一些底层实现。

Like What You See?

- + @@ -54,7 +54,7 @@ - + diff --git a/blog/announcing-gnet-v1/index.html b/blog/announcing-gnet-v1/index.html index ac762abe1..a046a2d97 100644 --- a/blog/announcing-gnet-v1/index.html +++ b/blog/announcing-gnet-v1/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -39,12 +39,12 @@
-
/ / 7 min read

Announcing gnet v1.0.0

Hello World! We present you, gnet!

Today, we are release gnet v1.0.0, enjoy this ultra-fast framework of networking!

gnet

📖 Introduction

gnet is an event-driven networking framework that is fast and lightweight. It makes direct epoll and kqueue syscalls rather than using the standard Go net package and works in a similar manner as netty and libuv, which makes gnet achieve a much higher performance than Go net.

gnet is not designed to displace the standard Go net package, but to create a networking server framework for Go that performs on par with Redis and Haproxy for networking packets handling.

gnet sells itself as a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go which works on transport layer with TCP/UDP protocols and Unix Domain Socket , so it allows developers to implement their own protocols(HTTP, RPC, WebSocket, Redis, etc.) of application layer upon gnet for building diversified network applications, for instance, you get an HTTP Server or Web Framework if you implement HTTP protocol upon gnet while you have a Redis Server done with the implementation of Redis protocol upon gnet and so on.

gnet derives from the project: evio while having a much higher performance and more features.

🚀 Features

  • High-performance event-loop under networking model of multiple threads/goroutines
  • Built-in load balancing algorithm: Round-Robin
  • Built-in goroutine pool powered by the library ants
  • Built-in memory pool with bytes powered by the library bytebufferpool
  • Concise APIs
  • Efficient memory usage: Ring-Buffer
  • Supporting multiple protocols/IPC mechanism: TCP, UDP and Unix Domain Socket
  • Supporting two event-driven mechanisms: epoll on Linux and kqueue on FreeBSD
  • Supporting asynchronous write operation
  • Flexible ticker event
  • SO_REUSEPORT socket option
  • Built-in multiple codecs to encode/decode network frames into/from TCP stream: LineBasedFrameCodec, DelimiterBasedFrameCodec, FixedLengthFrameCodec and LengthFieldBasedFrameCodec, referencing netty codec, also supporting customized codecs
  • Supporting Windows platform with event-driven mechanism of IOCP Go stdlib: net
  • Additional load-balancing algorithms: Random, Least-Connections, Consistent-hashing and so on
  • TLS support
  • Implementation of gnet Client

💡 Key Designs

Networking Model of Multiple Threads/Goroutines

Multiple Reactors

gnet redesigns and implements a new built-in networking model of multiple threads/goroutines: 『multiple reactors』 which is also the default networking model of multiple threads in netty, Here's the schematic diagram:

multi_reactor

and it works as the following sequence diagram:

reactor

Multiple Reactors + Goroutine Pool

You may ask me a question: what if my business logic in EventHandler.React contains some blocking code which leads to blocking in event-loop of gnet, what is the solution for this kind of situation?

As you know, there is a most important tenet when writing code under gnet: you should never block the event-loop goroutine in the EventHandler.React, which is also the most important tenet in netty, otherwise, it will result in a low throughput in your gnet server.

And the solution to that could be found in the subsequent networking model of multiple threads/goroutines in gnet: 『multiple reactors with thread/goroutine pool』which pulls you out from the blocking mire, it will construct a worker-pool with fixed capacity and put those blocking jobs in EventHandler.React into the worker-pool to make the event-loop goroutines non-blocking.

The networking model:『multiple reactors with thread/goroutine pool』dissolves the blocking jobs by introducing a goroutine pool, as shown below:

multi_reactor_thread_pool

and it works as the following sequence diagram:

multi-reactors

gnet implements the networking model:『multiple reactors with thread/goroutine pool』by the aid of a high-performance goroutine pool called ants that allows you to manage and recycle a massive number of goroutines in your concurrent programs, the full features and usages in ants are documented here.

gnet integrates ants and provides the pool.goroutine.Default() method that you can call to instantiate a ants pool where you are able to put your blocking code logic and call the function gnet.Conn.AsyncWrite([]byte) to send out data asynchronously after you finish the blocking process and get the output data, which makes the goroutine of event-loop non-blocking.

The details about integrating gnet with ants are shown here.

Reusable and auto-scaling Ring Buffer

There are two ring-buffers inside gnet: inbound buffer and outbound buffer to buffer and manage inbound/outbound network data, ring-buffer inside gnet is designed and tuned to reuse memory and be auto-scaling on demand.

The purpose of implementing inbound and outbound ring-buffers in gnet is to transfer the logic of buffering and managing network data based on application protocol upon TCP stream from business server to framework and unify the network data buffer, which minimizes the complexity of business code so that developers are able to concentrate on business logic instead of the underlying implementation.

Like What You See?

+
/ / 7 min read

Announcing gnet v1.0.0

Hello World! We present you, gnet!

Today, we are release gnet v1.0.0, enjoy this ultra-fast framework of networking!

gnet

📖 Introduction

gnet is an event-driven networking framework that is fast and lightweight. It makes direct epoll and kqueue syscalls rather than using the standard Go net package and works in a similar manner as netty and libuv, which makes gnet achieve a much higher performance than Go net.

gnet is not designed to displace the standard Go net package, but to create a networking server framework for Go that performs on par with Redis and Haproxy for networking packets handling.

gnet sells itself as a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go which works on transport layer with TCP/UDP protocols and Unix Domain Socket , so it allows developers to implement their own protocols(HTTP, RPC, WebSocket, Redis, etc.) of application layer upon gnet for building diversified network applications, for instance, you get an HTTP Server or Web Framework if you implement HTTP protocol upon gnet while you have a Redis Server done with the implementation of Redis protocol upon gnet and so on.

gnet derives from the project: evio while having a much higher performance and more features.

🚀 Features

  • High-performance event-loop under networking model of multiple threads/goroutines
  • Built-in load balancing algorithm: Round-Robin
  • Built-in goroutine pool powered by the library ants
  • Built-in memory pool with bytes powered by the library bytebufferpool
  • Concise APIs
  • Efficient memory usage: Ring-Buffer
  • Supporting multiple protocols/IPC mechanism: TCP, UDP and Unix Domain Socket
  • Supporting two event-driven mechanisms: epoll on Linux and kqueue on FreeBSD
  • Supporting asynchronous write operation
  • Flexible ticker event
  • SO_REUSEPORT socket option
  • Built-in multiple codecs to encode/decode network frames into/from TCP stream: LineBasedFrameCodec, DelimiterBasedFrameCodec, FixedLengthFrameCodec and LengthFieldBasedFrameCodec, referencing netty codec, also supporting customized codecs
  • Supporting Windows platform with event-driven mechanism of IOCP Go stdlib: net
  • Additional load-balancing algorithms: Random, Least-Connections, Consistent-hashing and so on
  • TLS support
  • Implementation of gnet Client

💡 Key Designs

Networking Model of Multiple Threads/Goroutines

Multiple Reactors

gnet redesigns and implements a new built-in networking model of multiple threads/goroutines: 『multiple reactors』 which is also the default networking model of multiple threads in netty, Here's the schematic diagram:

multi_reactor

and it works as the following sequence diagram:

reactor

Multiple Reactors + Goroutine Pool

You may ask me a question: what if my business logic in EventHandler.React contains some blocking code which leads to blocking in event-loop of gnet, what is the solution for this kind of situation?

As you know, there is a most important tenet when writing code under gnet: you should never block the event-loop goroutine in the EventHandler.React, which is also the most important tenet in netty, otherwise, it will result in a low throughput in your gnet server.

And the solution to that could be found in the subsequent networking model of multiple threads/goroutines in gnet: 『multiple reactors with thread/goroutine pool』which pulls you out from the blocking mire, it will construct a worker-pool with fixed capacity and put those blocking jobs in EventHandler.React into the worker-pool to make the event-loop goroutines non-blocking.

The networking model:『multiple reactors with thread/goroutine pool』dissolves the blocking jobs by introducing a goroutine pool, as shown below:

multi_reactor_thread_pool

and it works as the following sequence diagram:

multi-reactors

gnet implements the networking model:『multiple reactors with thread/goroutine pool』by the aid of a high-performance goroutine pool called ants that allows you to manage and recycle a massive number of goroutines in your concurrent programs, the full features and usages in ants are documented here.

gnet integrates ants and provides the pool.goroutine.Default() method that you can call to instantiate a ants pool where you are able to put your blocking code logic and call the function gnet.Conn.AsyncWrite([]byte) to send out data asynchronously after you finish the blocking process and get the output data, which makes the goroutine of event-loop non-blocking.

The details about integrating gnet with ants are shown here.

Reusable and auto-scaling Ring Buffer

There are two ring-buffers inside gnet: inbound buffer and outbound buffer to buffer and manage inbound/outbound network data, ring-buffer inside gnet is designed and tuned to reuse memory and be auto-scaling on demand.

The purpose of implementing inbound and outbound ring-buffers in gnet is to transfer the logic of buffering and managing network data based on application protocol upon TCP stream from business server to framework and unify the network data buffer, which minimizes the complexity of business code so that developers are able to concentrate on business logic instead of the underlying implementation.

Like What You See?

- + @@ -54,7 +54,7 @@ - + diff --git a/blog/announcing-gnet-v2-3-0/index.html b/blog/announcing-gnet-v2-3-0/index.html index 65d3d6b20..8af8692d1 100644 --- a/blog/announcing-gnet-v2-3-0/index.html +++ b/blog/announcing-gnet-v2-3-0/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -39,14 +39,14 @@
-
/ / 3 min read

Announcing gnet v2.3.0

Hello World! We present you, gnet v2.3.0!

Today, I'm thrilled to announce the official release of gnet v2.3.0.

P.S. Follow me on Twitter @panjf2000 to get the latest updates about gnet!

Intro

The two major updates in this release are #460 and #461.

We introduced a new data structure matrix in #460 to displace the default map for managing connections internally, with the help of this new data structure, we can eliminate the pointers in map and store connections in the form of a matrix (an array of slices), which will significantly reduce GC (Garbage Collection) latency:

goos: darwin
goarch: arm64
pkg: github.com/panjf2000/gnet/v2
│ old │ new │
│ sec/op │ sec/op vs base │
GC4El100k/Run-4-eventloop-100000-10 30.74m ± 3% 19.68m ± 10% -35.98% (p=0.000 n=10)
GC4El200k/Run-4-eventloop-200000-10 63.64m ± 3% 38.16m ± 11% -40.04% (p=0.000 n=10)
GC4El500k/Run-4-eventloop-500000-10 177.28m ± 8% 95.21m ± 4% -46.29% (p=0.000 n=10)
geomean 70.26m 41.51m -40.92%
+
/ / 3 min read

Announcing gnet v2.3.0

Hello World! We present you, gnet v2.3.0!

Today, I'm thrilled to announce the official release of gnet v2.3.0.

P.S. Follow me on Twitter @panjf2000 to get the latest updates about gnet!

Intro

The two major updates in this release are #460 and #461.

We introduced a new data structure matrix in #460 to displace the default map for managing connections internally, with the help of this new data structure, we can eliminate the pointers in map and store connections in the form of a matrix (an array of slices), which will significantly reduce GC (Garbage Collection) latency:

goos: darwin
goarch: arm64
pkg: github.com/panjf2000/gnet/v2
│ old │ new │
│ sec/op │ sec/op vs base │
GC4El100k/Run-4-eventloop-100000-10 30.74m ± 3% 19.68m ± 10% -35.98% (p=0.000 n=10)
GC4El200k/Run-4-eventloop-200000-10 63.64m ± 3% 38.16m ± 11% -40.04% (p=0.000 n=10)
GC4El500k/Run-4-eventloop-500000-10 177.28m ± 8% 95.21m ± 4% -46.29% (p=0.000 n=10)
geomean 70.26m 41.51m -40.92%
│ old │ new │
│ B/op │ B/op vs base │
GC4El100k/Run-4-eventloop-100000-10 27.50 ± 35% 25.50 ± 33% ~ (p=0.423 n=10)
GC4El200k/Run-4-eventloop-200000-10 27.50 ± 53% 20.50 ± 66% ~ (p=0.642 n=10)
GC4El500k/Run-4-eventloop-500000-10 16.00 ± ? 18.00 ± ? ~ (p=0.357 n=10)
geomean 22.96 21.11 -8.04%
│ old │ new │
│ allocs/op │ allocs/op vs base │
GC4El100k/Run-4-eventloop-100000-10 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=10) ¹
GC4El200k/Run-4-eventloop-200000-10 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=10) ¹
GC4El500k/Run-4-eventloop-500000-10 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=10) ¹
geomean ² +0.00% ²
¹ all samples are equal
² summaries must be >0 to compute geomean

The more connections there are, the more pronounced the effect.

While we have performed sufficient testing on matrix, we are still using map as the default connection storage in this RC version for the sake of caution, but you can enable the new data structure by specifying build tags: -tags=gc_opt. This can be considered as a precautionary measure so that in case matrix has any unexpected bugs, you can quickly fall back to the default map. We will consider promoting matrix to be the default storage for connections in a subsequent official release.

Another significant leap is #461, you can now run gnet on Windows, it should be noted that the Windows version of gnet is intended for development purposes and is not recommended for use in production.

Like What You See?

- + @@ -56,7 +56,7 @@ - + diff --git a/blog/announcing-gnet-v2-5-0/index.html b/blog/announcing-gnet-v2-5-0/index.html index 79999c3f9..6443fda23 100644 --- a/blog/announcing-gnet-v2-5-0/index.html +++ b/blog/announcing-gnet-v2-5-0/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -39,12 +39,12 @@
-
/ / 2 min read

Announcing gnet v2.5.0

Hello World! We present you, gnet v2.5.0!

The v2.5.0 for gnet is officially released!

The two major updates in this release are feat: support edge-triggered I/O and feat: support multiple network addresses binding.

Intro

In #576, gnet implemented edge-triggered I/O on the basis of EPOLLET in epoll and EV_CLEAR in kqueue. Before v2.5.0, gnet had been using level-triggered I/O under the hood, now developers are able to switch to edge-triggered I/O via the functional option: EdgeTriggeredIO when developing and deploying gnet services. In certain specific scenarios, edge-triggered I/O may outperform level-triggered I/O, as a result of which, switching gnet from LT mode to ET mode can lead to significant performance improvements. But note that this performance boost is only a theoretical inference and may only occur under specific circumstances. Therefore, please use ET mode with caution and conduct benchmark tests to collect sufficient numbers before the deployment in production.

Another useful new feature is #578, with which developers are allowed to bind multiple addresses(IP:Port) in one gnet instance. This feature makes it possible to build and run a gnet server that serves various protocols or a specific set of backend services.

In addition to these two major features, we've also made a good deal of code optimizations: refactoring and streamlining the core code, as well as optimising the structure.

P.S. Follow me on Twitter @panjf2000 to get the latest updates about gnet!

Like What You See?

+
/ / 2 min read

Announcing gnet v2.5.0

Hello World! We present you, gnet v2.5.0!

The v2.5.0 for gnet is officially released!

The two major updates in this release are feat: support edge-triggered I/O and feat: support multiple network addresses binding.

Intro

In #576, gnet implemented edge-triggered I/O on the basis of EPOLLET in epoll and EV_CLEAR in kqueue. Before v2.5.0, gnet had been using level-triggered I/O under the hood, now developers are able to switch to edge-triggered I/O via the functional option: EdgeTriggeredIO when developing and deploying gnet services. In certain specific scenarios, edge-triggered I/O may outperform level-triggered I/O, as a result of which, switching gnet from LT mode to ET mode can lead to significant performance improvements. But note that this performance boost is only a theoretical inference and may only occur under specific circumstances. Therefore, please use ET mode with caution and conduct benchmark tests to collect sufficient numbers before the deployment in production.

Another useful new feature is #578, with which developers are allowed to bind multiple addresses(IP:Port) in one gnet instance. This feature makes it possible to build and run a gnet server that serves various protocols or a specific set of backend services.

In addition to these two major features, we've also made a good deal of code optimizations: refactoring and streamlining the core code, as well as optimising the structure.

P.S. Follow me on Twitter @panjf2000 to get the latest updates about gnet!

Like What You See?

- + @@ -54,7 +54,7 @@ - + diff --git a/blog/announcing-gnet-v2/index.html b/blog/announcing-gnet-v2/index.html index 42076e22c..49953ba35 100644 --- a/blog/announcing-gnet-v2/index.html +++ b/blog/announcing-gnet-v2/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -39,7 +39,7 @@
-
/ / 5 min read

Announcing gnet v2.0.0

Hello World! We present you, gnet v2.0.0!

Today, I'm thrilled to announce the release of gnet v2.0.0, in which we've made plenty of significant improvements and optimizations: added and removed some APIs, redesigned and reimplemented the buffer, optimized the memory pool, etc.

In this blog post, we'll go through the most notable changes to gnet 2.0.

P.S. Follow me on Twitter @panjf2000 to get the latest updates about gnet!

Features

  • The built-in codecs have been deprecated and removed, to reduce the complexity and keep gnet simple. From a lot of feedback we've received, this feature does not bring convenience and benefits to users, thus, I decided to take it off from gnet. Cutting those codecs off makes the code on top of gnet more holistic and straightforward, see a simple example for details.
  • gnet.Conn now implements io.Reader, io.Writer, io.ReaderFrom, io.WriterTo and net.Conn, apart from that, it also implements the gnet.Socket interface, providing more API's for users to manipulate the connections.
  • gnet now supports vectored I/O, allowing users to read from a vector of buffers and write to a single data stream, a vectored I/O implementation can provide improved performance over a linear I/O implementation via internal optimizations. API's for vectored I/O in gnet are Conn.Writev([][]byte) and Conn.AsyncWritev([][]byte, AsyncCallback).

Visit gnet API doc for more details.

Note that some event handlers' name has been changed in gnet v2, learn about the details in the table below:

Old event handlerNew event handlerNote
OnInitCompleteOnBoot
OnShutdownOnShutdown
OnOpenedOnOpen
OnClosedOnClose
ReactOnTraffic
TickOnTick
PreWrite-Deprecated
AfterWrite-Deprecated

Optimizations

We redesigned and reimplemented the internal buffers for connections, the diagram shows below:

We go from the ring-buffer to the mixed-buffer that combines ring-buffer and a kind of new buffer type: linked-list buffer, which makes it more flexible and efficient, this new elastic buffer can save more memory.

Performance

We've run a simple echo benchmark on Linux between v1.5.3 and v2.0.0, the results are shown below:

Environment

# Machine information
OS : Ubuntu 20.04/x86_64
CPU : 8 CPU cores, AMD EPYC 7K62 48-Core Processor
Memory : 16.0 GiB
+
/ / 5 min read

Announcing gnet v2.0.0

Hello World! We present you, gnet v2.0.0!

Today, I'm thrilled to announce the release of gnet v2.0.0, in which we've made plenty of significant improvements and optimizations: added and removed some APIs, redesigned and reimplemented the buffer, optimized the memory pool, etc.

In this blog post, we'll go through the most notable changes to gnet 2.0.

P.S. Follow me on Twitter @panjf2000 to get the latest updates about gnet!

Features

  • The built-in codecs have been deprecated and removed, to reduce the complexity and keep gnet simple. From a lot of feedback we've received, this feature does not bring convenience and benefits to users, thus, I decided to take it off from gnet. Cutting those codecs off makes the code on top of gnet more holistic and straightforward, see a simple example for details.
  • gnet.Conn now implements io.Reader, io.Writer, io.ReaderFrom, io.WriterTo and net.Conn, apart from that, it also implements the gnet.Socket interface, providing more API's for users to manipulate the connections.
  • gnet now supports vectored I/O, allowing users to read from a vector of buffers and write to a single data stream, a vectored I/O implementation can provide improved performance over a linear I/O implementation via internal optimizations. API's for vectored I/O in gnet are Conn.Writev([][]byte) and Conn.AsyncWritev([][]byte, AsyncCallback).

Visit gnet API doc for more details.

Note that some event handlers' name has been changed in gnet v2, learn about the details in the table below:

Old event handlerNew event handlerNote
OnInitCompleteOnBoot
OnShutdownOnShutdown
OnOpenedOnOpen
OnClosedOnClose
ReactOnTraffic
TickOnTick
PreWrite-Deprecated
AfterWrite-Deprecated

Optimizations

We redesigned and reimplemented the internal buffers for connections, the diagram shows below:

We go from the ring-buffer to the mixed-buffer that combines ring-buffer and a kind of new buffer type: linked-list buffer, which makes it more flexible and efficient, this new elastic buffer can save more memory.

Performance

We've run a simple echo benchmark on Linux between v1.5.3 and v2.0.0, the results are shown below:

Environment

# Machine information
OS : Ubuntu 20.04/x86_64
CPU : 8 CPU cores, AMD EPYC 7K62 48-Core Processor
Memory : 16.0 GiB
# Go version and settings
Go Version : go1.17.2 linux/amd64
GOMAXPROCS : 8
# Benchmark parameters
TCP connections : 1000
Packet size : 1024 bytes
Test duration : 15s

v1.5.3

--- GNET ---
Warming up for 1 seconds...
2022/02/27 17:23:21 Echo server is listening on 127.0.0.1:7002 (multi-cores: true, event-loops: 8)
@@ -52,7 +52,7 @@ - + @@ -62,7 +62,7 @@ - + diff --git a/blog/index.html b/blog/index.html index 21804fc5b..f1ae3af05 100644 --- a/blog/index.html +++ b/blog/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -49,12 +49,12 @@
- +
- + @@ -64,7 +64,7 @@ - + diff --git a/blog/tags/domain-presentation/index.html b/blog/tags/domain-presentation/index.html index 1882fed4b..b8433c0ac 100644 --- a/blog/tags/domain-presentation/index.html +++ b/blog/tags/domain-presentation/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -47,12 +47,12 @@
- +
- + @@ -62,7 +62,7 @@ - + diff --git "a/blog/tags/domain-\345\261\225\347\244\272/index.html" "b/blog/tags/domain-\345\261\225\347\244\272/index.html" index 9f03b3cc8..206d7a83c 100644 --- "a/blog/tags/domain-\345\261\225\347\244\272/index.html" +++ "b/blog/tags/domain-\345\261\225\347\244\272/index.html" @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -41,12 +41,12 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/blog/tags/index.html b/blog/tags/index.html index 7569d1ea3..ad5ecb141 100644 --- a/blog/tags/index.html +++ b/blog/tags/index.html @@ -21,7 +21,7 @@ - + @@ -29,7 +29,7 @@ - + @@ -37,12 +37,12 @@ - + @@ -50,7 +50,7 @@ - + diff --git a/blog/tags/type-announcement/index.html b/blog/tags/type-announcement/index.html index 98d20f4f3..a3e271ecd 100644 --- a/blog/tags/type-announcement/index.html +++ b/blog/tags/type-announcement/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -47,12 +47,12 @@
- +
- + @@ -62,7 +62,7 @@ - + diff --git "a/blog/tags/type-\345\256\230\345\256\243/index.html" "b/blog/tags/type-\345\256\230\345\256\243/index.html" index a9224f037..b1ed7bfdc 100644 --- "a/blog/tags/type-\345\256\230\345\256\243/index.html" +++ "b/blog/tags/type-\345\256\230\345\256\243/index.html" @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -41,12 +41,12 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/c4f5d8e4.2ee974aa.js b/c4f5d8e4.a9e9690b.js similarity index 99% rename from c4f5d8e4.2ee974aa.js rename to c4f5d8e4.a9e9690b.js index 7e8985a44..430fdfca2 100644 --- a/c4f5d8e4.2ee974aa.js +++ b/c4f5d8e4.a9e9690b.js @@ -1,2 +1,2 @@ -/*! For license information please see c4f5d8e4.2ee974aa.js.LICENSE.txt */ -(window.webpackJsonp=window.webpackJsonp||[]).push([[81,4],{246:function(e,t,n){"use strict";n.r(t);var r=n(1),i=n(0),o=n.n(i),a=n(264),u=n(259),s=n(283),l=n(254),c=n(256),f=n.n(c);var p=function(e){return o.a.createElement(o.a.Fragment,null,e.children)};n(327),n(260),n(53),n(26),n(20),n(19);function d(e,t){if(e.length!==t.length)return!1;for(var n=0;nr&&(r=(t=t.trim()).charCodeAt(0)),r){case 38:return t.replace(v,"$1"+e.trim());case 58:return e.trim()+t.replace(v,"$1"+e.trim());default:if(0<1*n&&0s.charCodeAt(8))break;case 115:a=a.replace(s,"-webkit-"+s)+";"+a;break;case 207:case 102:a=a.replace(s,"-webkit-"+(102u.charCodeAt(0)&&(u=u.trim()),u=[u],0d)&&(B=(U=U.replace(" ",":")).length),0=4;++r,i-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(i){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)},k={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};var S=/[A-Z]|^ms/g,F=/_EMO_([^_]+?)_([^]*?)_EMO_/g,D=function(e){return 45===e.charCodeAt(1)},I=function(e){return null!=e&&"boolean"!=typeof e},j=function(e){var t={};return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}((function(e){return D(e)?e:e.replace(S,"-$&").toLowerCase()})),N=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(F,(function(e,t,n){return L={name:t,styles:n,next:L},t}))}return 1===k[e]||D(e)||"number"!=typeof t||0===t?t:t+"px"};function M(e,t,n,r){if(null==n)return"";if(void 0!==n.__emotion_styles)return n;switch(typeof n){case"boolean":return"";case"object":if(1===n.anim)return L={name:n.name,styles:n.styles,next:L},n.name;if(void 0!==n.styles){var i=n.next;if(void 0!==i)for(;void 0!==i;)L={name:i.name,styles:i.styles,next:L},i=i.next;return n.styles+";"}return function(e,t,n){var r="";if(Array.isArray(n))for(var i=0;i-1}function oe(e){return ie(e)?window.pageYOffset:e.scrollTop}function ae(e,t){ie(e)?window.scrollTo(0,t):e.scrollTop=t}function ue(e,t,n,r){void 0===n&&(n=200),void 0===r&&(r=ee);var i=oe(e),o=t-i,a=0;!function t(){var u,s=o*((u=(u=a+=10)/n-1)*u*u+1)+i;ae(e,s),a=d)return{placement:"bottom",maxHeight:t};if(O>=d&&!a)return o&&ue(s,C,160),{placement:"bottom",maxHeight:t};if(!a&&O>=r||a&&_>=r)return o&&ue(s,C,160),{placement:"bottom",maxHeight:a?_-b:O-b};if("auto"===i||a){var x=t,k=a?E:w;return k>=r&&(x=Math.min(k-b-u.controlHeight,t)),{placement:"top",maxHeight:x}}if("bottom"===i)return ae(s,C),{placement:"bottom",maxHeight:t};break;case"top":if(E>=d)return{placement:"top",maxHeight:t};if(w>=d&&!a)return o&&ue(s,A,160),{placement:"top",maxHeight:t};if(!a&&w>=r||a&&E>=r){var S=t;return(!a&&w>=r||a&&E>=r)&&(S=a?E-y:w-y),o&&ue(s,A,160),{placement:"top",maxHeight:S}}return{placement:"bottom",maxHeight:t};default:throw new Error('Invalid placement provided "'+i+'".')}return l}var he=function(e){return"auto"===e?"bottom":e},ve=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),i=0;i=0||(i[n]=e[n]);return i}(e,["size"]);return q("svg",Se({height:t,width:t,viewBox:"0 0 20 20","aria-hidden":"true",focusable:"false",css:Fe},n))},Ie=function(e){return q(De,Se({size:20},e),q("path",{d:"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z"}))},je=function(e){return q(De,Se({size:20},e),q("path",{d:"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"}))},Ne=function(e){var t=e.isFocused,n=e.theme,r=n.spacing.baseUnit,i=n.colors;return{label:"indicatorContainer",color:t?i.neutral60:i.neutral20,display:"flex",padding:2*r,transition:"color 150ms",":hover":{color:t?i.neutral80:i.neutral40}}},Me=Ne,Le=Ne,Pe=function(){var e=R.apply(void 0,arguments),t="animation-"+e.name;return{name:t,styles:"@keyframes "+t+"{"+e.styles+"}",anim:1,toString:function(){return"_EMO_"+this.name+"_"+this.styles+"_EMO_"}}}(ke()),Te=function(e){var t=e.delay,n=e.offset;return q("span",{css:R({animation:Pe+" 1s ease-in-out "+t+"ms infinite;",backgroundColor:"currentColor",borderRadius:"1em",display:"inline-block",marginLeft:n?"1em":null,height:"1em",verticalAlign:"top",width:"1em"},"")})},Re=function(e){var t=e.className,n=e.cx,r=e.getStyles,i=e.innerProps,o=e.isRtl;return q("div",Se({},i,{css:r("loadingIndicator",e),className:n({indicator:!0,"loading-indicator":!0},t)}),q(Te,{delay:0,offset:o}),q(Te,{delay:160,offset:!0}),q(Te,{delay:320,offset:!o}))};function Be(){return(Be=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,["className","cx","getStyles","theme","selectProps"]));return q("div",Ve({css:r("groupHeading",Ve({theme:i},o)),className:n({"group-heading":!0},t)},o))},IndicatorsContainer:function(e){var t=e.children,n=e.className,r=e.cx,i=e.getStyles;return q("div",{css:i("indicatorsContainer",e),className:r({indicators:!0},n)},t)},IndicatorSeparator:function(e){var t=e.className,n=e.cx,r=e.getStyles,i=e.innerProps;return q("span",Se({},i,{css:r("indicatorSeparator",e),className:n({"indicator-separator":!0},t)}))},Input:function(e){var t=e.className,n=e.cx,r=e.getStyles,i=e.innerRef,o=e.isHidden,a=e.isDisabled,u=e.theme,s=(e.selectProps,function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}(e,["className","cx","getStyles","innerRef","isHidden","isDisabled","theme","selectProps"]));return q("div",{css:r("input",ze({theme:u},s))},q(ce.a,ze({className:n({input:!0},t),inputRef:i,inputStyle:Ue(o),disabled:a},s)))},LoadingIndicator:Re,Menu:function(e){var t=e.children,n=e.className,r=e.cx,i=e.getStyles,o=e.innerRef,a=e.innerProps;return q("div",fe({css:i("menu",e),className:r({menu:!0},n)},a,{ref:o}),t)},MenuList:function(e){var t=e.children,n=e.className,r=e.cx,i=e.getStyles,o=e.isMulti,a=e.innerRef;return q("div",{css:i("menuList",e),className:r({"menu-list":!0,"menu-list--is-multi":o},n),ref:a},t)},MenuPortal:_e,LoadingMessage:Ee,NoOptionsMessage:ye,MultiValue:qe,MultiValueContainer:$e,MultiValueLabel:Ge,MultiValueRemove:function(e){var t=e.children,n=e.innerProps;return q("div",n,t||q(Ie,{size:14}))},Option:function(e){var t=e.children,n=e.className,r=e.cx,i=e.getStyles,o=e.isDisabled,a=e.isFocused,u=e.isSelected,s=e.innerRef,l=e.innerProps;return q("div",Ye({css:i("option",e),className:r({option:!0,"option--is-disabled":o,"option--is-focused":a,"option--is-selected":u},n),ref:s},l),t)},Placeholder:function(e){var t=e.children,n=e.className,r=e.cx,i=e.getStyles,o=e.innerProps;return q("div",Ke({css:i("placeholder",e),className:r({placeholder:!0},n)},o),t)},SelectContainer:function(e){var t=e.children,n=e.className,r=e.cx,i=e.getStyles,o=e.innerProps,a=e.isDisabled,u=e.isRtl;return q("div",xe({css:i("container",e),className:r({"--is-disabled":a,"--is-rtl":u},n)},o),t)},SingleValue:function(e){var t=e.children,n=e.className,r=e.cx,i=e.getStyles,o=e.isDisabled,a=e.innerProps;return q("div",Ze({css:i("singleValue",e),className:r({"single-value":!0,"single-value--is-disabled":o},n)},a),t)},ValueContainer:function(e){var t=e.children,n=e.className,r=e.cx,i=e.isMulti,o=e.getStyles,a=e.hasValue;return q("div",{css:o("valueContainer",e),className:r({"value-container":!0,"value-container--is-multi":i,"value-container--has-value":a},n)},t)}},Qe=[{base:"A",letters:/[\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F]/g},{base:"AA",letters:/[\uA732]/g},{base:"AE",letters:/[\u00C6\u01FC\u01E2]/g},{base:"AO",letters:/[\uA734]/g},{base:"AU",letters:/[\uA736]/g},{base:"AV",letters:/[\uA738\uA73A]/g},{base:"AY",letters:/[\uA73C]/g},{base:"B",letters:/[\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181]/g},{base:"C",letters:/[\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E]/g},{base:"D",letters:/[\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779]/g},{base:"DZ",letters:/[\u01F1\u01C4]/g},{base:"Dz",letters:/[\u01F2\u01C5]/g},{base:"E",letters:/[\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E]/g},{base:"F",letters:/[\u0046\u24BB\uFF26\u1E1E\u0191\uA77B]/g},{base:"G",letters:/[\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E]/g},{base:"H",letters:/[\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D]/g},{base:"I",letters:/[\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197]/g},{base:"J",letters:/[\u004A\u24BF\uFF2A\u0134\u0248]/g},{base:"K",letters:/[\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2]/g},{base:"L",letters:/[\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780]/g},{base:"LJ",letters:/[\u01C7]/g},{base:"Lj",letters:/[\u01C8]/g},{base:"M",letters:/[\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C]/g},{base:"N",letters:/[\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4]/g},{base:"NJ",letters:/[\u01CA]/g},{base:"Nj",letters:/[\u01CB]/g},{base:"O",letters:/[\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u00D6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C]/g},{base:"OI",letters:/[\u01A2]/g},{base:"OO",letters:/[\uA74E]/g},{base:"OU",letters:/[\u0222]/g},{base:"P",letters:/[\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754]/g},{base:"Q",letters:/[\u0051\u24C6\uFF31\uA756\uA758\u024A]/g},{base:"R",letters:/[\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782]/g},{base:"S",letters:/[\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784]/g},{base:"T",letters:/[\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786]/g},{base:"TZ",letters:/[\uA728]/g},{base:"U",letters:/[\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u00DC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244]/g},{base:"V",letters:/[\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245]/g},{base:"VY",letters:/[\uA760]/g},{base:"W",letters:/[\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72]/g},{base:"X",letters:/[\u0058\u24CD\uFF38\u1E8A\u1E8C]/g},{base:"Y",letters:/[\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE]/g},{base:"Z",letters:/[\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762]/g},{base:"a",letters:/[\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250]/g},{base:"aa",letters:/[\uA733]/g},{base:"ae",letters:/[\u00E6\u01FD\u01E3]/g},{base:"ao",letters:/[\uA735]/g},{base:"au",letters:/[\uA737]/g},{base:"av",letters:/[\uA739\uA73B]/g},{base:"ay",letters:/[\uA73D]/g},{base:"b",letters:/[\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253]/g},{base:"c",letters:/[\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184]/g},{base:"d",letters:/[\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A]/g},{base:"dz",letters:/[\u01F3\u01C6]/g},{base:"e",letters:/[\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD]/g},{base:"f",letters:/[\u0066\u24D5\uFF46\u1E1F\u0192\uA77C]/g},{base:"g",letters:/[\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F]/g},{base:"h",letters:/[\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265]/g},{base:"hv",letters:/[\u0195]/g},{base:"i",letters:/[\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131]/g},{base:"j",letters:/[\u006A\u24D9\uFF4A\u0135\u01F0\u0249]/g},{base:"k",letters:/[\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3]/g},{base:"l",letters:/[\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747]/g},{base:"lj",letters:/[\u01C9]/g},{base:"m",letters:/[\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F]/g},{base:"n",letters:/[\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5]/g},{base:"nj",letters:/[\u01CC]/g},{base:"o",letters:/[\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275]/g},{base:"oi",letters:/[\u01A3]/g},{base:"ou",letters:/[\u0223]/g},{base:"oo",letters:/[\uA74F]/g},{base:"p",letters:/[\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755]/g},{base:"q",letters:/[\u0071\u24E0\uFF51\u024B\uA757\uA759]/g},{base:"r",letters:/[\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783]/g},{base:"s",letters:/[\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B]/g},{base:"t",letters:/[\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787]/g},{base:"tz",letters:/[\uA729]/g},{base:"u",letters:/[\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289]/g},{base:"v",letters:/[\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C]/g},{base:"vy",letters:/[\uA761]/g},{base:"w",letters:/[\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73]/g},{base:"x",letters:/[\u0078\u24E7\uFF58\u1E8B\u1E8D]/g},{base:"y",letters:/[\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF]/g},{base:"z",letters:/[\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763]/g}],et=function(e){for(var t=0;t=0||(i[n]=e[n]);return i}(e,["in","out","onExited","appear","enter","exit","innerRef","emotion"]));return q("input",ut({ref:t},n,{css:R({label:"dummyInput",background:0,border:0,fontSize:"inherit",outline:0,padding:0,width:1,color:"transparent",left:-100,opacity:0,position:"relative",transform:"scale(0)"},"")}))}var lt=function(e){var t,n;function r(){return e.apply(this,arguments)||this}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var i=r.prototype;return i.componentDidMount=function(){this.props.innerRef(Object(X.findDOMNode)(this))},i.componentWillUnmount=function(){this.props.innerRef(null)},i.render=function(){return this.props.children},r}(i.Component),ct=["boxSizing","height","overflow","paddingRight","position"],ft={boxSizing:"border-box",overflow:"hidden",position:"relative",height:"100%"};function pt(e){e.preventDefault()}function dt(e){e.stopPropagation()}function ht(){var e=this.scrollTop,t=this.scrollHeight,n=e+this.offsetHeight;0===e?this.scrollTop=1:n===t&&(this.scrollTop=e-1)}function vt(){return"ontouchstart"in window||navigator.maxTouchPoints}var mt=!(!window.document||!window.document.createElement),gt=0,bt=function(e){var t,n;function r(){for(var t,n=arguments.length,r=new Array(n),i=0;i0,h=c-f-l,v=!1;h>n&&t.isBottom&&(o&&o(e),t.isBottom=!1),d&&t.isTop&&(u&&u(e),t.isTop=!1),d&&n>h?(i&&!t.isBottom&&i(e),p.scrollTop=c,v=!0,t.isBottom=!0):!d&&-n>l&&(a&&!t.isTop&&a(e),p.scrollTop=0,v=!0,t.isTop=!0),v&&t.cancelScroll(e)},t.onWheel=function(e){t.handleEventDelta(e,e.deltaY)},t.onTouchStart=function(e){t.touchStart=e.changedTouches[0].clientY},t.onTouchMove=function(e){var n=t.touchStart-e.changedTouches[0].clientY;t.handleEventDelta(e,n)},t.getScrollTarget=function(e){t.scrollTarget=e},t}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var i=r.prototype;return i.componentDidMount=function(){this.startListening(this.scrollTarget)},i.componentWillUnmount=function(){this.stopListening(this.scrollTarget)},i.startListening=function(e){e&&("function"==typeof e.addEventListener&&e.addEventListener("wheel",this.onWheel,!1),"function"==typeof e.addEventListener&&e.addEventListener("touchstart",this.onTouchStart,!1),"function"==typeof e.addEventListener&&e.addEventListener("touchmove",this.onTouchMove,!1))},i.stopListening=function(e){"function"==typeof e.removeEventListener&&e.removeEventListener("wheel",this.onWheel,!1),"function"==typeof e.removeEventListener&&e.removeEventListener("touchstart",this.onTouchStart,!1),"function"==typeof e.removeEventListener&&e.removeEventListener("touchmove",this.onTouchMove,!1)},i.render=function(){return o.a.createElement(lt,{innerRef:this.getScrollTarget},this.props.children)},r}(i.Component);function wt(e){var t=e.isEnabled,n=void 0===t||t,r=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}(e,["isEnabled"]);return n?o.a.createElement(_t,r):r.children}var Ot=function(e,t){void 0===t&&(t={});var n=t,r=n.isSearchable,i=n.isMulti,o=n.label,a=n.isDisabled;switch(e){case"menu":return"Use Up and Down to choose options"+(a?"":", press Enter to select the currently focused option")+", press Escape to exit the menu, press Tab to select the option and exit the menu.";case"input":return(o||"Select")+" is focused "+(r?",type to refine list":"")+", press Down to open the menu, "+(i?" press left to focus selected values":"");case"value":return"Use left and right to toggle between focused values, press Backspace to remove the currently focused value"}},Ct=function(e,t){var n=t.value,r=t.isDisabled;if(n)switch(e){case"deselect-option":case"pop-value":case"remove-value":return"option "+n+", deselected.";case"select-option":return r?"option "+n+" is disabled. Select another option.":"option "+n+", selected."}},At=function(e){return!!e.isDisabled};var xt={clearIndicator:Le,container:function(e){var t=e.isDisabled;return{label:"container",direction:e.isRtl?"rtl":null,pointerEvents:t?"none":null,position:"relative"}},control:function(e){var t=e.isDisabled,n=e.isFocused,r=e.theme,i=r.colors,o=r.borderRadius,a=r.spacing;return{label:"control",alignItems:"center",backgroundColor:t?i.neutral5:i.neutral0,borderColor:t?i.neutral10:n?i.primary:i.neutral20,borderRadius:o,borderStyle:"solid",borderWidth:1,boxShadow:n?"0 0 0 1px "+i.primary:null,cursor:"default",display:"flex",flexWrap:"wrap",justifyContent:"space-between",minHeight:a.controlHeight,outline:"0 !important",position:"relative",transition:"all 100ms","&:hover":{borderColor:n?i.primary:i.neutral30}}},dropdownIndicator:Me,group:function(e){var t=e.theme.spacing;return{paddingBottom:2*t.baseUnit,paddingTop:2*t.baseUnit}},groupHeading:function(e){var t=e.theme.spacing;return{label:"group",color:"#999",cursor:"default",display:"block",fontSize:"75%",fontWeight:"500",marginBottom:"0.25em",paddingLeft:3*t.baseUnit,paddingRight:3*t.baseUnit,textTransform:"uppercase"}},indicatorsContainer:function(){return{alignItems:"center",alignSelf:"stretch",display:"flex",flexShrink:0}},indicatorSeparator:function(e){var t=e.isDisabled,n=e.theme,r=n.spacing.baseUnit,i=n.colors;return{label:"indicatorSeparator",alignSelf:"stretch",backgroundColor:t?i.neutral10:i.neutral20,marginBottom:2*r,marginTop:2*r,width:1}},input:function(e){var t=e.isDisabled,n=e.theme,r=n.spacing,i=n.colors;return{margin:r.baseUnit/2,paddingBottom:r.baseUnit/2,paddingTop:r.baseUnit/2,visibility:t?"hidden":"visible",color:i.neutral80}},loadingIndicator:function(e){var t=e.isFocused,n=e.size,r=e.theme,i=r.colors,o=r.spacing.baseUnit;return{label:"loadingIndicator",color:t?i.neutral60:i.neutral20,display:"flex",padding:2*o,transition:"color 150ms",alignSelf:"center",fontSize:n,lineHeight:1,marginRight:n,textAlign:"center",verticalAlign:"middle"}},loadingMessage:be,menu:function(e){var t,n=e.placement,r=e.theme,i=r.borderRadius,o=r.spacing,a=r.colors;return(t={label:"menu"})[function(e){return e?{bottom:"top",top:"bottom"}[e]:"bottom"}(n)]="100%",t.backgroundColor=a.neutral0,t.borderRadius=i,t.boxShadow="0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)",t.marginBottom=o.menuGutter,t.marginTop=o.menuGutter,t.position="absolute",t.width="100%",t.zIndex=1,t},menuList:function(e){var t=e.maxHeight,n=e.theme.spacing.baseUnit;return{maxHeight:t,overflowY:"auto",paddingBottom:n,paddingTop:n,position:"relative",WebkitOverflowScrolling:"touch"}},menuPortal:function(e){var t=e.rect,n=e.offset,r=e.position;return{left:t.left,position:r,top:n,width:t.width,zIndex:1}},multiValue:function(e){var t=e.theme,n=t.spacing,r=t.borderRadius;return{label:"multiValue",backgroundColor:t.colors.neutral10,borderRadius:r/2,display:"flex",margin:n.baseUnit/2,minWidth:0}},multiValueLabel:function(e){var t=e.theme,n=t.borderRadius,r=t.colors,i=e.cropWithEllipsis;return{borderRadius:n/2,color:r.neutral80,fontSize:"85%",overflow:"hidden",padding:3,paddingLeft:6,textOverflow:i?"ellipsis":null,whiteSpace:"nowrap"}},multiValueRemove:function(e){var t=e.theme,n=t.spacing,r=t.borderRadius,i=t.colors;return{alignItems:"center",borderRadius:r/2,backgroundColor:e.isFocused&&i.dangerLight,display:"flex",paddingLeft:n.baseUnit,paddingRight:n.baseUnit,":hover":{backgroundColor:i.dangerLight,color:i.danger}}},noOptionsMessage:ge,option:function(e){var t=e.isDisabled,n=e.isFocused,r=e.isSelected,i=e.theme,o=i.spacing,a=i.colors;return{label:"option",backgroundColor:r?a.primary:n?a.primary25:"transparent",color:t?a.neutral20:r?a.neutral0:"inherit",cursor:"default",display:"block",fontSize:"inherit",padding:2*o.baseUnit+"px "+3*o.baseUnit+"px",width:"100%",userSelect:"none",WebkitTapHighlightColor:"rgba(0, 0, 0, 0)",":active":{backgroundColor:!t&&(r?a.primary:a.primary50)}}},placeholder:function(e){var t=e.theme,n=t.spacing;return{label:"placeholder",color:t.colors.neutral50,marginLeft:n.baseUnit/2,marginRight:n.baseUnit/2,position:"absolute",top:"50%",transform:"translateY(-50%)"}},singleValue:function(e){var t=e.isDisabled,n=e.theme,r=n.spacing,i=n.colors;return{label:"singleValue",color:t?i.neutral40:i.neutral80,marginLeft:r.baseUnit/2,marginRight:r.baseUnit/2,maxWidth:"calc(100% - "+2*r.baseUnit+"px)",overflow:"hidden",position:"absolute",textOverflow:"ellipsis",whiteSpace:"nowrap",top:"50%",transform:"translateY(-50%)"}},valueContainer:function(e){var t=e.theme.spacing;return{alignItems:"center",display:"flex",flex:1,flexWrap:"wrap",padding:t.baseUnit/2+"px "+2*t.baseUnit+"px",WebkitOverflowScrolling:"touch",position:"relative",overflow:"hidden"}}};var kt={borderRadius:4,colors:{primary:"#2684FF",primary75:"#4C9AFF",primary50:"#B2D4FF",primary25:"#DEEBFF",danger:"#DE350B",dangerLight:"#FFBDAD",neutral0:"hsl(0, 0%, 100%)",neutral5:"hsl(0, 0%, 95%)",neutral10:"hsl(0, 0%, 90%)",neutral20:"hsl(0, 0%, 80%)",neutral30:"hsl(0, 0%, 70%)",neutral40:"hsl(0, 0%, 60%)",neutral50:"hsl(0, 0%, 50%)",neutral60:"hsl(0, 0%, 40%)",neutral70:"hsl(0, 0%, 30%)",neutral80:"hsl(0, 0%, 20%)",neutral90:"hsl(0, 0%, 10%)"},spacing:{baseUnit:4,controlHeight:38,menuGutter:8}};function St(){return(St=Object.assign||function(e){for(var t=1;t-1},formatGroupLabel:function(e){return e.label},getOptionLabel:function(e){return e.label},getOptionValue:function(e){return e.value},isDisabled:!1,isLoading:!1,isMulti:!1,isRtl:!1,isSearchable:!0,isOptionDisabled:At,loadingMessage:function(){return"Loading..."},maxMenuHeight:300,minMenuHeight:140,menuIsOpen:!1,menuPlacement:"bottom",menuPosition:"absolute",menuShouldBlockScroll:!1,menuShouldScrollIntoView:!function(){try{return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}catch(e){return!1}}(),noOptionsMessage:function(){return"No options"},openMenuOnFocus:!1,openMenuOnClick:!0,options:[],pageSize:5,placeholder:"Select...",screenReaderStatus:function(e){var t=e.count;return t+" result"+(1!==t?"s":"")+" available"},styles:{},tabIndex:"0",tabSelectsValue:!0},jt=1,Nt=function(e){var t,n;function r(t){var n;(n=e.call(this,t)||this).state={ariaLiveSelection:"",ariaLiveContext:"",focusedOption:null,focusedValue:null,inputIsHidden:!1,isFocused:!1,menuOptions:{render:[],focusable:[]},selectValue:[]},n.blockOptionHover=!1,n.isComposing=!1,n.clearFocusValueOnUpdate=!1,n.commonProps=void 0,n.components=void 0,n.hasGroups=!1,n.initialTouchX=0,n.initialTouchY=0,n.inputIsHiddenAfterUpdate=void 0,n.instancePrefix="",n.openAfterFocus=!1,n.scrollToFocusedOptionOnUpdate=!1,n.userIsDragging=void 0,n.controlRef=null,n.getControlRef=function(e){n.controlRef=e},n.focusedOptionRef=null,n.getFocusedOptionRef=function(e){n.focusedOptionRef=e},n.menuListRef=null,n.getMenuListRef=function(e){n.menuListRef=e},n.inputRef=null,n.getInputRef=function(e){n.inputRef=e},n.cacheComponents=function(e){n.components=Xe({},Je,{components:e}.components)},n.focus=n.focusInput,n.blur=n.blurInput,n.onChange=function(e,t){var r=n.props;(0,r.onChange)(e,St({},t,{name:r.name}))},n.setValue=function(e,t,r){void 0===t&&(t="set-value");var i=n.props,o=i.closeMenuOnSelect,a=i.isMulti;n.onInputChange("",{action:"set-value"}),o&&(n.inputIsHiddenAfterUpdate=!a,n.onMenuClose()),n.clearFocusValueOnUpdate=!0,n.onChange(e,{action:t,option:r})},n.selectOption=function(e){var t=n.props,r=t.blurInputOnSelect,i=t.isMulti,o=n.state.selectValue;if(i)if(n.isOptionSelected(e,o)){var a=n.getOptionValue(e);n.setValue(o.filter((function(e){return n.getOptionValue(e)!==a})),"deselect-option",e),n.announceAriaLiveSelection({event:"deselect-option",context:{value:n.getOptionLabel(e)}})}else n.isOptionDisabled(e,o)?n.announceAriaLiveSelection({event:"select-option",context:{value:n.getOptionLabel(e),isDisabled:!0}}):(n.setValue([].concat(o,[e]),"select-option",e),n.announceAriaLiveSelection({event:"select-option",context:{value:n.getOptionLabel(e)}}));else n.isOptionDisabled(e,o)?n.announceAriaLiveSelection({event:"select-option",context:{value:n.getOptionLabel(e),isDisabled:!0}}):(n.setValue(e,"select-option"),n.announceAriaLiveSelection({event:"select-option",context:{value:n.getOptionLabel(e)}}));r&&n.blurInput()},n.removeValue=function(e){var t=n.state.selectValue,r=n.getOptionValue(e),i=t.filter((function(e){return n.getOptionValue(e)!==r}));n.onChange(i.length?i:null,{action:"remove-value",removedValue:e}),n.announceAriaLiveSelection({event:"remove-value",context:{value:e?n.getOptionLabel(e):""}}),n.focusInput()},n.clearValue=function(){var e=n.props.isMulti;n.onChange(e?[]:null,{action:"clear"})},n.popValue=function(){var e=n.state.selectValue,t=e[e.length-1],r=e.slice(0,e.length-1);n.announceAriaLiveSelection({event:"pop-value",context:{value:t?n.getOptionLabel(t):""}}),n.onChange(r.length?r:null,{action:"pop-value",removedValue:t})},n.getOptionLabel=function(e){return n.props.getOptionLabel(e)},n.getOptionValue=function(e){return n.props.getOptionValue(e)},n.getStyles=function(e,t){var r=xt[e](t);r.boxSizing="border-box";var i=n.props.styles[e];return i?i(r,t):r},n.getElementId=function(e){return n.instancePrefix+"-"+e},n.getActiveDescendentId=function(){var e=n.props.menuIsOpen,t=n.state,r=t.menuOptions,i=t.focusedOption;if(i&&e){var o=r.focusable.indexOf(i),a=r.render[o];return a&&a.key}},n.announceAriaLiveSelection=function(e){var t=e.event,r=e.context;n.setState({ariaLiveSelection:Ct(t,r)})},n.announceAriaLiveContext=function(e){var t=e.event,r=e.context;n.setState({ariaLiveContext:Ot(t,St({},r,{label:n.props["aria-label"]}))})},n.onMenuMouseDown=function(e){0===e.button&&(e.stopPropagation(),e.preventDefault(),n.focusInput())},n.onMenuMouseMove=function(e){n.blockOptionHover=!1},n.onControlMouseDown=function(e){var t=n.props.openMenuOnClick;n.state.isFocused?n.props.menuIsOpen?"INPUT"!==e.target.tagName&&"TEXTAREA"!==e.target.tagName&&n.onMenuClose():t&&n.openMenu("first"):(t&&(n.openAfterFocus=!0),n.focusInput()),"INPUT"!==e.target.tagName&&"TEXTAREA"!==e.target.tagName&&e.preventDefault()},n.onDropdownIndicatorMouseDown=function(e){if(!(e&&"mousedown"===e.type&&0!==e.button||n.props.isDisabled)){var t=n.props,r=t.isMulti,i=t.menuIsOpen;n.focusInput(),i?(n.inputIsHiddenAfterUpdate=!r,n.onMenuClose()):n.openMenu("first"),e.preventDefault(),e.stopPropagation()}},n.onClearIndicatorMouseDown=function(e){e&&"mousedown"===e.type&&0!==e.button||(n.clearValue(),e.stopPropagation(),n.openAfterFocus=!1,"touchend"===e.type?n.focusInput():setTimeout((function(){return n.focusInput()})))},n.onScroll=function(e){"boolean"==typeof n.props.closeMenuOnScroll?e.target instanceof HTMLElement&&ie(e.target)&&n.props.onMenuClose():"function"==typeof n.props.closeMenuOnScroll&&n.props.closeMenuOnScroll(e)&&n.props.onMenuClose()},n.onCompositionStart=function(){n.isComposing=!0},n.onCompositionEnd=function(){n.isComposing=!1},n.onTouchStart=function(e){var t=e.touches.item(0);t&&(n.initialTouchX=t.clientX,n.initialTouchY=t.clientY,n.userIsDragging=!1)},n.onTouchMove=function(e){var t=e.touches.item(0);if(t){var r=Math.abs(t.clientX-n.initialTouchX),i=Math.abs(t.clientY-n.initialTouchY);n.userIsDragging=r>5||i>5}},n.onTouchEnd=function(e){n.userIsDragging||(n.controlRef&&!n.controlRef.contains(e.target)&&n.menuListRef&&!n.menuListRef.contains(e.target)&&n.blurInput(),n.initialTouchX=0,n.initialTouchY=0)},n.onControlTouchEnd=function(e){n.userIsDragging||n.onControlMouseDown(e)},n.onClearIndicatorTouchEnd=function(e){n.userIsDragging||n.onClearIndicatorMouseDown(e)},n.onDropdownIndicatorTouchEnd=function(e){n.userIsDragging||n.onDropdownIndicatorMouseDown(e)},n.handleInputChange=function(e){var t=e.currentTarget.value;n.inputIsHiddenAfterUpdate=!1,n.onInputChange(t,{action:"input-change"}),n.onMenuOpen()},n.onInputFocus=function(e){var t=n.props,r=t.isSearchable,i=t.isMulti;n.props.onFocus&&n.props.onFocus(e),n.inputIsHiddenAfterUpdate=!1,n.announceAriaLiveContext({event:"input",context:{isSearchable:r,isMulti:i}}),n.setState({isFocused:!0}),(n.openAfterFocus||n.props.openMenuOnFocus)&&n.openMenu("first"),n.openAfterFocus=!1},n.onInputBlur=function(e){n.menuListRef&&n.menuListRef.contains(document.activeElement)?n.inputRef.focus():(n.props.onBlur&&n.props.onBlur(e),n.onInputChange("",{action:"input-blur"}),n.onMenuClose(),n.setState({focusedValue:null,isFocused:!1}))},n.onOptionHover=function(e){n.blockOptionHover||n.state.focusedOption===e||n.setState({focusedOption:e})},n.shouldHideSelectedOptions=function(){var e=n.props,t=e.hideSelectedOptions,r=e.isMulti;return void 0===t?r:t},n.onKeyDown=function(e){var t=n.props,r=t.isMulti,i=t.backspaceRemovesValue,o=t.escapeClearsValue,a=t.inputValue,u=t.isClearable,s=t.isDisabled,l=t.menuIsOpen,c=t.onKeyDown,f=t.tabSelectsValue,p=t.openMenuOnFocus,d=n.state,h=d.focusedOption,v=d.focusedValue,m=d.selectValue;if(!(s||"function"==typeof c&&(c(e),e.defaultPrevented))){switch(n.blockOptionHover=!0,e.key){case"ArrowLeft":if(!r||a)return;n.focusValue("previous");break;case"ArrowRight":if(!r||a)return;n.focusValue("next");break;case"Delete":case"Backspace":if(a)return;if(v)n.removeValue(v);else{if(!i)return;r?n.popValue():u&&n.clearValue()}break;case"Tab":if(n.isComposing)return;if(e.shiftKey||!l||!f||!h||p&&n.isOptionSelected(h,m))return;n.selectOption(h);break;case"Enter":if(229===e.keyCode)break;if(l){if(!h)return;if(n.isComposing)return;n.selectOption(h);break}return;case"Escape":l?(n.inputIsHiddenAfterUpdate=!1,n.onInputChange("",{action:"menu-close"}),n.onMenuClose()):u&&o&&n.clearValue();break;case" ":if(a)return;if(!l){n.openMenu("first");break}if(!h)return;n.selectOption(h);break;case"ArrowUp":l?n.focusOption("up"):n.openMenu("last");break;case"ArrowDown":l?n.focusOption("down"):n.openMenu("first");break;case"PageUp":if(!l)return;n.focusOption("pageup");break;case"PageDown":if(!l)return;n.focusOption("pagedown");break;case"Home":if(!l)return;n.focusOption("first");break;case"End":if(!l)return;n.focusOption("last");break;default:return}e.preventDefault()}},n.buildMenuOptions=function(e,t){var r=e.inputValue,i=void 0===r?"":r,o=e.options,a=function(e,r){var o=n.isOptionDisabled(e,t),a=n.isOptionSelected(e,t),u=n.getOptionLabel(e),s=n.getOptionValue(e);if(!(n.shouldHideSelectedOptions()&&a||!n.filterOption({label:u,value:s,data:e},i))){var l=o?void 0:function(){return n.onOptionHover(e)},c=o?void 0:function(){return n.selectOption(e)},f=n.getElementId("option")+"-"+r;return{innerProps:{id:f,onClick:c,onMouseMove:l,onMouseOver:l,tabIndex:-1},data:e,isDisabled:o,isSelected:a,key:f,label:u,type:"option",value:s}}};return o.reduce((function(e,t,r){if(t.options){n.hasGroups||(n.hasGroups=!0);var i=t.options.map((function(t,n){var i=a(t,r+"-"+n);return i&&e.focusable.push(t),i})).filter(Boolean);if(i.length){var o=n.getElementId("group")+"-"+r;e.render.push({type:"group",key:o,data:t,options:i})}}else{var u=a(t,""+r);u&&(e.render.push(u),e.focusable.push(t))}return e}),{render:[],focusable:[]})};var r=t.value;n.cacheComponents=h(n.cacheComponents,Ae).bind(Ft(Ft(n))),n.cacheComponents(t.components),n.instancePrefix="react-select-"+(n.props.instanceId||++jt);var i=re(r);n.buildMenuOptions=h(n.buildMenuOptions,(function(e,t){var n=e,r=n[0],i=n[1],o=t,a=o[0];return Ae(i,o[1])&&Ae(r.inputValue,a.inputValue)&&Ae(r.options,a.options)})).bind(Ft(Ft(n)));var o=t.menuIsOpen?n.buildMenuOptions(t,i):{render:[],focusable:[]};return n.state.menuOptions=o,n.state.selectValue=i,n}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var i=r.prototype;return i.componentDidMount=function(){this.startListeningComposition(),this.startListeningToTouch(),this.props.closeMenuOnScroll&&document&&document.addEventListener&&document.addEventListener("scroll",this.onScroll,!0),this.props.autoFocus&&this.focusInput()},i.UNSAFE_componentWillReceiveProps=function(e){var t=this.props,n=t.options,r=t.value,i=t.menuIsOpen,o=t.inputValue;if(this.cacheComponents(e.components),e.value!==r||e.options!==n||e.menuIsOpen!==i||e.inputValue!==o){var a=re(e.value),u=e.menuIsOpen?this.buildMenuOptions(e,a):{render:[],focusable:[]},s=this.getNextFocusedValue(a),l=this.getNextFocusedOption(u.focusable);this.setState({menuOptions:u,selectValue:a,focusedOption:l,focusedValue:s})}null!=this.inputIsHiddenAfterUpdate&&(this.setState({inputIsHidden:this.inputIsHiddenAfterUpdate}),delete this.inputIsHiddenAfterUpdate)},i.componentDidUpdate=function(e){var t,n,r,i,o,a=this.props,u=a.isDisabled,s=a.menuIsOpen,l=this.state.isFocused;(l&&!u&&e.isDisabled||l&&s&&!e.menuIsOpen)&&this.focusInput(),this.menuListRef&&this.focusedOptionRef&&this.scrollToFocusedOptionOnUpdate&&(t=this.menuListRef,n=this.focusedOptionRef,r=t.getBoundingClientRect(),i=n.getBoundingClientRect(),o=n.offsetHeight/3,i.bottom+o>r.bottom?ae(t,Math.min(n.offsetTop+n.clientHeight-t.offsetHeight+o,t.scrollHeight)):i.top-o-1&&(u=s)}this.scrollToFocusedOptionOnUpdate=!(i&&this.menuListRef),this.inputIsHiddenAfterUpdate=!1,this.setState({menuOptions:o,focusedValue:null,focusedOption:o.focusable[u]},(function(){t.onMenuOpen(),t.announceAriaLiveContext({event:"menu"})}))},i.focusValue=function(e){var t=this.props,n=t.isMulti,r=t.isSearchable,i=this.state,o=i.selectValue,a=i.focusedValue;if(n){this.setState({focusedOption:null});var u=o.indexOf(a);a||(u=-1,this.announceAriaLiveContext({event:"value"}));var s=o.length-1,l=-1;if(o.length){switch(e){case"previous":l=0===u?0:-1===u?s:u-1;break;case"next":u>-1&&u0?a-1:i.length-1:"down"===e?o=(a+1)%i.length:"pageup"===e?(o=a-t)<0&&(o=0):"pagedown"===e?(o=a+t)>i.length-1&&(o=i.length-1):"last"===e&&(o=i.length-1),this.scrollToFocusedOptionOnUpdate=!0,this.setState({focusedOption:i[o],focusedValue:null}),this.announceAriaLiveContext({event:"menu",context:{isDisabled:At(i[o])}})}},i.getTheme=function(){return this.props.theme?"function"==typeof this.props.theme?this.props.theme(kt):St({},kt,this.props.theme):kt},i.getCommonProps=function(){var e=this.clearValue,t=this.getStyles,n=this.setValue,r=this.selectOption,i=this.props,o=i.classNamePrefix,a=i.isMulti,u=i.isRtl,s=i.options,l=this.state.selectValue,c=this.hasValue();return{cx:ne.bind(null,o),clearValue:e,getStyles:t,getValue:function(){return l},hasValue:c,isMulti:a,isRtl:u,options:s,selectOption:r,setValue:n,selectProps:i,theme:this.getTheme()}},i.getNextFocusedValue=function(e){if(this.clearFocusValueOnUpdate)return this.clearFocusValueOnUpdate=!1,null;var t=this.state,n=t.focusedValue,r=t.selectValue.indexOf(n);if(r>-1){if(e.indexOf(n)>-1)return n;if(r-1?t:e[0]},i.hasValue=function(){return this.state.selectValue.length>0},i.hasOptions=function(){return!!this.state.menuOptions.render.length},i.countOptions=function(){return this.state.menuOptions.focusable.length},i.isClearable=function(){var e=this.props,t=e.isClearable,n=e.isMulti;return void 0===t?n:t},i.isOptionDisabled=function(e,t){return"function"==typeof this.props.isOptionDisabled&&this.props.isOptionDisabled(e,t)},i.isOptionSelected=function(e,t){var n=this;if(t.indexOf(e)>-1)return!0;if("function"==typeof this.props.isOptionSelected)return this.props.isOptionSelected(e,t);var r=this.getOptionValue(e);return t.some((function(e){return n.getOptionValue(e)===r}))},i.filterOption=function(e,t){return!this.props.filterOption||this.props.filterOption(e,t)},i.formatOptionLabel=function(e,t){if("function"==typeof this.props.formatOptionLabel){var n=this.props.inputValue,r=this.state.selectValue;return this.props.formatOptionLabel(e,{context:t,inputValue:n,selectValue:r})}return this.getOptionLabel(e)},i.formatGroupLabel=function(e){return this.props.formatGroupLabel(e)},i.startListeningComposition=function(){document&&document.addEventListener&&(document.addEventListener("compositionstart",this.onCompositionStart,!1),document.addEventListener("compositionend",this.onCompositionEnd,!1))},i.stopListeningComposition=function(){document&&document.removeEventListener&&(document.removeEventListener("compositionstart",this.onCompositionStart),document.removeEventListener("compositionend",this.onCompositionEnd))},i.startListeningToTouch=function(){document&&document.addEventListener&&(document.addEventListener("touchstart",this.onTouchStart,!1),document.addEventListener("touchmove",this.onTouchMove,!1),document.addEventListener("touchend",this.onTouchEnd,!1))},i.stopListeningToTouch=function(){document&&document.removeEventListener&&(document.removeEventListener("touchstart",this.onTouchStart),document.removeEventListener("touchmove",this.onTouchMove),document.removeEventListener("touchend",this.onTouchEnd))},i.constructAriaLiveMessage=function(){var e=this.state,t=e.ariaLiveContext,n=e.selectValue,r=e.focusedValue,i=e.focusedOption,o=this.props,a=o.options,u=o.menuIsOpen,s=o.inputValue,l=o.screenReaderStatus;return(r?function(e){var t=e.focusedValue,n=e.getOptionLabel,r=e.selectValue;return"value "+n(t)+" focused, "+(r.indexOf(t)+1)+" of "+r.length+"."}({focusedValue:r,getOptionLabel:this.getOptionLabel,selectValue:n}):"")+" "+(i&&u?function(e){var t=e.focusedOption,n=e.getOptionLabel,r=e.options;return"option "+n(t)+" focused"+(t.isDisabled?" disabled":"")+", "+(r.indexOf(t)+1)+" of "+r.length+"."}({focusedOption:i,getOptionLabel:this.getOptionLabel,options:a}):"")+" "+function(e){var t=e.inputValue;return e.screenReaderMessage+(t?" for search term "+t:"")+"."}({inputValue:s,screenReaderMessage:l({count:this.countOptions()})})+" "+t},i.renderInput=function(){var e=this.props,t=e.isDisabled,n=e.isSearchable,r=e.inputId,i=e.inputValue,a=e.tabIndex,u=this.components.Input,s=this.state.inputIsHidden,l=r||this.getElementId("input"),c={"aria-autocomplete":"list","aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"]};if(!n)return o.a.createElement(st,St({id:l,innerRef:this.getInputRef,onBlur:this.onInputBlur,onChange:ee,onFocus:this.onInputFocus,readOnly:!0,disabled:t,tabIndex:a,value:""},c));var f=this.commonProps,p=f.cx,d=f.theme,h=f.selectProps;return o.a.createElement(u,St({autoCapitalize:"none",autoComplete:"off",autoCorrect:"off",cx:p,getStyles:this.getStyles,id:l,innerRef:this.getInputRef,isDisabled:t,isHidden:s,onBlur:this.onInputBlur,onChange:this.handleInputChange,onFocus:this.onInputFocus,selectProps:h,spellCheck:"false",tabIndex:a,theme:d,type:"text",value:i},c))},i.renderPlaceholderOrValue=function(){var e=this,t=this.components,n=t.MultiValue,r=t.MultiValueContainer,i=t.MultiValueLabel,a=t.MultiValueRemove,u=t.SingleValue,s=t.Placeholder,l=this.commonProps,c=this.props,f=c.controlShouldRenderValue,p=c.isDisabled,d=c.isMulti,h=c.inputValue,v=c.placeholder,m=this.state,g=m.selectValue,b=m.focusedValue,y=m.isFocused;if(!this.hasValue()||!f)return h?null:o.a.createElement(s,St({},l,{key:"placeholder",isDisabled:p,isFocused:y}),v);if(d)return g.map((function(t,u){var s=t===b;return o.a.createElement(n,St({},l,{components:{Container:r,Label:i,Remove:a},isFocused:s,isDisabled:p,key:e.getOptionValue(t),index:u,removeProps:{onClick:function(){return e.removeValue(t)},onTouchEnd:function(){return e.removeValue(t)},onMouseDown:function(e){e.preventDefault(),e.stopPropagation()}},data:t}),e.formatOptionLabel(t,"value"))}));if(h)return null;var E=g[0];return o.a.createElement(u,St({},l,{data:E,isDisabled:p}),this.formatOptionLabel(E,"value"))},i.renderClearIndicator=function(){var e=this.components.ClearIndicator,t=this.commonProps,n=this.props,r=n.isDisabled,i=n.isLoading,a=this.state.isFocused;if(!this.isClearable()||!e||r||!this.hasValue()||i)return null;var u={onMouseDown:this.onClearIndicatorMouseDown,onTouchEnd:this.onClearIndicatorTouchEnd,"aria-hidden":"true"};return o.a.createElement(e,St({},t,{innerProps:u,isFocused:a}))},i.renderLoadingIndicator=function(){var e=this.components.LoadingIndicator,t=this.commonProps,n=this.props,r=n.isDisabled,i=n.isLoading,a=this.state.isFocused;if(!e||!i)return null;return o.a.createElement(e,St({},t,{innerProps:{"aria-hidden":"true"},isDisabled:r,isFocused:a}))},i.renderIndicatorSeparator=function(){var e=this.components,t=e.DropdownIndicator,n=e.IndicatorSeparator;if(!t||!n)return null;var r=this.commonProps,i=this.props.isDisabled,a=this.state.isFocused;return o.a.createElement(n,St({},r,{isDisabled:i,isFocused:a}))},i.renderDropdownIndicator=function(){var e=this.components.DropdownIndicator;if(!e)return null;var t=this.commonProps,n=this.props.isDisabled,r=this.state.isFocused,i={onMouseDown:this.onDropdownIndicatorMouseDown,onTouchEnd:this.onDropdownIndicatorTouchEnd,"aria-hidden":"true"};return o.a.createElement(e,St({},t,{innerProps:i,isDisabled:n,isFocused:r}))},i.renderMenu=function(){var e=this,t=this.components,n=t.Group,r=t.GroupHeading,i=t.Menu,a=t.MenuList,u=t.MenuPortal,s=t.LoadingMessage,l=t.NoOptionsMessage,c=t.Option,f=this.commonProps,p=this.state,d=p.focusedOption,h=p.menuOptions,v=this.props,m=v.captureMenuScroll,g=v.inputValue,b=v.isLoading,y=v.loadingMessage,E=v.minMenuHeight,_=v.maxMenuHeight,w=v.menuIsOpen,O=v.menuPlacement,C=v.menuPosition,A=v.menuPortalTarget,x=v.menuShouldBlockScroll,k=v.menuShouldScrollIntoView,S=v.noOptionsMessage,F=v.onMenuScrollToTop,D=v.onMenuScrollToBottom;if(!w)return null;var I,j=function(t){var n=d===t.data;return t.innerRef=n?e.getFocusedOptionRef:void 0,o.a.createElement(c,St({},f,t,{isFocused:n}),e.formatOptionLabel(t.data,"menu"))};if(this.hasOptions())I=h.render.map((function(t){if("group"===t.type){t.type;var i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}(t,["type"]),a=t.key+"-heading";return o.a.createElement(n,St({},f,i,{Heading:r,headingProps:{id:a},label:e.formatGroupLabel(t.data)}),t.options.map((function(e){return j(e)})))}if("option"===t.type)return j(t)}));else if(b){var N=y({inputValue:g});if(null===N)return null;I=o.a.createElement(s,f,N)}else{var M=S({inputValue:g});if(null===M)return null;I=o.a.createElement(l,f,M)}var L={minMenuHeight:E,maxMenuHeight:_,menuPlacement:O,menuPosition:C,menuShouldScrollIntoView:k},P=o.a.createElement(ve,St({},f,L),(function(t){var n=t.ref,r=t.placerProps,u=r.placement,s=r.maxHeight;return o.a.createElement(i,St({},f,L,{innerRef:n,innerProps:{onMouseDown:e.onMenuMouseDown,onMouseMove:e.onMenuMouseMove},isLoading:b,placement:u}),o.a.createElement(wt,{isEnabled:m,onTopArrive:F,onBottomArrive:D},o.a.createElement(Et,{isEnabled:x},o.a.createElement(a,St({},f,{innerRef:e.getMenuListRef,isLoading:b,maxHeight:s}),I))))}));return A||"fixed"===C?o.a.createElement(u,St({},f,{appendTo:A,controlElement:this.controlRef,menuPlacement:O,menuPosition:C}),P):P},i.renderFormField=function(){var e=this,t=this.props,n=t.delimiter,r=t.isDisabled,i=t.isMulti,a=t.name,u=this.state.selectValue;if(a&&!r){if(i){if(n){var s=u.map((function(t){return e.getOptionValue(t)})).join(n);return o.a.createElement("input",{name:a,type:"hidden",value:s})}var l=u.length>0?u.map((function(t,n){return o.a.createElement("input",{key:"i-"+n,name:a,type:"hidden",value:e.getOptionValue(t)})})):o.a.createElement("input",{name:a,type:"hidden"});return o.a.createElement("div",null,l)}var c=u[0]?this.getOptionValue(u[0]):"";return o.a.createElement("input",{name:a,type:"hidden",value:c})}},i.renderLiveRegion=function(){return this.state.isFocused?o.a.createElement(at,{"aria-live":"polite"},o.a.createElement("p",{id:"aria-selection-event"},"\xa0",this.state.ariaLiveSelection),o.a.createElement("p",{id:"aria-context"},"\xa0",this.constructAriaLiveMessage())):null},i.render=function(){var e=this.components,t=e.Control,n=e.IndicatorsContainer,r=e.SelectContainer,i=e.ValueContainer,a=this.props,u=a.className,s=a.id,l=a.isDisabled,c=a.menuIsOpen,f=this.state.isFocused,p=this.commonProps=this.getCommonProps();return o.a.createElement(r,St({},p,{className:u,innerProps:{id:s,onKeyDown:this.onKeyDown},isDisabled:l,isFocused:f}),this.renderLiveRegion(),o.a.createElement(t,St({},p,{innerRef:this.getControlRef,innerProps:{onMouseDown:this.onControlMouseDown,onTouchEnd:this.onControlTouchEnd},isDisabled:l,isFocused:f,menuIsOpen:c}),o.a.createElement(i,St({},p,{isDisabled:l}),this.renderPlaceholderOrValue(),this.renderInput()),o.a.createElement(n,St({},p,{isDisabled:l}),this.renderClearIndicator(),this.renderLoadingIndicator(),this.renderIndicatorSeparator(),this.renderDropdownIndicator())),this.renderMenu(),this.renderFormField())},r}(i.Component);function Mt(){return(Mt=Object.assign||function(e){for(var t=1;t1?n-1:0),i=1;i=0||(i[n]=e[n]);return i}(t,["defaultInputValue","defaultMenuIsOpen","defaultValue"]));return o.a.createElement(Pt,Mt({},n,{ref:function(t){e.select=t},inputValue:this.getProp("inputValue"),menuIsOpen:this.getProp("menuIsOpen"),onChange:this.onChange,onInputChange:this.onInputChange,onMenuClose:this.onMenuClose,onMenuOpen:this.onMenuOpen,value:this.getProp("value")}))},r}(i.Component),Tt.defaultProps=Lt,Rt),Vt=n(252),zt=n.n(Vt),Ut=n(383),Wt=n.n(Ut),Ht=n(338);var $t=function(){return Object(i.useContext)(Ht.a)},Gt=37,qt=39;function Yt(e){var t=e.block,n=e.centered,r=e.changeSelectedValue,i=e.className,a=e.handleKeydown,u=e.style,s=e.values,l=e.selectedValue,c=e.tabRefs;return o.a.createElement("div",{className:n?"tabs--centered":null},o.a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:zt()("tabs",i,{"tabs--block":t}),style:u},s.map((function(e){var t=e.value,n=e.label;return o.a.createElement("li",{role:"tab",tabIndex:"0","aria-selected":l===t,className:zt()("tab-item",{"tab-item--active":l===t}),key:t,ref:function(e){return c.push(e)},onKeyDown:function(e){return a(c,e.target,e)},onFocus:function(){return r(t)},onClick:function(){return r(t)}},n)}))))}function Kt(e){var t=e.placeholder,n=e.selectedValue,r=e.changeSelectedValue,i=e.size,a=e.values,u=a;if(u[0].group){var s=_.groupBy(u,"group");u=Object.keys(s).map((function(e){return{label:e,options:s[e]}}))}return o.a.createElement(Bt,{className:"react-select-container react-select--"+i,classNamePrefix:"react-select",options:u,isClearable:n,placeholder:t,value:a.find((function(e){return e.value==n})),onChange:function(e){return r(e?e.value:null)}})}var Zt=function(e){e.block,e.centered;var t=e.children,n=e.defaultValue,a=e.groupId,u=e.label,s=e.placeholder,l=e.select,c=e.size,f=(e.style,e.values),p=e.urlKey,d=$t(),h=d.tabGroupChoices,v=d.setTabGroupChoices,m=Object(i.useState)(n),g=m[0],b=m[1];if(null!=a){var y=h[a];null!=y&&y!==g&&b(y)}var E=function(e){b(e),null!=a&&v(a,e)},_=[],w=function(e,t,n){switch(n.keyCode){case qt:!function(e,t){var n=e.indexOf(t)+1;e[n]?e[n].focus():e[0].focus()}(e,t);break;case Gt:!function(e,t){var n=e.indexOf(t)-1;e[n]?e[n].focus():e[e.length-1].focus()}(e,t)}};return Object(i.useEffect)((function(){if("undefined"!=typeof window&&window.location&&p){var e=Wt.a.parse(window.location.search);e[p]&&b(e[p])}}),[]),o.a.createElement(o.a.Fragment,null,o.a.createElement("div",{className:"margin-bottom--"+(c||"md")},u&&o.a.createElement("div",{className:"margin-vert--sm"},u),f.length>1&&(l?o.a.createElement(Kt,Object(r.a)({changeSelectedValue:E,handleKeydown:w,placeholder:s,selectedValue:g,size:c,tabRefs:_},e)):o.a.createElement(Yt,Object(r.a)({changeSelectedValue:E,handleKeydown:w,selectedValue:g,tabRefs:_},e)))),i.Children.toArray(t).filter((function(e){return e.props.value===g}))[0])},Xt=n(258),Jt=n(318),Qt=n(253),en=n(291),tn=n.n(en),nn=n(224),rn=n.n(nn),on=(n(225),Object(a.a)("h2")),an=[{title:"Ultra-Fast",icon:"zap",description:o.a.createElement(o.a.Fragment,null,"Built in ",o.a.createElement("a",{href:"https://go.dev/"},"Go"),", gnet is ",o.a.createElement("a",{href:"#performance"},"ultra-fast and memory efficient")," based on the event-driven mechanism. It's designed to create a networking server framework for Go that performs on par with Redis and Haproxy for networking packets handling.")},{title:"Lock-Free",icon:"unlock",description:o.a.createElement(o.a.Fragment,null,"gnet is lock-free during the entire runtime, which keeps gnet free from synchronization issues and speeds it up.")},{title:"Concise & Easy-to-use APIs",icon:"layers",description:o.a.createElement(o.a.Fragment,null,"gnet provides concise and easy-to-use APIs for users, it only exposes the essential APIs and takes over most of the tough work for users, minimizing the complexity of business code so that developers are able to concentrate on business logic instead of the underlying implementations.")},{title:"Multiple Protocols",icon:"grid",description:o.a.createElement(o.a.Fragment,null,"gnet supports multiple protocols/IPC mechanism: TCP, UDP and Unix Domain Socket, enabling you to develop a variety of networking applications.")},{title:"Cross Platform",icon:"cpu",description:o.a.createElement(o.a.Fragment,null,"gnet is devised as a cross-platform framework, as a result, it works faultlessly on multiple platforms: Linux, FreeBSD, DragonFly BSD, Windows.")},{title:"Powerful Libraries",icon:"briefcase",description:o.a.createElement(o.a.Fragment,null,"There is a rich set of libraries in gnet, such as memory pool, goroutine pool, elastic buffers, logging package, etc., which makes it convenient for developers to build fast and efficient networking applications.")}];function un(e){var t,n,i=e.features,a=[];for(t=0,n=i.length;t0&&i.a.createElement("div",{className:"row footer__links"},i.a.createElement("div",{className:"col col--5 footer__col"},i.a.createElement("div",{className:"margin-bottom--md"},i.a.createElement(f.a,{className:"navbar__logo",src:"/img/logo-light.svg",alt:"gnet",width:"150",height:"auto"})),i.a.createElement("div",{className:"margin-bottom--md"},i.a.createElement(N,{description:!1,width:"150px"})),i.a.createElement("div",null,i.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank"},i.a.createElement("i",{className:"feather icon-twitter",alt:"gnet's Twitter"})),"\xa0\xa0\xa0\xa0",i.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank"},i.a.createElement("i",{className:"feather icon-github",alt:"gnet's Github Repo"})),"\xa0\xa0\xa0\xa0",i.a.createElement("a",{href:"https://strikefreedom.top/rss.xml",target:"_blank"},i.a.createElement("i",{className:"feather icon-rss",alt:"gnet's RSS feed"})))),u.map((function(e,t){return i.a.createElement("div",{key:t,className:"col footer__col"},null!=e.title?i.a.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?i.a.createElement("ul",{className:"footer__items"},e.items.map((function(e,t){return e.html?i.a.createElement("li",{key:t,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):i.a.createElement("li",{key:e.href||e.to,className:"footer__item"},i.a.createElement(P,e))}))):null)}))),(l||o)&&i.a.createElement("div",{className:"text--center"},l&&l.src&&i.a.createElement("div",{className:"margin-bottom--sm"},l.href?i.a.createElement("a",{href:l.href,target:"_blank",rel:"noopener noreferrer",className:L.a.footerLogoLink},i.a.createElement(T,{alt:l.alt,url:c})):i.a.createElement(T,{alt:l.alt,url:c}),i.a.createElement("br",null),i.a.createElement("a",{href:"https://www.digitalocean.com/",target:"_blank",rel:"noopener noreferrer",className:L.a.footerLogoLink},i.a.createElement("img",{alt:"DigitalOcean",src:"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg",width:"201px"}))),o,i.a.createElement("br",null),i.a.createElement("small",null,i.a.createElement("a",{href:"https://github.com/panjf2000/gnet/security/policy"},"Security Policy"),"\xa0\u2022\xa0",i.a.createElement("a",{href:"https://github.com/panjf2000/gnet/blob/master/PRIVACY.md"},"Privacy Policy"))))):null},B=n(276),V=n(277),z=n(3);n(135);t.a=function(e){var t=Object(h.a)().siteConfig,n=void 0===t?{}:t,r=n.favicon,u=(n.tagline,n.title),s=n.themeConfig.image,l=n.url,c=e.children,f=e.title,p=e.noFooter,d=e.description,v=e.image,m=e.keywords,g=(e.permalink,e.version),b=f?f+" | "+u:u,y=v||s,E=l+Object(O.a)(y),_=Object(O.a)(r),w=Object(z.h)(),C=w?"https://gnet.host"+(w.pathname.endsWith("/")?w.pathname:w.pathname+"/"):null;return i.a.createElement(V.a,null,i.a.createElement(B.a,null,i.a.createElement(a.a,null,i.a.createElement("html",{lang:"en"}),i.a.createElement("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),b&&i.a.createElement("title",null,b),b&&i.a.createElement("meta",{property:"og:title",content:b}),r&&i.a.createElement("link",{rel:"shortcut icon",href:_}),d&&i.a.createElement("meta",{name:"description",content:d}),d&&i.a.createElement("meta",{property:"og:description",content:d}),g&&i.a.createElement("meta",{name:"docsearch:version",content:g}),m&&m.length&&i.a.createElement("meta",{name:"keywords",content:m.join(",")}),y&&i.a.createElement("meta",{property:"og:image",content:E}),y&&i.a.createElement("meta",{property:"twitter:image",content:E}),y&&i.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+b}),y&&i.a.createElement("meta",{name:"twitter:site",content:"@vectordotdev"}),y&&i.a.createElement("meta",{name:"twitter:creator",content:"@vectordotdev"}),C&&i.a.createElement("meta",{property:"og:url",content:C}),i.a.createElement("meta",{name:"twitter:card",content:"summary"}),C&&i.a.createElement("link",{rel:"canonical",href:C})),i.a.createElement(o.a,null),i.a.createElement(I,null),i.a.createElement("div",{className:"main-wrapper"},c),!p&&i.a.createElement(R,null)))}},283:function(e,t,n){"use strict";(function(e){var r=n(1),i=(n(281),n(282),n(78),n(79),n(292),n(0)),o=n.n(i),a=n(293),u=n.n(a),s=n(306),l=n(52),c=n(252),f=n.n(c),p=n(301),d=n(294),h=n.n(d),v=n(253),m=n(262),g=n(136),b=n.n(g);(void 0!==e?e:window).Prism=l.a,n(295),n(296),n(297),n(298),n(299),n(300);var y=/{([\d,-]+)}/,E=/title=".*"/;t.a=function(e){var t=e.children,n=e.className,a=e.metastring,l=Object(v.a)().siteConfig.themeConfig.prism,c=void 0===l?{}:l,d=Object(i.useState)(!1),g=d[0],_=d[1],w=Object(i.useState)(!1),O=w[0],C=w[1];Object(i.useEffect)((function(){C(!0)}),[]);var A=Object(i.useRef)(null),x=Object(i.useRef)(null),k=[],S="",F=Object(m.a)().isDarkTheme,D=c.theme||p.a,I=c.darkTheme||D,j=F?I:D;if(a&&y.test(a)){var N=a.match(y)[1];k=h.a.parse(N).filter((function(e){return e>0}))}a&&E.test(a)&&(S=a.match(E)[0].split("title=")[1].replace(/"+/g,"")),Object(i.useEffect)((function(){var e;return x.current&&(e=new u.a(x.current,{target:function(){return A.current}})),function(){e&&e.destroy()}}),[x.current,A.current]);var M=n&&n.replace(/language-/,"");!M&&c.defaultLanguage&&(M=c.defaultLanguage);var L=function(){window.getSelection().empty(),_(!0),setTimeout((function(){return _(!1)}),2e3)};return o.a.createElement(s.a,Object(r.a)({},s.b,{key:O,theme:j,code:t.trim(),language:M}),(function(e){var t,n,i=e.className,a=e.style,u=e.tokens,s=e.getLineProps,l=e.getTokenProps;return o.a.createElement(o.a.Fragment,null,S&&o.a.createElement("div",{style:a,className:b.a.codeBlockTitle},S),o.a.createElement("div",{className:b.a.codeBlockContent},o.a.createElement("button",{ref:x,type:"button","aria-label":"Copy code to clipboard",className:f()(b.a.copyButton,(t={},t[b.a.copyButtonWithTitle]=S,t)),onClick:L},g?"Copied":"Copy"),o.a.createElement("pre",{className:f()(i,b.a.codeBlock,(n={},n[b.a.codeBlockWithTitle]=S,n))},o.a.createElement("div",{ref:A,className:b.a.codeBlockLines,style:a},u.map((function(e,t){1===e.length&&""===e[0].content&&(e[0].content="\n");var n=s({line:e,key:t});return k.includes(t+1)&&(n.className=n.className+" docusaurus-highlight-code-line"),o.a.createElement("div",Object(r.a)({key:t},n),e.map((function(e,t){return o.a.createElement("span",Object(r.a)({key:t},l({token:e,key:t})))})))}))))))}))}}).call(this,n(77))},291:function(e,t,n){(function(e,r){var i;(function(){var o="Expected a function",a="__lodash_placeholder__",u=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],s="[object Arguments]",l="[object Array]",c="[object Boolean]",f="[object Date]",p="[object Error]",d="[object Function]",h="[object GeneratorFunction]",v="[object Map]",m="[object Number]",g="[object Object]",b="[object RegExp]",y="[object Set]",E="[object String]",_="[object Symbol]",w="[object WeakMap]",O="[object ArrayBuffer]",C="[object DataView]",A="[object Float32Array]",x="[object Float64Array]",k="[object Int8Array]",S="[object Int16Array]",F="[object Int32Array]",D="[object Uint8Array]",I="[object Uint16Array]",j="[object Uint32Array]",N=/\b__p \+= '';/g,M=/\b(__p \+=) '' \+/g,L=/(__e\(.*?\)|\b__t\)) \+\n'';/g,P=/&(?:amp|lt|gt|quot|#39);/g,T=/[&<>"']/g,R=RegExp(P.source),B=RegExp(T.source),V=/<%-([\s\S]+?)%>/g,z=/<%([\s\S]+?)%>/g,U=/<%=([\s\S]+?)%>/g,W=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,H=/^\w*$/,$=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,G=/[\\^$.*+?()[\]{}|]/g,q=RegExp(G.source),Y=/^\s+|\s+$/g,K=/^\s+/,Z=/\s+$/,X=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,J=/\{\n\/\* \[wrapped with (.+)\] \*/,Q=/,? & /,ee=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,te=/\\(\\)?/g,ne=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,re=/\w*$/,ie=/^[-+]0x[0-9a-f]+$/i,oe=/^0b[01]+$/i,ae=/^\[object .+?Constructor\]$/,ue=/^0o[0-7]+$/i,se=/^(?:0|[1-9]\d*)$/,le=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ce=/($^)/,fe=/['\n\r\u2028\u2029\\]/g,pe="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",de="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",he="[\\ud800-\\udfff]",ve="["+de+"]",me="["+pe+"]",ge="\\d+",be="[\\u2700-\\u27bf]",ye="[a-z\\xdf-\\xf6\\xf8-\\xff]",Ee="[^\\ud800-\\udfff"+de+ge+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",_e="\\ud83c[\\udffb-\\udfff]",we="[^\\ud800-\\udfff]",Oe="(?:\\ud83c[\\udde6-\\uddff]){2}",Ce="[\\ud800-\\udbff][\\udc00-\\udfff]",Ae="[A-Z\\xc0-\\xd6\\xd8-\\xde]",xe="(?:"+ye+"|"+Ee+")",ke="(?:"+Ae+"|"+Ee+")",Se="(?:"+me+"|"+_e+")"+"?",Fe="[\\ufe0e\\ufe0f]?"+Se+("(?:\\u200d(?:"+[we,Oe,Ce].join("|")+")[\\ufe0e\\ufe0f]?"+Se+")*"),De="(?:"+[be,Oe,Ce].join("|")+")"+Fe,Ie="(?:"+[we+me+"?",me,Oe,Ce,he].join("|")+")",je=RegExp("['\u2019]","g"),Ne=RegExp(me,"g"),Me=RegExp(_e+"(?="+_e+")|"+Ie+Fe,"g"),Le=RegExp([Ae+"?"+ye+"+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?="+[ve,Ae,"$"].join("|")+")",ke+"+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?="+[ve,Ae+xe,"$"].join("|")+")",Ae+"?"+xe+"+(?:['\u2019](?:d|ll|m|re|s|t|ve))?",Ae+"+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",ge,De].join("|"),"g"),Pe=RegExp("[\\u200d\\ud800-\\udfff"+pe+"\\ufe0e\\ufe0f]"),Te=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Re=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Be=-1,Ve={};Ve[A]=Ve[x]=Ve[k]=Ve[S]=Ve[F]=Ve[D]=Ve["[object Uint8ClampedArray]"]=Ve[I]=Ve[j]=!0,Ve[s]=Ve[l]=Ve[O]=Ve[c]=Ve[C]=Ve[f]=Ve[p]=Ve[d]=Ve[v]=Ve[m]=Ve[g]=Ve[b]=Ve[y]=Ve[E]=Ve[w]=!1;var ze={};ze[s]=ze[l]=ze[O]=ze[C]=ze[c]=ze[f]=ze[A]=ze[x]=ze[k]=ze[S]=ze[F]=ze[v]=ze[m]=ze[g]=ze[b]=ze[y]=ze[E]=ze[_]=ze[D]=ze["[object Uint8ClampedArray]"]=ze[I]=ze[j]=!0,ze[p]=ze[d]=ze[w]=!1;var Ue={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},We=parseFloat,He=parseInt,$e="object"==typeof e&&e&&e.Object===Object&&e,Ge="object"==typeof self&&self&&self.Object===Object&&self,qe=$e||Ge||Function("return this")(),Ye=t&&!t.nodeType&&t,Ke=Ye&&"object"==typeof r&&r&&!r.nodeType&&r,Ze=Ke&&Ke.exports===Ye,Xe=Ze&&$e.process,Je=function(){try{var e=Ke&&Ke.require&&Ke.require("util").types;return e||Xe&&Xe.binding&&Xe.binding("util")}catch(t){}}(),Qe=Je&&Je.isArrayBuffer,et=Je&&Je.isDate,tt=Je&&Je.isMap,nt=Je&&Je.isRegExp,rt=Je&&Je.isSet,it=Je&&Je.isTypedArray;function ot(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function at(e,t,n,r){for(var i=-1,o=null==e?0:e.length;++i-1}function pt(e,t,n){for(var r=-1,i=null==e?0:e.length;++r-1;);return n}function Mt(e,t){for(var n=e.length;n--&&_t(t,e[n],0)>-1;);return n}function Lt(e,t){for(var n=e.length,r=0;n--;)e[n]===t&&++r;return r}var Pt=xt({\u00c0:"A",\u00c1:"A",\u00c2:"A",\u00c3:"A",\u00c4:"A",\u00c5:"A",\u00e0:"a",\u00e1:"a",\u00e2:"a",\u00e3:"a",\u00e4:"a",\u00e5:"a",\u00c7:"C",\u00e7:"c",\u00d0:"D",\u00f0:"d",\u00c8:"E",\u00c9:"E",\u00ca:"E",\u00cb:"E",\u00e8:"e",\u00e9:"e",\u00ea:"e",\u00eb:"e",\u00cc:"I",\u00cd:"I",\u00ce:"I",\u00cf:"I",\u00ec:"i",\u00ed:"i",\u00ee:"i",\u00ef:"i",\u00d1:"N",\u00f1:"n",\u00d2:"O",\u00d3:"O",\u00d4:"O",\u00d5:"O",\u00d6:"O",\u00d8:"O",\u00f2:"o",\u00f3:"o",\u00f4:"o",\u00f5:"o",\u00f6:"o",\u00f8:"o",\u00d9:"U",\u00da:"U",\u00db:"U",\u00dc:"U",\u00f9:"u",\u00fa:"u",\u00fb:"u",\u00fc:"u",\u00dd:"Y",\u00fd:"y",\u00ff:"y",\u00c6:"Ae",\u00e6:"ae",\u00de:"Th",\u00fe:"th",\u00df:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010a:"C",\u010c:"C",\u0107:"c",\u0109:"c",\u010b:"c",\u010d:"c",\u010e:"D",\u0110:"D",\u010f:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011a:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011b:"e",\u011c:"G",\u011e:"G",\u0120:"G",\u0122:"G",\u011d:"g",\u011f:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012a:"I",\u012c:"I",\u012e:"I",\u0130:"I",\u0129:"i",\u012b:"i",\u012d:"i",\u012f:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013b:"L",\u013d:"L",\u013f:"L",\u0141:"L",\u013a:"l",\u013c:"l",\u013e:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014a:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014b:"n",\u014c:"O",\u014e:"O",\u0150:"O",\u014d:"o",\u014f:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015a:"S",\u015c:"S",\u015e:"S",\u0160:"S",\u015b:"s",\u015d:"s",\u015f:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016a:"U",\u016c:"U",\u016e:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016b:"u",\u016d:"u",\u016f:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017b:"Z",\u017d:"Z",\u017a:"z",\u017c:"z",\u017e:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017f:"s"}),Tt=xt({"&":"&","<":"<",">":">",'"':""","'":"'"});function Rt(e){return"\\"+Ue[e]}function Bt(e){return Pe.test(e)}function Vt(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function zt(e,t){return function(n){return e(t(n))}}function Ut(e,t){for(var n=-1,r=e.length,i=0,o=[];++n",""":'"',"'":"'"});var Yt=function e(t){var n,r=(t=null==t?qe:Yt.defaults(qe.Object(),t,Yt.pick(qe,Re))).Array,i=t.Date,pe=t.Error,de=t.Function,he=t.Math,ve=t.Object,me=t.RegExp,ge=t.String,be=t.TypeError,ye=r.prototype,Ee=de.prototype,_e=ve.prototype,we=t["__core-js_shared__"],Oe=Ee.toString,Ce=_e.hasOwnProperty,Ae=0,xe=(n=/[^.]+$/.exec(we&&we.keys&&we.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",ke=_e.toString,Se=Oe.call(ve),Fe=qe._,De=me("^"+Oe.call(Ce).replace(G,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Ie=Ze?t.Buffer:void 0,Me=t.Symbol,Pe=t.Uint8Array,Ue=Ie?Ie.allocUnsafe:void 0,$e=zt(ve.getPrototypeOf,ve),Ge=ve.create,Ye=_e.propertyIsEnumerable,Ke=ye.splice,Xe=Me?Me.isConcatSpreadable:void 0,Je=Me?Me.iterator:void 0,bt=Me?Me.toStringTag:void 0,xt=function(){try{var e=Qi(ve,"defineProperty");return e({},"",{}),e}catch(t){}}(),Kt=t.clearTimeout!==qe.clearTimeout&&t.clearTimeout,Zt=i&&i.now!==qe.Date.now&&i.now,Xt=t.setTimeout!==qe.setTimeout&&t.setTimeout,Jt=he.ceil,Qt=he.floor,en=ve.getOwnPropertySymbols,tn=Ie?Ie.isBuffer:void 0,nn=t.isFinite,rn=ye.join,on=zt(ve.keys,ve),an=he.max,un=he.min,sn=i.now,ln=t.parseInt,cn=he.random,fn=ye.reverse,pn=Qi(t,"DataView"),dn=Qi(t,"Map"),hn=Qi(t,"Promise"),vn=Qi(t,"Set"),mn=Qi(t,"WeakMap"),gn=Qi(ve,"create"),bn=mn&&new mn,yn={},En=ko(pn),_n=ko(dn),wn=ko(hn),On=ko(vn),Cn=ko(mn),An=Me?Me.prototype:void 0,xn=An?An.valueOf:void 0,kn=An?An.toString:void 0;function Sn(e){if(Ha(e)&&!Na(e)&&!(e instanceof jn)){if(e instanceof In)return e;if(Ce.call(e,"__wrapped__"))return So(e)}return new In(e)}var Fn=function(){function e(){}return function(t){if(!Wa(t))return{};if(Ge)return Ge(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();function Dn(){}function In(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}function jn(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Nn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function Zn(e,t,n,r,i,o){var a,u=1&t,l=2&t,p=4&t;if(n&&(a=i?n(e,r,i,o):n(e)),void 0!==a)return a;if(!Wa(e))return e;var w=Na(e);if(w){if(a=function(e){var t=e.length,n=new e.constructor(t);t&&"string"==typeof e[0]&&Ce.call(e,"index")&&(n.index=e.index,n.input=e.input);return n}(e),!u)return gi(e,a)}else{var N=no(e),M=N==d||N==h;if(Ta(e))return fi(e,u);if(N==g||N==s||M&&!i){if(a=l||M?{}:io(e),!u)return l?function(e,t){return bi(e,to(e),t)}(e,function(e,t){return e&&bi(t,_u(t),e)}(a,e)):function(e,t){return bi(e,eo(e),t)}(e,Gn(a,e))}else{if(!ze[N])return i?e:{};a=function(e,t,n){var r=e.constructor;switch(t){case O:return pi(e);case c:case f:return new r(+e);case C:return function(e,t){var n=t?pi(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case A:case x:case k:case S:case F:case D:case"[object Uint8ClampedArray]":case I:case j:return di(e,n);case v:return new r;case m:case E:return new r(e);case b:return function(e){var t=new e.constructor(e.source,re.exec(e));return t.lastIndex=e.lastIndex,t}(e);case y:return new r;case _:return i=e,xn?ve(xn.call(i)):{}}var i}(e,N,u)}}o||(o=new Tn);var L=o.get(e);if(L)return L;o.set(e,a),Ka(e)?e.forEach((function(r){a.add(Zn(r,t,n,r,e,o))})):$a(e)&&e.forEach((function(r,i){a.set(i,Zn(r,t,n,i,e,o))}));var P=w?void 0:(p?l?Gi:$i:l?_u:Eu)(e);return ut(P||e,(function(r,i){P&&(r=e[i=r]),Wn(a,i,Zn(r,t,n,i,e,o))})),a}function Xn(e,t,n){var r=n.length;if(null==e)return!r;for(e=ve(e);r--;){var i=n[r],o=t[i],a=e[i];if(void 0===a&&!(i in e)||!o(a))return!1}return!0}function Jn(e,t,n){if("function"!=typeof e)throw new be(o);return Eo((function(){e.apply(void 0,n)}),t)}function Qn(e,t,n,r){var i=-1,o=ft,a=!0,u=e.length,s=[],l=t.length;if(!u)return s;n&&(t=dt(t,Dt(n))),r?(o=pt,a=!1):t.length>=200&&(o=jt,a=!1,t=new Pn(t));e:for(;++i-1},Mn.prototype.set=function(e,t){var n=this.__data__,r=Hn(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},Ln.prototype.clear=function(){this.size=0,this.__data__={hash:new Nn,map:new(dn||Mn),string:new Nn}},Ln.prototype.delete=function(e){var t=Xi(this,e).delete(e);return this.size-=t?1:0,t},Ln.prototype.get=function(e){return Xi(this,e).get(e)},Ln.prototype.has=function(e){return Xi(this,e).has(e)},Ln.prototype.set=function(e,t){var n=Xi(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},Pn.prototype.add=Pn.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},Pn.prototype.has=function(e){return this.__data__.has(e)},Tn.prototype.clear=function(){this.__data__=new Mn,this.size=0},Tn.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Tn.prototype.get=function(e){return this.__data__.get(e)},Tn.prototype.has=function(e){return this.__data__.has(e)},Tn.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Mn){var r=n.__data__;if(!dn||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Ln(r)}return n.set(e,t),this.size=n.size,this};var er=_i(sr),tr=_i(lr,!0);function nr(e,t){var n=!0;return er(e,(function(e,r,i){return n=!!t(e,r,i)})),n}function rr(e,t,n){for(var r=-1,i=e.length;++r0&&n(u)?t>1?or(u,t-1,n,r,i):ht(i,u):r||(i[i.length]=u)}return i}var ar=wi(),ur=wi(!0);function sr(e,t){return e&&ar(e,t,Eu)}function lr(e,t){return e&&ur(e,t,Eu)}function cr(e,t){return ct(t,(function(t){return Va(e[t])}))}function fr(e,t){for(var n=0,r=(t=ui(t,e)).length;null!=e&&nt}function vr(e,t){return null!=e&&Ce.call(e,t)}function mr(e,t){return null!=e&&t in ve(e)}function gr(e,t,n){for(var i=n?pt:ft,o=e[0].length,a=e.length,u=a,s=r(a),l=1/0,c=[];u--;){var f=e[u];u&&t&&(f=dt(f,Dt(t))),l=un(f.length,l),s[u]=!n&&(t||o>=120&&f.length>=120)?new Pn(u&&f):void 0}f=e[0];var p=-1,d=s[0];e:for(;++p=u)return s;var l=n[r];return s*("desc"==l?-1:1)}}return e.index-t.index}(e,t,n)}))}function Nr(e,t,n){for(var r=-1,i=t.length,o={};++r-1;)u!==e&&Ke.call(u,s,1),Ke.call(e,s,1);return e}function Lr(e,t){for(var n=e?t.length:0,r=n-1;n--;){var i=t[n];if(n==r||i!==o){var o=i;ao(i)?Ke.call(e,i,1):Qr(e,i)}}return e}function Pr(e,t){return e+Qt(cn()*(t-e+1))}function Tr(e,t){var n="";if(!e||t<1||t>9007199254740991)return n;do{t%2&&(n+=e),(t=Qt(t/2))&&(e+=e)}while(t);return n}function Rr(e,t){return _o(vo(e,t,Gu),e+"")}function Br(e){return Bn(Fu(e))}function Vr(e,t){var n=Fu(e);return Co(n,Kn(t,0,n.length))}function zr(e,t,n,r){if(!Wa(e))return e;for(var i=-1,o=(t=ui(t,e)).length,a=o-1,u=e;null!=u&&++io?0:o+t),(n=n>o?o:n)<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var a=r(o);++i>>1,a=e[o];null!==a&&!Xa(a)&&(n?a<=t:a=200){var l=t?null:Ti(e);if(l)return Wt(l);a=!1,i=jt,s=new Pn}else s=t?[]:u;e:for(;++r=r?e:$r(e,t,n)}var ci=Kt||function(e){return qe.clearTimeout(e)};function fi(e,t){if(t)return e.slice();var n=e.length,r=Ue?Ue(n):new e.constructor(n);return e.copy(r),r}function pi(e){var t=new e.constructor(e.byteLength);return new Pe(t).set(new Pe(e)),t}function di(e,t){var n=t?pi(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function hi(e,t){if(e!==t){var n=void 0!==e,r=null===e,i=e==e,o=Xa(e),a=void 0!==t,u=null===t,s=t==t,l=Xa(t);if(!u&&!l&&!o&&e>t||o&&a&&s&&!u&&!l||r&&a&&s||!n&&s||!i)return 1;if(!r&&!o&&!l&&e1?n[i-1]:void 0,a=i>2?n[2]:void 0;for(o=e.length>3&&"function"==typeof o?(i--,o):void 0,a&&uo(n[0],n[1],a)&&(o=i<3?void 0:o,i=1),t=ve(t);++r-1?i[o?t[a]:a]:void 0}}function ki(e){return Hi((function(t){var n=t.length,r=n,i=In.prototype.thru;for(e&&t.reverse();r--;){var a=t[r];if("function"!=typeof a)throw new be(o);if(i&&!u&&"wrapper"==Yi(a))var u=new In([],!0)}for(r=u?r:n;++r1&&y.reverse(),f&&lu))return!1;var l=o.get(e),c=o.get(t);if(l&&c)return l==t&&c==e;var f=-1,p=!0,d=2&n?new Pn:void 0;for(o.set(e,t),o.set(t,e);++f-1&&e%1==0&&e1?"& ":"")+t[r],t=t.join(n>2?", ":" "),e.replace(X,"{\n/* [wrapped with "+t+"] */\n")}(r,function(e,t){return ut(u,(function(n){var r="_."+n[0];t&n[1]&&!ft(e,r)&&e.push(r)})),e.sort()}(function(e){var t=e.match(J);return t?t[1].split(Q):[]}(r),n)))}function Oo(e){var t=0,n=0;return function(){var r=sn(),i=16-(r-n);if(n=r,i>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function Co(e,t){var n=-1,r=e.length,i=r-1;for(t=void 0===t?r:t;++n1?e[t-1]:void 0;return n="function"==typeof n?(e.pop(),n):void 0,Yo(e,n)}));function ta(e){var t=Sn(e);return t.__chain__=!0,t}function na(e,t){return t(e)}var ra=Hi((function(e){var t=e.length,n=t?e[0]:0,r=this.__wrapped__,i=function(t){return Yn(t,e)};return!(t>1||this.__actions__.length)&&r instanceof jn&&ao(n)?((r=r.slice(n,+n+(t?1:0))).__actions__.push({func:na,args:[i],thisArg:void 0}),new In(r,this.__chain__).thru((function(e){return t&&!e.length&&e.push(void 0),e}))):this.thru(i)}));var ia=yi((function(e,t,n){Ce.call(e,n)?++e[n]:qn(e,n,1)}));var oa=xi(jo),aa=xi(No);function ua(e,t){return(Na(e)?ut:er)(e,Zi(t,3))}function sa(e,t){return(Na(e)?st:tr)(e,Zi(t,3))}var la=yi((function(e,t,n){Ce.call(e,n)?e[n].push(t):qn(e,n,[t])}));var ca=Rr((function(e,t,n){var i=-1,o="function"==typeof t,a=La(e)?r(e.length):[];return er(e,(function(e){a[++i]=o?ot(t,e,n):br(e,t,n)})),a})),fa=yi((function(e,t,n){qn(e,n,t)}));function pa(e,t){return(Na(e)?dt:kr)(e,Zi(t,3))}var da=yi((function(e,t,n){e[n?0:1].push(t)}),(function(){return[[],[]]}));var ha=Rr((function(e,t){if(null==e)return[];var n=t.length;return n>1&&uo(e,t[0],t[1])?t=[]:n>2&&uo(t[0],t[1],t[2])&&(t=[t[0]]),jr(e,or(t,1),[])})),va=Zt||function(){return qe.Date.now()};function ma(e,t,n){return t=n?void 0:t,Bi(e,128,void 0,void 0,void 0,void 0,t=e&&null==t?e.length:t)}function ga(e,t){var n;if("function"!=typeof t)throw new be(o);return e=ru(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=void 0),n}}var ba=Rr((function(e,t,n){var r=1;if(n.length){var i=Ut(n,Ki(ba));r|=32}return Bi(e,r,t,n,i)})),ya=Rr((function(e,t,n){var r=3;if(n.length){var i=Ut(n,Ki(ya));r|=32}return Bi(t,r,e,n,i)}));function Ea(e,t,n){var r,i,a,u,s,l,c=0,f=!1,p=!1,d=!0;if("function"!=typeof e)throw new be(o);function h(t){var n=r,o=i;return r=i=void 0,c=t,u=e.apply(o,n)}function v(e){return c=e,s=Eo(g,t),f?h(e):u}function m(e){var n=e-l;return void 0===l||n>=t||n<0||p&&e-c>=a}function g(){var e=va();if(m(e))return b(e);s=Eo(g,function(e){var n=t-(e-l);return p?un(n,a-(e-c)):n}(e))}function b(e){return s=void 0,d&&r?h(e):(r=i=void 0,u)}function y(){var e=va(),n=m(e);if(r=arguments,i=this,l=e,n){if(void 0===s)return v(l);if(p)return ci(s),s=Eo(g,t),h(l)}return void 0===s&&(s=Eo(g,t)),u}return t=ou(t)||0,Wa(n)&&(f=!!n.leading,a=(p="maxWait"in n)?an(ou(n.maxWait)||0,t):a,d="trailing"in n?!!n.trailing:d),y.cancel=function(){void 0!==s&&ci(s),c=0,r=l=i=s=void 0},y.flush=function(){return void 0===s?u:b(va())},y}var _a=Rr((function(e,t){return Jn(e,1,t)})),wa=Rr((function(e,t,n){return Jn(e,ou(t)||0,n)}));function Oa(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new be(o);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var a=e.apply(this,r);return n.cache=o.set(i,a)||o,a};return n.cache=new(Oa.Cache||Ln),n}function Ca(e){if("function"!=typeof e)throw new be(o);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}Oa.Cache=Ln;var Aa=si((function(e,t){var n=(t=1==t.length&&Na(t[0])?dt(t[0],Dt(Zi())):dt(or(t,1),Dt(Zi()))).length;return Rr((function(r){for(var i=-1,o=un(r.length,n);++i=t})),ja=yr(function(){return arguments}())?yr:function(e){return Ha(e)&&Ce.call(e,"callee")&&!Ye.call(e,"callee")},Na=r.isArray,Ma=Qe?Dt(Qe):function(e){return Ha(e)&&dr(e)==O};function La(e){return null!=e&&Ua(e.length)&&!Va(e)}function Pa(e){return Ha(e)&&La(e)}var Ta=tn||os,Ra=et?Dt(et):function(e){return Ha(e)&&dr(e)==f};function Ba(e){if(!Ha(e))return!1;var t=dr(e);return t==p||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!qa(e)}function Va(e){if(!Wa(e))return!1;var t=dr(e);return t==d||t==h||"[object AsyncFunction]"==t||"[object Proxy]"==t}function za(e){return"number"==typeof e&&e==ru(e)}function Ua(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function Wa(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Ha(e){return null!=e&&"object"==typeof e}var $a=tt?Dt(tt):function(e){return Ha(e)&&no(e)==v};function Ga(e){return"number"==typeof e||Ha(e)&&dr(e)==m}function qa(e){if(!Ha(e)||dr(e)!=g)return!1;var t=$e(e);if(null===t)return!0;var n=Ce.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&Oe.call(n)==Se}var Ya=nt?Dt(nt):function(e){return Ha(e)&&dr(e)==b};var Ka=rt?Dt(rt):function(e){return Ha(e)&&no(e)==y};function Za(e){return"string"==typeof e||!Na(e)&&Ha(e)&&dr(e)==E}function Xa(e){return"symbol"==typeof e||Ha(e)&&dr(e)==_}var Ja=it?Dt(it):function(e){return Ha(e)&&Ua(e.length)&&!!Ve[dr(e)]};var Qa=Mi(xr),eu=Mi((function(e,t){return e<=t}));function tu(e){if(!e)return[];if(La(e))return Za(e)?Gt(e):gi(e);if(Je&&e[Je])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[Je]());var t=no(e);return(t==v?Vt:t==y?Wt:Fu)(e)}function nu(e){return e?(e=ou(e))===1/0||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function ru(e){var t=nu(e),n=t%1;return t==t?n?t-n:t:0}function iu(e){return e?Kn(ru(e),0,4294967295):0}function ou(e){if("number"==typeof e)return e;if(Xa(e))return NaN;if(Wa(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Wa(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(Y,"");var n=oe.test(e);return n||ue.test(e)?He(e.slice(2),n?2:8):ie.test(e)?NaN:+e}function au(e){return bi(e,_u(e))}function uu(e){return null==e?"":Xr(e)}var su=Ei((function(e,t){if(fo(t)||La(t))bi(t,Eu(t),e);else for(var n in t)Ce.call(t,n)&&Wn(e,n,t[n])})),lu=Ei((function(e,t){bi(t,_u(t),e)})),cu=Ei((function(e,t,n,r){bi(t,_u(t),e,r)})),fu=Ei((function(e,t,n,r){bi(t,Eu(t),e,r)})),pu=Hi(Yn);var du=Rr((function(e,t){e=ve(e);var n=-1,r=t.length,i=r>2?t[2]:void 0;for(i&&uo(t[0],t[1],i)&&(r=1);++n1),t})),bi(e,Gi(e),n),r&&(n=Zn(n,7,Ui));for(var i=t.length;i--;)Qr(n,t[i]);return n}));var Au=Hi((function(e,t){return null==e?{}:function(e,t){return Nr(e,t,(function(t,n){return mu(e,n)}))}(e,t)}));function xu(e,t){if(null==e)return{};var n=dt(Gi(e),(function(e){return[e]}));return t=Zi(t),Nr(e,n,(function(e,n){return t(e,n[0])}))}var ku=Ri(Eu),Su=Ri(_u);function Fu(e){return null==e?[]:It(e,Eu(e))}var Du=Ci((function(e,t,n){return t=t.toLowerCase(),e+(n?Iu(t):t)}));function Iu(e){return Bu(uu(e).toLowerCase())}function ju(e){return(e=uu(e))&&e.replace(le,Pt).replace(Ne,"")}var Nu=Ci((function(e,t,n){return e+(n?"-":"")+t.toLowerCase()})),Mu=Ci((function(e,t,n){return e+(n?" ":"")+t.toLowerCase()})),Lu=Oi("toLowerCase");var Pu=Ci((function(e,t,n){return e+(n?"_":"")+t.toLowerCase()}));var Tu=Ci((function(e,t,n){return e+(n?" ":"")+Bu(t)}));var Ru=Ci((function(e,t,n){return e+(n?" ":"")+t.toUpperCase()})),Bu=Oi("toUpperCase");function Vu(e,t,n){return e=uu(e),void 0===(t=n?void 0:t)?function(e){return Te.test(e)}(e)?function(e){return e.match(Le)||[]}(e):function(e){return e.match(ee)||[]}(e):e.match(t)||[]}var zu=Rr((function(e,t){try{return ot(e,void 0,t)}catch(n){return Ba(n)?n:new pe(n)}})),Uu=Hi((function(e,t){return ut(t,(function(t){t=xo(t),qn(e,t,ba(e[t],e))})),e}));function Wu(e){return function(){return e}}var Hu=ki(),$u=ki(!0);function Gu(e){return e}function qu(e){return Or("function"==typeof e?e:Zn(e,1))}var Yu=Rr((function(e,t){return function(n){return br(n,e,t)}})),Ku=Rr((function(e,t){return function(n){return br(e,n,t)}}));function Zu(e,t,n){var r=Eu(t),i=cr(t,r);null!=n||Wa(t)&&(i.length||!r.length)||(n=t,t=e,e=this,i=cr(t,Eu(t)));var o=!(Wa(n)&&"chain"in n&&!n.chain),a=Va(e);return ut(i,(function(n){var r=t[n];e[n]=r,a&&(e.prototype[n]=function(){var t=this.__chain__;if(o||t){var n=e(this.__wrapped__),i=n.__actions__=gi(this.__actions__);return i.push({func:r,args:arguments,thisArg:e}),n.__chain__=t,n}return r.apply(e,ht([this.value()],arguments))})})),e}function Xu(){}var Ju=Ii(dt),Qu=Ii(lt),es=Ii(gt);function ts(e){return so(e)?At(xo(e)):function(e){return function(t){return fr(t,e)}}(e)}var ns=Ni(),rs=Ni(!0);function is(){return[]}function os(){return!1}var as=Di((function(e,t){return e+t}),0),us=Pi("ceil"),ss=Di((function(e,t){return e/t}),1),ls=Pi("floor");var cs,fs=Di((function(e,t){return e*t}),1),ps=Pi("round"),ds=Di((function(e,t){return e-t}),0);return Sn.after=function(e,t){if("function"!=typeof t)throw new be(o);return e=ru(e),function(){if(--e<1)return t.apply(this,arguments)}},Sn.ary=ma,Sn.assign=su,Sn.assignIn=lu,Sn.assignInWith=cu,Sn.assignWith=fu,Sn.at=pu,Sn.before=ga,Sn.bind=ba,Sn.bindAll=Uu,Sn.bindKey=ya,Sn.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Na(e)?e:[e]},Sn.chain=ta,Sn.chunk=function(e,t,n){t=(n?uo(e,t,n):void 0===t)?1:an(ru(t),0);var i=null==e?0:e.length;if(!i||t<1)return[];for(var o=0,a=0,u=r(Jt(i/t));oi?0:i+n),(r=void 0===r||r>i?i:ru(r))<0&&(r+=i),r=n>r?0:iu(r);n>>0)?(e=uu(e))&&("string"==typeof t||null!=t&&!Ya(t))&&!(t=Xr(t))&&Bt(e)?li(Gt(e),0,n):e.split(t,n):[]},Sn.spread=function(e,t){if("function"!=typeof e)throw new be(o);return t=null==t?0:an(ru(t),0),Rr((function(n){var r=n[t],i=li(n,0,t);return r&&ht(i,r),ot(e,this,i)}))},Sn.tail=function(e){var t=null==e?0:e.length;return t?$r(e,1,t):[]},Sn.take=function(e,t,n){return e&&e.length?$r(e,0,(t=n||void 0===t?1:ru(t))<0?0:t):[]},Sn.takeRight=function(e,t,n){var r=null==e?0:e.length;return r?$r(e,(t=r-(t=n||void 0===t?1:ru(t)))<0?0:t,r):[]},Sn.takeRightWhile=function(e,t){return e&&e.length?ti(e,Zi(t,3),!1,!0):[]},Sn.takeWhile=function(e,t){return e&&e.length?ti(e,Zi(t,3)):[]},Sn.tap=function(e,t){return t(e),e},Sn.throttle=function(e,t,n){var r=!0,i=!0;if("function"!=typeof e)throw new be(o);return Wa(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),Ea(e,t,{leading:r,maxWait:t,trailing:i})},Sn.thru=na,Sn.toArray=tu,Sn.toPairs=ku,Sn.toPairsIn=Su,Sn.toPath=function(e){return Na(e)?dt(e,xo):Xa(e)?[e]:gi(Ao(uu(e)))},Sn.toPlainObject=au,Sn.transform=function(e,t,n){var r=Na(e),i=r||Ta(e)||Ja(e);if(t=Zi(t,4),null==n){var o=e&&e.constructor;n=i?r?new o:[]:Wa(e)&&Va(o)?Fn($e(e)):{}}return(i?ut:sr)(e,(function(e,r,i){return t(n,e,r,i)})),n},Sn.unary=function(e){return ma(e,1)},Sn.union=Ho,Sn.unionBy=$o,Sn.unionWith=Go,Sn.uniq=function(e){return e&&e.length?Jr(e):[]},Sn.uniqBy=function(e,t){return e&&e.length?Jr(e,Zi(t,2)):[]},Sn.uniqWith=function(e,t){return t="function"==typeof t?t:void 0,e&&e.length?Jr(e,void 0,t):[]},Sn.unset=function(e,t){return null==e||Qr(e,t)},Sn.unzip=qo,Sn.unzipWith=Yo,Sn.update=function(e,t,n){return null==e?e:ei(e,t,ai(n))},Sn.updateWith=function(e,t,n,r){return r="function"==typeof r?r:void 0,null==e?e:ei(e,t,ai(n),r)},Sn.values=Fu,Sn.valuesIn=function(e){return null==e?[]:It(e,_u(e))},Sn.without=Ko,Sn.words=Vu,Sn.wrap=function(e,t){return xa(ai(t),e)},Sn.xor=Zo,Sn.xorBy=Xo,Sn.xorWith=Jo,Sn.zip=Qo,Sn.zipObject=function(e,t){return ii(e||[],t||[],Wn)},Sn.zipObjectDeep=function(e,t){return ii(e||[],t||[],zr)},Sn.zipWith=ea,Sn.entries=ku,Sn.entriesIn=Su,Sn.extend=lu,Sn.extendWith=cu,Zu(Sn,Sn),Sn.add=as,Sn.attempt=zu,Sn.camelCase=Du,Sn.capitalize=Iu,Sn.ceil=us,Sn.clamp=function(e,t,n){return void 0===n&&(n=t,t=void 0),void 0!==n&&(n=(n=ou(n))==n?n:0),void 0!==t&&(t=(t=ou(t))==t?t:0),Kn(ou(e),t,n)},Sn.clone=function(e){return Zn(e,4)},Sn.cloneDeep=function(e){return Zn(e,5)},Sn.cloneDeepWith=function(e,t){return Zn(e,5,t="function"==typeof t?t:void 0)},Sn.cloneWith=function(e,t){return Zn(e,4,t="function"==typeof t?t:void 0)},Sn.conformsTo=function(e,t){return null==t||Xn(e,t,Eu(t))},Sn.deburr=ju,Sn.defaultTo=function(e,t){return null==e||e!=e?t:e},Sn.divide=ss,Sn.endsWith=function(e,t,n){e=uu(e),t=Xr(t);var r=e.length,i=n=void 0===n?r:Kn(ru(n),0,r);return(n-=t.length)>=0&&e.slice(n,i)==t},Sn.eq=Fa,Sn.escape=function(e){return(e=uu(e))&&B.test(e)?e.replace(T,Tt):e},Sn.escapeRegExp=function(e){return(e=uu(e))&&q.test(e)?e.replace(G,"\\$&"):e},Sn.every=function(e,t,n){var r=Na(e)?lt:nr;return n&&uo(e,t,n)&&(t=void 0),r(e,Zi(t,3))},Sn.find=oa,Sn.findIndex=jo,Sn.findKey=function(e,t){return yt(e,Zi(t,3),sr)},Sn.findLast=aa,Sn.findLastIndex=No,Sn.findLastKey=function(e,t){return yt(e,Zi(t,3),lr)},Sn.floor=ls,Sn.forEach=ua,Sn.forEachRight=sa,Sn.forIn=function(e,t){return null==e?e:ar(e,Zi(t,3),_u)},Sn.forInRight=function(e,t){return null==e?e:ur(e,Zi(t,3),_u)},Sn.forOwn=function(e,t){return e&&sr(e,Zi(t,3))},Sn.forOwnRight=function(e,t){return e&&lr(e,Zi(t,3))},Sn.get=vu,Sn.gt=Da,Sn.gte=Ia,Sn.has=function(e,t){return null!=e&&ro(e,t,vr)},Sn.hasIn=mu,Sn.head=Lo,Sn.identity=Gu,Sn.includes=function(e,t,n,r){e=La(e)?e:Fu(e),n=n&&!r?ru(n):0;var i=e.length;return n<0&&(n=an(i+n,0)),Za(e)?n<=i&&e.indexOf(t,n)>-1:!!i&&_t(e,t,n)>-1},Sn.indexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=null==n?0:ru(n);return i<0&&(i=an(r+i,0)),_t(e,t,i)},Sn.inRange=function(e,t,n){return t=nu(t),void 0===n?(n=t,t=0):n=nu(n),function(e,t,n){return e>=un(t,n)&&e=-9007199254740991&&e<=9007199254740991},Sn.isSet=Ka,Sn.isString=Za,Sn.isSymbol=Xa,Sn.isTypedArray=Ja,Sn.isUndefined=function(e){return void 0===e},Sn.isWeakMap=function(e){return Ha(e)&&no(e)==w},Sn.isWeakSet=function(e){return Ha(e)&&"[object WeakSet]"==dr(e)},Sn.join=function(e,t){return null==e?"":rn.call(e,t)},Sn.kebabCase=Nu,Sn.last=Bo,Sn.lastIndexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=r;return void 0!==n&&(i=(i=ru(n))<0?an(r+i,0):un(i,r-1)),t==t?function(e,t,n){for(var r=n+1;r--;)if(e[r]===t)return r;return r}(e,t,i):Et(e,Ot,i,!0)},Sn.lowerCase=Mu,Sn.lowerFirst=Lu,Sn.lt=Qa,Sn.lte=eu,Sn.max=function(e){return e&&e.length?rr(e,Gu,hr):void 0},Sn.maxBy=function(e,t){return e&&e.length?rr(e,Zi(t,2),hr):void 0},Sn.mean=function(e){return Ct(e,Gu)},Sn.meanBy=function(e,t){return Ct(e,Zi(t,2))},Sn.min=function(e){return e&&e.length?rr(e,Gu,xr):void 0},Sn.minBy=function(e,t){return e&&e.length?rr(e,Zi(t,2),xr):void 0},Sn.stubArray=is,Sn.stubFalse=os,Sn.stubObject=function(){return{}},Sn.stubString=function(){return""},Sn.stubTrue=function(){return!0},Sn.multiply=fs,Sn.nth=function(e,t){return e&&e.length?Ir(e,ru(t)):void 0},Sn.noConflict=function(){return qe._===this&&(qe._=Fe),this},Sn.noop=Xu,Sn.now=va,Sn.pad=function(e,t,n){e=uu(e);var r=(t=ru(t))?$t(e):0;if(!t||r>=t)return e;var i=(t-r)/2;return ji(Qt(i),n)+e+ji(Jt(i),n)},Sn.padEnd=function(e,t,n){e=uu(e);var r=(t=ru(t))?$t(e):0;return t&&rt){var r=e;e=t,t=r}if(n||e%1||t%1){var i=cn();return un(e+i*(t-e+We("1e-"+((i+"").length-1))),t)}return Pr(e,t)},Sn.reduce=function(e,t,n){var r=Na(e)?vt:kt,i=arguments.length<3;return r(e,Zi(t,4),n,i,er)},Sn.reduceRight=function(e,t,n){var r=Na(e)?mt:kt,i=arguments.length<3;return r(e,Zi(t,4),n,i,tr)},Sn.repeat=function(e,t,n){return t=(n?uo(e,t,n):void 0===t)?1:ru(t),Tr(uu(e),t)},Sn.replace=function(){var e=arguments,t=uu(e[0]);return e.length<3?t:t.replace(e[1],e[2])},Sn.result=function(e,t,n){var r=-1,i=(t=ui(t,e)).length;for(i||(i=1,e=void 0);++r9007199254740991)return[];var n=4294967295,r=un(e,4294967295);e-=4294967295;for(var i=Ft(r,t=Zi(t));++n=o)return e;var u=n-$t(r);if(u<1)return r;var s=a?li(a,0,u).join(""):e.slice(0,u);if(void 0===i)return s+r;if(a&&(u+=s.length-u),Ya(i)){if(e.slice(u).search(i)){var l,c=s;for(i.global||(i=me(i.source,uu(re.exec(i))+"g")),i.lastIndex=0;l=i.exec(c);)var f=l.index;s=s.slice(0,void 0===f?u:f)}}else if(e.indexOf(Xr(i),u)!=u){var p=s.lastIndexOf(i);p>-1&&(s=s.slice(0,p))}return s+r},Sn.unescape=function(e){return(e=uu(e))&&R.test(e)?e.replace(P,qt):e},Sn.uniqueId=function(e){var t=++Ae;return uu(e)+t},Sn.upperCase=Ru,Sn.upperFirst=Bu,Sn.each=ua,Sn.eachRight=sa,Sn.first=Lo,Zu(Sn,(cs={},sr(Sn,(function(e,t){Ce.call(Sn.prototype,t)||(cs[t]=e)})),cs),{chain:!1}),Sn.VERSION="4.17.19",ut(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){Sn[e].placeholder=Sn})),ut(["drop","take"],(function(e,t){jn.prototype[e]=function(n){n=void 0===n?1:an(ru(n),0);var r=this.__filtered__&&!t?new jn(this):this.clone();return r.__filtered__?r.__takeCount__=un(n,r.__takeCount__):r.__views__.push({size:un(n,4294967295),type:e+(r.__dir__<0?"Right":"")}),r},jn.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),ut(["filter","map","takeWhile"],(function(e,t){var n=t+1,r=1==n||3==n;jn.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:Zi(e,3),type:n}),t.__filtered__=t.__filtered__||r,t}})),ut(["head","last"],(function(e,t){var n="take"+(t?"Right":"");jn.prototype[e]=function(){return this[n](1).value()[0]}})),ut(["initial","tail"],(function(e,t){var n="drop"+(t?"":"Right");jn.prototype[e]=function(){return this.__filtered__?new jn(this):this[n](1)}})),jn.prototype.compact=function(){return this.filter(Gu)},jn.prototype.find=function(e){return this.filter(e).head()},jn.prototype.findLast=function(e){return this.reverse().find(e)},jn.prototype.invokeMap=Rr((function(e,t){return"function"==typeof e?new jn(this):this.map((function(n){return br(n,e,t)}))})),jn.prototype.reject=function(e){return this.filter(Ca(Zi(e)))},jn.prototype.slice=function(e,t){e=ru(e);var n=this;return n.__filtered__&&(e>0||t<0)?new jn(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),void 0!==t&&(n=(t=ru(t))<0?n.dropRight(-t):n.take(t-e)),n)},jn.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},jn.prototype.toArray=function(){return this.take(4294967295)},sr(jn.prototype,(function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),i=Sn[r?"take"+("last"==t?"Right":""):t],o=r||/^find/.test(t);i&&(Sn.prototype[t]=function(){var t=this.__wrapped__,a=r?[1]:arguments,u=t instanceof jn,s=a[0],l=u||Na(t),c=function(e){var t=i.apply(Sn,ht([e],a));return r&&f?t[0]:t};l&&n&&"function"==typeof s&&1!=s.length&&(u=l=!1);var f=this.__chain__,p=!!this.__actions__.length,d=o&&!f,h=u&&!p;if(!o&&l){t=h?t:new jn(this);var v=e.apply(t,a);return v.__actions__.push({func:na,args:[c],thisArg:void 0}),new In(v,f)}return d&&h?e.apply(this,a):(v=this.thru(c),d?r?v.value()[0]:v.value():v)})})),ut(["pop","push","shift","sort","splice","unshift"],(function(e){var t=ye[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",r=/^(?:pop|shift)$/.test(e);Sn.prototype[e]=function(){var e=arguments;if(r&&!this.__chain__){var i=this.value();return t.apply(Na(i)?i:[],e)}return this[n]((function(n){return t.apply(Na(n)?n:[],e)}))}})),sr(jn.prototype,(function(e,t){var n=Sn[t];if(n){var r=n.name+"";Ce.call(yn,r)||(yn[r]=[]),yn[r].push({name:t,func:n})}})),yn[Si(void 0,2).name]=[{name:"wrapper",func:void 0}],jn.prototype.clone=function(){var e=new jn(this.__wrapped__);return e.__actions__=gi(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=gi(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=gi(this.__views__),e},jn.prototype.reverse=function(){if(this.__filtered__){var e=new jn(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},jn.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=Na(e),r=t<0,i=n?e.length:0,o=function(e,t,n){var r=-1,i=n.length;for(;++r=this.__values__.length;return{done:e,value:e?void 0:this.__values__[this.__index__++]}},Sn.prototype.plant=function(e){for(var t,n=this;n instanceof Dn;){var r=So(n);r.__index__=0,r.__values__=void 0,t?i.__wrapped__=r:t=r;var i=r;n=n.__wrapped__}return i.__wrapped__=e,t},Sn.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof jn){var t=e;return this.__actions__.length&&(t=new jn(this)),(t=t.reverse()).__actions__.push({func:na,args:[Wo],thisArg:void 0}),new In(t,this.__chain__)}return this.thru(Wo)},Sn.prototype.toJSON=Sn.prototype.valueOf=Sn.prototype.value=function(){return ni(this.__wrapped__,this.__actions__)},Sn.prototype.first=Sn.prototype.head,Je&&(Sn.prototype[Je]=function(){return this}),Sn}();qe._=Yt,void 0===(i=function(){return Yt}.call(t,n,t,r))||(r.exports=i)}).call(this)}).call(this,n(77),n(326)(e))},318:function(e,t,n){"use strict";n.d(t,"a",(function(){return i})),n.d(t,"b",(function(){return o}));var r=n(253);function i(){var e=Object(r.a)().siteConfig,t=(void 0===e?{}:e).customFields.metadata.latest_post,n=Date.parse(t.date),i=new Date,o=Math.abs(i-n),a=Math.ceil(o/864e5),u=null;return"undefined"!=typeof window&&(u=new Date(parseInt(window.localStorage.getItem("blogViewedAt")||"0"))),a<30&&(!u||u=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(this.props,[]);return function(e){c.forEach((function(t){return delete e[t]}))}(i),i.className=this.props.inputClassName,i.id=this.state.inputId,i.style=n,a.default.createElement("div",{className:this.props.className,style:t},this.renderStyles(),a.default.createElement("input",r({},i,{ref:this.inputRef})),a.default.createElement("div",{ref:this.sizerRef,style:l},e),this.props.placeholder?a.default.createElement("div",{ref:this.placeHolderSizerRef,style:l},this.props.placeholder):null)}}]),t}(o.Component);h.propTypes={className:u.default.string,defaultValue:u.default.any,extraWidth:u.default.oneOfType([u.default.number,u.default.string]),id:u.default.string,injectStyles:u.default.bool,inputClassName:u.default.string,inputRef:u.default.func,inputStyle:u.default.object,minWidth:u.default.oneOfType([u.default.number,u.default.string]),onAutosize:u.default.func,onChange:u.default.func,placeholder:u.default.string,placeholderIsMinWidth:u.default.bool,style:u.default.object,value:u.default.any},h.defaultProps={minWidth:1,injectStyles:!0},t.default=h},383:function(e,t,n){"use strict";var r=n(384),i=n(58);function o(e,t){return t.encode?t.strict?r(e):encodeURIComponent(e):e}t.extract=function(e){return e.split("?")[1]||""},t.parse=function(e,t){var n=function(e){var t;switch(e.arrayFormat){case"index":return function(e,n,r){t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===r[e]&&(r[e]={}),r[e][t[1]]=n):r[e]=n};case"bracket":return function(e,n,r){t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==r[e]?r[e]=[].concat(r[e],n):r[e]=[n]:r[e]=n};default:return function(e,t,n){void 0!==n[e]?n[e]=[].concat(n[e],t):n[e]=t}}}(t=i({arrayFormat:"none"},t)),r=Object.create(null);return"string"!=typeof e?r:(e=e.trim().replace(/^(\?|#|&)/,""))?(e.split("&").forEach((function(e){var t=e.replace(/\+/g," ").split("="),i=t.shift(),o=t.length>0?t.join("="):void 0;o=void 0===o?null:decodeURIComponent(o),n(decodeURIComponent(i),o,r)})),Object.keys(r).sort().reduce((function(e,t){var n=r[t];return Boolean(n)&&"object"==typeof n&&!Array.isArray(n)?e[t]=function e(t){return Array.isArray(t)?t.sort():"object"==typeof t?e(Object.keys(t)).sort((function(e,t){return Number(e)-Number(t)})).map((function(e){return t[e]})):t}(n):e[t]=n,e}),Object.create(null))):r},t.stringify=function(e,t){var n=function(e){switch(e.arrayFormat){case"index":return function(t,n,r){return null===n?[o(t,e),"[",r,"]"].join(""):[o(t,e),"[",o(r,e),"]=",o(n,e)].join("")};case"bracket":return function(t,n){return null===n?o(t,e):[o(t,e),"[]=",o(n,e)].join("")};default:return function(t,n){return null===n?o(t,e):[o(t,e),"=",o(n,e)].join("")}}}(t=i({encode:!0,strict:!0,arrayFormat:"none"},t));return e?Object.keys(e).sort().map((function(r){var i=e[r];if(void 0===i)return"";if(null===i)return o(r,t);if(Array.isArray(i)){var a=[];return i.slice().forEach((function(e){void 0!==e&&a.push(n(r,e,a.length))})),a.join("&")}return o(r,t)+"="+o(i,t)})).filter((function(e){return e.length>0})).join("&"):""}},384:function(e,t,n){"use strict";e.exports=function(e){return encodeURIComponent(e).replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}}}]); \ No newline at end of file +/*! For license information please see c4f5d8e4.a9e9690b.js.LICENSE.txt */ +(window.webpackJsonp=window.webpackJsonp||[]).push([[81,4],{246:function(e,t,n){"use strict";n.r(t);var r=n(1),i=n(0),o=n.n(i),a=n(264),u=n(259),s=n(283),l=n(254),c=n(256),f=n.n(c);var p=function(e){return o.a.createElement(o.a.Fragment,null,e.children)};n(327),n(260),n(53),n(26),n(20),n(19);function d(e,t){if(e.length!==t.length)return!1;for(var n=0;nr&&(r=(t=t.trim()).charCodeAt(0)),r){case 38:return t.replace(v,"$1"+e.trim());case 58:return e.trim()+t.replace(v,"$1"+e.trim());default:if(0<1*n&&0s.charCodeAt(8))break;case 115:a=a.replace(s,"-webkit-"+s)+";"+a;break;case 207:case 102:a=a.replace(s,"-webkit-"+(102u.charCodeAt(0)&&(u=u.trim()),u=[u],0d)&&(B=(U=U.replace(" ",":")).length),0=4;++r,i-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(i){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)},k={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};var S=/[A-Z]|^ms/g,F=/_EMO_([^_]+?)_([^]*?)_EMO_/g,D=function(e){return 45===e.charCodeAt(1)},I=function(e){return null!=e&&"boolean"!=typeof e},j=function(e){var t={};return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}((function(e){return D(e)?e:e.replace(S,"-$&").toLowerCase()})),N=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(F,(function(e,t,n){return L={name:t,styles:n,next:L},t}))}return 1===k[e]||D(e)||"number"!=typeof t||0===t?t:t+"px"};function M(e,t,n,r){if(null==n)return"";if(void 0!==n.__emotion_styles)return n;switch(typeof n){case"boolean":return"";case"object":if(1===n.anim)return L={name:n.name,styles:n.styles,next:L},n.name;if(void 0!==n.styles){var i=n.next;if(void 0!==i)for(;void 0!==i;)L={name:i.name,styles:i.styles,next:L},i=i.next;return n.styles+";"}return function(e,t,n){var r="";if(Array.isArray(n))for(var i=0;i-1}function oe(e){return ie(e)?window.pageYOffset:e.scrollTop}function ae(e,t){ie(e)?window.scrollTo(0,t):e.scrollTop=t}function ue(e,t,n,r){void 0===n&&(n=200),void 0===r&&(r=ee);var i=oe(e),o=t-i,a=0;!function t(){var u,s=o*((u=(u=a+=10)/n-1)*u*u+1)+i;ae(e,s),a=d)return{placement:"bottom",maxHeight:t};if(O>=d&&!a)return o&&ue(s,C,160),{placement:"bottom",maxHeight:t};if(!a&&O>=r||a&&_>=r)return o&&ue(s,C,160),{placement:"bottom",maxHeight:a?_-b:O-b};if("auto"===i||a){var x=t,k=a?E:w;return k>=r&&(x=Math.min(k-b-u.controlHeight,t)),{placement:"top",maxHeight:x}}if("bottom"===i)return ae(s,C),{placement:"bottom",maxHeight:t};break;case"top":if(E>=d)return{placement:"top",maxHeight:t};if(w>=d&&!a)return o&&ue(s,A,160),{placement:"top",maxHeight:t};if(!a&&w>=r||a&&E>=r){var S=t;return(!a&&w>=r||a&&E>=r)&&(S=a?E-y:w-y),o&&ue(s,A,160),{placement:"top",maxHeight:S}}return{placement:"bottom",maxHeight:t};default:throw new Error('Invalid placement provided "'+i+'".')}return l}var he=function(e){return"auto"===e?"bottom":e},ve=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),i=0;i=0||(i[n]=e[n]);return i}(e,["size"]);return q("svg",Se({height:t,width:t,viewBox:"0 0 20 20","aria-hidden":"true",focusable:"false",css:Fe},n))},Ie=function(e){return q(De,Se({size:20},e),q("path",{d:"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z"}))},je=function(e){return q(De,Se({size:20},e),q("path",{d:"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"}))},Ne=function(e){var t=e.isFocused,n=e.theme,r=n.spacing.baseUnit,i=n.colors;return{label:"indicatorContainer",color:t?i.neutral60:i.neutral20,display:"flex",padding:2*r,transition:"color 150ms",":hover":{color:t?i.neutral80:i.neutral40}}},Me=Ne,Le=Ne,Pe=function(){var e=R.apply(void 0,arguments),t="animation-"+e.name;return{name:t,styles:"@keyframes "+t+"{"+e.styles+"}",anim:1,toString:function(){return"_EMO_"+this.name+"_"+this.styles+"_EMO_"}}}(ke()),Te=function(e){var t=e.delay,n=e.offset;return q("span",{css:R({animation:Pe+" 1s ease-in-out "+t+"ms infinite;",backgroundColor:"currentColor",borderRadius:"1em",display:"inline-block",marginLeft:n?"1em":null,height:"1em",verticalAlign:"top",width:"1em"},"")})},Re=function(e){var t=e.className,n=e.cx,r=e.getStyles,i=e.innerProps,o=e.isRtl;return q("div",Se({},i,{css:r("loadingIndicator",e),className:n({indicator:!0,"loading-indicator":!0},t)}),q(Te,{delay:0,offset:o}),q(Te,{delay:160,offset:!0}),q(Te,{delay:320,offset:!o}))};function Be(){return(Be=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,["className","cx","getStyles","theme","selectProps"]));return q("div",Ve({css:r("groupHeading",Ve({theme:i},o)),className:n({"group-heading":!0},t)},o))},IndicatorsContainer:function(e){var t=e.children,n=e.className,r=e.cx,i=e.getStyles;return q("div",{css:i("indicatorsContainer",e),className:r({indicators:!0},n)},t)},IndicatorSeparator:function(e){var t=e.className,n=e.cx,r=e.getStyles,i=e.innerProps;return q("span",Se({},i,{css:r("indicatorSeparator",e),className:n({"indicator-separator":!0},t)}))},Input:function(e){var t=e.className,n=e.cx,r=e.getStyles,i=e.innerRef,o=e.isHidden,a=e.isDisabled,u=e.theme,s=(e.selectProps,function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}(e,["className","cx","getStyles","innerRef","isHidden","isDisabled","theme","selectProps"]));return q("div",{css:r("input",ze({theme:u},s))},q(ce.a,ze({className:n({input:!0},t),inputRef:i,inputStyle:Ue(o),disabled:a},s)))},LoadingIndicator:Re,Menu:function(e){var t=e.children,n=e.className,r=e.cx,i=e.getStyles,o=e.innerRef,a=e.innerProps;return q("div",fe({css:i("menu",e),className:r({menu:!0},n)},a,{ref:o}),t)},MenuList:function(e){var t=e.children,n=e.className,r=e.cx,i=e.getStyles,o=e.isMulti,a=e.innerRef;return q("div",{css:i("menuList",e),className:r({"menu-list":!0,"menu-list--is-multi":o},n),ref:a},t)},MenuPortal:_e,LoadingMessage:Ee,NoOptionsMessage:ye,MultiValue:qe,MultiValueContainer:$e,MultiValueLabel:Ge,MultiValueRemove:function(e){var t=e.children,n=e.innerProps;return q("div",n,t||q(Ie,{size:14}))},Option:function(e){var t=e.children,n=e.className,r=e.cx,i=e.getStyles,o=e.isDisabled,a=e.isFocused,u=e.isSelected,s=e.innerRef,l=e.innerProps;return q("div",Ye({css:i("option",e),className:r({option:!0,"option--is-disabled":o,"option--is-focused":a,"option--is-selected":u},n),ref:s},l),t)},Placeholder:function(e){var t=e.children,n=e.className,r=e.cx,i=e.getStyles,o=e.innerProps;return q("div",Ke({css:i("placeholder",e),className:r({placeholder:!0},n)},o),t)},SelectContainer:function(e){var t=e.children,n=e.className,r=e.cx,i=e.getStyles,o=e.innerProps,a=e.isDisabled,u=e.isRtl;return q("div",xe({css:i("container",e),className:r({"--is-disabled":a,"--is-rtl":u},n)},o),t)},SingleValue:function(e){var t=e.children,n=e.className,r=e.cx,i=e.getStyles,o=e.isDisabled,a=e.innerProps;return q("div",Ze({css:i("singleValue",e),className:r({"single-value":!0,"single-value--is-disabled":o},n)},a),t)},ValueContainer:function(e){var t=e.children,n=e.className,r=e.cx,i=e.isMulti,o=e.getStyles,a=e.hasValue;return q("div",{css:o("valueContainer",e),className:r({"value-container":!0,"value-container--is-multi":i,"value-container--has-value":a},n)},t)}},Qe=[{base:"A",letters:/[\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F]/g},{base:"AA",letters:/[\uA732]/g},{base:"AE",letters:/[\u00C6\u01FC\u01E2]/g},{base:"AO",letters:/[\uA734]/g},{base:"AU",letters:/[\uA736]/g},{base:"AV",letters:/[\uA738\uA73A]/g},{base:"AY",letters:/[\uA73C]/g},{base:"B",letters:/[\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181]/g},{base:"C",letters:/[\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E]/g},{base:"D",letters:/[\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779]/g},{base:"DZ",letters:/[\u01F1\u01C4]/g},{base:"Dz",letters:/[\u01F2\u01C5]/g},{base:"E",letters:/[\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E]/g},{base:"F",letters:/[\u0046\u24BB\uFF26\u1E1E\u0191\uA77B]/g},{base:"G",letters:/[\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E]/g},{base:"H",letters:/[\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D]/g},{base:"I",letters:/[\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197]/g},{base:"J",letters:/[\u004A\u24BF\uFF2A\u0134\u0248]/g},{base:"K",letters:/[\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2]/g},{base:"L",letters:/[\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780]/g},{base:"LJ",letters:/[\u01C7]/g},{base:"Lj",letters:/[\u01C8]/g},{base:"M",letters:/[\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C]/g},{base:"N",letters:/[\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4]/g},{base:"NJ",letters:/[\u01CA]/g},{base:"Nj",letters:/[\u01CB]/g},{base:"O",letters:/[\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u00D6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C]/g},{base:"OI",letters:/[\u01A2]/g},{base:"OO",letters:/[\uA74E]/g},{base:"OU",letters:/[\u0222]/g},{base:"P",letters:/[\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754]/g},{base:"Q",letters:/[\u0051\u24C6\uFF31\uA756\uA758\u024A]/g},{base:"R",letters:/[\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782]/g},{base:"S",letters:/[\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784]/g},{base:"T",letters:/[\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786]/g},{base:"TZ",letters:/[\uA728]/g},{base:"U",letters:/[\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u00DC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244]/g},{base:"V",letters:/[\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245]/g},{base:"VY",letters:/[\uA760]/g},{base:"W",letters:/[\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72]/g},{base:"X",letters:/[\u0058\u24CD\uFF38\u1E8A\u1E8C]/g},{base:"Y",letters:/[\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE]/g},{base:"Z",letters:/[\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762]/g},{base:"a",letters:/[\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250]/g},{base:"aa",letters:/[\uA733]/g},{base:"ae",letters:/[\u00E6\u01FD\u01E3]/g},{base:"ao",letters:/[\uA735]/g},{base:"au",letters:/[\uA737]/g},{base:"av",letters:/[\uA739\uA73B]/g},{base:"ay",letters:/[\uA73D]/g},{base:"b",letters:/[\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253]/g},{base:"c",letters:/[\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184]/g},{base:"d",letters:/[\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A]/g},{base:"dz",letters:/[\u01F3\u01C6]/g},{base:"e",letters:/[\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD]/g},{base:"f",letters:/[\u0066\u24D5\uFF46\u1E1F\u0192\uA77C]/g},{base:"g",letters:/[\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F]/g},{base:"h",letters:/[\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265]/g},{base:"hv",letters:/[\u0195]/g},{base:"i",letters:/[\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131]/g},{base:"j",letters:/[\u006A\u24D9\uFF4A\u0135\u01F0\u0249]/g},{base:"k",letters:/[\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3]/g},{base:"l",letters:/[\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747]/g},{base:"lj",letters:/[\u01C9]/g},{base:"m",letters:/[\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F]/g},{base:"n",letters:/[\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5]/g},{base:"nj",letters:/[\u01CC]/g},{base:"o",letters:/[\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275]/g},{base:"oi",letters:/[\u01A3]/g},{base:"ou",letters:/[\u0223]/g},{base:"oo",letters:/[\uA74F]/g},{base:"p",letters:/[\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755]/g},{base:"q",letters:/[\u0071\u24E0\uFF51\u024B\uA757\uA759]/g},{base:"r",letters:/[\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783]/g},{base:"s",letters:/[\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B]/g},{base:"t",letters:/[\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787]/g},{base:"tz",letters:/[\uA729]/g},{base:"u",letters:/[\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289]/g},{base:"v",letters:/[\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C]/g},{base:"vy",letters:/[\uA761]/g},{base:"w",letters:/[\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73]/g},{base:"x",letters:/[\u0078\u24E7\uFF58\u1E8B\u1E8D]/g},{base:"y",letters:/[\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF]/g},{base:"z",letters:/[\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763]/g}],et=function(e){for(var t=0;t=0||(i[n]=e[n]);return i}(e,["in","out","onExited","appear","enter","exit","innerRef","emotion"]));return q("input",ut({ref:t},n,{css:R({label:"dummyInput",background:0,border:0,fontSize:"inherit",outline:0,padding:0,width:1,color:"transparent",left:-100,opacity:0,position:"relative",transform:"scale(0)"},"")}))}var lt=function(e){var t,n;function r(){return e.apply(this,arguments)||this}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var i=r.prototype;return i.componentDidMount=function(){this.props.innerRef(Object(X.findDOMNode)(this))},i.componentWillUnmount=function(){this.props.innerRef(null)},i.render=function(){return this.props.children},r}(i.Component),ct=["boxSizing","height","overflow","paddingRight","position"],ft={boxSizing:"border-box",overflow:"hidden",position:"relative",height:"100%"};function pt(e){e.preventDefault()}function dt(e){e.stopPropagation()}function ht(){var e=this.scrollTop,t=this.scrollHeight,n=e+this.offsetHeight;0===e?this.scrollTop=1:n===t&&(this.scrollTop=e-1)}function vt(){return"ontouchstart"in window||navigator.maxTouchPoints}var mt=!(!window.document||!window.document.createElement),gt=0,bt=function(e){var t,n;function r(){for(var t,n=arguments.length,r=new Array(n),i=0;i0,h=c-f-l,v=!1;h>n&&t.isBottom&&(o&&o(e),t.isBottom=!1),d&&t.isTop&&(u&&u(e),t.isTop=!1),d&&n>h?(i&&!t.isBottom&&i(e),p.scrollTop=c,v=!0,t.isBottom=!0):!d&&-n>l&&(a&&!t.isTop&&a(e),p.scrollTop=0,v=!0,t.isTop=!0),v&&t.cancelScroll(e)},t.onWheel=function(e){t.handleEventDelta(e,e.deltaY)},t.onTouchStart=function(e){t.touchStart=e.changedTouches[0].clientY},t.onTouchMove=function(e){var n=t.touchStart-e.changedTouches[0].clientY;t.handleEventDelta(e,n)},t.getScrollTarget=function(e){t.scrollTarget=e},t}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var i=r.prototype;return i.componentDidMount=function(){this.startListening(this.scrollTarget)},i.componentWillUnmount=function(){this.stopListening(this.scrollTarget)},i.startListening=function(e){e&&("function"==typeof e.addEventListener&&e.addEventListener("wheel",this.onWheel,!1),"function"==typeof e.addEventListener&&e.addEventListener("touchstart",this.onTouchStart,!1),"function"==typeof e.addEventListener&&e.addEventListener("touchmove",this.onTouchMove,!1))},i.stopListening=function(e){"function"==typeof e.removeEventListener&&e.removeEventListener("wheel",this.onWheel,!1),"function"==typeof e.removeEventListener&&e.removeEventListener("touchstart",this.onTouchStart,!1),"function"==typeof e.removeEventListener&&e.removeEventListener("touchmove",this.onTouchMove,!1)},i.render=function(){return o.a.createElement(lt,{innerRef:this.getScrollTarget},this.props.children)},r}(i.Component);function wt(e){var t=e.isEnabled,n=void 0===t||t,r=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}(e,["isEnabled"]);return n?o.a.createElement(_t,r):r.children}var Ot=function(e,t){void 0===t&&(t={});var n=t,r=n.isSearchable,i=n.isMulti,o=n.label,a=n.isDisabled;switch(e){case"menu":return"Use Up and Down to choose options"+(a?"":", press Enter to select the currently focused option")+", press Escape to exit the menu, press Tab to select the option and exit the menu.";case"input":return(o||"Select")+" is focused "+(r?",type to refine list":"")+", press Down to open the menu, "+(i?" press left to focus selected values":"");case"value":return"Use left and right to toggle between focused values, press Backspace to remove the currently focused value"}},Ct=function(e,t){var n=t.value,r=t.isDisabled;if(n)switch(e){case"deselect-option":case"pop-value":case"remove-value":return"option "+n+", deselected.";case"select-option":return r?"option "+n+" is disabled. Select another option.":"option "+n+", selected."}},At=function(e){return!!e.isDisabled};var xt={clearIndicator:Le,container:function(e){var t=e.isDisabled;return{label:"container",direction:e.isRtl?"rtl":null,pointerEvents:t?"none":null,position:"relative"}},control:function(e){var t=e.isDisabled,n=e.isFocused,r=e.theme,i=r.colors,o=r.borderRadius,a=r.spacing;return{label:"control",alignItems:"center",backgroundColor:t?i.neutral5:i.neutral0,borderColor:t?i.neutral10:n?i.primary:i.neutral20,borderRadius:o,borderStyle:"solid",borderWidth:1,boxShadow:n?"0 0 0 1px "+i.primary:null,cursor:"default",display:"flex",flexWrap:"wrap",justifyContent:"space-between",minHeight:a.controlHeight,outline:"0 !important",position:"relative",transition:"all 100ms","&:hover":{borderColor:n?i.primary:i.neutral30}}},dropdownIndicator:Me,group:function(e){var t=e.theme.spacing;return{paddingBottom:2*t.baseUnit,paddingTop:2*t.baseUnit}},groupHeading:function(e){var t=e.theme.spacing;return{label:"group",color:"#999",cursor:"default",display:"block",fontSize:"75%",fontWeight:"500",marginBottom:"0.25em",paddingLeft:3*t.baseUnit,paddingRight:3*t.baseUnit,textTransform:"uppercase"}},indicatorsContainer:function(){return{alignItems:"center",alignSelf:"stretch",display:"flex",flexShrink:0}},indicatorSeparator:function(e){var t=e.isDisabled,n=e.theme,r=n.spacing.baseUnit,i=n.colors;return{label:"indicatorSeparator",alignSelf:"stretch",backgroundColor:t?i.neutral10:i.neutral20,marginBottom:2*r,marginTop:2*r,width:1}},input:function(e){var t=e.isDisabled,n=e.theme,r=n.spacing,i=n.colors;return{margin:r.baseUnit/2,paddingBottom:r.baseUnit/2,paddingTop:r.baseUnit/2,visibility:t?"hidden":"visible",color:i.neutral80}},loadingIndicator:function(e){var t=e.isFocused,n=e.size,r=e.theme,i=r.colors,o=r.spacing.baseUnit;return{label:"loadingIndicator",color:t?i.neutral60:i.neutral20,display:"flex",padding:2*o,transition:"color 150ms",alignSelf:"center",fontSize:n,lineHeight:1,marginRight:n,textAlign:"center",verticalAlign:"middle"}},loadingMessage:be,menu:function(e){var t,n=e.placement,r=e.theme,i=r.borderRadius,o=r.spacing,a=r.colors;return(t={label:"menu"})[function(e){return e?{bottom:"top",top:"bottom"}[e]:"bottom"}(n)]="100%",t.backgroundColor=a.neutral0,t.borderRadius=i,t.boxShadow="0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)",t.marginBottom=o.menuGutter,t.marginTop=o.menuGutter,t.position="absolute",t.width="100%",t.zIndex=1,t},menuList:function(e){var t=e.maxHeight,n=e.theme.spacing.baseUnit;return{maxHeight:t,overflowY:"auto",paddingBottom:n,paddingTop:n,position:"relative",WebkitOverflowScrolling:"touch"}},menuPortal:function(e){var t=e.rect,n=e.offset,r=e.position;return{left:t.left,position:r,top:n,width:t.width,zIndex:1}},multiValue:function(e){var t=e.theme,n=t.spacing,r=t.borderRadius;return{label:"multiValue",backgroundColor:t.colors.neutral10,borderRadius:r/2,display:"flex",margin:n.baseUnit/2,minWidth:0}},multiValueLabel:function(e){var t=e.theme,n=t.borderRadius,r=t.colors,i=e.cropWithEllipsis;return{borderRadius:n/2,color:r.neutral80,fontSize:"85%",overflow:"hidden",padding:3,paddingLeft:6,textOverflow:i?"ellipsis":null,whiteSpace:"nowrap"}},multiValueRemove:function(e){var t=e.theme,n=t.spacing,r=t.borderRadius,i=t.colors;return{alignItems:"center",borderRadius:r/2,backgroundColor:e.isFocused&&i.dangerLight,display:"flex",paddingLeft:n.baseUnit,paddingRight:n.baseUnit,":hover":{backgroundColor:i.dangerLight,color:i.danger}}},noOptionsMessage:ge,option:function(e){var t=e.isDisabled,n=e.isFocused,r=e.isSelected,i=e.theme,o=i.spacing,a=i.colors;return{label:"option",backgroundColor:r?a.primary:n?a.primary25:"transparent",color:t?a.neutral20:r?a.neutral0:"inherit",cursor:"default",display:"block",fontSize:"inherit",padding:2*o.baseUnit+"px "+3*o.baseUnit+"px",width:"100%",userSelect:"none",WebkitTapHighlightColor:"rgba(0, 0, 0, 0)",":active":{backgroundColor:!t&&(r?a.primary:a.primary50)}}},placeholder:function(e){var t=e.theme,n=t.spacing;return{label:"placeholder",color:t.colors.neutral50,marginLeft:n.baseUnit/2,marginRight:n.baseUnit/2,position:"absolute",top:"50%",transform:"translateY(-50%)"}},singleValue:function(e){var t=e.isDisabled,n=e.theme,r=n.spacing,i=n.colors;return{label:"singleValue",color:t?i.neutral40:i.neutral80,marginLeft:r.baseUnit/2,marginRight:r.baseUnit/2,maxWidth:"calc(100% - "+2*r.baseUnit+"px)",overflow:"hidden",position:"absolute",textOverflow:"ellipsis",whiteSpace:"nowrap",top:"50%",transform:"translateY(-50%)"}},valueContainer:function(e){var t=e.theme.spacing;return{alignItems:"center",display:"flex",flex:1,flexWrap:"wrap",padding:t.baseUnit/2+"px "+2*t.baseUnit+"px",WebkitOverflowScrolling:"touch",position:"relative",overflow:"hidden"}}};var kt={borderRadius:4,colors:{primary:"#2684FF",primary75:"#4C9AFF",primary50:"#B2D4FF",primary25:"#DEEBFF",danger:"#DE350B",dangerLight:"#FFBDAD",neutral0:"hsl(0, 0%, 100%)",neutral5:"hsl(0, 0%, 95%)",neutral10:"hsl(0, 0%, 90%)",neutral20:"hsl(0, 0%, 80%)",neutral30:"hsl(0, 0%, 70%)",neutral40:"hsl(0, 0%, 60%)",neutral50:"hsl(0, 0%, 50%)",neutral60:"hsl(0, 0%, 40%)",neutral70:"hsl(0, 0%, 30%)",neutral80:"hsl(0, 0%, 20%)",neutral90:"hsl(0, 0%, 10%)"},spacing:{baseUnit:4,controlHeight:38,menuGutter:8}};function St(){return(St=Object.assign||function(e){for(var t=1;t-1},formatGroupLabel:function(e){return e.label},getOptionLabel:function(e){return e.label},getOptionValue:function(e){return e.value},isDisabled:!1,isLoading:!1,isMulti:!1,isRtl:!1,isSearchable:!0,isOptionDisabled:At,loadingMessage:function(){return"Loading..."},maxMenuHeight:300,minMenuHeight:140,menuIsOpen:!1,menuPlacement:"bottom",menuPosition:"absolute",menuShouldBlockScroll:!1,menuShouldScrollIntoView:!function(){try{return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}catch(e){return!1}}(),noOptionsMessage:function(){return"No options"},openMenuOnFocus:!1,openMenuOnClick:!0,options:[],pageSize:5,placeholder:"Select...",screenReaderStatus:function(e){var t=e.count;return t+" result"+(1!==t?"s":"")+" available"},styles:{},tabIndex:"0",tabSelectsValue:!0},jt=1,Nt=function(e){var t,n;function r(t){var n;(n=e.call(this,t)||this).state={ariaLiveSelection:"",ariaLiveContext:"",focusedOption:null,focusedValue:null,inputIsHidden:!1,isFocused:!1,menuOptions:{render:[],focusable:[]},selectValue:[]},n.blockOptionHover=!1,n.isComposing=!1,n.clearFocusValueOnUpdate=!1,n.commonProps=void 0,n.components=void 0,n.hasGroups=!1,n.initialTouchX=0,n.initialTouchY=0,n.inputIsHiddenAfterUpdate=void 0,n.instancePrefix="",n.openAfterFocus=!1,n.scrollToFocusedOptionOnUpdate=!1,n.userIsDragging=void 0,n.controlRef=null,n.getControlRef=function(e){n.controlRef=e},n.focusedOptionRef=null,n.getFocusedOptionRef=function(e){n.focusedOptionRef=e},n.menuListRef=null,n.getMenuListRef=function(e){n.menuListRef=e},n.inputRef=null,n.getInputRef=function(e){n.inputRef=e},n.cacheComponents=function(e){n.components=Xe({},Je,{components:e}.components)},n.focus=n.focusInput,n.blur=n.blurInput,n.onChange=function(e,t){var r=n.props;(0,r.onChange)(e,St({},t,{name:r.name}))},n.setValue=function(e,t,r){void 0===t&&(t="set-value");var i=n.props,o=i.closeMenuOnSelect,a=i.isMulti;n.onInputChange("",{action:"set-value"}),o&&(n.inputIsHiddenAfterUpdate=!a,n.onMenuClose()),n.clearFocusValueOnUpdate=!0,n.onChange(e,{action:t,option:r})},n.selectOption=function(e){var t=n.props,r=t.blurInputOnSelect,i=t.isMulti,o=n.state.selectValue;if(i)if(n.isOptionSelected(e,o)){var a=n.getOptionValue(e);n.setValue(o.filter((function(e){return n.getOptionValue(e)!==a})),"deselect-option",e),n.announceAriaLiveSelection({event:"deselect-option",context:{value:n.getOptionLabel(e)}})}else n.isOptionDisabled(e,o)?n.announceAriaLiveSelection({event:"select-option",context:{value:n.getOptionLabel(e),isDisabled:!0}}):(n.setValue([].concat(o,[e]),"select-option",e),n.announceAriaLiveSelection({event:"select-option",context:{value:n.getOptionLabel(e)}}));else n.isOptionDisabled(e,o)?n.announceAriaLiveSelection({event:"select-option",context:{value:n.getOptionLabel(e),isDisabled:!0}}):(n.setValue(e,"select-option"),n.announceAriaLiveSelection({event:"select-option",context:{value:n.getOptionLabel(e)}}));r&&n.blurInput()},n.removeValue=function(e){var t=n.state.selectValue,r=n.getOptionValue(e),i=t.filter((function(e){return n.getOptionValue(e)!==r}));n.onChange(i.length?i:null,{action:"remove-value",removedValue:e}),n.announceAriaLiveSelection({event:"remove-value",context:{value:e?n.getOptionLabel(e):""}}),n.focusInput()},n.clearValue=function(){var e=n.props.isMulti;n.onChange(e?[]:null,{action:"clear"})},n.popValue=function(){var e=n.state.selectValue,t=e[e.length-1],r=e.slice(0,e.length-1);n.announceAriaLiveSelection({event:"pop-value",context:{value:t?n.getOptionLabel(t):""}}),n.onChange(r.length?r:null,{action:"pop-value",removedValue:t})},n.getOptionLabel=function(e){return n.props.getOptionLabel(e)},n.getOptionValue=function(e){return n.props.getOptionValue(e)},n.getStyles=function(e,t){var r=xt[e](t);r.boxSizing="border-box";var i=n.props.styles[e];return i?i(r,t):r},n.getElementId=function(e){return n.instancePrefix+"-"+e},n.getActiveDescendentId=function(){var e=n.props.menuIsOpen,t=n.state,r=t.menuOptions,i=t.focusedOption;if(i&&e){var o=r.focusable.indexOf(i),a=r.render[o];return a&&a.key}},n.announceAriaLiveSelection=function(e){var t=e.event,r=e.context;n.setState({ariaLiveSelection:Ct(t,r)})},n.announceAriaLiveContext=function(e){var t=e.event,r=e.context;n.setState({ariaLiveContext:Ot(t,St({},r,{label:n.props["aria-label"]}))})},n.onMenuMouseDown=function(e){0===e.button&&(e.stopPropagation(),e.preventDefault(),n.focusInput())},n.onMenuMouseMove=function(e){n.blockOptionHover=!1},n.onControlMouseDown=function(e){var t=n.props.openMenuOnClick;n.state.isFocused?n.props.menuIsOpen?"INPUT"!==e.target.tagName&&"TEXTAREA"!==e.target.tagName&&n.onMenuClose():t&&n.openMenu("first"):(t&&(n.openAfterFocus=!0),n.focusInput()),"INPUT"!==e.target.tagName&&"TEXTAREA"!==e.target.tagName&&e.preventDefault()},n.onDropdownIndicatorMouseDown=function(e){if(!(e&&"mousedown"===e.type&&0!==e.button||n.props.isDisabled)){var t=n.props,r=t.isMulti,i=t.menuIsOpen;n.focusInput(),i?(n.inputIsHiddenAfterUpdate=!r,n.onMenuClose()):n.openMenu("first"),e.preventDefault(),e.stopPropagation()}},n.onClearIndicatorMouseDown=function(e){e&&"mousedown"===e.type&&0!==e.button||(n.clearValue(),e.stopPropagation(),n.openAfterFocus=!1,"touchend"===e.type?n.focusInput():setTimeout((function(){return n.focusInput()})))},n.onScroll=function(e){"boolean"==typeof n.props.closeMenuOnScroll?e.target instanceof HTMLElement&&ie(e.target)&&n.props.onMenuClose():"function"==typeof n.props.closeMenuOnScroll&&n.props.closeMenuOnScroll(e)&&n.props.onMenuClose()},n.onCompositionStart=function(){n.isComposing=!0},n.onCompositionEnd=function(){n.isComposing=!1},n.onTouchStart=function(e){var t=e.touches.item(0);t&&(n.initialTouchX=t.clientX,n.initialTouchY=t.clientY,n.userIsDragging=!1)},n.onTouchMove=function(e){var t=e.touches.item(0);if(t){var r=Math.abs(t.clientX-n.initialTouchX),i=Math.abs(t.clientY-n.initialTouchY);n.userIsDragging=r>5||i>5}},n.onTouchEnd=function(e){n.userIsDragging||(n.controlRef&&!n.controlRef.contains(e.target)&&n.menuListRef&&!n.menuListRef.contains(e.target)&&n.blurInput(),n.initialTouchX=0,n.initialTouchY=0)},n.onControlTouchEnd=function(e){n.userIsDragging||n.onControlMouseDown(e)},n.onClearIndicatorTouchEnd=function(e){n.userIsDragging||n.onClearIndicatorMouseDown(e)},n.onDropdownIndicatorTouchEnd=function(e){n.userIsDragging||n.onDropdownIndicatorMouseDown(e)},n.handleInputChange=function(e){var t=e.currentTarget.value;n.inputIsHiddenAfterUpdate=!1,n.onInputChange(t,{action:"input-change"}),n.onMenuOpen()},n.onInputFocus=function(e){var t=n.props,r=t.isSearchable,i=t.isMulti;n.props.onFocus&&n.props.onFocus(e),n.inputIsHiddenAfterUpdate=!1,n.announceAriaLiveContext({event:"input",context:{isSearchable:r,isMulti:i}}),n.setState({isFocused:!0}),(n.openAfterFocus||n.props.openMenuOnFocus)&&n.openMenu("first"),n.openAfterFocus=!1},n.onInputBlur=function(e){n.menuListRef&&n.menuListRef.contains(document.activeElement)?n.inputRef.focus():(n.props.onBlur&&n.props.onBlur(e),n.onInputChange("",{action:"input-blur"}),n.onMenuClose(),n.setState({focusedValue:null,isFocused:!1}))},n.onOptionHover=function(e){n.blockOptionHover||n.state.focusedOption===e||n.setState({focusedOption:e})},n.shouldHideSelectedOptions=function(){var e=n.props,t=e.hideSelectedOptions,r=e.isMulti;return void 0===t?r:t},n.onKeyDown=function(e){var t=n.props,r=t.isMulti,i=t.backspaceRemovesValue,o=t.escapeClearsValue,a=t.inputValue,u=t.isClearable,s=t.isDisabled,l=t.menuIsOpen,c=t.onKeyDown,f=t.tabSelectsValue,p=t.openMenuOnFocus,d=n.state,h=d.focusedOption,v=d.focusedValue,m=d.selectValue;if(!(s||"function"==typeof c&&(c(e),e.defaultPrevented))){switch(n.blockOptionHover=!0,e.key){case"ArrowLeft":if(!r||a)return;n.focusValue("previous");break;case"ArrowRight":if(!r||a)return;n.focusValue("next");break;case"Delete":case"Backspace":if(a)return;if(v)n.removeValue(v);else{if(!i)return;r?n.popValue():u&&n.clearValue()}break;case"Tab":if(n.isComposing)return;if(e.shiftKey||!l||!f||!h||p&&n.isOptionSelected(h,m))return;n.selectOption(h);break;case"Enter":if(229===e.keyCode)break;if(l){if(!h)return;if(n.isComposing)return;n.selectOption(h);break}return;case"Escape":l?(n.inputIsHiddenAfterUpdate=!1,n.onInputChange("",{action:"menu-close"}),n.onMenuClose()):u&&o&&n.clearValue();break;case" ":if(a)return;if(!l){n.openMenu("first");break}if(!h)return;n.selectOption(h);break;case"ArrowUp":l?n.focusOption("up"):n.openMenu("last");break;case"ArrowDown":l?n.focusOption("down"):n.openMenu("first");break;case"PageUp":if(!l)return;n.focusOption("pageup");break;case"PageDown":if(!l)return;n.focusOption("pagedown");break;case"Home":if(!l)return;n.focusOption("first");break;case"End":if(!l)return;n.focusOption("last");break;default:return}e.preventDefault()}},n.buildMenuOptions=function(e,t){var r=e.inputValue,i=void 0===r?"":r,o=e.options,a=function(e,r){var o=n.isOptionDisabled(e,t),a=n.isOptionSelected(e,t),u=n.getOptionLabel(e),s=n.getOptionValue(e);if(!(n.shouldHideSelectedOptions()&&a||!n.filterOption({label:u,value:s,data:e},i))){var l=o?void 0:function(){return n.onOptionHover(e)},c=o?void 0:function(){return n.selectOption(e)},f=n.getElementId("option")+"-"+r;return{innerProps:{id:f,onClick:c,onMouseMove:l,onMouseOver:l,tabIndex:-1},data:e,isDisabled:o,isSelected:a,key:f,label:u,type:"option",value:s}}};return o.reduce((function(e,t,r){if(t.options){n.hasGroups||(n.hasGroups=!0);var i=t.options.map((function(t,n){var i=a(t,r+"-"+n);return i&&e.focusable.push(t),i})).filter(Boolean);if(i.length){var o=n.getElementId("group")+"-"+r;e.render.push({type:"group",key:o,data:t,options:i})}}else{var u=a(t,""+r);u&&(e.render.push(u),e.focusable.push(t))}return e}),{render:[],focusable:[]})};var r=t.value;n.cacheComponents=h(n.cacheComponents,Ae).bind(Ft(Ft(n))),n.cacheComponents(t.components),n.instancePrefix="react-select-"+(n.props.instanceId||++jt);var i=re(r);n.buildMenuOptions=h(n.buildMenuOptions,(function(e,t){var n=e,r=n[0],i=n[1],o=t,a=o[0];return Ae(i,o[1])&&Ae(r.inputValue,a.inputValue)&&Ae(r.options,a.options)})).bind(Ft(Ft(n)));var o=t.menuIsOpen?n.buildMenuOptions(t,i):{render:[],focusable:[]};return n.state.menuOptions=o,n.state.selectValue=i,n}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var i=r.prototype;return i.componentDidMount=function(){this.startListeningComposition(),this.startListeningToTouch(),this.props.closeMenuOnScroll&&document&&document.addEventListener&&document.addEventListener("scroll",this.onScroll,!0),this.props.autoFocus&&this.focusInput()},i.UNSAFE_componentWillReceiveProps=function(e){var t=this.props,n=t.options,r=t.value,i=t.menuIsOpen,o=t.inputValue;if(this.cacheComponents(e.components),e.value!==r||e.options!==n||e.menuIsOpen!==i||e.inputValue!==o){var a=re(e.value),u=e.menuIsOpen?this.buildMenuOptions(e,a):{render:[],focusable:[]},s=this.getNextFocusedValue(a),l=this.getNextFocusedOption(u.focusable);this.setState({menuOptions:u,selectValue:a,focusedOption:l,focusedValue:s})}null!=this.inputIsHiddenAfterUpdate&&(this.setState({inputIsHidden:this.inputIsHiddenAfterUpdate}),delete this.inputIsHiddenAfterUpdate)},i.componentDidUpdate=function(e){var t,n,r,i,o,a=this.props,u=a.isDisabled,s=a.menuIsOpen,l=this.state.isFocused;(l&&!u&&e.isDisabled||l&&s&&!e.menuIsOpen)&&this.focusInput(),this.menuListRef&&this.focusedOptionRef&&this.scrollToFocusedOptionOnUpdate&&(t=this.menuListRef,n=this.focusedOptionRef,r=t.getBoundingClientRect(),i=n.getBoundingClientRect(),o=n.offsetHeight/3,i.bottom+o>r.bottom?ae(t,Math.min(n.offsetTop+n.clientHeight-t.offsetHeight+o,t.scrollHeight)):i.top-o-1&&(u=s)}this.scrollToFocusedOptionOnUpdate=!(i&&this.menuListRef),this.inputIsHiddenAfterUpdate=!1,this.setState({menuOptions:o,focusedValue:null,focusedOption:o.focusable[u]},(function(){t.onMenuOpen(),t.announceAriaLiveContext({event:"menu"})}))},i.focusValue=function(e){var t=this.props,n=t.isMulti,r=t.isSearchable,i=this.state,o=i.selectValue,a=i.focusedValue;if(n){this.setState({focusedOption:null});var u=o.indexOf(a);a||(u=-1,this.announceAriaLiveContext({event:"value"}));var s=o.length-1,l=-1;if(o.length){switch(e){case"previous":l=0===u?0:-1===u?s:u-1;break;case"next":u>-1&&u0?a-1:i.length-1:"down"===e?o=(a+1)%i.length:"pageup"===e?(o=a-t)<0&&(o=0):"pagedown"===e?(o=a+t)>i.length-1&&(o=i.length-1):"last"===e&&(o=i.length-1),this.scrollToFocusedOptionOnUpdate=!0,this.setState({focusedOption:i[o],focusedValue:null}),this.announceAriaLiveContext({event:"menu",context:{isDisabled:At(i[o])}})}},i.getTheme=function(){return this.props.theme?"function"==typeof this.props.theme?this.props.theme(kt):St({},kt,this.props.theme):kt},i.getCommonProps=function(){var e=this.clearValue,t=this.getStyles,n=this.setValue,r=this.selectOption,i=this.props,o=i.classNamePrefix,a=i.isMulti,u=i.isRtl,s=i.options,l=this.state.selectValue,c=this.hasValue();return{cx:ne.bind(null,o),clearValue:e,getStyles:t,getValue:function(){return l},hasValue:c,isMulti:a,isRtl:u,options:s,selectOption:r,setValue:n,selectProps:i,theme:this.getTheme()}},i.getNextFocusedValue=function(e){if(this.clearFocusValueOnUpdate)return this.clearFocusValueOnUpdate=!1,null;var t=this.state,n=t.focusedValue,r=t.selectValue.indexOf(n);if(r>-1){if(e.indexOf(n)>-1)return n;if(r-1?t:e[0]},i.hasValue=function(){return this.state.selectValue.length>0},i.hasOptions=function(){return!!this.state.menuOptions.render.length},i.countOptions=function(){return this.state.menuOptions.focusable.length},i.isClearable=function(){var e=this.props,t=e.isClearable,n=e.isMulti;return void 0===t?n:t},i.isOptionDisabled=function(e,t){return"function"==typeof this.props.isOptionDisabled&&this.props.isOptionDisabled(e,t)},i.isOptionSelected=function(e,t){var n=this;if(t.indexOf(e)>-1)return!0;if("function"==typeof this.props.isOptionSelected)return this.props.isOptionSelected(e,t);var r=this.getOptionValue(e);return t.some((function(e){return n.getOptionValue(e)===r}))},i.filterOption=function(e,t){return!this.props.filterOption||this.props.filterOption(e,t)},i.formatOptionLabel=function(e,t){if("function"==typeof this.props.formatOptionLabel){var n=this.props.inputValue,r=this.state.selectValue;return this.props.formatOptionLabel(e,{context:t,inputValue:n,selectValue:r})}return this.getOptionLabel(e)},i.formatGroupLabel=function(e){return this.props.formatGroupLabel(e)},i.startListeningComposition=function(){document&&document.addEventListener&&(document.addEventListener("compositionstart",this.onCompositionStart,!1),document.addEventListener("compositionend",this.onCompositionEnd,!1))},i.stopListeningComposition=function(){document&&document.removeEventListener&&(document.removeEventListener("compositionstart",this.onCompositionStart),document.removeEventListener("compositionend",this.onCompositionEnd))},i.startListeningToTouch=function(){document&&document.addEventListener&&(document.addEventListener("touchstart",this.onTouchStart,!1),document.addEventListener("touchmove",this.onTouchMove,!1),document.addEventListener("touchend",this.onTouchEnd,!1))},i.stopListeningToTouch=function(){document&&document.removeEventListener&&(document.removeEventListener("touchstart",this.onTouchStart),document.removeEventListener("touchmove",this.onTouchMove),document.removeEventListener("touchend",this.onTouchEnd))},i.constructAriaLiveMessage=function(){var e=this.state,t=e.ariaLiveContext,n=e.selectValue,r=e.focusedValue,i=e.focusedOption,o=this.props,a=o.options,u=o.menuIsOpen,s=o.inputValue,l=o.screenReaderStatus;return(r?function(e){var t=e.focusedValue,n=e.getOptionLabel,r=e.selectValue;return"value "+n(t)+" focused, "+(r.indexOf(t)+1)+" of "+r.length+"."}({focusedValue:r,getOptionLabel:this.getOptionLabel,selectValue:n}):"")+" "+(i&&u?function(e){var t=e.focusedOption,n=e.getOptionLabel,r=e.options;return"option "+n(t)+" focused"+(t.isDisabled?" disabled":"")+", "+(r.indexOf(t)+1)+" of "+r.length+"."}({focusedOption:i,getOptionLabel:this.getOptionLabel,options:a}):"")+" "+function(e){var t=e.inputValue;return e.screenReaderMessage+(t?" for search term "+t:"")+"."}({inputValue:s,screenReaderMessage:l({count:this.countOptions()})})+" "+t},i.renderInput=function(){var e=this.props,t=e.isDisabled,n=e.isSearchable,r=e.inputId,i=e.inputValue,a=e.tabIndex,u=this.components.Input,s=this.state.inputIsHidden,l=r||this.getElementId("input"),c={"aria-autocomplete":"list","aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"]};if(!n)return o.a.createElement(st,St({id:l,innerRef:this.getInputRef,onBlur:this.onInputBlur,onChange:ee,onFocus:this.onInputFocus,readOnly:!0,disabled:t,tabIndex:a,value:""},c));var f=this.commonProps,p=f.cx,d=f.theme,h=f.selectProps;return o.a.createElement(u,St({autoCapitalize:"none",autoComplete:"off",autoCorrect:"off",cx:p,getStyles:this.getStyles,id:l,innerRef:this.getInputRef,isDisabled:t,isHidden:s,onBlur:this.onInputBlur,onChange:this.handleInputChange,onFocus:this.onInputFocus,selectProps:h,spellCheck:"false",tabIndex:a,theme:d,type:"text",value:i},c))},i.renderPlaceholderOrValue=function(){var e=this,t=this.components,n=t.MultiValue,r=t.MultiValueContainer,i=t.MultiValueLabel,a=t.MultiValueRemove,u=t.SingleValue,s=t.Placeholder,l=this.commonProps,c=this.props,f=c.controlShouldRenderValue,p=c.isDisabled,d=c.isMulti,h=c.inputValue,v=c.placeholder,m=this.state,g=m.selectValue,b=m.focusedValue,y=m.isFocused;if(!this.hasValue()||!f)return h?null:o.a.createElement(s,St({},l,{key:"placeholder",isDisabled:p,isFocused:y}),v);if(d)return g.map((function(t,u){var s=t===b;return o.a.createElement(n,St({},l,{components:{Container:r,Label:i,Remove:a},isFocused:s,isDisabled:p,key:e.getOptionValue(t),index:u,removeProps:{onClick:function(){return e.removeValue(t)},onTouchEnd:function(){return e.removeValue(t)},onMouseDown:function(e){e.preventDefault(),e.stopPropagation()}},data:t}),e.formatOptionLabel(t,"value"))}));if(h)return null;var E=g[0];return o.a.createElement(u,St({},l,{data:E,isDisabled:p}),this.formatOptionLabel(E,"value"))},i.renderClearIndicator=function(){var e=this.components.ClearIndicator,t=this.commonProps,n=this.props,r=n.isDisabled,i=n.isLoading,a=this.state.isFocused;if(!this.isClearable()||!e||r||!this.hasValue()||i)return null;var u={onMouseDown:this.onClearIndicatorMouseDown,onTouchEnd:this.onClearIndicatorTouchEnd,"aria-hidden":"true"};return o.a.createElement(e,St({},t,{innerProps:u,isFocused:a}))},i.renderLoadingIndicator=function(){var e=this.components.LoadingIndicator,t=this.commonProps,n=this.props,r=n.isDisabled,i=n.isLoading,a=this.state.isFocused;if(!e||!i)return null;return o.a.createElement(e,St({},t,{innerProps:{"aria-hidden":"true"},isDisabled:r,isFocused:a}))},i.renderIndicatorSeparator=function(){var e=this.components,t=e.DropdownIndicator,n=e.IndicatorSeparator;if(!t||!n)return null;var r=this.commonProps,i=this.props.isDisabled,a=this.state.isFocused;return o.a.createElement(n,St({},r,{isDisabled:i,isFocused:a}))},i.renderDropdownIndicator=function(){var e=this.components.DropdownIndicator;if(!e)return null;var t=this.commonProps,n=this.props.isDisabled,r=this.state.isFocused,i={onMouseDown:this.onDropdownIndicatorMouseDown,onTouchEnd:this.onDropdownIndicatorTouchEnd,"aria-hidden":"true"};return o.a.createElement(e,St({},t,{innerProps:i,isDisabled:n,isFocused:r}))},i.renderMenu=function(){var e=this,t=this.components,n=t.Group,r=t.GroupHeading,i=t.Menu,a=t.MenuList,u=t.MenuPortal,s=t.LoadingMessage,l=t.NoOptionsMessage,c=t.Option,f=this.commonProps,p=this.state,d=p.focusedOption,h=p.menuOptions,v=this.props,m=v.captureMenuScroll,g=v.inputValue,b=v.isLoading,y=v.loadingMessage,E=v.minMenuHeight,_=v.maxMenuHeight,w=v.menuIsOpen,O=v.menuPlacement,C=v.menuPosition,A=v.menuPortalTarget,x=v.menuShouldBlockScroll,k=v.menuShouldScrollIntoView,S=v.noOptionsMessage,F=v.onMenuScrollToTop,D=v.onMenuScrollToBottom;if(!w)return null;var I,j=function(t){var n=d===t.data;return t.innerRef=n?e.getFocusedOptionRef:void 0,o.a.createElement(c,St({},f,t,{isFocused:n}),e.formatOptionLabel(t.data,"menu"))};if(this.hasOptions())I=h.render.map((function(t){if("group"===t.type){t.type;var i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}(t,["type"]),a=t.key+"-heading";return o.a.createElement(n,St({},f,i,{Heading:r,headingProps:{id:a},label:e.formatGroupLabel(t.data)}),t.options.map((function(e){return j(e)})))}if("option"===t.type)return j(t)}));else if(b){var N=y({inputValue:g});if(null===N)return null;I=o.a.createElement(s,f,N)}else{var M=S({inputValue:g});if(null===M)return null;I=o.a.createElement(l,f,M)}var L={minMenuHeight:E,maxMenuHeight:_,menuPlacement:O,menuPosition:C,menuShouldScrollIntoView:k},P=o.a.createElement(ve,St({},f,L),(function(t){var n=t.ref,r=t.placerProps,u=r.placement,s=r.maxHeight;return o.a.createElement(i,St({},f,L,{innerRef:n,innerProps:{onMouseDown:e.onMenuMouseDown,onMouseMove:e.onMenuMouseMove},isLoading:b,placement:u}),o.a.createElement(wt,{isEnabled:m,onTopArrive:F,onBottomArrive:D},o.a.createElement(Et,{isEnabled:x},o.a.createElement(a,St({},f,{innerRef:e.getMenuListRef,isLoading:b,maxHeight:s}),I))))}));return A||"fixed"===C?o.a.createElement(u,St({},f,{appendTo:A,controlElement:this.controlRef,menuPlacement:O,menuPosition:C}),P):P},i.renderFormField=function(){var e=this,t=this.props,n=t.delimiter,r=t.isDisabled,i=t.isMulti,a=t.name,u=this.state.selectValue;if(a&&!r){if(i){if(n){var s=u.map((function(t){return e.getOptionValue(t)})).join(n);return o.a.createElement("input",{name:a,type:"hidden",value:s})}var l=u.length>0?u.map((function(t,n){return o.a.createElement("input",{key:"i-"+n,name:a,type:"hidden",value:e.getOptionValue(t)})})):o.a.createElement("input",{name:a,type:"hidden"});return o.a.createElement("div",null,l)}var c=u[0]?this.getOptionValue(u[0]):"";return o.a.createElement("input",{name:a,type:"hidden",value:c})}},i.renderLiveRegion=function(){return this.state.isFocused?o.a.createElement(at,{"aria-live":"polite"},o.a.createElement("p",{id:"aria-selection-event"},"\xa0",this.state.ariaLiveSelection),o.a.createElement("p",{id:"aria-context"},"\xa0",this.constructAriaLiveMessage())):null},i.render=function(){var e=this.components,t=e.Control,n=e.IndicatorsContainer,r=e.SelectContainer,i=e.ValueContainer,a=this.props,u=a.className,s=a.id,l=a.isDisabled,c=a.menuIsOpen,f=this.state.isFocused,p=this.commonProps=this.getCommonProps();return o.a.createElement(r,St({},p,{className:u,innerProps:{id:s,onKeyDown:this.onKeyDown},isDisabled:l,isFocused:f}),this.renderLiveRegion(),o.a.createElement(t,St({},p,{innerRef:this.getControlRef,innerProps:{onMouseDown:this.onControlMouseDown,onTouchEnd:this.onControlTouchEnd},isDisabled:l,isFocused:f,menuIsOpen:c}),o.a.createElement(i,St({},p,{isDisabled:l}),this.renderPlaceholderOrValue(),this.renderInput()),o.a.createElement(n,St({},p,{isDisabled:l}),this.renderClearIndicator(),this.renderLoadingIndicator(),this.renderIndicatorSeparator(),this.renderDropdownIndicator())),this.renderMenu(),this.renderFormField())},r}(i.Component);function Mt(){return(Mt=Object.assign||function(e){for(var t=1;t1?n-1:0),i=1;i=0||(i[n]=e[n]);return i}(t,["defaultInputValue","defaultMenuIsOpen","defaultValue"]));return o.a.createElement(Pt,Mt({},n,{ref:function(t){e.select=t},inputValue:this.getProp("inputValue"),menuIsOpen:this.getProp("menuIsOpen"),onChange:this.onChange,onInputChange:this.onInputChange,onMenuClose:this.onMenuClose,onMenuOpen:this.onMenuOpen,value:this.getProp("value")}))},r}(i.Component),Tt.defaultProps=Lt,Rt),Vt=n(252),zt=n.n(Vt),Ut=n(383),Wt=n.n(Ut),Ht=n(338);var $t=function(){return Object(i.useContext)(Ht.a)},Gt=37,qt=39;function Yt(e){var t=e.block,n=e.centered,r=e.changeSelectedValue,i=e.className,a=e.handleKeydown,u=e.style,s=e.values,l=e.selectedValue,c=e.tabRefs;return o.a.createElement("div",{className:n?"tabs--centered":null},o.a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:zt()("tabs",i,{"tabs--block":t}),style:u},s.map((function(e){var t=e.value,n=e.label;return o.a.createElement("li",{role:"tab",tabIndex:"0","aria-selected":l===t,className:zt()("tab-item",{"tab-item--active":l===t}),key:t,ref:function(e){return c.push(e)},onKeyDown:function(e){return a(c,e.target,e)},onFocus:function(){return r(t)},onClick:function(){return r(t)}},n)}))))}function Kt(e){var t=e.placeholder,n=e.selectedValue,r=e.changeSelectedValue,i=e.size,a=e.values,u=a;if(u[0].group){var s=_.groupBy(u,"group");u=Object.keys(s).map((function(e){return{label:e,options:s[e]}}))}return o.a.createElement(Bt,{className:"react-select-container react-select--"+i,classNamePrefix:"react-select",options:u,isClearable:n,placeholder:t,value:a.find((function(e){return e.value==n})),onChange:function(e){return r(e?e.value:null)}})}var Zt=function(e){e.block,e.centered;var t=e.children,n=e.defaultValue,a=e.groupId,u=e.label,s=e.placeholder,l=e.select,c=e.size,f=(e.style,e.values),p=e.urlKey,d=$t(),h=d.tabGroupChoices,v=d.setTabGroupChoices,m=Object(i.useState)(n),g=m[0],b=m[1];if(null!=a){var y=h[a];null!=y&&y!==g&&b(y)}var E=function(e){b(e),null!=a&&v(a,e)},_=[],w=function(e,t,n){switch(n.keyCode){case qt:!function(e,t){var n=e.indexOf(t)+1;e[n]?e[n].focus():e[0].focus()}(e,t);break;case Gt:!function(e,t){var n=e.indexOf(t)-1;e[n]?e[n].focus():e[e.length-1].focus()}(e,t)}};return Object(i.useEffect)((function(){if("undefined"!=typeof window&&window.location&&p){var e=Wt.a.parse(window.location.search);e[p]&&b(e[p])}}),[]),o.a.createElement(o.a.Fragment,null,o.a.createElement("div",{className:"margin-bottom--"+(c||"md")},u&&o.a.createElement("div",{className:"margin-vert--sm"},u),f.length>1&&(l?o.a.createElement(Kt,Object(r.a)({changeSelectedValue:E,handleKeydown:w,placeholder:s,selectedValue:g,size:c,tabRefs:_},e)):o.a.createElement(Yt,Object(r.a)({changeSelectedValue:E,handleKeydown:w,selectedValue:g,tabRefs:_},e)))),i.Children.toArray(t).filter((function(e){return e.props.value===g}))[0])},Xt=n(258),Jt=n(318),Qt=n(253),en=n(291),tn=n.n(en),nn=n(224),rn=n.n(nn),on=(n(225),Object(a.a)("h2")),an=[{title:"Ultra-Fast",icon:"zap",description:o.a.createElement(o.a.Fragment,null,"Built in ",o.a.createElement("a",{href:"https://go.dev/"},"Go"),", gnet is ",o.a.createElement("a",{href:"#performance"},"ultra-fast and memory efficient")," based on the event-driven mechanism. It's designed to create a networking server framework for Go that performs on par with Redis and Haproxy for networking packets handling.")},{title:"Lock-Free",icon:"unlock",description:o.a.createElement(o.a.Fragment,null,"gnet is lock-free during the entire runtime, which keeps gnet free from synchronization issues and speeds it up.")},{title:"Concise & Easy-to-use APIs",icon:"layers",description:o.a.createElement(o.a.Fragment,null,"gnet provides concise and easy-to-use APIs for users, it only exposes the essential APIs and takes over most of the tough work for users, minimizing the complexity of business code so that developers are able to concentrate on business logic instead of the underlying implementations.")},{title:"Multiple Protocols",icon:"grid",description:o.a.createElement(o.a.Fragment,null,"gnet supports multiple protocols/IPC mechanism: TCP, UDP and Unix Domain Socket, enabling you to develop a variety of networking applications.")},{title:"Cross Platform",icon:"cpu",description:o.a.createElement(o.a.Fragment,null,"gnet is devised as a cross-platform framework, as a result, it works faultlessly on multiple platforms: Linux, FreeBSD, DragonFly BSD, Windows.")},{title:"Powerful Libraries",icon:"briefcase",description:o.a.createElement(o.a.Fragment,null,"There is a rich set of libraries in gnet, such as memory pool, goroutine pool, elastic buffers, logging package, etc., which makes it convenient for developers to build fast and efficient networking applications.")}];function un(e){var t,n,i=e.features,a=[];for(t=0,n=i.length;t0&&i.a.createElement("div",{className:"row footer__links"},i.a.createElement("div",{className:"col col--5 footer__col"},i.a.createElement("div",{className:"margin-bottom--md"},i.a.createElement(f.a,{className:"navbar__logo",src:"/img/logo-light.svg",alt:"gnet",width:"150",height:"auto"})),i.a.createElement("div",{className:"margin-bottom--md"},i.a.createElement(N,{description:!1,width:"150px"})),i.a.createElement("div",null,i.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank"},i.a.createElement("i",{className:"feather icon-twitter",alt:"gnet's Twitter"})),"\xa0\xa0\xa0\xa0",i.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank"},i.a.createElement("i",{className:"feather icon-github",alt:"gnet's Github Repo"})),"\xa0\xa0\xa0\xa0",i.a.createElement("a",{href:"https://strikefreedom.top/rss.xml",target:"_blank"},i.a.createElement("i",{className:"feather icon-rss",alt:"gnet's RSS feed"})))),u.map((function(e,t){return i.a.createElement("div",{key:t,className:"col footer__col"},null!=e.title?i.a.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?i.a.createElement("ul",{className:"footer__items"},e.items.map((function(e,t){return e.html?i.a.createElement("li",{key:t,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):i.a.createElement("li",{key:e.href||e.to,className:"footer__item"},i.a.createElement(P,e))}))):null)}))),(l||o)&&i.a.createElement("div",{className:"text--center"},l&&l.src&&i.a.createElement("div",{className:"margin-bottom--sm"},l.href?i.a.createElement("a",{href:l.href,target:"_blank",rel:"noopener noreferrer",className:L.a.footerLogoLink},i.a.createElement(T,{alt:l.alt,url:c})):i.a.createElement(T,{alt:l.alt,url:c}),i.a.createElement("br",null),i.a.createElement("a",{href:"https://www.digitalocean.com/",target:"_blank",rel:"noopener noreferrer",className:L.a.footerLogoLink},i.a.createElement("img",{alt:"DigitalOcean",src:"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg",width:"201px"}))),o,i.a.createElement("br",null),i.a.createElement("small",null,i.a.createElement("a",{href:"https://github.com/panjf2000/gnet/security/policy"},"Security Policy"),"\xa0\u2022\xa0",i.a.createElement("a",{href:"https://github.com/panjf2000/gnet/blob/master/PRIVACY.md"},"Privacy Policy"))))):null},B=n(276),V=n(277),z=n(3);n(135);t.a=function(e){var t=Object(h.a)().siteConfig,n=void 0===t?{}:t,r=n.favicon,u=(n.tagline,n.title),s=n.themeConfig.image,l=n.url,c=e.children,f=e.title,p=e.noFooter,d=e.description,v=e.image,m=e.keywords,g=(e.permalink,e.version),b=f?f+" | "+u:u,y=v||s,E=l+Object(O.a)(y),_=Object(O.a)(r),w=Object(z.h)(),C=w?"https://gnet.host"+(w.pathname.endsWith("/")?w.pathname:w.pathname+"/"):null;return i.a.createElement(V.a,null,i.a.createElement(B.a,null,i.a.createElement(a.a,null,i.a.createElement("html",{lang:"en"}),i.a.createElement("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),b&&i.a.createElement("title",null,b),b&&i.a.createElement("meta",{property:"og:title",content:b}),r&&i.a.createElement("link",{rel:"shortcut icon",href:_}),d&&i.a.createElement("meta",{name:"description",content:d}),d&&i.a.createElement("meta",{property:"og:description",content:d}),g&&i.a.createElement("meta",{name:"docsearch:version",content:g}),m&&m.length&&i.a.createElement("meta",{name:"keywords",content:m.join(",")}),y&&i.a.createElement("meta",{property:"og:image",content:E}),y&&i.a.createElement("meta",{property:"twitter:image",content:E}),y&&i.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+b}),y&&i.a.createElement("meta",{name:"twitter:site",content:"@vectordotdev"}),y&&i.a.createElement("meta",{name:"twitter:creator",content:"@vectordotdev"}),C&&i.a.createElement("meta",{property:"og:url",content:C}),i.a.createElement("meta",{name:"twitter:card",content:"summary"}),C&&i.a.createElement("link",{rel:"canonical",href:C})),i.a.createElement(o.a,null),i.a.createElement(I,null),i.a.createElement("div",{className:"main-wrapper"},c),!p&&i.a.createElement(R,null)))}},283:function(e,t,n){"use strict";(function(e){var r=n(1),i=(n(281),n(282),n(78),n(79),n(292),n(0)),o=n.n(i),a=n(293),u=n.n(a),s=n(306),l=n(52),c=n(252),f=n.n(c),p=n(301),d=n(294),h=n.n(d),v=n(253),m=n(262),g=n(136),b=n.n(g);(void 0!==e?e:window).Prism=l.a,n(295),n(296),n(297),n(298),n(299),n(300);var y=/{([\d,-]+)}/,E=/title=".*"/;t.a=function(e){var t=e.children,n=e.className,a=e.metastring,l=Object(v.a)().siteConfig.themeConfig.prism,c=void 0===l?{}:l,d=Object(i.useState)(!1),g=d[0],_=d[1],w=Object(i.useState)(!1),O=w[0],C=w[1];Object(i.useEffect)((function(){C(!0)}),[]);var A=Object(i.useRef)(null),x=Object(i.useRef)(null),k=[],S="",F=Object(m.a)().isDarkTheme,D=c.theme||p.a,I=c.darkTheme||D,j=F?I:D;if(a&&y.test(a)){var N=a.match(y)[1];k=h.a.parse(N).filter((function(e){return e>0}))}a&&E.test(a)&&(S=a.match(E)[0].split("title=")[1].replace(/"+/g,"")),Object(i.useEffect)((function(){var e;return x.current&&(e=new u.a(x.current,{target:function(){return A.current}})),function(){e&&e.destroy()}}),[x.current,A.current]);var M=n&&n.replace(/language-/,"");!M&&c.defaultLanguage&&(M=c.defaultLanguage);var L=function(){window.getSelection().empty(),_(!0),setTimeout((function(){return _(!1)}),2e3)};return o.a.createElement(s.a,Object(r.a)({},s.b,{key:O,theme:j,code:t.trim(),language:M}),(function(e){var t,n,i=e.className,a=e.style,u=e.tokens,s=e.getLineProps,l=e.getTokenProps;return o.a.createElement(o.a.Fragment,null,S&&o.a.createElement("div",{style:a,className:b.a.codeBlockTitle},S),o.a.createElement("div",{className:b.a.codeBlockContent},o.a.createElement("button",{ref:x,type:"button","aria-label":"Copy code to clipboard",className:f()(b.a.copyButton,(t={},t[b.a.copyButtonWithTitle]=S,t)),onClick:L},g?"Copied":"Copy"),o.a.createElement("pre",{className:f()(i,b.a.codeBlock,(n={},n[b.a.codeBlockWithTitle]=S,n))},o.a.createElement("div",{ref:A,className:b.a.codeBlockLines,style:a},u.map((function(e,t){1===e.length&&""===e[0].content&&(e[0].content="\n");var n=s({line:e,key:t});return k.includes(t+1)&&(n.className=n.className+" docusaurus-highlight-code-line"),o.a.createElement("div",Object(r.a)({key:t},n),e.map((function(e,t){return o.a.createElement("span",Object(r.a)({key:t},l({token:e,key:t})))})))}))))))}))}}).call(this,n(77))},291:function(e,t,n){(function(e,r){var i;(function(){var o="Expected a function",a="__lodash_placeholder__",u=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],s="[object Arguments]",l="[object Array]",c="[object Boolean]",f="[object Date]",p="[object Error]",d="[object Function]",h="[object GeneratorFunction]",v="[object Map]",m="[object Number]",g="[object Object]",b="[object RegExp]",y="[object Set]",E="[object String]",_="[object Symbol]",w="[object WeakMap]",O="[object ArrayBuffer]",C="[object DataView]",A="[object Float32Array]",x="[object Float64Array]",k="[object Int8Array]",S="[object Int16Array]",F="[object Int32Array]",D="[object Uint8Array]",I="[object Uint16Array]",j="[object Uint32Array]",N=/\b__p \+= '';/g,M=/\b(__p \+=) '' \+/g,L=/(__e\(.*?\)|\b__t\)) \+\n'';/g,P=/&(?:amp|lt|gt|quot|#39);/g,T=/[&<>"']/g,R=RegExp(P.source),B=RegExp(T.source),V=/<%-([\s\S]+?)%>/g,z=/<%([\s\S]+?)%>/g,U=/<%=([\s\S]+?)%>/g,W=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,H=/^\w*$/,$=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,G=/[\\^$.*+?()[\]{}|]/g,q=RegExp(G.source),Y=/^\s+|\s+$/g,K=/^\s+/,Z=/\s+$/,X=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,J=/\{\n\/\* \[wrapped with (.+)\] \*/,Q=/,? & /,ee=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,te=/\\(\\)?/g,ne=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,re=/\w*$/,ie=/^[-+]0x[0-9a-f]+$/i,oe=/^0b[01]+$/i,ae=/^\[object .+?Constructor\]$/,ue=/^0o[0-7]+$/i,se=/^(?:0|[1-9]\d*)$/,le=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ce=/($^)/,fe=/['\n\r\u2028\u2029\\]/g,pe="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",de="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",he="[\\ud800-\\udfff]",ve="["+de+"]",me="["+pe+"]",ge="\\d+",be="[\\u2700-\\u27bf]",ye="[a-z\\xdf-\\xf6\\xf8-\\xff]",Ee="[^\\ud800-\\udfff"+de+ge+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",_e="\\ud83c[\\udffb-\\udfff]",we="[^\\ud800-\\udfff]",Oe="(?:\\ud83c[\\udde6-\\uddff]){2}",Ce="[\\ud800-\\udbff][\\udc00-\\udfff]",Ae="[A-Z\\xc0-\\xd6\\xd8-\\xde]",xe="(?:"+ye+"|"+Ee+")",ke="(?:"+Ae+"|"+Ee+")",Se="(?:"+me+"|"+_e+")"+"?",Fe="[\\ufe0e\\ufe0f]?"+Se+("(?:\\u200d(?:"+[we,Oe,Ce].join("|")+")[\\ufe0e\\ufe0f]?"+Se+")*"),De="(?:"+[be,Oe,Ce].join("|")+")"+Fe,Ie="(?:"+[we+me+"?",me,Oe,Ce,he].join("|")+")",je=RegExp("['\u2019]","g"),Ne=RegExp(me,"g"),Me=RegExp(_e+"(?="+_e+")|"+Ie+Fe,"g"),Le=RegExp([Ae+"?"+ye+"+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?="+[ve,Ae,"$"].join("|")+")",ke+"+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?="+[ve,Ae+xe,"$"].join("|")+")",Ae+"?"+xe+"+(?:['\u2019](?:d|ll|m|re|s|t|ve))?",Ae+"+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",ge,De].join("|"),"g"),Pe=RegExp("[\\u200d\\ud800-\\udfff"+pe+"\\ufe0e\\ufe0f]"),Te=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Re=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Be=-1,Ve={};Ve[A]=Ve[x]=Ve[k]=Ve[S]=Ve[F]=Ve[D]=Ve["[object Uint8ClampedArray]"]=Ve[I]=Ve[j]=!0,Ve[s]=Ve[l]=Ve[O]=Ve[c]=Ve[C]=Ve[f]=Ve[p]=Ve[d]=Ve[v]=Ve[m]=Ve[g]=Ve[b]=Ve[y]=Ve[E]=Ve[w]=!1;var ze={};ze[s]=ze[l]=ze[O]=ze[C]=ze[c]=ze[f]=ze[A]=ze[x]=ze[k]=ze[S]=ze[F]=ze[v]=ze[m]=ze[g]=ze[b]=ze[y]=ze[E]=ze[_]=ze[D]=ze["[object Uint8ClampedArray]"]=ze[I]=ze[j]=!0,ze[p]=ze[d]=ze[w]=!1;var Ue={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},We=parseFloat,He=parseInt,$e="object"==typeof e&&e&&e.Object===Object&&e,Ge="object"==typeof self&&self&&self.Object===Object&&self,qe=$e||Ge||Function("return this")(),Ye=t&&!t.nodeType&&t,Ke=Ye&&"object"==typeof r&&r&&!r.nodeType&&r,Ze=Ke&&Ke.exports===Ye,Xe=Ze&&$e.process,Je=function(){try{var e=Ke&&Ke.require&&Ke.require("util").types;return e||Xe&&Xe.binding&&Xe.binding("util")}catch(t){}}(),Qe=Je&&Je.isArrayBuffer,et=Je&&Je.isDate,tt=Je&&Je.isMap,nt=Je&&Je.isRegExp,rt=Je&&Je.isSet,it=Je&&Je.isTypedArray;function ot(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function at(e,t,n,r){for(var i=-1,o=null==e?0:e.length;++i-1}function pt(e,t,n){for(var r=-1,i=null==e?0:e.length;++r-1;);return n}function Mt(e,t){for(var n=e.length;n--&&_t(t,e[n],0)>-1;);return n}function Lt(e,t){for(var n=e.length,r=0;n--;)e[n]===t&&++r;return r}var Pt=xt({\u00c0:"A",\u00c1:"A",\u00c2:"A",\u00c3:"A",\u00c4:"A",\u00c5:"A",\u00e0:"a",\u00e1:"a",\u00e2:"a",\u00e3:"a",\u00e4:"a",\u00e5:"a",\u00c7:"C",\u00e7:"c",\u00d0:"D",\u00f0:"d",\u00c8:"E",\u00c9:"E",\u00ca:"E",\u00cb:"E",\u00e8:"e",\u00e9:"e",\u00ea:"e",\u00eb:"e",\u00cc:"I",\u00cd:"I",\u00ce:"I",\u00cf:"I",\u00ec:"i",\u00ed:"i",\u00ee:"i",\u00ef:"i",\u00d1:"N",\u00f1:"n",\u00d2:"O",\u00d3:"O",\u00d4:"O",\u00d5:"O",\u00d6:"O",\u00d8:"O",\u00f2:"o",\u00f3:"o",\u00f4:"o",\u00f5:"o",\u00f6:"o",\u00f8:"o",\u00d9:"U",\u00da:"U",\u00db:"U",\u00dc:"U",\u00f9:"u",\u00fa:"u",\u00fb:"u",\u00fc:"u",\u00dd:"Y",\u00fd:"y",\u00ff:"y",\u00c6:"Ae",\u00e6:"ae",\u00de:"Th",\u00fe:"th",\u00df:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010a:"C",\u010c:"C",\u0107:"c",\u0109:"c",\u010b:"c",\u010d:"c",\u010e:"D",\u0110:"D",\u010f:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011a:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011b:"e",\u011c:"G",\u011e:"G",\u0120:"G",\u0122:"G",\u011d:"g",\u011f:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012a:"I",\u012c:"I",\u012e:"I",\u0130:"I",\u0129:"i",\u012b:"i",\u012d:"i",\u012f:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013b:"L",\u013d:"L",\u013f:"L",\u0141:"L",\u013a:"l",\u013c:"l",\u013e:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014a:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014b:"n",\u014c:"O",\u014e:"O",\u0150:"O",\u014d:"o",\u014f:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015a:"S",\u015c:"S",\u015e:"S",\u0160:"S",\u015b:"s",\u015d:"s",\u015f:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016a:"U",\u016c:"U",\u016e:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016b:"u",\u016d:"u",\u016f:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017b:"Z",\u017d:"Z",\u017a:"z",\u017c:"z",\u017e:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017f:"s"}),Tt=xt({"&":"&","<":"<",">":">",'"':""","'":"'"});function Rt(e){return"\\"+Ue[e]}function Bt(e){return Pe.test(e)}function Vt(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function zt(e,t){return function(n){return e(t(n))}}function Ut(e,t){for(var n=-1,r=e.length,i=0,o=[];++n",""":'"',"'":"'"});var Yt=function e(t){var n,r=(t=null==t?qe:Yt.defaults(qe.Object(),t,Yt.pick(qe,Re))).Array,i=t.Date,pe=t.Error,de=t.Function,he=t.Math,ve=t.Object,me=t.RegExp,ge=t.String,be=t.TypeError,ye=r.prototype,Ee=de.prototype,_e=ve.prototype,we=t["__core-js_shared__"],Oe=Ee.toString,Ce=_e.hasOwnProperty,Ae=0,xe=(n=/[^.]+$/.exec(we&&we.keys&&we.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",ke=_e.toString,Se=Oe.call(ve),Fe=qe._,De=me("^"+Oe.call(Ce).replace(G,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Ie=Ze?t.Buffer:void 0,Me=t.Symbol,Pe=t.Uint8Array,Ue=Ie?Ie.allocUnsafe:void 0,$e=zt(ve.getPrototypeOf,ve),Ge=ve.create,Ye=_e.propertyIsEnumerable,Ke=ye.splice,Xe=Me?Me.isConcatSpreadable:void 0,Je=Me?Me.iterator:void 0,bt=Me?Me.toStringTag:void 0,xt=function(){try{var e=Qi(ve,"defineProperty");return e({},"",{}),e}catch(t){}}(),Kt=t.clearTimeout!==qe.clearTimeout&&t.clearTimeout,Zt=i&&i.now!==qe.Date.now&&i.now,Xt=t.setTimeout!==qe.setTimeout&&t.setTimeout,Jt=he.ceil,Qt=he.floor,en=ve.getOwnPropertySymbols,tn=Ie?Ie.isBuffer:void 0,nn=t.isFinite,rn=ye.join,on=zt(ve.keys,ve),an=he.max,un=he.min,sn=i.now,ln=t.parseInt,cn=he.random,fn=ye.reverse,pn=Qi(t,"DataView"),dn=Qi(t,"Map"),hn=Qi(t,"Promise"),vn=Qi(t,"Set"),mn=Qi(t,"WeakMap"),gn=Qi(ve,"create"),bn=mn&&new mn,yn={},En=ko(pn),_n=ko(dn),wn=ko(hn),On=ko(vn),Cn=ko(mn),An=Me?Me.prototype:void 0,xn=An?An.valueOf:void 0,kn=An?An.toString:void 0;function Sn(e){if(Ha(e)&&!Na(e)&&!(e instanceof jn)){if(e instanceof In)return e;if(Ce.call(e,"__wrapped__"))return So(e)}return new In(e)}var Fn=function(){function e(){}return function(t){if(!Wa(t))return{};if(Ge)return Ge(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();function Dn(){}function In(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}function jn(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Nn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function Zn(e,t,n,r,i,o){var a,u=1&t,l=2&t,p=4&t;if(n&&(a=i?n(e,r,i,o):n(e)),void 0!==a)return a;if(!Wa(e))return e;var w=Na(e);if(w){if(a=function(e){var t=e.length,n=new e.constructor(t);t&&"string"==typeof e[0]&&Ce.call(e,"index")&&(n.index=e.index,n.input=e.input);return n}(e),!u)return gi(e,a)}else{var N=no(e),M=N==d||N==h;if(Ta(e))return fi(e,u);if(N==g||N==s||M&&!i){if(a=l||M?{}:io(e),!u)return l?function(e,t){return bi(e,to(e),t)}(e,function(e,t){return e&&bi(t,_u(t),e)}(a,e)):function(e,t){return bi(e,eo(e),t)}(e,Gn(a,e))}else{if(!ze[N])return i?e:{};a=function(e,t,n){var r=e.constructor;switch(t){case O:return pi(e);case c:case f:return new r(+e);case C:return function(e,t){var n=t?pi(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case A:case x:case k:case S:case F:case D:case"[object Uint8ClampedArray]":case I:case j:return di(e,n);case v:return new r;case m:case E:return new r(e);case b:return function(e){var t=new e.constructor(e.source,re.exec(e));return t.lastIndex=e.lastIndex,t}(e);case y:return new r;case _:return i=e,xn?ve(xn.call(i)):{}}var i}(e,N,u)}}o||(o=new Tn);var L=o.get(e);if(L)return L;o.set(e,a),Ka(e)?e.forEach((function(r){a.add(Zn(r,t,n,r,e,o))})):$a(e)&&e.forEach((function(r,i){a.set(i,Zn(r,t,n,i,e,o))}));var P=w?void 0:(p?l?Gi:$i:l?_u:Eu)(e);return ut(P||e,(function(r,i){P&&(r=e[i=r]),Wn(a,i,Zn(r,t,n,i,e,o))})),a}function Xn(e,t,n){var r=n.length;if(null==e)return!r;for(e=ve(e);r--;){var i=n[r],o=t[i],a=e[i];if(void 0===a&&!(i in e)||!o(a))return!1}return!0}function Jn(e,t,n){if("function"!=typeof e)throw new be(o);return Eo((function(){e.apply(void 0,n)}),t)}function Qn(e,t,n,r){var i=-1,o=ft,a=!0,u=e.length,s=[],l=t.length;if(!u)return s;n&&(t=dt(t,Dt(n))),r?(o=pt,a=!1):t.length>=200&&(o=jt,a=!1,t=new Pn(t));e:for(;++i-1},Mn.prototype.set=function(e,t){var n=this.__data__,r=Hn(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},Ln.prototype.clear=function(){this.size=0,this.__data__={hash:new Nn,map:new(dn||Mn),string:new Nn}},Ln.prototype.delete=function(e){var t=Xi(this,e).delete(e);return this.size-=t?1:0,t},Ln.prototype.get=function(e){return Xi(this,e).get(e)},Ln.prototype.has=function(e){return Xi(this,e).has(e)},Ln.prototype.set=function(e,t){var n=Xi(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},Pn.prototype.add=Pn.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},Pn.prototype.has=function(e){return this.__data__.has(e)},Tn.prototype.clear=function(){this.__data__=new Mn,this.size=0},Tn.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Tn.prototype.get=function(e){return this.__data__.get(e)},Tn.prototype.has=function(e){return this.__data__.has(e)},Tn.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Mn){var r=n.__data__;if(!dn||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Ln(r)}return n.set(e,t),this.size=n.size,this};var er=_i(sr),tr=_i(lr,!0);function nr(e,t){var n=!0;return er(e,(function(e,r,i){return n=!!t(e,r,i)})),n}function rr(e,t,n){for(var r=-1,i=e.length;++r0&&n(u)?t>1?or(u,t-1,n,r,i):ht(i,u):r||(i[i.length]=u)}return i}var ar=wi(),ur=wi(!0);function sr(e,t){return e&&ar(e,t,Eu)}function lr(e,t){return e&&ur(e,t,Eu)}function cr(e,t){return ct(t,(function(t){return Va(e[t])}))}function fr(e,t){for(var n=0,r=(t=ui(t,e)).length;null!=e&&nt}function vr(e,t){return null!=e&&Ce.call(e,t)}function mr(e,t){return null!=e&&t in ve(e)}function gr(e,t,n){for(var i=n?pt:ft,o=e[0].length,a=e.length,u=a,s=r(a),l=1/0,c=[];u--;){var f=e[u];u&&t&&(f=dt(f,Dt(t))),l=un(f.length,l),s[u]=!n&&(t||o>=120&&f.length>=120)?new Pn(u&&f):void 0}f=e[0];var p=-1,d=s[0];e:for(;++p=u)return s;var l=n[r];return s*("desc"==l?-1:1)}}return e.index-t.index}(e,t,n)}))}function Nr(e,t,n){for(var r=-1,i=t.length,o={};++r-1;)u!==e&&Ke.call(u,s,1),Ke.call(e,s,1);return e}function Lr(e,t){for(var n=e?t.length:0,r=n-1;n--;){var i=t[n];if(n==r||i!==o){var o=i;ao(i)?Ke.call(e,i,1):Qr(e,i)}}return e}function Pr(e,t){return e+Qt(cn()*(t-e+1))}function Tr(e,t){var n="";if(!e||t<1||t>9007199254740991)return n;do{t%2&&(n+=e),(t=Qt(t/2))&&(e+=e)}while(t);return n}function Rr(e,t){return _o(vo(e,t,Gu),e+"")}function Br(e){return Bn(Fu(e))}function Vr(e,t){var n=Fu(e);return Co(n,Kn(t,0,n.length))}function zr(e,t,n,r){if(!Wa(e))return e;for(var i=-1,o=(t=ui(t,e)).length,a=o-1,u=e;null!=u&&++io?0:o+t),(n=n>o?o:n)<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var a=r(o);++i>>1,a=e[o];null!==a&&!Xa(a)&&(n?a<=t:a=200){var l=t?null:Ti(e);if(l)return Wt(l);a=!1,i=jt,s=new Pn}else s=t?[]:u;e:for(;++r=r?e:$r(e,t,n)}var ci=Kt||function(e){return qe.clearTimeout(e)};function fi(e,t){if(t)return e.slice();var n=e.length,r=Ue?Ue(n):new e.constructor(n);return e.copy(r),r}function pi(e){var t=new e.constructor(e.byteLength);return new Pe(t).set(new Pe(e)),t}function di(e,t){var n=t?pi(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function hi(e,t){if(e!==t){var n=void 0!==e,r=null===e,i=e==e,o=Xa(e),a=void 0!==t,u=null===t,s=t==t,l=Xa(t);if(!u&&!l&&!o&&e>t||o&&a&&s&&!u&&!l||r&&a&&s||!n&&s||!i)return 1;if(!r&&!o&&!l&&e1?n[i-1]:void 0,a=i>2?n[2]:void 0;for(o=e.length>3&&"function"==typeof o?(i--,o):void 0,a&&uo(n[0],n[1],a)&&(o=i<3?void 0:o,i=1),t=ve(t);++r-1?i[o?t[a]:a]:void 0}}function ki(e){return Hi((function(t){var n=t.length,r=n,i=In.prototype.thru;for(e&&t.reverse();r--;){var a=t[r];if("function"!=typeof a)throw new be(o);if(i&&!u&&"wrapper"==Yi(a))var u=new In([],!0)}for(r=u?r:n;++r1&&y.reverse(),f&&lu))return!1;var l=o.get(e),c=o.get(t);if(l&&c)return l==t&&c==e;var f=-1,p=!0,d=2&n?new Pn:void 0;for(o.set(e,t),o.set(t,e);++f-1&&e%1==0&&e1?"& ":"")+t[r],t=t.join(n>2?", ":" "),e.replace(X,"{\n/* [wrapped with "+t+"] */\n")}(r,function(e,t){return ut(u,(function(n){var r="_."+n[0];t&n[1]&&!ft(e,r)&&e.push(r)})),e.sort()}(function(e){var t=e.match(J);return t?t[1].split(Q):[]}(r),n)))}function Oo(e){var t=0,n=0;return function(){var r=sn(),i=16-(r-n);if(n=r,i>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function Co(e,t){var n=-1,r=e.length,i=r-1;for(t=void 0===t?r:t;++n1?e[t-1]:void 0;return n="function"==typeof n?(e.pop(),n):void 0,Yo(e,n)}));function ta(e){var t=Sn(e);return t.__chain__=!0,t}function na(e,t){return t(e)}var ra=Hi((function(e){var t=e.length,n=t?e[0]:0,r=this.__wrapped__,i=function(t){return Yn(t,e)};return!(t>1||this.__actions__.length)&&r instanceof jn&&ao(n)?((r=r.slice(n,+n+(t?1:0))).__actions__.push({func:na,args:[i],thisArg:void 0}),new In(r,this.__chain__).thru((function(e){return t&&!e.length&&e.push(void 0),e}))):this.thru(i)}));var ia=yi((function(e,t,n){Ce.call(e,n)?++e[n]:qn(e,n,1)}));var oa=xi(jo),aa=xi(No);function ua(e,t){return(Na(e)?ut:er)(e,Zi(t,3))}function sa(e,t){return(Na(e)?st:tr)(e,Zi(t,3))}var la=yi((function(e,t,n){Ce.call(e,n)?e[n].push(t):qn(e,n,[t])}));var ca=Rr((function(e,t,n){var i=-1,o="function"==typeof t,a=La(e)?r(e.length):[];return er(e,(function(e){a[++i]=o?ot(t,e,n):br(e,t,n)})),a})),fa=yi((function(e,t,n){qn(e,n,t)}));function pa(e,t){return(Na(e)?dt:kr)(e,Zi(t,3))}var da=yi((function(e,t,n){e[n?0:1].push(t)}),(function(){return[[],[]]}));var ha=Rr((function(e,t){if(null==e)return[];var n=t.length;return n>1&&uo(e,t[0],t[1])?t=[]:n>2&&uo(t[0],t[1],t[2])&&(t=[t[0]]),jr(e,or(t,1),[])})),va=Zt||function(){return qe.Date.now()};function ma(e,t,n){return t=n?void 0:t,Bi(e,128,void 0,void 0,void 0,void 0,t=e&&null==t?e.length:t)}function ga(e,t){var n;if("function"!=typeof t)throw new be(o);return e=ru(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=void 0),n}}var ba=Rr((function(e,t,n){var r=1;if(n.length){var i=Ut(n,Ki(ba));r|=32}return Bi(e,r,t,n,i)})),ya=Rr((function(e,t,n){var r=3;if(n.length){var i=Ut(n,Ki(ya));r|=32}return Bi(t,r,e,n,i)}));function Ea(e,t,n){var r,i,a,u,s,l,c=0,f=!1,p=!1,d=!0;if("function"!=typeof e)throw new be(o);function h(t){var n=r,o=i;return r=i=void 0,c=t,u=e.apply(o,n)}function v(e){return c=e,s=Eo(g,t),f?h(e):u}function m(e){var n=e-l;return void 0===l||n>=t||n<0||p&&e-c>=a}function g(){var e=va();if(m(e))return b(e);s=Eo(g,function(e){var n=t-(e-l);return p?un(n,a-(e-c)):n}(e))}function b(e){return s=void 0,d&&r?h(e):(r=i=void 0,u)}function y(){var e=va(),n=m(e);if(r=arguments,i=this,l=e,n){if(void 0===s)return v(l);if(p)return ci(s),s=Eo(g,t),h(l)}return void 0===s&&(s=Eo(g,t)),u}return t=ou(t)||0,Wa(n)&&(f=!!n.leading,a=(p="maxWait"in n)?an(ou(n.maxWait)||0,t):a,d="trailing"in n?!!n.trailing:d),y.cancel=function(){void 0!==s&&ci(s),c=0,r=l=i=s=void 0},y.flush=function(){return void 0===s?u:b(va())},y}var _a=Rr((function(e,t){return Jn(e,1,t)})),wa=Rr((function(e,t,n){return Jn(e,ou(t)||0,n)}));function Oa(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new be(o);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var a=e.apply(this,r);return n.cache=o.set(i,a)||o,a};return n.cache=new(Oa.Cache||Ln),n}function Ca(e){if("function"!=typeof e)throw new be(o);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}Oa.Cache=Ln;var Aa=si((function(e,t){var n=(t=1==t.length&&Na(t[0])?dt(t[0],Dt(Zi())):dt(or(t,1),Dt(Zi()))).length;return Rr((function(r){for(var i=-1,o=un(r.length,n);++i=t})),ja=yr(function(){return arguments}())?yr:function(e){return Ha(e)&&Ce.call(e,"callee")&&!Ye.call(e,"callee")},Na=r.isArray,Ma=Qe?Dt(Qe):function(e){return Ha(e)&&dr(e)==O};function La(e){return null!=e&&Ua(e.length)&&!Va(e)}function Pa(e){return Ha(e)&&La(e)}var Ta=tn||os,Ra=et?Dt(et):function(e){return Ha(e)&&dr(e)==f};function Ba(e){if(!Ha(e))return!1;var t=dr(e);return t==p||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!qa(e)}function Va(e){if(!Wa(e))return!1;var t=dr(e);return t==d||t==h||"[object AsyncFunction]"==t||"[object Proxy]"==t}function za(e){return"number"==typeof e&&e==ru(e)}function Ua(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function Wa(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Ha(e){return null!=e&&"object"==typeof e}var $a=tt?Dt(tt):function(e){return Ha(e)&&no(e)==v};function Ga(e){return"number"==typeof e||Ha(e)&&dr(e)==m}function qa(e){if(!Ha(e)||dr(e)!=g)return!1;var t=$e(e);if(null===t)return!0;var n=Ce.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&Oe.call(n)==Se}var Ya=nt?Dt(nt):function(e){return Ha(e)&&dr(e)==b};var Ka=rt?Dt(rt):function(e){return Ha(e)&&no(e)==y};function Za(e){return"string"==typeof e||!Na(e)&&Ha(e)&&dr(e)==E}function Xa(e){return"symbol"==typeof e||Ha(e)&&dr(e)==_}var Ja=it?Dt(it):function(e){return Ha(e)&&Ua(e.length)&&!!Ve[dr(e)]};var Qa=Mi(xr),eu=Mi((function(e,t){return e<=t}));function tu(e){if(!e)return[];if(La(e))return Za(e)?Gt(e):gi(e);if(Je&&e[Je])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[Je]());var t=no(e);return(t==v?Vt:t==y?Wt:Fu)(e)}function nu(e){return e?(e=ou(e))===1/0||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function ru(e){var t=nu(e),n=t%1;return t==t?n?t-n:t:0}function iu(e){return e?Kn(ru(e),0,4294967295):0}function ou(e){if("number"==typeof e)return e;if(Xa(e))return NaN;if(Wa(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Wa(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(Y,"");var n=oe.test(e);return n||ue.test(e)?He(e.slice(2),n?2:8):ie.test(e)?NaN:+e}function au(e){return bi(e,_u(e))}function uu(e){return null==e?"":Xr(e)}var su=Ei((function(e,t){if(fo(t)||La(t))bi(t,Eu(t),e);else for(var n in t)Ce.call(t,n)&&Wn(e,n,t[n])})),lu=Ei((function(e,t){bi(t,_u(t),e)})),cu=Ei((function(e,t,n,r){bi(t,_u(t),e,r)})),fu=Ei((function(e,t,n,r){bi(t,Eu(t),e,r)})),pu=Hi(Yn);var du=Rr((function(e,t){e=ve(e);var n=-1,r=t.length,i=r>2?t[2]:void 0;for(i&&uo(t[0],t[1],i)&&(r=1);++n1),t})),bi(e,Gi(e),n),r&&(n=Zn(n,7,Ui));for(var i=t.length;i--;)Qr(n,t[i]);return n}));var Au=Hi((function(e,t){return null==e?{}:function(e,t){return Nr(e,t,(function(t,n){return mu(e,n)}))}(e,t)}));function xu(e,t){if(null==e)return{};var n=dt(Gi(e),(function(e){return[e]}));return t=Zi(t),Nr(e,n,(function(e,n){return t(e,n[0])}))}var ku=Ri(Eu),Su=Ri(_u);function Fu(e){return null==e?[]:It(e,Eu(e))}var Du=Ci((function(e,t,n){return t=t.toLowerCase(),e+(n?Iu(t):t)}));function Iu(e){return Bu(uu(e).toLowerCase())}function ju(e){return(e=uu(e))&&e.replace(le,Pt).replace(Ne,"")}var Nu=Ci((function(e,t,n){return e+(n?"-":"")+t.toLowerCase()})),Mu=Ci((function(e,t,n){return e+(n?" ":"")+t.toLowerCase()})),Lu=Oi("toLowerCase");var Pu=Ci((function(e,t,n){return e+(n?"_":"")+t.toLowerCase()}));var Tu=Ci((function(e,t,n){return e+(n?" ":"")+Bu(t)}));var Ru=Ci((function(e,t,n){return e+(n?" ":"")+t.toUpperCase()})),Bu=Oi("toUpperCase");function Vu(e,t,n){return e=uu(e),void 0===(t=n?void 0:t)?function(e){return Te.test(e)}(e)?function(e){return e.match(Le)||[]}(e):function(e){return e.match(ee)||[]}(e):e.match(t)||[]}var zu=Rr((function(e,t){try{return ot(e,void 0,t)}catch(n){return Ba(n)?n:new pe(n)}})),Uu=Hi((function(e,t){return ut(t,(function(t){t=xo(t),qn(e,t,ba(e[t],e))})),e}));function Wu(e){return function(){return e}}var Hu=ki(),$u=ki(!0);function Gu(e){return e}function qu(e){return Or("function"==typeof e?e:Zn(e,1))}var Yu=Rr((function(e,t){return function(n){return br(n,e,t)}})),Ku=Rr((function(e,t){return function(n){return br(e,n,t)}}));function Zu(e,t,n){var r=Eu(t),i=cr(t,r);null!=n||Wa(t)&&(i.length||!r.length)||(n=t,t=e,e=this,i=cr(t,Eu(t)));var o=!(Wa(n)&&"chain"in n&&!n.chain),a=Va(e);return ut(i,(function(n){var r=t[n];e[n]=r,a&&(e.prototype[n]=function(){var t=this.__chain__;if(o||t){var n=e(this.__wrapped__),i=n.__actions__=gi(this.__actions__);return i.push({func:r,args:arguments,thisArg:e}),n.__chain__=t,n}return r.apply(e,ht([this.value()],arguments))})})),e}function Xu(){}var Ju=Ii(dt),Qu=Ii(lt),es=Ii(gt);function ts(e){return so(e)?At(xo(e)):function(e){return function(t){return fr(t,e)}}(e)}var ns=Ni(),rs=Ni(!0);function is(){return[]}function os(){return!1}var as=Di((function(e,t){return e+t}),0),us=Pi("ceil"),ss=Di((function(e,t){return e/t}),1),ls=Pi("floor");var cs,fs=Di((function(e,t){return e*t}),1),ps=Pi("round"),ds=Di((function(e,t){return e-t}),0);return Sn.after=function(e,t){if("function"!=typeof t)throw new be(o);return e=ru(e),function(){if(--e<1)return t.apply(this,arguments)}},Sn.ary=ma,Sn.assign=su,Sn.assignIn=lu,Sn.assignInWith=cu,Sn.assignWith=fu,Sn.at=pu,Sn.before=ga,Sn.bind=ba,Sn.bindAll=Uu,Sn.bindKey=ya,Sn.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Na(e)?e:[e]},Sn.chain=ta,Sn.chunk=function(e,t,n){t=(n?uo(e,t,n):void 0===t)?1:an(ru(t),0);var i=null==e?0:e.length;if(!i||t<1)return[];for(var o=0,a=0,u=r(Jt(i/t));oi?0:i+n),(r=void 0===r||r>i?i:ru(r))<0&&(r+=i),r=n>r?0:iu(r);n>>0)?(e=uu(e))&&("string"==typeof t||null!=t&&!Ya(t))&&!(t=Xr(t))&&Bt(e)?li(Gt(e),0,n):e.split(t,n):[]},Sn.spread=function(e,t){if("function"!=typeof e)throw new be(o);return t=null==t?0:an(ru(t),0),Rr((function(n){var r=n[t],i=li(n,0,t);return r&&ht(i,r),ot(e,this,i)}))},Sn.tail=function(e){var t=null==e?0:e.length;return t?$r(e,1,t):[]},Sn.take=function(e,t,n){return e&&e.length?$r(e,0,(t=n||void 0===t?1:ru(t))<0?0:t):[]},Sn.takeRight=function(e,t,n){var r=null==e?0:e.length;return r?$r(e,(t=r-(t=n||void 0===t?1:ru(t)))<0?0:t,r):[]},Sn.takeRightWhile=function(e,t){return e&&e.length?ti(e,Zi(t,3),!1,!0):[]},Sn.takeWhile=function(e,t){return e&&e.length?ti(e,Zi(t,3)):[]},Sn.tap=function(e,t){return t(e),e},Sn.throttle=function(e,t,n){var r=!0,i=!0;if("function"!=typeof e)throw new be(o);return Wa(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),Ea(e,t,{leading:r,maxWait:t,trailing:i})},Sn.thru=na,Sn.toArray=tu,Sn.toPairs=ku,Sn.toPairsIn=Su,Sn.toPath=function(e){return Na(e)?dt(e,xo):Xa(e)?[e]:gi(Ao(uu(e)))},Sn.toPlainObject=au,Sn.transform=function(e,t,n){var r=Na(e),i=r||Ta(e)||Ja(e);if(t=Zi(t,4),null==n){var o=e&&e.constructor;n=i?r?new o:[]:Wa(e)&&Va(o)?Fn($e(e)):{}}return(i?ut:sr)(e,(function(e,r,i){return t(n,e,r,i)})),n},Sn.unary=function(e){return ma(e,1)},Sn.union=Ho,Sn.unionBy=$o,Sn.unionWith=Go,Sn.uniq=function(e){return e&&e.length?Jr(e):[]},Sn.uniqBy=function(e,t){return e&&e.length?Jr(e,Zi(t,2)):[]},Sn.uniqWith=function(e,t){return t="function"==typeof t?t:void 0,e&&e.length?Jr(e,void 0,t):[]},Sn.unset=function(e,t){return null==e||Qr(e,t)},Sn.unzip=qo,Sn.unzipWith=Yo,Sn.update=function(e,t,n){return null==e?e:ei(e,t,ai(n))},Sn.updateWith=function(e,t,n,r){return r="function"==typeof r?r:void 0,null==e?e:ei(e,t,ai(n),r)},Sn.values=Fu,Sn.valuesIn=function(e){return null==e?[]:It(e,_u(e))},Sn.without=Ko,Sn.words=Vu,Sn.wrap=function(e,t){return xa(ai(t),e)},Sn.xor=Zo,Sn.xorBy=Xo,Sn.xorWith=Jo,Sn.zip=Qo,Sn.zipObject=function(e,t){return ii(e||[],t||[],Wn)},Sn.zipObjectDeep=function(e,t){return ii(e||[],t||[],zr)},Sn.zipWith=ea,Sn.entries=ku,Sn.entriesIn=Su,Sn.extend=lu,Sn.extendWith=cu,Zu(Sn,Sn),Sn.add=as,Sn.attempt=zu,Sn.camelCase=Du,Sn.capitalize=Iu,Sn.ceil=us,Sn.clamp=function(e,t,n){return void 0===n&&(n=t,t=void 0),void 0!==n&&(n=(n=ou(n))==n?n:0),void 0!==t&&(t=(t=ou(t))==t?t:0),Kn(ou(e),t,n)},Sn.clone=function(e){return Zn(e,4)},Sn.cloneDeep=function(e){return Zn(e,5)},Sn.cloneDeepWith=function(e,t){return Zn(e,5,t="function"==typeof t?t:void 0)},Sn.cloneWith=function(e,t){return Zn(e,4,t="function"==typeof t?t:void 0)},Sn.conformsTo=function(e,t){return null==t||Xn(e,t,Eu(t))},Sn.deburr=ju,Sn.defaultTo=function(e,t){return null==e||e!=e?t:e},Sn.divide=ss,Sn.endsWith=function(e,t,n){e=uu(e),t=Xr(t);var r=e.length,i=n=void 0===n?r:Kn(ru(n),0,r);return(n-=t.length)>=0&&e.slice(n,i)==t},Sn.eq=Fa,Sn.escape=function(e){return(e=uu(e))&&B.test(e)?e.replace(T,Tt):e},Sn.escapeRegExp=function(e){return(e=uu(e))&&q.test(e)?e.replace(G,"\\$&"):e},Sn.every=function(e,t,n){var r=Na(e)?lt:nr;return n&&uo(e,t,n)&&(t=void 0),r(e,Zi(t,3))},Sn.find=oa,Sn.findIndex=jo,Sn.findKey=function(e,t){return yt(e,Zi(t,3),sr)},Sn.findLast=aa,Sn.findLastIndex=No,Sn.findLastKey=function(e,t){return yt(e,Zi(t,3),lr)},Sn.floor=ls,Sn.forEach=ua,Sn.forEachRight=sa,Sn.forIn=function(e,t){return null==e?e:ar(e,Zi(t,3),_u)},Sn.forInRight=function(e,t){return null==e?e:ur(e,Zi(t,3),_u)},Sn.forOwn=function(e,t){return e&&sr(e,Zi(t,3))},Sn.forOwnRight=function(e,t){return e&&lr(e,Zi(t,3))},Sn.get=vu,Sn.gt=Da,Sn.gte=Ia,Sn.has=function(e,t){return null!=e&&ro(e,t,vr)},Sn.hasIn=mu,Sn.head=Lo,Sn.identity=Gu,Sn.includes=function(e,t,n,r){e=La(e)?e:Fu(e),n=n&&!r?ru(n):0;var i=e.length;return n<0&&(n=an(i+n,0)),Za(e)?n<=i&&e.indexOf(t,n)>-1:!!i&&_t(e,t,n)>-1},Sn.indexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=null==n?0:ru(n);return i<0&&(i=an(r+i,0)),_t(e,t,i)},Sn.inRange=function(e,t,n){return t=nu(t),void 0===n?(n=t,t=0):n=nu(n),function(e,t,n){return e>=un(t,n)&&e=-9007199254740991&&e<=9007199254740991},Sn.isSet=Ka,Sn.isString=Za,Sn.isSymbol=Xa,Sn.isTypedArray=Ja,Sn.isUndefined=function(e){return void 0===e},Sn.isWeakMap=function(e){return Ha(e)&&no(e)==w},Sn.isWeakSet=function(e){return Ha(e)&&"[object WeakSet]"==dr(e)},Sn.join=function(e,t){return null==e?"":rn.call(e,t)},Sn.kebabCase=Nu,Sn.last=Bo,Sn.lastIndexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=r;return void 0!==n&&(i=(i=ru(n))<0?an(r+i,0):un(i,r-1)),t==t?function(e,t,n){for(var r=n+1;r--;)if(e[r]===t)return r;return r}(e,t,i):Et(e,Ot,i,!0)},Sn.lowerCase=Mu,Sn.lowerFirst=Lu,Sn.lt=Qa,Sn.lte=eu,Sn.max=function(e){return e&&e.length?rr(e,Gu,hr):void 0},Sn.maxBy=function(e,t){return e&&e.length?rr(e,Zi(t,2),hr):void 0},Sn.mean=function(e){return Ct(e,Gu)},Sn.meanBy=function(e,t){return Ct(e,Zi(t,2))},Sn.min=function(e){return e&&e.length?rr(e,Gu,xr):void 0},Sn.minBy=function(e,t){return e&&e.length?rr(e,Zi(t,2),xr):void 0},Sn.stubArray=is,Sn.stubFalse=os,Sn.stubObject=function(){return{}},Sn.stubString=function(){return""},Sn.stubTrue=function(){return!0},Sn.multiply=fs,Sn.nth=function(e,t){return e&&e.length?Ir(e,ru(t)):void 0},Sn.noConflict=function(){return qe._===this&&(qe._=Fe),this},Sn.noop=Xu,Sn.now=va,Sn.pad=function(e,t,n){e=uu(e);var r=(t=ru(t))?$t(e):0;if(!t||r>=t)return e;var i=(t-r)/2;return ji(Qt(i),n)+e+ji(Jt(i),n)},Sn.padEnd=function(e,t,n){e=uu(e);var r=(t=ru(t))?$t(e):0;return t&&rt){var r=e;e=t,t=r}if(n||e%1||t%1){var i=cn();return un(e+i*(t-e+We("1e-"+((i+"").length-1))),t)}return Pr(e,t)},Sn.reduce=function(e,t,n){var r=Na(e)?vt:kt,i=arguments.length<3;return r(e,Zi(t,4),n,i,er)},Sn.reduceRight=function(e,t,n){var r=Na(e)?mt:kt,i=arguments.length<3;return r(e,Zi(t,4),n,i,tr)},Sn.repeat=function(e,t,n){return t=(n?uo(e,t,n):void 0===t)?1:ru(t),Tr(uu(e),t)},Sn.replace=function(){var e=arguments,t=uu(e[0]);return e.length<3?t:t.replace(e[1],e[2])},Sn.result=function(e,t,n){var r=-1,i=(t=ui(t,e)).length;for(i||(i=1,e=void 0);++r9007199254740991)return[];var n=4294967295,r=un(e,4294967295);e-=4294967295;for(var i=Ft(r,t=Zi(t));++n=o)return e;var u=n-$t(r);if(u<1)return r;var s=a?li(a,0,u).join(""):e.slice(0,u);if(void 0===i)return s+r;if(a&&(u+=s.length-u),Ya(i)){if(e.slice(u).search(i)){var l,c=s;for(i.global||(i=me(i.source,uu(re.exec(i))+"g")),i.lastIndex=0;l=i.exec(c);)var f=l.index;s=s.slice(0,void 0===f?u:f)}}else if(e.indexOf(Xr(i),u)!=u){var p=s.lastIndexOf(i);p>-1&&(s=s.slice(0,p))}return s+r},Sn.unescape=function(e){return(e=uu(e))&&R.test(e)?e.replace(P,qt):e},Sn.uniqueId=function(e){var t=++Ae;return uu(e)+t},Sn.upperCase=Ru,Sn.upperFirst=Bu,Sn.each=ua,Sn.eachRight=sa,Sn.first=Lo,Zu(Sn,(cs={},sr(Sn,(function(e,t){Ce.call(Sn.prototype,t)||(cs[t]=e)})),cs),{chain:!1}),Sn.VERSION="4.17.19",ut(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){Sn[e].placeholder=Sn})),ut(["drop","take"],(function(e,t){jn.prototype[e]=function(n){n=void 0===n?1:an(ru(n),0);var r=this.__filtered__&&!t?new jn(this):this.clone();return r.__filtered__?r.__takeCount__=un(n,r.__takeCount__):r.__views__.push({size:un(n,4294967295),type:e+(r.__dir__<0?"Right":"")}),r},jn.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),ut(["filter","map","takeWhile"],(function(e,t){var n=t+1,r=1==n||3==n;jn.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:Zi(e,3),type:n}),t.__filtered__=t.__filtered__||r,t}})),ut(["head","last"],(function(e,t){var n="take"+(t?"Right":"");jn.prototype[e]=function(){return this[n](1).value()[0]}})),ut(["initial","tail"],(function(e,t){var n="drop"+(t?"":"Right");jn.prototype[e]=function(){return this.__filtered__?new jn(this):this[n](1)}})),jn.prototype.compact=function(){return this.filter(Gu)},jn.prototype.find=function(e){return this.filter(e).head()},jn.prototype.findLast=function(e){return this.reverse().find(e)},jn.prototype.invokeMap=Rr((function(e,t){return"function"==typeof e?new jn(this):this.map((function(n){return br(n,e,t)}))})),jn.prototype.reject=function(e){return this.filter(Ca(Zi(e)))},jn.prototype.slice=function(e,t){e=ru(e);var n=this;return n.__filtered__&&(e>0||t<0)?new jn(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),void 0!==t&&(n=(t=ru(t))<0?n.dropRight(-t):n.take(t-e)),n)},jn.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},jn.prototype.toArray=function(){return this.take(4294967295)},sr(jn.prototype,(function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),i=Sn[r?"take"+("last"==t?"Right":""):t],o=r||/^find/.test(t);i&&(Sn.prototype[t]=function(){var t=this.__wrapped__,a=r?[1]:arguments,u=t instanceof jn,s=a[0],l=u||Na(t),c=function(e){var t=i.apply(Sn,ht([e],a));return r&&f?t[0]:t};l&&n&&"function"==typeof s&&1!=s.length&&(u=l=!1);var f=this.__chain__,p=!!this.__actions__.length,d=o&&!f,h=u&&!p;if(!o&&l){t=h?t:new jn(this);var v=e.apply(t,a);return v.__actions__.push({func:na,args:[c],thisArg:void 0}),new In(v,f)}return d&&h?e.apply(this,a):(v=this.thru(c),d?r?v.value()[0]:v.value():v)})})),ut(["pop","push","shift","sort","splice","unshift"],(function(e){var t=ye[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",r=/^(?:pop|shift)$/.test(e);Sn.prototype[e]=function(){var e=arguments;if(r&&!this.__chain__){var i=this.value();return t.apply(Na(i)?i:[],e)}return this[n]((function(n){return t.apply(Na(n)?n:[],e)}))}})),sr(jn.prototype,(function(e,t){var n=Sn[t];if(n){var r=n.name+"";Ce.call(yn,r)||(yn[r]=[]),yn[r].push({name:t,func:n})}})),yn[Si(void 0,2).name]=[{name:"wrapper",func:void 0}],jn.prototype.clone=function(){var e=new jn(this.__wrapped__);return e.__actions__=gi(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=gi(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=gi(this.__views__),e},jn.prototype.reverse=function(){if(this.__filtered__){var e=new jn(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},jn.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=Na(e),r=t<0,i=n?e.length:0,o=function(e,t,n){var r=-1,i=n.length;for(;++r=this.__values__.length;return{done:e,value:e?void 0:this.__values__[this.__index__++]}},Sn.prototype.plant=function(e){for(var t,n=this;n instanceof Dn;){var r=So(n);r.__index__=0,r.__values__=void 0,t?i.__wrapped__=r:t=r;var i=r;n=n.__wrapped__}return i.__wrapped__=e,t},Sn.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof jn){var t=e;return this.__actions__.length&&(t=new jn(this)),(t=t.reverse()).__actions__.push({func:na,args:[Wo],thisArg:void 0}),new In(t,this.__chain__)}return this.thru(Wo)},Sn.prototype.toJSON=Sn.prototype.valueOf=Sn.prototype.value=function(){return ni(this.__wrapped__,this.__actions__)},Sn.prototype.first=Sn.prototype.head,Je&&(Sn.prototype[Je]=function(){return this}),Sn}();qe._=Yt,void 0===(i=function(){return Yt}.call(t,n,t,r))||(r.exports=i)}).call(this)}).call(this,n(77),n(326)(e))},318:function(e,t,n){"use strict";n.d(t,"a",(function(){return i})),n.d(t,"b",(function(){return o}));var r=n(253);function i(){var e=Object(r.a)().siteConfig,t=(void 0===e?{}:e).customFields.metadata.latest_post,n=Date.parse(t.date),i=new Date,o=Math.abs(i-n),a=Math.ceil(o/864e5),u=null;return"undefined"!=typeof window&&(u=new Date(parseInt(window.localStorage.getItem("blogViewedAt")||"0"))),a<30&&(!u||u=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(this.props,[]);return function(e){c.forEach((function(t){return delete e[t]}))}(i),i.className=this.props.inputClassName,i.id=this.state.inputId,i.style=n,a.default.createElement("div",{className:this.props.className,style:t},this.renderStyles(),a.default.createElement("input",r({},i,{ref:this.inputRef})),a.default.createElement("div",{ref:this.sizerRef,style:l},e),this.props.placeholder?a.default.createElement("div",{ref:this.placeHolderSizerRef,style:l},this.props.placeholder):null)}}]),t}(o.Component);h.propTypes={className:u.default.string,defaultValue:u.default.any,extraWidth:u.default.oneOfType([u.default.number,u.default.string]),id:u.default.string,injectStyles:u.default.bool,inputClassName:u.default.string,inputRef:u.default.func,inputStyle:u.default.object,minWidth:u.default.oneOfType([u.default.number,u.default.string]),onAutosize:u.default.func,onChange:u.default.func,placeholder:u.default.string,placeholderIsMinWidth:u.default.bool,style:u.default.object,value:u.default.any},h.defaultProps={minWidth:1,injectStyles:!0},t.default=h},383:function(e,t,n){"use strict";var r=n(384),i=n(58);function o(e,t){return t.encode?t.strict?r(e):encodeURIComponent(e):e}t.extract=function(e){return e.split("?")[1]||""},t.parse=function(e,t){var n=function(e){var t;switch(e.arrayFormat){case"index":return function(e,n,r){t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===r[e]&&(r[e]={}),r[e][t[1]]=n):r[e]=n};case"bracket":return function(e,n,r){t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==r[e]?r[e]=[].concat(r[e],n):r[e]=[n]:r[e]=n};default:return function(e,t,n){void 0!==n[e]?n[e]=[].concat(n[e],t):n[e]=t}}}(t=i({arrayFormat:"none"},t)),r=Object.create(null);return"string"!=typeof e?r:(e=e.trim().replace(/^(\?|#|&)/,""))?(e.split("&").forEach((function(e){var t=e.replace(/\+/g," ").split("="),i=t.shift(),o=t.length>0?t.join("="):void 0;o=void 0===o?null:decodeURIComponent(o),n(decodeURIComponent(i),o,r)})),Object.keys(r).sort().reduce((function(e,t){var n=r[t];return Boolean(n)&&"object"==typeof n&&!Array.isArray(n)?e[t]=function e(t){return Array.isArray(t)?t.sort():"object"==typeof t?e(Object.keys(t)).sort((function(e,t){return Number(e)-Number(t)})).map((function(e){return t[e]})):t}(n):e[t]=n,e}),Object.create(null))):r},t.stringify=function(e,t){var n=function(e){switch(e.arrayFormat){case"index":return function(t,n,r){return null===n?[o(t,e),"[",r,"]"].join(""):[o(t,e),"[",o(r,e),"]=",o(n,e)].join("")};case"bracket":return function(t,n){return null===n?o(t,e):[o(t,e),"[]=",o(n,e)].join("")};default:return function(t,n){return null===n?o(t,e):[o(t,e),"=",o(n,e)].join("")}}}(t=i({encode:!0,strict:!0,arrayFormat:"none"},t));return e?Object.keys(e).sort().map((function(r){var i=e[r];if(void 0===i)return"";if(null===i)return o(r,t);if(Array.isArray(i)){var a=[];return i.slice().forEach((function(e){void 0!==e&&a.push(n(r,e,a.length))})),a.join("&")}return o(r,t)+"="+o(i,t)})).filter((function(e){return e.length>0})).join("&"):""}},384:function(e,t,n){"use strict";e.exports=function(e){return encodeURIComponent(e).replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}}}]); \ No newline at end of file diff --git a/c4f5d8e4.2ee974aa.js.LICENSE.txt b/c4f5d8e4.a9e9690b.js.LICENSE.txt similarity index 100% rename from c4f5d8e4.2ee974aa.js.LICENSE.txt rename to c4f5d8e4.a9e9690b.js.LICENSE.txt diff --git a/ccc49370.e940ae58.js b/ccc49370.bd615195.js similarity index 99% rename from ccc49370.e940ae58.js rename to ccc49370.bd615195.js index 667b1670c..a03d41b2c 100644 --- a/ccc49370.e940ae58.js +++ b/ccc49370.bd615195.js @@ -1,2 +1,2 @@ -/*! For license information please see ccc49370.e940ae58.js.LICENSE.txt */ -(window.webpackJsonp=window.webpackJsonp||[]).push([[84],{250:function(e,t,a){"use strict";a.r(t);a(260),a(302),a(19);var n=a(0),r=a.n(n),u=a(278),l=a(314),i=a(259),c=(a(315),a(254));var o=function(e){var t=e.nextItem,a=e.prevItem;return r.a.createElement("nav",{className:"pagination-nav"},r.a.createElement("div",{className:"pagination-nav__item"},a&&r.a.createElement(c.a,{className:"pagination-nav__link",to:a.permalink},r.a.createElement("div",{className:"pagination-nav__link--sublabel"},"Previous Post"),r.a.createElement("div",{className:"pagination-nav__link--label"},"\xab ",a.title))),r.a.createElement("div",{className:"pagination-nav__item pagination-nav__item--next"},t&&r.a.createElement(c.a,{className:"pagination-nav__link",to:t.permalink},r.a.createElement("div",{className:"pagination-nav__link--sublabel"},"Next Post"),r.a.createElement("div",{className:"pagination-nav__link--label"},t.title," \xbb"))))},s=a(285),D=a(251),m=a(279),d=a(252),E=a.n(d),g=a(280),f=a.n(g),b=a(261),p=a(318),h=a(303),v=a.n(h),F=a(228),y=a.n(F);t.default=function(e){var t=e.content,a=t.frontMatter,n=t.metadata,c=a.author_github,d=a.id,g=a.title,h=n.date,F=n.tags,C=v()(t.toString()),N=new Date(Date.parse(h)),_=Object(b.a)(F,"blog").find((function(e){return"domain"==e.category})),w=_?_.value:null,k=Object(p.a)();return k&&k.id==d&&Object(p.b)(),r.a.createElement(i.a,{title:n.title,description:n.description},r.a.createElement("article",{className:y.a.blogPost},r.a.createElement("header",{className:E()("hero","domain-bg","domain-bg--"+w,y.a.header)},r.a.createElement("div",{className:E()("container",y.a.headerContainer)},r.a.createElement("div",{class:"hero--avatar"},r.a.createElement(u.a,{github:c,size:"lg",nameSuffix:r.a.createElement(r.a.Fragment,null," / ",r.a.createElement("time",{pubdate:"pubdate",dateTime:N.toISOString()},f()(N,"mmm dS"))," / ",C.text),rel:"author",subTitle:!1,vertical:!0})),r.a.createElement("h1",null,g),r.a.createElement("div",{className:"hero--subtitle"},n.description),r.a.createElement("div",{className:"hero--tags"},r.a.createElement(m.a,{colorProfile:"blog",tags:F})))),r.a.createElement("div",{className:"container container--xs margin-vert--xl"},r.a.createElement("section",{className:"markdown dropcap"},r.a.createElement(D.a,{components:s.a},r.a.createElement(t,null))),r.a.createElement("section",null,r.a.createElement("h2",null,"Like What You See?"),r.a.createElement(l.a,null)),(n.nextItem||n.prevItem)&&r.a.createElement("div",{className:"margin-vert--xl"},r.a.createElement(o,{nextItem:n.nextItem,prevItem:n.prevItem})))))}},251:function(e,t,a){"use strict";a.d(t,"a",(function(){return D})),a.d(t,"b",(function(){return E}));var n=a(0),r=a.n(n);function u(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=r.a.createContext({}),s=function(e){var t=r.a.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i({},t,{},e)),a},D=function(e){var t=s(e.components);return r.a.createElement(o.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},d=Object(n.forwardRef)((function(e,t){var a=e.components,n=e.mdxType,u=e.originalType,l=e.parentName,o=c(e,["components","mdxType","originalType","parentName"]),D=s(a),d=n,E=D["".concat(l,".").concat(d)]||D[d]||m[d]||u;return a?r.a.createElement(E,i({ref:t},o,{components:a})):r.a.createElement(E,i({ref:t},o))}));function E(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var u=a.length,l=new Array(u);l[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:n,l[1]=i;for(var o=2;o0&&r.a.createElement("div",{className:"row footer__links"},r.a.createElement("div",{className:"col col--5 footer__col"},r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(D.a,{className:"navbar__logo",src:"/img/logo-light.svg",alt:"gnet",width:"150",height:"auto"})),r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(S,{description:!1,width:"150px"})),r.a.createElement("div",null,r.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank"},r.a.createElement("i",{className:"feather icon-twitter",alt:"gnet's Twitter"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank"},r.a.createElement("i",{className:"feather icon-github",alt:"gnet's Github Repo"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://strikefreedom.top/rss.xml",target:"_blank"},r.a.createElement("i",{className:"feather icon-rss",alt:"gnet's RSS feed"})))),i.map((function(e,t){return r.a.createElement("div",{key:t,className:"col footer__col"},null!=e.title?r.a.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?r.a.createElement("ul",{className:"footer__items"},e.items.map((function(e,t){return e.html?r.a.createElement("li",{key:t,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):r.a.createElement("li",{key:e.href||e.to,className:"footer__item"},r.a.createElement(P,e))}))):null)}))),(o||u)&&r.a.createElement("div",{className:"text--center"},o&&o.src&&r.a.createElement("div",{className:"margin-bottom--sm"},o.href?r.a.createElement("a",{href:o.href,target:"_blank",rel:"noopener noreferrer",className:B.a.footerLogoLink},r.a.createElement(I,{alt:o.alt,url:s})):r.a.createElement(I,{alt:o.alt,url:s}),r.a.createElement("br",null),r.a.createElement("a",{href:"https://www.digitalocean.com/",target:"_blank",rel:"noopener noreferrer",className:B.a.footerLogoLink},r.a.createElement("img",{alt:"DigitalOcean",src:"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg",width:"201px"}))),u,r.a.createElement("br",null),r.a.createElement("small",null,r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/security/policy"},"Security Policy"),"\xa0\u2022\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/blob/master/PRIVACY.md"},"Privacy Policy"))))):null},H=a(276),R=a(277),W=a(3);a(135);t.a=function(e){var t=Object(E.a)().siteConfig,a=void 0===t?{}:t,n=a.favicon,i=(a.tagline,a.title),c=a.themeConfig.image,o=a.url,s=e.children,D=e.title,m=e.noFooter,d=e.description,g=e.image,f=e.keywords,b=(e.permalink,e.version),p=D?D+" | "+i:i,h=g||c,v=o+Object(C.a)(h),F=Object(C.a)(n),y=Object(W.h)(),N=y?"https://gnet.host"+(y.pathname.endsWith("/")?y.pathname:y.pathname+"/"):null;return r.a.createElement(R.a,null,r.a.createElement(H.a,null,r.a.createElement(l.a,null,r.a.createElement("html",{lang:"en"}),r.a.createElement("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),p&&r.a.createElement("title",null,p),p&&r.a.createElement("meta",{property:"og:title",content:p}),n&&r.a.createElement("link",{rel:"shortcut icon",href:F}),d&&r.a.createElement("meta",{name:"description",content:d}),d&&r.a.createElement("meta",{property:"og:description",content:d}),b&&r.a.createElement("meta",{name:"docsearch:version",content:b}),f&&f.length&&r.a.createElement("meta",{name:"keywords",content:f.join(",")}),h&&r.a.createElement("meta",{property:"og:image",content:v}),h&&r.a.createElement("meta",{property:"twitter:image",content:v}),h&&r.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+p}),h&&r.a.createElement("meta",{name:"twitter:site",content:"@vectordotdev"}),h&&r.a.createElement("meta",{name:"twitter:creator",content:"@vectordotdev"}),N&&r.a.createElement("meta",{property:"og:url",content:N}),r.a.createElement("meta",{name:"twitter:card",content:"summary"}),N&&r.a.createElement("link",{rel:"canonical",href:N})),r.a.createElement(u.a,null),r.a.createElement(A,null),r.a.createElement("div",{className:"main-wrapper"},s),!m&&r.a.createElement(L,null)))}},261:function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));a(79),a(284),a(260),a(78);var n=a(265),r=a.n(n);function u(e,t){var a=new r.a;return e.map((function(e){var n=e;return"string"==typeof e&&(n={label:e,permalink:"/"+t+"/tags/"+a.slug(e)}),function(e,t){if(e.enriched)return e;var a=e.label.split(": ",2),n=a[0],r=a[1],u="primary";switch(n){case"domain":u="blue";break;case"type":u="pink";break;default:u="primary"}return{category:n,count:e.count,enriched:!0,label:e.label,permalink:e.permalink,style:u,value:r}}(n)}))}},263:function(e,t,a){var n=a(24).f,r=Function.prototype,u=/^\s*function ([^ (]*)/;"name"in r||a(10)&&n(r,"name",{configurable:!0,get:function(){try{return(""+this).match(u)[1]}catch(e){return""}}})},265:function(e,t,a){var n=a(274);e.exports=i;var r=Object.hasOwnProperty,u=/\s/g,l=/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~\u2019]/g;function i(){if(!(this instanceof i))return new i;this.reset()}function c(e,t){return"string"!=typeof e?"":(t||(e=e.toLowerCase()),e.trim().replace(l,"").replace(n(),"").replace(u,"-"))}i.prototype.slug=function(e,t){for(var a=c(e,!0===t),n=a;r.call(this.occurrences,a);)this.occurrences[n]++,a=n+"-"+this.occurrences[n];return this.occurrences[a]=0,a},i.prototype.reset=function(){this.occurrences=Object.create(null)},i.slug=c},273:function(e,t,a){"use strict";var n=a(0),r=a.n(n),u=a(254),l=a(252),i=a.n(l);t.a=function(e){var t=e.count,a=e.label,n=e.permalink,l=e.style,c=e.value,o=e.valueOnly;return r.a.createElement(u.a,{to:n+"/",className:i()("badge","badge--rounded","badge--"+l)},o?c:a,t&&r.a.createElement(r.a.Fragment,null," (",t,")"))}},274:function(e,t){e.exports=function(){return/[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267B\u267F\u2692-\u2694\u2696\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD79\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED0\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3]|\uD83E[\uDD10-\uDD18\uDD80-\uDD84\uDDC0]|\uD83C\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uD83C\uDDFE\uD83C[\uDDEA\uDDF9]|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDFC\uD83C[\uDDEB\uDDF8]|\uD83C\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uD83C\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF8\uDDFE\uDDFF]|\uD83C\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uD83C\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uD83C\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uD83C\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uD83C\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uD83C\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uD83C\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uD83C\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uD83C\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uD83C\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uD83C\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uD83C\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uD83C\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uD83C\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uD83C\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uD83C\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|[#\*0-9]\u20E3/g}},278:function(e,t,a){"use strict";a(263),a(260);var n=a(0),r=a.n(n),u=a(252),l=a.n(u),i=a(253);a(137);t.a=function(e){var t,a=e.bio,n=e.className,u=e.github,c=e.nameSuffix,o=e.rel,s=e.size,D=e.subTitle,m=e.vertical,d=Object(i.a)().siteConfig,E=(void 0===d?{}:d).customFields.metadata.team,g=E.find((function(e){return e.github==u}))||E.find((function(e){return"ben"==e.id}));return r.a.createElement("div",{className:l()("avatar",n,(t={},t["avatar--"+s]=s,t["avatar--vertical"]=m,t))},r.a.createElement("img",{className:l()("avatar__photo","avatar__photo--"+s),src:g.avatar}),r.a.createElement("div",{className:"avatar__intro"},r.a.createElement("div",{className:"avatar__name"},r.a.createElement("a",{href:g.github,target:"_blank",rel:o},g.name),c),D&&r.a.createElement("small",{className:"avatar__subtitle"},D),!D&&a&&r.a.createElement("small",{className:"avatar__subtitle",dangerouslySetInnerHTML:{__html:g.bio}})))}},279:function(e,t,a){"use strict";var n=a(1),r=a(0),u=a.n(r),l=(a(254),a(273)),i=a(252),c=a.n(i),o=a(261),s=a(138),D=a.n(s);t.a=function(e){var t,a=e.block,r=e.colorProfile,i=e.tags,s=e.valuesOnly,m=Object(o.a)(i,r);return u.a.createElement("span",{className:c()(D.a.tags,(t={},t[D.a.tagsBlock]=a,t))},m.map((function(e,t){return u.a.createElement(l.a,Object(n.a)({key:t,valueOnly:s},e))})))}},280:function(e,t,a){var n;!function(r){"use strict";var u,l,i,c=(u=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZWN]|"[^"]*"|'[^']*'/g,l=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,i=/[^-+\dA-Z]/g,function(e,t,a,n){if(1!==arguments.length||"string"!==m(e)||/\d/.test(e)||(t=e,e=void 0),(e=e||new Date)instanceof Date||(e=new Date(e)),isNaN(e))throw TypeError("Invalid date");var r=(t=String(c.masks[t]||t||c.masks.default)).slice(0,4);"UTC:"!==r&&"GMT:"!==r||(t=t.slice(4),a=!0,"GMT:"===r&&(n=!0));var d=a?"getUTC":"get",E=e[d+"Date"](),g=e[d+"Day"](),f=e[d+"Month"](),b=e[d+"FullYear"](),p=e[d+"Hours"](),h=e[d+"Minutes"](),v=e[d+"Seconds"](),F=e[d+"Milliseconds"](),y=a?0:e.getTimezoneOffset(),C=s(e),N=D(e),_={d:E,dd:o(E),ddd:c.i18n.dayNames[g],dddd:c.i18n.dayNames[g+7],m:f+1,mm:o(f+1),mmm:c.i18n.monthNames[f],mmmm:c.i18n.monthNames[f+12],yy:String(b).slice(2),yyyy:b,h:p%12||12,hh:o(p%12||12),H:p,HH:o(p),M:h,MM:o(h),s:v,ss:o(v),l:o(F,3),L:o(Math.round(F/10)),t:p<12?c.i18n.timeNames[0]:c.i18n.timeNames[1],tt:p<12?c.i18n.timeNames[2]:c.i18n.timeNames[3],T:p<12?c.i18n.timeNames[4]:c.i18n.timeNames[5],TT:p<12?c.i18n.timeNames[6]:c.i18n.timeNames[7],Z:n?"GMT":a?"UTC":(String(e).match(l)||[""]).pop().replace(i,""),o:(y>0?"-":"+")+o(100*Math.floor(Math.abs(y)/60)+Math.abs(y)%60,4),S:["th","st","nd","rd"][E%10>3?0:(E%100-E%10!=10)*E%10],W:C,N:N};return t.replace(u,(function(e){return e in _?_[e]:e.slice(1,e.length-1)}))});function o(e,t){for(e=String(e),t=t||2;e.length0}))}l&&v.test(l)&&(O=l.match(v)[0].split("title=")[1].replace(/"+/g,"")),Object(r.useEffect)((function(){var e;return w.current&&(e=new i.a(w.current,{target:function(){return _.current}})),function(){e&&e.destroy()}}),[w.current,_.current]);var x=a&&a.replace(/language-/,"");!x&&s.defaultLanguage&&(x=s.defaultLanguage);var B=function(){window.getSelection().empty(),F(!0),setTimeout((function(){return F(!1)}),2e3)};return u.a.createElement(c.a,Object(n.a)({},c.b,{key:C,theme:M,code:t.trim(),language:x}),(function(e){var t,a,r=e.className,l=e.style,i=e.tokens,c=e.getLineProps,o=e.getTokenProps;return u.a.createElement(u.a.Fragment,null,O&&u.a.createElement("div",{style:l,className:p.a.codeBlockTitle},O),u.a.createElement("div",{className:p.a.codeBlockContent},u.a.createElement("button",{ref:w,type:"button","aria-label":"Copy code to clipboard",className:D()(p.a.copyButton,(t={},t[p.a.copyButtonWithTitle]=O,t)),onClick:B},b?"Copied":"Copy"),u.a.createElement("pre",{className:D()(r,p.a.codeBlock,(a={},a[p.a.codeBlockWithTitle]=O,a))},u.a.createElement("div",{ref:_,className:p.a.codeBlockLines,style:l},i.map((function(e,t){1===e.length&&""===e[0].content&&(e[0].content="\n");var a=c({line:e,key:t});return k.includes(t+1)&&(a.className=a.className+" docusaurus-highlight-code-line"),u.a.createElement("div",Object(n.a)({key:t},a),e.map((function(e,t){return u.a.createElement("span",Object(n.a)({key:t},o({token:e,key:t})))})))}))))))}))}}).call(this,a(77))},285:function(e,t,a){"use strict";var n=a(1),r=a(0),u=a.n(r),l=a(254),i=a(283),c=a(264),o=a(141),s=a.n(o);t.a={code:function(e){var t=e.children;return"string"==typeof t?u.a.createElement(i.a,e):t},a:function(e){return/\.[^./]+$/.test(e.href)?u.a.createElement("a",e):u.a.createElement(l.a,e)},pre:function(e){return u.a.createElement("div",Object(n.a)({className:s.a.mdxCodeBlock},e))},h1:Object(c.a)("h1"),h2:Object(c.a)("h2"),h3:Object(c.a)("h3"),h4:Object(c.a)("h4"),h5:Object(c.a)("h5"),h6:Object(c.a)("h6")}},302:function(e,t,a){"use strict";a(316);var n=a(8),r=a(81),u=a(10),l=/./.toString,i=function(e){a(15)(RegExp.prototype,"toString",e,!0)};a(13)((function(){return"/a/b"!=l.call({source:"a",flags:"b"})}))?i((function(){var e=n(this);return"/".concat(e.source,"/","flags"in e?e.flags:!u&&e instanceof RegExp?r.call(e):void 0)})):"toString"!=l.name&&i((function(){return l.call(this)}))},303:function(e,t,a){e.exports=a(317)},314:function(e,t,a){"use strict";var n=a(0),r=a.n(n),u=a(252),l=a.n(u);t.a=function(e){var t=e.github,a=e.inline,n=e.size,u=e.style,i=l()("panel","panel--button","panel--"+n,"panel--"+u,{"panel--button--inline":a});return r.a.createElement("div",{className:"row row--squished"},r.a.createElement("div",{className:"col"},r.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank",className:i},r.a.createElement("div",{className:"panel--icon"},r.a.createElement("i",{className:"feather icon-twitter",title:"Twitter"})),r.a.createElement("div",null,r.a.createElement("div",{className:"panel--title"},"Follow @panjf2000"),r.a.createElement("div",{className:"panel--description"},"Get real-time updates!")))),0!=t&&r.a.createElement("div",{className:"col"},r.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank",className:i},r.a.createElement("div",{className:"panel--icon"},r.a.createElement("i",{className:"feather icon-github"})),r.a.createElement("div",null,r.a.createElement("div",{className:"panel--title"},"Star panjf2000/gnet"),r.a.createElement("div",{className:"panel--description"},"Star the repo to support us.")))))}},315:function(e,t,a){"use strict";a(260),a(302),a(19);var n=a(0),r=a.n(n),u=a(278),l=a(254),i=(a(285),a(251),a(279)),c=a(252),o=a.n(c),s=a(280),D=a.n(s),m=a(261),d=a(303),E=a.n(d);t.a=function(e){var t=e.children,a=e.frontMatter,n=e.metadata,c=(e.truncated,e.isBlogPostPage,n.date),s=n.description,d=n.permalink,g=n.tags,f=a.author_github,b=a.title,p=E()(t.toString()),h=new Date(Date.parse(c)),v=Object(m.a)(g,"blog").find((function(e){return"domain"==e.category})),F=v?v.value:null;return r.a.createElement(l.a,{to:d+"/",className:o()("panel","domain-bg","domain-bg--hover","domain-bg--"+F)},r.a.createElement("article",null,r.a.createElement("h2",null,b),r.a.createElement("div",{className:"subtitle"},s),r.a.createElement(u.a,{github:f,size:"sm",subTitle:r.a.createElement(r.a.Fragment,null,r.a.createElement("time",{pubdate:"pubdate",dateTime:h.toISOString()},D()(h,"mmm dS"))," / ",p.text),rel:"author"}),r.a.createElement(i.a,{colorProfile:"blog",tags:g})))}},316:function(e,t,a){a(10)&&"g"!=/./g.flags&&a(24).f(RegExp.prototype,"flags",{configurable:!0,get:a(81)})},317:function(e,t,a){"use strict";function n(e){return" "===e||"\n"===e||"\r"===e||"\t"===e}e.exports=function(e,t){var a,r,u=0,l=0,i=e.length-1;for((t=t||{}).wordsPerMinute=t.wordsPerMinute||200,a=t.wordBound||n;a(e[l]);)l++;for(;a(e[i]);)i--;for(r=l;r<=i;){for(;r<=i&&!a(e[r]);r++);for(u++;r<=i&&a(e[r]);r++);}var c=u/t.wordsPerMinute,o=60*c*1e3;return{text:Math.ceil(c.toFixed(2))+" min read",minutes:c,time:o,words:u}}},318:function(e,t,a){"use strict";a.d(t,"a",(function(){return r})),a.d(t,"b",(function(){return u}));var n=a(253);function r(){var e=Object(n.a)().siteConfig,t=(void 0===e?{}:e).customFields.metadata.latest_post,a=Date.parse(t.date),r=new Date,u=Math.abs(r-a),l=Math.ceil(u/864e5),i=null;return"undefined"!=typeof window&&(i=new Date(parseInt(window.localStorage.getItem("blogViewedAt")||"0"))),l<30&&(!i||i=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=r.a.createContext({}),s=function(e){var t=r.a.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i({},t,{},e)),a},D=function(e){var t=s(e.components);return r.a.createElement(o.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},d=Object(n.forwardRef)((function(e,t){var a=e.components,n=e.mdxType,u=e.originalType,l=e.parentName,o=c(e,["components","mdxType","originalType","parentName"]),D=s(a),d=n,E=D["".concat(l,".").concat(d)]||D[d]||m[d]||u;return a?r.a.createElement(E,i({ref:t},o,{components:a})):r.a.createElement(E,i({ref:t},o))}));function E(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var u=a.length,l=new Array(u);l[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:n,l[1]=i;for(var o=2;o0&&r.a.createElement("div",{className:"row footer__links"},r.a.createElement("div",{className:"col col--5 footer__col"},r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(D.a,{className:"navbar__logo",src:"/img/logo-light.svg",alt:"gnet",width:"150",height:"auto"})),r.a.createElement("div",{className:"margin-bottom--md"},r.a.createElement(S,{description:!1,width:"150px"})),r.a.createElement("div",null,r.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank"},r.a.createElement("i",{className:"feather icon-twitter",alt:"gnet's Twitter"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank"},r.a.createElement("i",{className:"feather icon-github",alt:"gnet's Github Repo"})),"\xa0\xa0\xa0\xa0",r.a.createElement("a",{href:"https://strikefreedom.top/rss.xml",target:"_blank"},r.a.createElement("i",{className:"feather icon-rss",alt:"gnet's RSS feed"})))),i.map((function(e,t){return r.a.createElement("div",{key:t,className:"col footer__col"},null!=e.title?r.a.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?r.a.createElement("ul",{className:"footer__items"},e.items.map((function(e,t){return e.html?r.a.createElement("li",{key:t,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):r.a.createElement("li",{key:e.href||e.to,className:"footer__item"},r.a.createElement(P,e))}))):null)}))),(o||u)&&r.a.createElement("div",{className:"text--center"},o&&o.src&&r.a.createElement("div",{className:"margin-bottom--sm"},o.href?r.a.createElement("a",{href:o.href,target:"_blank",rel:"noopener noreferrer",className:B.a.footerLogoLink},r.a.createElement(I,{alt:o.alt,url:s})):r.a.createElement(I,{alt:o.alt,url:s}),r.a.createElement("br",null),r.a.createElement("a",{href:"https://www.digitalocean.com/",target:"_blank",rel:"noopener noreferrer",className:B.a.footerLogoLink},r.a.createElement("img",{alt:"DigitalOcean",src:"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg",width:"201px"}))),u,r.a.createElement("br",null),r.a.createElement("small",null,r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/security/policy"},"Security Policy"),"\xa0\u2022\xa0",r.a.createElement("a",{href:"https://github.com/panjf2000/gnet/blob/master/PRIVACY.md"},"Privacy Policy"))))):null},H=a(276),R=a(277),W=a(3);a(135);t.a=function(e){var t=Object(E.a)().siteConfig,a=void 0===t?{}:t,n=a.favicon,i=(a.tagline,a.title),c=a.themeConfig.image,o=a.url,s=e.children,D=e.title,m=e.noFooter,d=e.description,g=e.image,f=e.keywords,b=(e.permalink,e.version),p=D?D+" | "+i:i,h=g||c,v=o+Object(C.a)(h),F=Object(C.a)(n),y=Object(W.h)(),N=y?"https://gnet.host"+(y.pathname.endsWith("/")?y.pathname:y.pathname+"/"):null;return r.a.createElement(R.a,null,r.a.createElement(H.a,null,r.a.createElement(l.a,null,r.a.createElement("html",{lang:"en"}),r.a.createElement("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),p&&r.a.createElement("title",null,p),p&&r.a.createElement("meta",{property:"og:title",content:p}),n&&r.a.createElement("link",{rel:"shortcut icon",href:F}),d&&r.a.createElement("meta",{name:"description",content:d}),d&&r.a.createElement("meta",{property:"og:description",content:d}),b&&r.a.createElement("meta",{name:"docsearch:version",content:b}),f&&f.length&&r.a.createElement("meta",{name:"keywords",content:f.join(",")}),h&&r.a.createElement("meta",{property:"og:image",content:v}),h&&r.a.createElement("meta",{property:"twitter:image",content:v}),h&&r.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+p}),h&&r.a.createElement("meta",{name:"twitter:site",content:"@vectordotdev"}),h&&r.a.createElement("meta",{name:"twitter:creator",content:"@vectordotdev"}),N&&r.a.createElement("meta",{property:"og:url",content:N}),r.a.createElement("meta",{name:"twitter:card",content:"summary"}),N&&r.a.createElement("link",{rel:"canonical",href:N})),r.a.createElement(u.a,null),r.a.createElement(A,null),r.a.createElement("div",{className:"main-wrapper"},s),!m&&r.a.createElement(L,null)))}},261:function(e,t,a){"use strict";a.d(t,"a",(function(){return u}));a(79),a(284),a(260),a(78);var n=a(265),r=a.n(n);function u(e,t){var a=new r.a;return e.map((function(e){var n=e;return"string"==typeof e&&(n={label:e,permalink:"/"+t+"/tags/"+a.slug(e)}),function(e,t){if(e.enriched)return e;var a=e.label.split(": ",2),n=a[0],r=a[1],u="primary";switch(n){case"domain":u="blue";break;case"type":u="pink";break;default:u="primary"}return{category:n,count:e.count,enriched:!0,label:e.label,permalink:e.permalink,style:u,value:r}}(n)}))}},263:function(e,t,a){var n=a(24).f,r=Function.prototype,u=/^\s*function ([^ (]*)/;"name"in r||a(10)&&n(r,"name",{configurable:!0,get:function(){try{return(""+this).match(u)[1]}catch(e){return""}}})},265:function(e,t,a){var n=a(274);e.exports=i;var r=Object.hasOwnProperty,u=/\s/g,l=/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~\u2019]/g;function i(){if(!(this instanceof i))return new i;this.reset()}function c(e,t){return"string"!=typeof e?"":(t||(e=e.toLowerCase()),e.trim().replace(l,"").replace(n(),"").replace(u,"-"))}i.prototype.slug=function(e,t){for(var a=c(e,!0===t),n=a;r.call(this.occurrences,a);)this.occurrences[n]++,a=n+"-"+this.occurrences[n];return this.occurrences[a]=0,a},i.prototype.reset=function(){this.occurrences=Object.create(null)},i.slug=c},273:function(e,t,a){"use strict";var n=a(0),r=a.n(n),u=a(254),l=a(252),i=a.n(l);t.a=function(e){var t=e.count,a=e.label,n=e.permalink,l=e.style,c=e.value,o=e.valueOnly;return r.a.createElement(u.a,{to:n+"/",className:i()("badge","badge--rounded","badge--"+l)},o?c:a,t&&r.a.createElement(r.a.Fragment,null," (",t,")"))}},274:function(e,t){e.exports=function(){return/[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267B\u267F\u2692-\u2694\u2696\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD79\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED0\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3]|\uD83E[\uDD10-\uDD18\uDD80-\uDD84\uDDC0]|\uD83C\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uD83C\uDDFE\uD83C[\uDDEA\uDDF9]|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDFC\uD83C[\uDDEB\uDDF8]|\uD83C\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uD83C\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF8\uDDFE\uDDFF]|\uD83C\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uD83C\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uD83C\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uD83C\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uD83C\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uD83C\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uD83C\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uD83C\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uD83C\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uD83C\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uD83C\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uD83C\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uD83C\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uD83C\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uD83C\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uD83C\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|[#\*0-9]\u20E3/g}},278:function(e,t,a){"use strict";a(263),a(260);var n=a(0),r=a.n(n),u=a(252),l=a.n(u),i=a(253);a(137);t.a=function(e){var t,a=e.bio,n=e.className,u=e.github,c=e.nameSuffix,o=e.rel,s=e.size,D=e.subTitle,m=e.vertical,d=Object(i.a)().siteConfig,E=(void 0===d?{}:d).customFields.metadata.team,g=E.find((function(e){return e.github==u}))||E.find((function(e){return"ben"==e.id}));return r.a.createElement("div",{className:l()("avatar",n,(t={},t["avatar--"+s]=s,t["avatar--vertical"]=m,t))},r.a.createElement("img",{className:l()("avatar__photo","avatar__photo--"+s),src:g.avatar}),r.a.createElement("div",{className:"avatar__intro"},r.a.createElement("div",{className:"avatar__name"},r.a.createElement("a",{href:g.github,target:"_blank",rel:o},g.name),c),D&&r.a.createElement("small",{className:"avatar__subtitle"},D),!D&&a&&r.a.createElement("small",{className:"avatar__subtitle",dangerouslySetInnerHTML:{__html:g.bio}})))}},279:function(e,t,a){"use strict";var n=a(1),r=a(0),u=a.n(r),l=(a(254),a(273)),i=a(252),c=a.n(i),o=a(261),s=a(138),D=a.n(s);t.a=function(e){var t,a=e.block,r=e.colorProfile,i=e.tags,s=e.valuesOnly,m=Object(o.a)(i,r);return u.a.createElement("span",{className:c()(D.a.tags,(t={},t[D.a.tagsBlock]=a,t))},m.map((function(e,t){return u.a.createElement(l.a,Object(n.a)({key:t,valueOnly:s},e))})))}},280:function(e,t,a){var n;!function(r){"use strict";var u,l,i,c=(u=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZWN]|"[^"]*"|'[^']*'/g,l=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,i=/[^-+\dA-Z]/g,function(e,t,a,n){if(1!==arguments.length||"string"!==m(e)||/\d/.test(e)||(t=e,e=void 0),(e=e||new Date)instanceof Date||(e=new Date(e)),isNaN(e))throw TypeError("Invalid date");var r=(t=String(c.masks[t]||t||c.masks.default)).slice(0,4);"UTC:"!==r&&"GMT:"!==r||(t=t.slice(4),a=!0,"GMT:"===r&&(n=!0));var d=a?"getUTC":"get",E=e[d+"Date"](),g=e[d+"Day"](),f=e[d+"Month"](),b=e[d+"FullYear"](),p=e[d+"Hours"](),h=e[d+"Minutes"](),v=e[d+"Seconds"](),F=e[d+"Milliseconds"](),y=a?0:e.getTimezoneOffset(),C=s(e),N=D(e),_={d:E,dd:o(E),ddd:c.i18n.dayNames[g],dddd:c.i18n.dayNames[g+7],m:f+1,mm:o(f+1),mmm:c.i18n.monthNames[f],mmmm:c.i18n.monthNames[f+12],yy:String(b).slice(2),yyyy:b,h:p%12||12,hh:o(p%12||12),H:p,HH:o(p),M:h,MM:o(h),s:v,ss:o(v),l:o(F,3),L:o(Math.round(F/10)),t:p<12?c.i18n.timeNames[0]:c.i18n.timeNames[1],tt:p<12?c.i18n.timeNames[2]:c.i18n.timeNames[3],T:p<12?c.i18n.timeNames[4]:c.i18n.timeNames[5],TT:p<12?c.i18n.timeNames[6]:c.i18n.timeNames[7],Z:n?"GMT":a?"UTC":(String(e).match(l)||[""]).pop().replace(i,""),o:(y>0?"-":"+")+o(100*Math.floor(Math.abs(y)/60)+Math.abs(y)%60,4),S:["th","st","nd","rd"][E%10>3?0:(E%100-E%10!=10)*E%10],W:C,N:N};return t.replace(u,(function(e){return e in _?_[e]:e.slice(1,e.length-1)}))});function o(e,t){for(e=String(e),t=t||2;e.length0}))}l&&v.test(l)&&(O=l.match(v)[0].split("title=")[1].replace(/"+/g,"")),Object(r.useEffect)((function(){var e;return w.current&&(e=new i.a(w.current,{target:function(){return _.current}})),function(){e&&e.destroy()}}),[w.current,_.current]);var x=a&&a.replace(/language-/,"");!x&&s.defaultLanguage&&(x=s.defaultLanguage);var B=function(){window.getSelection().empty(),F(!0),setTimeout((function(){return F(!1)}),2e3)};return u.a.createElement(c.a,Object(n.a)({},c.b,{key:C,theme:M,code:t.trim(),language:x}),(function(e){var t,a,r=e.className,l=e.style,i=e.tokens,c=e.getLineProps,o=e.getTokenProps;return u.a.createElement(u.a.Fragment,null,O&&u.a.createElement("div",{style:l,className:p.a.codeBlockTitle},O),u.a.createElement("div",{className:p.a.codeBlockContent},u.a.createElement("button",{ref:w,type:"button","aria-label":"Copy code to clipboard",className:D()(p.a.copyButton,(t={},t[p.a.copyButtonWithTitle]=O,t)),onClick:B},b?"Copied":"Copy"),u.a.createElement("pre",{className:D()(r,p.a.codeBlock,(a={},a[p.a.codeBlockWithTitle]=O,a))},u.a.createElement("div",{ref:_,className:p.a.codeBlockLines,style:l},i.map((function(e,t){1===e.length&&""===e[0].content&&(e[0].content="\n");var a=c({line:e,key:t});return k.includes(t+1)&&(a.className=a.className+" docusaurus-highlight-code-line"),u.a.createElement("div",Object(n.a)({key:t},a),e.map((function(e,t){return u.a.createElement("span",Object(n.a)({key:t},o({token:e,key:t})))})))}))))))}))}}).call(this,a(77))},285:function(e,t,a){"use strict";var n=a(1),r=a(0),u=a.n(r),l=a(254),i=a(283),c=a(264),o=a(141),s=a.n(o);t.a={code:function(e){var t=e.children;return"string"==typeof t?u.a.createElement(i.a,e):t},a:function(e){return/\.[^./]+$/.test(e.href)?u.a.createElement("a",e):u.a.createElement(l.a,e)},pre:function(e){return u.a.createElement("div",Object(n.a)({className:s.a.mdxCodeBlock},e))},h1:Object(c.a)("h1"),h2:Object(c.a)("h2"),h3:Object(c.a)("h3"),h4:Object(c.a)("h4"),h5:Object(c.a)("h5"),h6:Object(c.a)("h6")}},302:function(e,t,a){"use strict";a(316);var n=a(8),r=a(81),u=a(10),l=/./.toString,i=function(e){a(15)(RegExp.prototype,"toString",e,!0)};a(13)((function(){return"/a/b"!=l.call({source:"a",flags:"b"})}))?i((function(){var e=n(this);return"/".concat(e.source,"/","flags"in e?e.flags:!u&&e instanceof RegExp?r.call(e):void 0)})):"toString"!=l.name&&i((function(){return l.call(this)}))},303:function(e,t,a){e.exports=a(317)},314:function(e,t,a){"use strict";var n=a(0),r=a.n(n),u=a(252),l=a.n(u);t.a=function(e){var t=e.github,a=e.inline,n=e.size,u=e.style,i=l()("panel","panel--button","panel--"+n,"panel--"+u,{"panel--button--inline":a});return r.a.createElement("div",{className:"row row--squished"},r.a.createElement("div",{className:"col"},r.a.createElement("a",{href:"https://twitter.com/panjf2000",target:"_blank",className:i},r.a.createElement("div",{className:"panel--icon"},r.a.createElement("i",{className:"feather icon-twitter",title:"Twitter"})),r.a.createElement("div",null,r.a.createElement("div",{className:"panel--title"},"Follow @panjf2000"),r.a.createElement("div",{className:"panel--description"},"Get real-time updates!")))),0!=t&&r.a.createElement("div",{className:"col"},r.a.createElement("a",{href:"https://github.com/panjf2000/gnet",target:"_blank",className:i},r.a.createElement("div",{className:"panel--icon"},r.a.createElement("i",{className:"feather icon-github"})),r.a.createElement("div",null,r.a.createElement("div",{className:"panel--title"},"Star panjf2000/gnet"),r.a.createElement("div",{className:"panel--description"},"Star the repo to support us.")))))}},315:function(e,t,a){"use strict";a(260),a(302),a(19);var n=a(0),r=a.n(n),u=a(278),l=a(254),i=(a(285),a(251),a(279)),c=a(252),o=a.n(c),s=a(280),D=a.n(s),m=a(261),d=a(303),E=a.n(d);t.a=function(e){var t=e.children,a=e.frontMatter,n=e.metadata,c=(e.truncated,e.isBlogPostPage,n.date),s=n.description,d=n.permalink,g=n.tags,f=a.author_github,b=a.title,p=E()(t.toString()),h=new Date(Date.parse(c)),v=Object(m.a)(g,"blog").find((function(e){return"domain"==e.category})),F=v?v.value:null;return r.a.createElement(l.a,{to:d+"/",className:o()("panel","domain-bg","domain-bg--hover","domain-bg--"+F)},r.a.createElement("article",null,r.a.createElement("h2",null,b),r.a.createElement("div",{className:"subtitle"},s),r.a.createElement(u.a,{github:f,size:"sm",subTitle:r.a.createElement(r.a.Fragment,null,r.a.createElement("time",{pubdate:"pubdate",dateTime:h.toISOString()},D()(h,"mmm dS"))," / ",p.text),rel:"author"}),r.a.createElement(i.a,{colorProfile:"blog",tags:g})))}},316:function(e,t,a){a(10)&&"g"!=/./g.flags&&a(24).f(RegExp.prototype,"flags",{configurable:!0,get:a(81)})},317:function(e,t,a){"use strict";function n(e){return" "===e||"\n"===e||"\r"===e||"\t"===e}e.exports=function(e,t){var a,r,u=0,l=0,i=e.length-1;for((t=t||{}).wordsPerMinute=t.wordsPerMinute||200,a=t.wordBound||n;a(e[l]);)l++;for(;a(e[i]);)i--;for(r=l;r<=i;){for(;r<=i&&!a(e[r]);r++);for(u++;r<=i&&a(e[r]);r++);}var c=u/t.wordsPerMinute,o=60*c*1e3;return{text:Math.ceil(c.toFixed(2))+" min read",minutes:c,time:o,words:u}}},318:function(e,t,a){"use strict";a.d(t,"a",(function(){return r})),a.d(t,"b",(function(){return u}));var n=a(253);function r(){var e=Object(n.a)().siteConfig,t=(void 0===e?{}:e).customFields.metadata.latest_post,a=Date.parse(t.date),r=new Date,u=Math.abs(r-a),l=Math.ceil(u/864e5),i=null;return"undefined"!=typeof window&&(i=new Date(parseInt(window.localStorage.getItem("blogViewedAt")||"0"))),l<30&&(!i||i - + @@ -29,18 +29,18 @@ - +
-

gnet Community

Join the gnet community. Connect with other gnet users and help make gnet better.

Meet The Team

Andy Pan is the creator of gnet and the only core contributor at present, hoping more developers will join me in the future.
+

gnet Community

Join the gnet community. Connect with other gnet users and help make gnet better.

Meet The Team

Andy Pan is the creator of gnet and the only core contributor at present, hoping more developers will join me in the future.
- + @@ -48,7 +48,7 @@ - + diff --git a/contact/index.html b/contact/index.html index fbc553b59..66d1ccf5d 100644 --- a/contact/index.html +++ b/contact/index.html @@ -21,7 +21,7 @@ - + @@ -29,18 +29,18 @@ - +
-

Contact

gnet is an open-source software created by Andy Pan. You can contact the author using any of the options below.
+

Contact

gnet is an open-source software created by Andy Pan. You can contact the author using any of the options below.
- + @@ -48,7 +48,7 @@ - + diff --git a/docs/about/overview-cn/index.html b/docs/about/overview-cn/index.html index b29206bb5..f4a18cc00 100644 --- a/docs/about/overview-cn/index.html +++ b/docs/about/overview-cn/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -45,12 +45,12 @@
-

预览

gnet 是什么?

gnet 是一个基于事件驱动的高性能和轻量级网络框架。这个框架是基于 epollkqueue 从零开发的,而且相比 Go net,它能以更低的内存占用实现更高的性能。

gnetnet 有着不一样的网络编程模式。因此,用 gnet 开发网络应用和用 net 开发区别很大,而且两者之间不可调和。社区里有其他同类的产品像是 libevent, libuv, netty, twisted, tornadognet 的底层工作原理和这些框架非常类似。

gnet 不是为了取代 net 而生的,而是在 Go 生态中为开发者提供一个开发性能敏感的网络服务的替代品。也正因如此,gnet 在功能上的全面性并不如 Go net,它只会提供网络应用所需的最核心的功能和最精简的 APIs,而且 gnet 也并没有打算变成一个无所不包的网络框架,因为我觉得 Go net 在这方面已经做得足够好了。

gnet 的卖点在于它是一个高性能、轻量级、非阻塞的纯 Go 语言实现的传输层(TCP/UDP/Unix Domain Socket)网络框架。开发者可以使用 gnet 来实现自己的应用层网络协议(HTTP、RPC、Redis、WebSocket 等等),从而构建出自己的应用层网络服务。比如在 gnet 上实现 HTTP 协议就可以创建出一个 HTTP 服务器 或者 Web 开发框架,实现 Redis 协议就可以创建出自己的 Redis 服务器等等。

gnet 衍生自另一个项目:evio,但拥有更丰富的功能特性,且性能远胜之。

功能

  • 基于多线程/协程网络模型的高性能事件驱动循环
  • 内置 goroutine 池,由开源库 ants 提供支持
  • 整个生命周期是无锁的
  • 简单易用的 APIs
  • 高效、可重用而且自动伸缩的内存 buffer:(Elastic-)Ring-Buffer, Linked-List-Buffer and Elastic-Mixed-Buffer
  • 多种网络协议/IPC 机制:TCPUDPUnix Domain Socket
  • 多种负载均衡算法:Round-Robin(轮询)Source-Addr-Hash(源地址哈希)Least-Connections(最少连接数)
  • 两种事件驱动机制:Linux 里的 epoll 以及 FreeBSD/DragonFly/Darwin 里的 kqueue
  • 灵活的事件定时器
  • 实现 gnet 客户端
  • 支持 Windows 平台 (仅用于开发环境的兼容性,不要在生产环境中使用)
  • 多网络地址绑定
  • 支持 TLS
  • 支持 io_uring

架构

多线程/Go程网络模型

主从多 Reactors

gnet 重新设计开发了一个新内置的多线程/Go程网络模型:『主从多 Reactors』,这也是 netty 默认的多线程网络模型,下面是这个模型的原理图:

multi_reactor

它的运行流程如下面的时序图:

reactor

主从多 Reactors + 线程/Go程池

你可能会问一个问题:如果我的业务逻辑是阻塞的,那么在 EventHandler.OnTraffic 注册方法里的逻辑也会阻塞,从而导致阻塞 event-loop 线程,这时候怎么办?

正如你所知,基于 gnet 编写你的网络服务器有一条最重要的原则:永远不能让你业务逻辑(一般写在 EventHandler.OnTraffic 里)阻塞 event-loop 线程,这也是 netty 的一条最重要的原则,否则的话将会极大地降低服务器的吞吐量。

我的回答是,基于gnet 的另一种多线程/Go程网络模型:『带线程/Go程池的主从多 Reactors』可以解决阻塞问题,这个新网络模型通过引入一个 worker pool 来解决业务逻辑阻塞的问题:它会在启动的时候初始化一个 worker pool,然后在把 EventHandler.OnTraffic 里面的阻塞代码放到 worker pool 里执行,从而避免阻塞 event-loop 线程。

模型的架构图如下所示:

multi_reactor_thread_pool

它的运行流程如下面的时序图:

multi-reactors

gnet 通过利用 ants goroutine 池(一个基于 Go 开发的高性能的 goroutine 池 ,实现了对大规模 goroutines 的调度管理、goroutines 复用)来实现『主从多 Reactors + 线程/Go程池』网络模型。关于 ants 的全部功能和使用,可以在 ants 文档 里找到。

gnet 内部集成了 ants 以及提供了 pool.goroutine.Default() 方法来初始化一个 ants goroutine 池,然后你可以把 EventHandler.OnTraffic 中阻塞的业务逻辑提交到 goroutine 池里执行,最后在 goroutine 池里的代码调用 gnet.Conn.AsyncWrite([]byte) 方法把处理完阻塞逻辑之后得到的输出数据异步写回客户端,这样就可以避免阻塞 event-loop 线程。

有关在 gnet 里使用 ants goroutine 池的细节可以到这里进一步了解。

关键设计

弹性内存 Buffer

Elastic Ring Buffer

Elastic Ring&Linked-list Buffer

gnet 内置了inbound 和 outbound 两个 buffers,分别用来缓冲输入输出的网络数据以及管理内存,gnet 里面的 inbound 和 outbound buffer 经过设计和调优,达到重用内存以及按需扩缩容的目的。

对于 TCP 协议的流数据,使用 gnet 不需要业务方为了解析应用层协议而自己维护和管理 buffers,gnet 会替业务方完成缓冲和管理网络数据的任务,降低业务代码的复杂性以及降低开发者的心智负担,使得开发者能够专注于业务逻辑而非一些底层实现。

+

预览

gnet 是什么?

gnet 是一个基于事件驱动的高性能和轻量级网络框架。这个框架是基于 epollkqueue 从零开发的,而且相比 Go net,它能以更低的内存占用实现更高的性能。

gnetnet 有着不一样的网络编程模式。因此,用 gnet 开发网络应用和用 net 开发区别很大,而且两者之间不可调和。社区里有其他同类的产品像是 libevent, libuv, netty, twisted, tornadognet 的底层工作原理和这些框架非常类似。

gnet 不是为了取代 net 而生的,而是在 Go 生态中为开发者提供一个开发性能敏感的网络服务的替代品。也正因如此,gnet 在功能上的全面性并不如 Go net,它只会提供网络应用所需的最核心的功能和最精简的 APIs,而且 gnet 也并没有打算变成一个无所不包的网络框架,因为我觉得 Go net 在这方面已经做得足够好了。

gnet 的卖点在于它是一个高性能、轻量级、非阻塞的纯 Go 语言实现的传输层(TCP/UDP/Unix Domain Socket)网络框架。开发者可以使用 gnet 来实现自己的应用层网络协议(HTTP、RPC、Redis、WebSocket 等等),从而构建出自己的应用层网络服务。比如在 gnet 上实现 HTTP 协议就可以创建出一个 HTTP 服务器 或者 Web 开发框架,实现 Redis 协议就可以创建出自己的 Redis 服务器等等。

gnet 衍生自另一个项目:evio,但拥有更丰富的功能特性,且性能远胜之。

功能

  • 基于多线程/协程网络模型的高性能事件驱动循环
  • 内置 goroutine 池,由开源库 ants 提供支持
  • 整个生命周期是无锁的
  • 简单易用的 APIs
  • 高效、可重用而且自动伸缩的内存 buffer:(Elastic-)Ring-Buffer, Linked-List-Buffer and Elastic-Mixed-Buffer
  • 多种网络协议/IPC 机制:TCPUDPUnix Domain Socket
  • 多种负载均衡算法:Round-Robin(轮询)Source-Addr-Hash(源地址哈希)Least-Connections(最少连接数)
  • 两种事件驱动机制:Linux 里的 epoll 以及 FreeBSD/DragonFly/Darwin 里的 kqueue
  • 灵活的事件定时器
  • 实现 gnet 客户端
  • 支持 Windows 平台 (仅用于开发环境的兼容性,不要在生产环境中使用)
  • 多网络地址绑定
  • 支持 TLS
  • 支持 io_uring

架构

多线程/Go程网络模型

主从多 Reactors

gnet 重新设计开发了一个新内置的多线程/Go程网络模型:『主从多 Reactors』,这也是 netty 默认的多线程网络模型,下面是这个模型的原理图:

multi_reactor

它的运行流程如下面的时序图:

reactor

主从多 Reactors + 线程/Go程池

你可能会问一个问题:如果我的业务逻辑是阻塞的,那么在 EventHandler.OnTraffic 注册方法里的逻辑也会阻塞,从而导致阻塞 event-loop 线程,这时候怎么办?

正如你所知,基于 gnet 编写你的网络服务器有一条最重要的原则:永远不能让你业务逻辑(一般写在 EventHandler.OnTraffic 里)阻塞 event-loop 线程,这也是 netty 的一条最重要的原则,否则的话将会极大地降低服务器的吞吐量。

我的回答是,基于gnet 的另一种多线程/Go程网络模型:『带线程/Go程池的主从多 Reactors』可以解决阻塞问题,这个新网络模型通过引入一个 worker pool 来解决业务逻辑阻塞的问题:它会在启动的时候初始化一个 worker pool,然后在把 EventHandler.OnTraffic 里面的阻塞代码放到 worker pool 里执行,从而避免阻塞 event-loop 线程。

模型的架构图如下所示:

multi_reactor_thread_pool

它的运行流程如下面的时序图:

multi-reactors

gnet 通过利用 ants goroutine 池(一个基于 Go 开发的高性能的 goroutine 池 ,实现了对大规模 goroutines 的调度管理、goroutines 复用)来实现『主从多 Reactors + 线程/Go程池』网络模型。关于 ants 的全部功能和使用,可以在 ants 文档 里找到。

gnet 内部集成了 ants 以及提供了 pool.goroutine.Default() 方法来初始化一个 ants goroutine 池,然后你可以把 EventHandler.OnTraffic 中阻塞的业务逻辑提交到 goroutine 池里执行,最后在 goroutine 池里的代码调用 gnet.Conn.AsyncWrite([]byte) 方法把处理完阻塞逻辑之后得到的输出数据异步写回客户端,这样就可以避免阻塞 event-loop 线程。

有关在 gnet 里使用 ants goroutine 池的细节可以到这里进一步了解。

关键设计

弹性内存 Buffer

Elastic Ring Buffer

Elastic Ring&Linked-list Buffer

gnet 内置了inbound 和 outbound 两个 buffers,分别用来缓冲输入输出的网络数据以及管理内存,gnet 里面的 inbound 和 outbound buffer 经过设计和调优,达到重用内存以及按需扩缩容的目的。

对于 TCP 协议的流数据,使用 gnet 不需要业务方为了解析应用层协议而自己维护和管理 buffers,gnet 会替业务方完成缓冲和管理网络数据的任务,降低业务代码的复杂性以及降低开发者的心智负担,使得开发者能够专注于业务逻辑而非一些底层实现。

- + @@ -60,7 +60,7 @@ - + diff --git a/docs/about/overview/index.html b/docs/about/overview/index.html index 5f76cc41d..ffabf1039 100644 --- a/docs/about/overview/index.html +++ b/docs/about/overview/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -45,12 +45,12 @@
-

Overview

What is gnet?

gnet is an event-driven networking framework that is ultra-fast and lightweight. It is built from scratch by exploiting epoll and kqueue and it can achieve much higher performance with lower memory consumption than Go net in many specific scenarios.

gnet and net don't share the same philosophy about network programming. Thus, building network applications with gnet can be significantly different from building them with net, and the philosophies can't be harmonized. There are other similar products written in other programming languages in the community, such as libevent, libuv, netty, twisted, tornado, etc. which work in a similar pattern as gnet under the hood.

gnet is not designed to displace the Go net, but to create an alternative in the Go ecosystem for building performance-sensitive network services. As a result of which, gnet is not as comprehensive as Go net, it provides only the core functionalities (in a concise API set) required by a network application and it is not planned on being a coverall networking framework, as I think net has done a good enough job in that area.

gnet sells itself as a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go which works on the transport layer with TCP/UDP protocols and Unix Domain Socket. It enables developers to implement their own protocols(HTTP, RPC, WebSocket, Redis, etc.) of application layer upon gnet for building diversified network services. For instance, you get an HTTP Server if you implement HTTP protocol upon gnet while you have a Redis Server done with the implementation of Redis protocol upon gnet and so on.

gnet derives from the project: evio while having a much higher performance and more features.

Features

  • High-performance event-driven looping based on a networking model of multiple threads/goroutines
  • Built-in goroutine pool powered by the library ants
  • Lock-free during the entire runtime
  • Concise and easy-to-use APIs
  • Efficient, reusable, and elastic memory buffer: (Elastic-)Ring-Buffer, Linked-List-Buffer and Elastic-Mixed-Buffer
  • Multiple protocols/IPC mechanisms: TCP, UDP, and Unix Domain Socket
  • Multiple load-balancing algorithms: Round-Robin, Source-Addr-Hash, and Least-Connections
  • Two event-driven mechanisms: epoll on Linux and kqueue on FreeBSD/DragonFly/Darwin
  • Flexible ticker event
  • Implementation of gnet Client
  • Windows platform support (For compatibility in development only, do not use it in production)
  • Multiple network addresses binding
  • TLS support
  • io_uring support

Architecture

Networking Model of Multiple Threads/Goroutines

Multiple Reactors

gnet redesigns and implements a new built-in networking model of multiple threads/goroutines: 『multiple reactors』 which is also the default networking model of multiple threads in netty, Here's the schematic diagram:

multi_reactor

and it works as the following sequence diagram:

reactor

Multiple Reactors + Goroutine Pool

You may ask me a question: what if my business logic in EventHandler.OnTraffic contains some blocking code which leads to blocking in event-loop of gnet, what is the solution for this kind of situation?

As you know, there is a most important tenet when writing code under gnet: you should never block the event-loop goroutine in the EventHandler.OnTraffic, which is also the most important tenet in netty, otherwise, it will result in a low throughput in your gnet server.

And the solution to that could be found in the subsequent networking model of multiple threads/goroutines in gnet: 『multiple reactors with thread/goroutine pool』which pulls you out from the blocking mire, it will construct a worker-pool with fixed capacity and put those blocking jobs in EventHandler.OnTraffic into the worker-pool to make the event-loop goroutines non-blocking.

The networking model:『multiple reactors with thread/goroutine pool』dissolves the blocking jobs by introducing a goroutine pool, as shown below:

multi_reactor_thread_pool

and it works as the following sequence diagram:

multi-reactors

gnet implements the networking model:『multiple reactors with thread/goroutine pool』by the aid of a high-performance goroutine pool called ants that allows you to manage and recycle a massive number of goroutines in your concurrent programs, the full features and usages in ants are documented here.

gnet integrates ants and provides the pool.goroutine.Default() method that you can call to instantiate a ants pool where you are able to put your blocking code logic and call the function gnet.Conn.AsyncWrite([]byte) to send out data asynchronously after you finish the blocking process and get the output data, which makes the goroutine of event-loop non-blocking.

The details about integrating gnet with ants are shown here.

Key designs

Elastic Buffer

Elastic Ring Buffer

Elastic Ring & Linked-list Buffer

There are two buffers inside gnet: inbound buffer (elastic-ring-buffer) and outbound buffer (elastic-ring&linked-list-buffer) to buffer and manage inbound/outbound network data, inbound and outbound buffers inside gnet are designed and tuned to reuse memory and be auto-scaling on demand.

The purpose of implementing inbound and outbound buffers in gnet is to transfer the logic of buffering and managing network data based on application protocol upon TCP stream from business server to framework and unify the network data buffer, which minimizes the complexity of business code so that developers are able to concentrate on business logic instead of the underlying implementation.

+

Overview

What is gnet?

gnet is an event-driven networking framework that is ultra-fast and lightweight. It is built from scratch by exploiting epoll and kqueue and it can achieve much higher performance with lower memory consumption than Go net in many specific scenarios.

gnet and net don't share the same philosophy about network programming. Thus, building network applications with gnet can be significantly different from building them with net, and the philosophies can't be harmonized. There are other similar products written in other programming languages in the community, such as libevent, libuv, netty, twisted, tornado, etc. which work in a similar pattern as gnet under the hood.

gnet is not designed to displace the Go net, but to create an alternative in the Go ecosystem for building performance-sensitive network services. As a result of which, gnet is not as comprehensive as Go net, it provides only the core functionalities (in a concise API set) required by a network application and it is not planned on being a coverall networking framework, as I think net has done a good enough job in that area.

gnet sells itself as a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go which works on the transport layer with TCP/UDP protocols and Unix Domain Socket. It enables developers to implement their own protocols(HTTP, RPC, WebSocket, Redis, etc.) of application layer upon gnet for building diversified network services. For instance, you get an HTTP Server if you implement HTTP protocol upon gnet while you have a Redis Server done with the implementation of Redis protocol upon gnet and so on.

gnet derives from the project: evio while having a much higher performance and more features.

Features

  • High-performance event-driven looping based on a networking model of multiple threads/goroutines
  • Built-in goroutine pool powered by the library ants
  • Lock-free during the entire runtime
  • Concise and easy-to-use APIs
  • Efficient, reusable, and elastic memory buffer: (Elastic-)Ring-Buffer, Linked-List-Buffer and Elastic-Mixed-Buffer
  • Multiple protocols/IPC mechanisms: TCP, UDP, and Unix Domain Socket
  • Multiple load-balancing algorithms: Round-Robin, Source-Addr-Hash, and Least-Connections
  • Two event-driven mechanisms: epoll on Linux and kqueue on FreeBSD/DragonFly/Darwin
  • Flexible ticker event
  • Implementation of gnet Client
  • Windows platform support (For compatibility in development only, do not use it in production)
  • Multiple network addresses binding
  • TLS support
  • io_uring support

Architecture

Networking Model of Multiple Threads/Goroutines

Multiple Reactors

gnet redesigns and implements a new built-in networking model of multiple threads/goroutines: 『multiple reactors』 which is also the default networking model of multiple threads in netty, Here's the schematic diagram:

multi_reactor

and it works as the following sequence diagram:

reactor

Multiple Reactors + Goroutine Pool

You may ask me a question: what if my business logic in EventHandler.OnTraffic contains some blocking code which leads to blocking in event-loop of gnet, what is the solution for this kind of situation?

As you know, there is a most important tenet when writing code under gnet: you should never block the event-loop goroutine in the EventHandler.OnTraffic, which is also the most important tenet in netty, otherwise, it will result in a low throughput in your gnet server.

And the solution to that could be found in the subsequent networking model of multiple threads/goroutines in gnet: 『multiple reactors with thread/goroutine pool』which pulls you out from the blocking mire, it will construct a worker-pool with fixed capacity and put those blocking jobs in EventHandler.OnTraffic into the worker-pool to make the event-loop goroutines non-blocking.

The networking model:『multiple reactors with thread/goroutine pool』dissolves the blocking jobs by introducing a goroutine pool, as shown below:

multi_reactor_thread_pool

and it works as the following sequence diagram:

multi-reactors

gnet implements the networking model:『multiple reactors with thread/goroutine pool』by the aid of a high-performance goroutine pool called ants that allows you to manage and recycle a massive number of goroutines in your concurrent programs, the full features and usages in ants are documented here.

gnet integrates ants and provides the pool.goroutine.Default() method that you can call to instantiate a ants pool where you are able to put your blocking code logic and call the function gnet.Conn.AsyncWrite([]byte) to send out data asynchronously after you finish the blocking process and get the output data, which makes the goroutine of event-loop non-blocking.

The details about integrating gnet with ants are shown here.

Key designs

Elastic Buffer

Elastic Ring Buffer

Elastic Ring & Linked-list Buffer

There are two buffers inside gnet: inbound buffer (elastic-ring-buffer) and outbound buffer (elastic-ring&linked-list-buffer) to buffer and manage inbound/outbound network data, inbound and outbound buffers inside gnet are designed and tuned to reuse memory and be auto-scaling on demand.

The purpose of implementing inbound and outbound buffers in gnet is to transfer the logic of buffering and managing network data based on application protocol upon TCP stream from business server to framework and unify the network data buffer, which minimizes the complexity of business code so that developers are able to concentrate on business logic instead of the underlying implementation.

- + @@ -60,7 +60,7 @@ - + diff --git a/docs/benchmark/index.html b/docs/benchmark/index.html index 65cb95ea1..a208e5ce5 100644 --- a/docs/benchmark/index.html +++ b/docs/benchmark/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -45,7 +45,7 @@
-

Benchmark

Benchmarks on TechEmpower

# Hardware Environment
* 28 HT Cores Intel(R) Xeon(R) Gold 5120 CPU @ 3.20GHz
* 32GB RAM
* Dedicated Cisco 10-gigabit Ethernet switch
* Debian 12 "bookworm"
* Go1.19.x linux/amd64

This is a leaderboard of the top 50 out of 486 frameworks that encompass various programming languages worldwide, in which gnet is ranked first.

This is the full framework ranking of Go and gnet tops all the other frameworks, which makes gnet the fastest networking framework in Go.

To see the full ranking list, visit TechEmpower Benchmark Round 22.

Contrasts to the similar networking libraries

On Linux (epoll)

Test Environment

# Machine information
OS : Ubuntu 20.04/x86_64
CPU : 8 CPU cores, AMD EPYC 7K62 48-Core Processor
Memory : 16.0 GiB
+

Benchmark

Benchmarks on TechEmpower

# Hardware Environment
* 28 HT Cores Intel(R) Xeon(R) Gold 5120 CPU @ 3.20GHz
* 32GB RAM
* Dedicated Cisco 10-gigabit Ethernet switch
* Debian 12 "bookworm"
* Go1.19.x linux/amd64

This is a leaderboard of the top 50 out of 486 frameworks that encompass various programming languages worldwide, in which gnet is ranked first.

This is the full framework ranking of Go and gnet tops all the other frameworks, which makes gnet the fastest networking framework in Go.

To see the full ranking list, visit TechEmpower Benchmark Round 22.

Contrasts to the similar networking libraries

On Linux (epoll)

Test Environment

# Machine information
OS : Ubuntu 20.04/x86_64
CPU : 8 CPU cores, AMD EPYC 7K62 48-Core Processor
Memory : 16.0 GiB
# Go version and settings
Go Version : go1.17.2 linux/amd64
GOMAXPROCS : 8
# Benchmark parameters
TCP connections : 1000/2000/5000/10000
Packet size : 512/1024/2048/4096/8192/16384/32768/65536 bytes
Test duration : 15s

Echo benchmark

On MacOS (kqueue)

Test Environment

# Machine information
OS : MacOS Big Sur/x86_64
CPU : 6 CPU cores, Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Memory : 16.0 GiB
# Go version and settings
Go Version : go1.16.5 darwin/amd64
GOMAXPROCS : 12
@@ -54,7 +54,7 @@ - + @@ -64,7 +64,7 @@ - + diff --git a/docs/faq/index.html b/docs/faq/index.html index 2d9f97d4f..becad79cf 100644 --- a/docs/faq/index.html +++ b/docs/faq/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -45,12 +45,12 @@
-

FAQ

Architecture & Code & Principles

Why is gnet so fast?

gnet's networking model is a Reactor networking model with a event-driven mechanism that is designed and tuned to manage millions of network connections and handle a zillion requests, which backs gnet up to be the fastest networking framework in Go, and all it takes is a few goroutines.

In addition to the first-class networking model, the implementation of auto-scaling and reusable elastic buffers in gnet is also one of the critical essentials for its high performance.

..., etc.

Stability

Is gnet production-ready?

Sure it is!

Actually, there are already many companies/organizations using gnet as the underlying network service in production and they have been worked well for a long time.

Here is a partial list of gnet use cases: https://gnet.host/#usecases.

..., etc.

Scope of application & usage

When should I use gnet instead of the standard net in Go?

gnet sells itself as a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go which works on transport layer with TCP/UDP protocols and Unix Domain Socket , so it allows developers to implement their own protocols(HTTP, RPC, WebSocket, Redis, etc.) of application layer upon gnet for building diversified network applications, for instance, you get an HTTP Server or Web Framework if you implement HTTP protocol upon gnet while you have a Redis Server done with the implementation of Redis protocol upon gnet and so on.

gnet is not designed to displace the standard Go net package, but to create a networking client/server framework for Go that performs on par with Redis and Haproxy for networking packets handling (although it does not limit itself to these areas), therefore, gnet is not as comprehensive as Go net, it only provides the core functionalities (by a concise API set) of a networking application and it is not planned on being a full-featured networking framework, as I think net has done a good enough job in this area.

In a word, if performance is not your top priority and you intend to take care of all corners during the networking development, then you should go with net, but if you are trying to build a insanely fast networking application with a very low resource footprint and looking for a solution, I believe gnet is the right choice for you.

How can I build networking applications of diverse protocols on top of gnet?

There are some examples powered by gnet framework, go check out those source code and get an initial perception about developing networking applications based on gnet, after that, you might want to read the documentations of gnet to learn all its APIs and try to write a demo application.

..., etc.

Contributing

How do I contribute to gnet?

gnet is open-source and welcomes contributions. A few guidelines to help you get started:

  1. Read our contribution guide.
  2. Start with good first issues.
  3. Join our chat if you have any questions. We are happy to help!
+

FAQ

Architecture & Code & Principles

Why is gnet so fast?

gnet's networking model is a Reactor networking model with a event-driven mechanism that is designed and tuned to manage millions of network connections and handle a zillion requests, which backs gnet up to be the fastest networking framework in Go, and all it takes is a few goroutines.

In addition to the first-class networking model, the implementation of auto-scaling and reusable elastic buffers in gnet is also one of the critical essentials for its high performance.

..., etc.

Stability

Is gnet production-ready?

Sure it is!

Actually, there are already many companies/organizations using gnet as the underlying network service in production and they have been worked well for a long time.

Here is a partial list of gnet use cases: https://gnet.host/#usecases.

..., etc.

Scope of application & usage

When should I use gnet instead of the standard net in Go?

gnet sells itself as a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go which works on transport layer with TCP/UDP protocols and Unix Domain Socket , so it allows developers to implement their own protocols(HTTP, RPC, WebSocket, Redis, etc.) of application layer upon gnet for building diversified network applications, for instance, you get an HTTP Server or Web Framework if you implement HTTP protocol upon gnet while you have a Redis Server done with the implementation of Redis protocol upon gnet and so on.

gnet is not designed to displace the standard Go net package, but to create a networking client/server framework for Go that performs on par with Redis and Haproxy for networking packets handling (although it does not limit itself to these areas), therefore, gnet is not as comprehensive as Go net, it only provides the core functionalities (by a concise API set) of a networking application and it is not planned on being a full-featured networking framework, as I think net has done a good enough job in this area.

In a word, if performance is not your top priority and you intend to take care of all corners during the networking development, then you should go with net, but if you are trying to build a insanely fast networking application with a very low resource footprint and looking for a solution, I believe gnet is the right choice for you.

How can I build networking applications of diverse protocols on top of gnet?

There are some examples powered by gnet framework, go check out those source code and get an initial perception about developing networking applications based on gnet, after that, you might want to read the documentations of gnet to learn all its APIs and try to write a demo application.

..., etc.

Contributing

How do I contribute to gnet?

gnet is open-source and welcomes contributions. A few guidelines to help you get started:

  1. Read our contribution guide.
  2. Start with good first issues.
  3. Join our chat if you have any questions. We are happy to help!
- + @@ -60,7 +60,7 @@ - + diff --git a/docs/index.html b/docs/index.html index da6220d81..329ced469 100644 --- a/docs/index.html +++ b/docs/index.html @@ -17,7 +17,7 @@ - + @@ -32,7 +32,7 @@ - + diff --git a/docs/quickstart/index.html b/docs/quickstart/index.html index b9d774e41..eb04e621b 100644 --- a/docs/quickstart/index.html +++ b/docs/quickstart/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -45,7 +45,7 @@
-

Quickstart

Installation

gnet is available as a Go module, with Go 1.11 Modules support (Go 1.11+), just simply import "github.com/panjf2000/gnet" in your source code and go [build|run|test] will download the necessary dependencies automatically.

V1

go get -u github.com/panjf2000/gnet

V2

go get -u github.com/panjf2000/gnet/v2

Example

package main
+

Quickstart

Installation

gnet is available as a Go module, with Go 1.11 Modules support (Go 1.11+), just simply import "github.com/panjf2000/gnet" in your source code and go [build|run|test] will download the necessary dependencies automatically.

V1

go get -u github.com/panjf2000/gnet

V2

go get -u github.com/panjf2000/gnet/v2

Example

package main
import (
"flag"
"fmt"
"log"
"github.com/panjf2000/gnet/v2"
)
type echoServer struct {
gnet.BuiltinEventEngine
@@ -58,7 +58,7 @@ - + @@ -68,7 +68,7 @@ - + diff --git a/docs/tutorial/best-practices/index.html b/docs/tutorial/best-practices/index.html index 08331d36d..b7ca0850b 100644 --- a/docs/tutorial/best-practices/index.html +++ b/docs/tutorial/best-practices/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -45,12 +45,12 @@
-

Best practices

Never run blocking code in OnTraffic(), OnOpen() and OnClose()

The above three event handlers (callbacks) are executed in event-loops, therefore, running blocking code in them blocks event-loops, which means that the subsequent tasks will have to wait for the preceding blocking event handlers to complete before they get executed.

To avoid blocking event-loops, asynchronize your blocking code, for example by starting a goroutine with your blocking code and invoking Conn.AsyncWrite() or Conn.AsyncWritev() to send response data to the peer endpoint.

If you're not familiar with how gnet works, go back and read this.

Leverage Conn.Context() to monopolize data instead of sharing it across connections

It's recommended to use Conn.Context() to store necessary resource for each connection, so that each connection can take advantage of its exclusive resource, avoiding the contention of single resource across connections.

Either loop read data in OnTraffic() or invoke c.Wake() regularly

gnet leverages epoll/kqueue with level-triggered mode by default under the hood, you're able to switch to edge-triggered mode since v2.5.0. In LT mode, OnTraffic() might not be invoked constantly given there is data left in the inbound buffer of a gnet.Conn, OnTraffic() will be invoked only when there is data left in the socket recv buffer of the kernel. By contrast, in ET mode, OnTraffic() will be invoked only when new data arrives at the socket recv buffer of the kernel.

Thus, you should loop call c.Read()/c.Peek()/c.Next() on a connection in OnTraffic() to drain the inbound buffer for reading and decoding packets until you reach an incomplete packet, but if you don't, then make sure you call c.Wake() periodically, otherwise you may never get a chance to read the leftover data until the remote sends new data over and there are new arrivals of data on the socket recv buffer.

Enable poll_opt mode to boost performance

By default, gnet utilizes the standard package golang.org/x/sys/unix to implement pollers with epoll or kqueue, where a HASH map of fd->conn is introduced to help retrieve connections by file descriptors returned from pollers, but now you can run go build with build tags poll_opt, like this: go build -tags=poll_opt, and gnet will switch to the optimized implementations of pollers that invoke the system calls of epoll or kqueue directly and add file descriptors to the interest list along with storing the corresponding connection pointers into epoll_data or kevent, in which case gnet can get rid of the HASH MAP of fd->conn and regain each connection pointer by the conversion of void* pointer in the I/O event-looping. In theory, it ought to achieve a higher performance with this optimization.

Visit #230 for code details.

Enable gc_opt mode to reduce GC latency

By default, gnet uses map as the internal storage of connections, but now you can run go build with build tags gc_opt, like this: go build -tags=gc_opt, and gnet will switch to the optimized implementation of connections storage that uses a new data structure matrix for managing connections, in which case gnet eliminates the pointers in map to reduce the GC latency significantly.

Visit Announcing gnet v2.3.0 for more details.

To be continued

+

Best practices

Never run blocking code in OnTraffic(), OnOpen() and OnClose()

The above three event handlers (callbacks) are executed in event-loops, therefore, running blocking code in them blocks event-loops, which means that the subsequent tasks will have to wait for the preceding blocking event handlers to complete before they get executed.

To avoid blocking event-loops, asynchronize your blocking code, for example by starting a goroutine with your blocking code and invoking Conn.AsyncWrite() or Conn.AsyncWritev() to send response data to the peer endpoint.

If you're not familiar with how gnet works, go back and read this.

Leverage Conn.Context() to monopolize data instead of sharing it across connections

It's recommended to use Conn.Context() to store necessary resource for each connection, so that each connection can take advantage of its exclusive resource, avoiding the contention of single resource across connections.

Either loop read data in OnTraffic() or invoke c.Wake() regularly

gnet leverages epoll/kqueue with level-triggered mode by default under the hood, you're able to switch to edge-triggered mode since v2.5.0. In LT mode, OnTraffic() might not be invoked constantly given there is data left in the inbound buffer of a gnet.Conn, OnTraffic() will be invoked only when there is data left in the socket recv buffer of the kernel. By contrast, in ET mode, OnTraffic() will be invoked only when new data arrives at the socket recv buffer of the kernel.

Thus, you should loop call c.Read()/c.Peek()/c.Next() on a connection in OnTraffic() to drain the inbound buffer for reading and decoding packets until you reach an incomplete packet, but if you don't, then make sure you call c.Wake() periodically, otherwise you may never get a chance to read the leftover data until the remote sends new data over and there are new arrivals of data on the socket recv buffer.

Enable poll_opt mode to boost performance

By default, gnet utilizes the standard package golang.org/x/sys/unix to implement pollers with epoll or kqueue, where a HASH map of fd->conn is introduced to help retrieve connections by file descriptors returned from pollers, but now you can run go build with build tags poll_opt, like this: go build -tags=poll_opt, and gnet will switch to the optimized implementations of pollers that invoke the system calls of epoll or kqueue directly and add file descriptors to the interest list along with storing the corresponding connection pointers into epoll_data or kevent, in which case gnet can get rid of the HASH MAP of fd->conn and regain each connection pointer by the conversion of void* pointer in the I/O event-looping. In theory, it ought to achieve a higher performance with this optimization.

Visit #230 for code details.

Enable gc_opt mode to reduce GC latency

By default, gnet uses map as the internal storage of connections, but now you can run go build with build tags gc_opt, like this: go build -tags=gc_opt, and gnet will switch to the optimized implementation of connections storage that uses a new data structure matrix for managing connections, in which case gnet eliminates the pointers in map to reduce the GC latency significantly.

Visit Announcing gnet v2.3.0 for more details.

To be continued

- + @@ -60,7 +60,7 @@ - + diff --git a/docs/v1.x/doc-for-gnet-v1-cn/index.html b/docs/v1.x/doc-for-gnet-v1-cn/index.html index 6bf98466a..c9781dcf5 100644 --- a/docs/v1.x/doc-for-gnet-v1-cn/index.html +++ b/docs/v1.x/doc-for-gnet-v1-cn/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -45,7 +45,7 @@
-

gnet v1 文档

🎉 开始使用

前提

gnet 需要 Go 版本 >= 1.9。

安装

go get -u github.com/panjf2000/gnet

gnet 支持作为一个 Go module 被导入,基于 Go 1.11 Modules (Go 1.11+),只需要在你的项目里直接 import "github.com/panjf2000/gnet",然后运行 go [build|run|test] 自动下载和构建需要的依赖包。

使用示例

详细的文档在这里: gnet 接口文档,不过下面我们先来了解下使用 gnet 的简略方法。

gnet 来构建网络服务器是非常简单的,只需要实现 gnet.EventHandler接口然后把你关心的事件函数注册到里面,最后把它连同监听地址一起传递给 gnet.Serve 函数就完成了。在服务器开始工作之后,每一条到来的网络连接会在各个事件之间传递,如果你想在某个事件中关闭某条连接或者关掉整个服务器的话,直接在事件函数里把 gnet.Action 设置成 Close 或者 Shutdown 就行了。

Echo 服务器是一种最简单网络服务器,把它作为 gnet 的入门例子在再合适不过了,下面是一个最简单的 echo server,它监听了 9000 端口:

不带阻塞逻辑的 echo 服务器

Old version(<=v1.0.0-rc.4)
package main
+

gnet v1 文档

🎉 开始使用

前提

gnet 需要 Go 版本 >= 1.9。

安装

go get -u github.com/panjf2000/gnet

gnet 支持作为一个 Go module 被导入,基于 Go 1.11 Modules (Go 1.11+),只需要在你的项目里直接 import "github.com/panjf2000/gnet",然后运行 go [build|run|test] 自动下载和构建需要的依赖包。

使用示例

详细的文档在这里: gnet 接口文档,不过下面我们先来了解下使用 gnet 的简略方法。

gnet 来构建网络服务器是非常简单的,只需要实现 gnet.EventHandler接口然后把你关心的事件函数注册到里面,最后把它连同监听地址一起传递给 gnet.Serve 函数就完成了。在服务器开始工作之后,每一条到来的网络连接会在各个事件之间传递,如果你想在某个事件中关闭某条连接或者关掉整个服务器的话,直接在事件函数里把 gnet.Action 设置成 Close 或者 Shutdown 就行了。

Echo 服务器是一种最简单网络服务器,把它作为 gnet 的入门例子在再合适不过了,下面是一个最简单的 echo server,它监听了 9000 端口:

不带阻塞逻辑的 echo 服务器

Old version(<=v1.0.0-rc.4)
package main
import (
"log"
"github.com/panjf2000/gnet"
)
type echoServer struct {
gnet.EventServer
}
@@ -80,7 +80,7 @@ - + @@ -90,7 +90,7 @@ - + diff --git a/docs/v1.x/doc-for-gnet-v1/index.html b/docs/v1.x/doc-for-gnet-v1/index.html index 6cd7962c3..15f95a336 100644 --- a/docs/v1.x/doc-for-gnet-v1/index.html +++ b/docs/v1.x/doc-for-gnet-v1/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -45,7 +45,7 @@
-

Doc for gnet v1

🎉 Getting Started

Prerequisites

gnet requires Go 1.9 or later.

Installation

go get -u github.com/panjf2000/gnet

gnet is available as a Go module, with Go 1.11 Modules support (Go 1.11+), just simply import "github.com/panjf2000/gnet" in your source code and go [build|run|test] will download the necessary dependencies automatically.

Usage Examples

The detailed documentation is located here: docs of gnet, but let's pass through the brief instructions first.

It is easy to create a network server with gnet. All you have to do is just to make your implementation of gnet.EventHandler interface and register your event-handler functions to it, then pass it to the gnet.Serve function along with the binding address(es). Each connection is represented as a gnet.Conn interface that is passed to various events to differentiate the clients. At any point you can close a connection or shutdown the server by return a Close or Shutdown action from an event function.

The simplest example to get you started playing with gnet would be the echo server. So here you are, a simplest echo server upon gnet that is listening on port 9000:

Echo server without blocking logic

Old version(<=v1.0.0-rc.4)
package main
+

Doc for gnet v1

🎉 Getting Started

Prerequisites

gnet requires Go 1.9 or later.

Installation

go get -u github.com/panjf2000/gnet

gnet is available as a Go module, with Go 1.11 Modules support (Go 1.11+), just simply import "github.com/panjf2000/gnet" in your source code and go [build|run|test] will download the necessary dependencies automatically.

Usage Examples

The detailed documentation is located here: docs of gnet, but let's pass through the brief instructions first.

It is easy to create a network server with gnet. All you have to do is just to make your implementation of gnet.EventHandler interface and register your event-handler functions to it, then pass it to the gnet.Serve function along with the binding address(es). Each connection is represented as a gnet.Conn interface that is passed to various events to differentiate the clients. At any point you can close a connection or shutdown the server by return a Close or Shutdown action from an event function.

The simplest example to get you started playing with gnet would be the echo server. So here you are, a simplest echo server upon gnet that is listening on port 9000:

Echo server without blocking logic

Old version(<=v1.0.0-rc.4)
package main
import (
"log"
"github.com/panjf2000/gnet"
)
type echoServer struct {
gnet.EventServer
}
@@ -81,7 +81,7 @@ - + @@ -91,7 +91,7 @@ - + diff --git a/highlights/2019-11-07-supported-multiple-codecs/index.html b/highlights/2019-11-07-supported-multiple-codecs/index.html index 6ae14277e..086832a31 100644 --- a/highlights/2019-11-07-supported-multiple-codecs/index.html +++ b/highlights/2019-11-07-supported-multiple-codecs/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -39,13 +39,13 @@
-
/ Nov 7th, 2019 /

Support multiple codecs

Support multiple codecs to encode/decode TCP stream

About this change

In this change, gnet integrates multiple codecs to encode/decode network frames into/from TCP stream: LineBasedFrameCodec, DelimiterBasedFrameCodec, FixedLengthFrameCodec and LengthFieldBasedFrameCodec, referencing netty codec, +

/ Nov 7th, 2019 /

Support multiple codecs

Support multiple codecs to encode/decode TCP stream

About this change

In this change, gnet integrates multiple codecs to encode/decode network frames into/from TCP stream: LineBasedFrameCodec, DelimiterBasedFrameCodec, FixedLengthFrameCodec and LengthFieldBasedFrameCodec, referencing netty codec, in addition to these built-in codecs, gnet also supports customized codecs by functional option Codec.

Get This Change

This kind of change with the `new feature` tag brings new features to gnet. Feel free to have a galance through all those commits of new features if you are interested.

Like What You See?

- + @@ -55,7 +55,7 @@ - + diff --git a/highlights/2019-11-12-supported-windows/index.html b/highlights/2019-11-12-supported-windows/index.html index ab0610f2c..7d8ae7ae5 100644 --- a/highlights/2019-11-12-supported-windows/index.html +++ b/highlights/2019-11-12-supported-windows/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -39,13 +39,13 @@
-
/ Nov 12th, 2019 /

Supports Windows platform

Support Windows platform by Go standard net package

About this change

Before this change, gnet can only works on Linux and BSD-like platforms, now it also supports Windows platform, +

/ Nov 12th, 2019 /

Supports Windows platform

Support Windows platform by Go standard net package

About this change

Before this change, gnet can only works on Linux and BSD-like platforms, now it also supports Windows platform, which makes gnet a real cross-platform networking framework.

Get This Change

This kind of change with the `new feature` tag brings new features to gnet. Feel free to have a galance through all those commits of new features if you are interested.

Like What You See?

- + @@ -55,7 +55,7 @@ - + diff --git a/highlights/2020-03-13-released-first-version/index.html b/highlights/2020-03-13-released-first-version/index.html index d53e25914..86f83111d 100644 --- a/highlights/2020-03-13-released-first-version/index.html +++ b/highlights/2020-03-13-released-first-version/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -39,12 +39,12 @@
-
/ Mar 13th, 2020 /

Released gnet v1.0.0

Released the official stable version of v1.0.0

Features

  • High-performance event-loop under networking model of multiple threads/goroutines
  • Built-in load balancing algorithm: Round-Robin
  • Built-in goroutine pool powered by the library ants
  • Built-in memory pool with bytes powered by the library bytebufferpool
  • Concise APIs
  • Efficient memory usage: Ring-Buffer
  • Supporting multiple protocols/IPC mechanism: TCP, UDP and Unix Domain Socket
  • Supporting two event-driven mechanisms: epoll on Linux and kqueue on FreeBSD
  • Supporting asynchronous write operation
  • Flexible ticker event
  • SO_REUSEPORT socket option
  • Built-in multiple codecs to encode/decode network frames into/from TCP stream: LineBasedFrameCodec, DelimiterBasedFrameCodec, FixedLengthFrameCodec and LengthFieldBasedFrameCodec, referencing netty codec, also supporting customized codecs
  • Supporting Windows platform with event-driven mechanism of IOCP Go stdlib: net
  • Additional load-balancing algorithms: Random, Least-Connections, Consistent-hashing and so on
  • TLS support
  • Implementation of gnet Client

Get This Change

This change was made available in 1.0.0.

Like What You See?

+
/ Mar 13th, 2020 /

Released gnet v1.0.0

Released the official stable version of v1.0.0

Features

  • High-performance event-loop under networking model of multiple threads/goroutines
  • Built-in load balancing algorithm: Round-Robin
  • Built-in goroutine pool powered by the library ants
  • Built-in memory pool with bytes powered by the library bytebufferpool
  • Concise APIs
  • Efficient memory usage: Ring-Buffer
  • Supporting multiple protocols/IPC mechanism: TCP, UDP and Unix Domain Socket
  • Supporting two event-driven mechanisms: epoll on Linux and kqueue on FreeBSD
  • Supporting asynchronous write operation
  • Flexible ticker event
  • SO_REUSEPORT socket option
  • Built-in multiple codecs to encode/decode network frames into/from TCP stream: LineBasedFrameCodec, DelimiterBasedFrameCodec, FixedLengthFrameCodec and LengthFieldBasedFrameCodec, referencing netty codec, also supporting customized codecs
  • Supporting Windows platform with event-driven mechanism of IOCP Go stdlib: net
  • Additional load-balancing algorithms: Random, Least-Connections, Consistent-hashing and so on
  • TLS support
  • Implementation of gnet Client

Get This Change

This change was made available in 1.0.0.

Like What You See?

- + @@ -54,7 +54,7 @@ - + diff --git a/highlights/2020-03-31-supported-least-connections-load-balancing-algorithm/index.html b/highlights/2020-03-31-supported-least-connections-load-balancing-algorithm/index.html index ceb1e70ad..c9b3f9d4a 100644 --- a/highlights/2020-03-31-supported-least-connections-load-balancing-algorithm/index.html +++ b/highlights/2020-03-31-supported-least-connections-load-balancing-algorithm/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -39,13 +39,13 @@
-
/ Mar 31st, 2020 /

Support new load-balancing algorithm

Support new load-balancing algorithm of least-connections

About this change

In the past, gnet has only one load-balancing algorithm: Round-Robin, now it supports a new one: Least-Connections +

/ Mar 31st, 2020 /

Support new load-balancing algorithm

Support new load-balancing algorithm of least-connections

About this change

In the past, gnet has only one load-balancing algorithm: Round-Robin, now it supports a new one: Least-Connections and provide the new functional option LB, enabling users to switch load-balancing algorithm at their own sweet will.

Get This Change

This kind of change with the `new feature` tag brings new features to gnet. Feel free to have a galance through all those commits of new features if you are interested.

Like What You See?

- + @@ -55,7 +55,7 @@ - + diff --git a/highlights/2020-04-03-released-1-1-0/index.html b/highlights/2020-04-03-released-1-1-0/index.html index 708845e07..5cd6f56d3 100644 --- a/highlights/2020-04-03-released-1-1-0/index.html +++ b/highlights/2020-04-03-released-1-1-0/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -39,12 +39,12 @@
-
/ Apr 3rd, 2020 /

Released gnet v1.1.0

Released the official stable version of v1.1.0

Features

  • Support new load-balancing algorithm of least-connections #63
  • Support new load-balancing algorithm of source-addr-hash #64
  • Add a new API to get the number of currently active connections 5ae4849

Bugfixes

  • Fix an issue of not recycling byte-buffers 3b6edfd
  • Fix a bug of reading data from the full ring-buffer a9caa26

Enhancements

  • Improve several methods of ring-buffer 828e845
  • Refine the range indexes when re-slicing 008c0c9
  • Lazily allocate memory for ring-buffers 095ef52

Docs

Misc

  • Rename the eventloop_group.go to load_balancing.go 24203f4
  • Add unit test for ring-buffer ecf3473072d1c02ca69b469d24c5581eae041d2f 94246dc

Get This Change

This change was made available in 1.1.0.

Like What You See?

+
/ Apr 3rd, 2020 /

Released gnet v1.1.0

Released the official stable version of v1.1.0

Features

  • Support new load-balancing algorithm of least-connections #63
  • Support new load-balancing algorithm of source-addr-hash #64
  • Add a new API to get the number of currently active connections 5ae4849

Bugfixes

  • Fix an issue of not recycling byte-buffers 3b6edfd
  • Fix a bug of reading data from the full ring-buffer a9caa26

Enhancements

  • Improve several methods of ring-buffer 828e845
  • Refine the range indexes when re-slicing 008c0c9
  • Lazily allocate memory for ring-buffers 095ef52

Docs

Misc

  • Rename the eventloop_group.go to load_balancing.go 24203f4
  • Add unit test for ring-buffer ecf3473072d1c02ca69b469d24c5581eae041d2f 94246dc

Get This Change

This change was made available in 1.1.0.

Like What You See?

- + @@ -54,7 +54,7 @@ - + diff --git a/highlights/2020-05-11-released-1-2-0/index.html b/highlights/2020-05-11-released-1-2-0/index.html index 2de518760..a1bcd8a73 100644 --- a/highlights/2020-05-11-released-1-2-0/index.html +++ b/highlights/2020-05-11-released-1-2-0/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -39,12 +39,12 @@
-
/ May 11th, 2020 /

Released gnet v1.2.0

Released the official stable version of v1.2.0

Features

  • Support graceful shutdown with OS signals (Fixes #82)

Enhancements

  • Improve the creation processes of netpoller (Fixes #72) ccc6c25
  • Reuse slice struct when resetting buffer 916c255
  • Make a big allocation on ring-buffer at the first time 61963bd

Docs

  • Update Features section in READMEs a0d53f5
  • Add a new article about gnet d500bf4
  • Supplement the missing acknowledgment item b031357

Misc

  • Enable ReadN(int) to handle corner cases 2e89e25
  • Leverage reviewdog as automated code review tool 5db42f9
  • Use customized logger to log errors instead of std log package 3a69701
  • Remove useless field of server 47817a0
  • Unexport some errors 5287bd8

Get This Change

This change was made available in 1.2.0.

Like What You See?

+
/ May 11th, 2020 /

Released gnet v1.2.0

Released the official stable version of v1.2.0

Features

  • Support graceful shutdown with OS signals (Fixes #82)

Enhancements

  • Improve the creation processes of netpoller (Fixes #72) ccc6c25
  • Reuse slice struct when resetting buffer 916c255
  • Make a big allocation on ring-buffer at the first time 61963bd

Docs

  • Update Features section in READMEs a0d53f5
  • Add a new article about gnet d500bf4
  • Supplement the missing acknowledgment item b031357

Misc

  • Enable ReadN(int) to handle corner cases 2e89e25
  • Leverage reviewdog as automated code review tool 5db42f9
  • Use customized logger to log errors instead of std log package 3a69701
  • Remove useless field of server 47817a0
  • Unexport some errors 5287bd8

Get This Change

This change was made available in 1.2.0.

Like What You See?

- + @@ -54,7 +54,7 @@ - + diff --git a/highlights/2020-07-02-raw-syscalls-sockets/index.html b/highlights/2020-07-02-raw-syscalls-sockets/index.html index f3e21507f..06c6756cb 100644 --- a/highlights/2020-07-02-raw-syscalls-sockets/index.html +++ b/highlights/2020-07-02-raw-syscalls-sockets/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -39,13 +39,13 @@
-
/ Jul 2nd, 2020 /

New approach to create server sockets

Leverage system calls instead of `net` package to create sockets

About this change

Benefit from system calls provided by Go standard library, server listener sockets inside gnet have gotten rid of the Go net package eventually, +

/ Jul 2nd, 2020 /

New approach to create server sockets

Leverage system calls instead of `net` package to create sockets

About this change

Benefit from system calls provided by Go standard library, server listener sockets inside gnet have gotten rid of the Go net package eventually, there are no more methods from net package involved in the process of creating the listener of server socket, all by raw system calls.

Get This Change

This kind of change with the `new feature` tag brings new features to gnet. Feel free to have a galance through all those commits of new features if you are interested.

Like What You See?

- + @@ -55,7 +55,7 @@ - + diff --git a/highlights/2020-09-13-released-1-3-0/index.html b/highlights/2020-09-13-released-1-3-0/index.html index cdaad2a97..b0557aecb 100644 --- a/highlights/2020-09-13-released-1-3-0/index.html +++ b/highlights/2020-09-13-released-1-3-0/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -39,12 +39,12 @@
-
/ Sep 13th, 2020 /

Released gnet v1.3.0

Released the official stable version of v1.3.0

Features

  • Determine logging mode by environment variable 2a7977
  • Support locking each I/O event-loop goroutine to an OS thread 6fd641

Enhancements

  • Improve the implementation of Least-Connections load-balancing b6a5f5
  • Speed up the Least-Connections load-balancing b5fbbd
  • Leverage system calls instead of net package to create listeners ccc8c6
  • Refine the logging module f46da4
  • Reorg errors in gnet 1c2f4b
  • Move logging module into internal package 00af50
  • Take off the codec from eventloop bc85c3
  • Refactor for buffer in Conn 455c5a
  • Refactor the load-balancing algorithm of source addr hash abbf58
  • Make channel buffered if necessary 43f93c

Bugfixes

  • Fix a bug that led to negative counter of sync.WaitGroup on Windows 16ed4a
  • Add "windows" build tag under SO_REUSEPORT mode 7862f3
  • Supplement all the formal protocol formats of TCP and UDP 258253
  • Resolve the issue of closing one fd twice b5a5c7
  • Fix concurrent loopCloseConn causes panic #111
  • Eliminate duplicate calls to loopCloseConn a72f5f

Docs

  • Add a customized codec example #90
  • Add placeholder for user cases and new relevant article 5197f1
  • Renew results of techempower benchmark 61eee8
  • Add the list of donors 42e04d
  • Add xs:code 33a3e5
  • Build an official website for gnet 49363c
  • Move the majority of content to website and simplify READMEs 903ff8

Misc

  • Fix a typo and improve code comments 37d75c
  • Use SyscallError to wrap system calls errors c3907e
  • Refine go build tags of operating systems 637144
  • Format copyright info 6872c2
  • Remove all examples from the source-code repo a704e0
  • refine the usage of os.NewSyscallError 2d54d8

Get This Change

This change was made available in 1.3.0.

Like What You See?

+
/ Sep 13th, 2020 /

Released gnet v1.3.0

Released the official stable version of v1.3.0

Features

  • Determine logging mode by environment variable 2a7977
  • Support locking each I/O event-loop goroutine to an OS thread 6fd641

Enhancements

  • Improve the implementation of Least-Connections load-balancing b6a5f5
  • Speed up the Least-Connections load-balancing b5fbbd
  • Leverage system calls instead of net package to create listeners ccc8c6
  • Refine the logging module f46da4
  • Reorg errors in gnet 1c2f4b
  • Move logging module into internal package 00af50
  • Take off the codec from eventloop bc85c3
  • Refactor for buffer in Conn 455c5a
  • Refactor the load-balancing algorithm of source addr hash abbf58
  • Make channel buffered if necessary 43f93c

Bugfixes

  • Fix a bug that led to negative counter of sync.WaitGroup on Windows 16ed4a
  • Add "windows" build tag under SO_REUSEPORT mode 7862f3
  • Supplement all the formal protocol formats of TCP and UDP 258253
  • Resolve the issue of closing one fd twice b5a5c7
  • Fix concurrent loopCloseConn causes panic #111
  • Eliminate duplicate calls to loopCloseConn a72f5f

Docs

  • Add a customized codec example #90
  • Add placeholder for user cases and new relevant article 5197f1
  • Renew results of techempower benchmark 61eee8
  • Add the list of donors 42e04d
  • Add xs:code 33a3e5
  • Build an official website for gnet 49363c
  • Move the majority of content to website and simplify READMEs 903ff8

Misc

  • Fix a typo and improve code comments 37d75c
  • Use SyscallError to wrap system calls errors c3907e
  • Refine go build tags of operating systems 637144
  • Format copyright info 6872c2
  • Remove all examples from the source-code repo a704e0
  • refine the usage of os.NewSyscallError 2d54d8

Get This Change

This change was made available in 1.3.0.

Like What You See?

- + @@ -54,7 +54,7 @@ - + diff --git a/highlights/2020-09-13-supported-locking-os-thread/index.html b/highlights/2020-09-13-supported-locking-os-thread/index.html index 3ce8b0695..47d321026 100644 --- a/highlights/2020-09-13-supported-locking-os-thread/index.html +++ b/highlights/2020-09-13-supported-locking-os-thread/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -39,13 +39,13 @@
-
/ Sep 13th, 2020 /

Support locking OS thread

Support locking each I/O event-loop goroutine to an OS thread

About this change

Add functional option LockOSThread used to determine whether each I/O event-loop is associated to an OS thread, it is useful when you need some kind of mechanisms like thread local storage, +

/ Sep 13th, 2020 /

Support locking OS thread

Support locking each I/O event-loop goroutine to an OS thread

About this change

Add functional option LockOSThread used to determine whether each I/O event-loop is associated to an OS thread, it is useful when you need some kind of mechanisms like thread local storage, or invoke certain C libraries (such as graphics lib: GLib) that require thread-level manipulation via cgo, or want all I/O event-loops to actually run in parallel for a potential higher performance.

Get This Change

This kind of change with the `new feature` tag brings new features to gnet. Feel free to have a galance through all those commits of new features if you are interested.

Like What You See?

- + @@ -55,7 +55,7 @@ - + diff --git a/highlights/2021-02-17-released-1-4-0/index.html b/highlights/2021-02-17-released-1-4-0/index.html index 02e27b986..492c72247 100644 --- a/highlights/2021-02-17-released-1-4-0/index.html +++ b/highlights/2021-02-17-released-1-4-0/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -39,12 +39,12 @@
-
/ Feb 17th, 2021 /

Released gnet v1.4.0

Released the official stable version of v1.4.0

Features

  • Support TCP_NODELAY socket option 525df8
  • Implement the lock-free queue for dispatching tasks faster #181

Enhancements

  • Shrink the ring-buffer for saving memory 14fd04
  • Improve event poll fc042c
  • Improve the buffered channels 83b96e
  • Shrink the poll event list when it need to 158763
  • Improve the I/O in event-loop c554f4
  • Prioritize writable events 0f08c8
  • Make it more robust when running async jobs 6509b8
  • Improve the poller waking logic 4d8acc

Bugfixes

  • Re-enqueue the subsequent jobs when a error occurs 1af3f6
  • Close and release a socket when error occurs 9d86c9
  • Check outbound buffer in case the socket has been released 035f61
  • Avoid starving sockets e31525

Docs

  • Enrich the doc about using UDP packets 0047c1
  • Add more user cases of gnet 076b16
  • Update benchmark results 028bab
  • Update the description about ring-buffer 38b086

Misc

  • Add one more donor 12bfa5
  • Refine code 2aee5a
  • Add comments on those core code 2404ed
  • Refine code and add comments 4ecbc5
  • Add a warning comment for OnOpened 0bddd0

Get This Change

This change was made available in 1.4.0.

Like What You See?

+
/ Feb 17th, 2021 /

Released gnet v1.4.0

Released the official stable version of v1.4.0

Features

  • Support TCP_NODELAY socket option 525df8
  • Implement the lock-free queue for dispatching tasks faster #181

Enhancements

  • Shrink the ring-buffer for saving memory 14fd04
  • Improve event poll fc042c
  • Improve the buffered channels 83b96e
  • Shrink the poll event list when it need to 158763
  • Improve the I/O in event-loop c554f4
  • Prioritize writable events 0f08c8
  • Make it more robust when running async jobs 6509b8
  • Improve the poller waking logic 4d8acc

Bugfixes

  • Re-enqueue the subsequent jobs when a error occurs 1af3f6
  • Close and release a socket when error occurs 9d86c9
  • Check outbound buffer in case the socket has been released 035f61
  • Avoid starving sockets e31525

Docs

  • Enrich the doc about using UDP packets 0047c1
  • Add more user cases of gnet 076b16
  • Update benchmark results 028bab
  • Update the description about ring-buffer 38b086

Misc

  • Add one more donor 12bfa5
  • Refine code 2aee5a
  • Add comments on those core code 2404ed
  • Refine code and add comments 4ecbc5
  • Add a warning comment for OnOpened 0bddd0

Get This Change

This change was made available in 1.4.0.

Like What You See?

- + @@ -54,7 +54,7 @@ - + diff --git a/highlights/2021-07-11-released-1-5-0/index.html b/highlights/2021-07-11-released-1-5-0/index.html index cfb106518..926c6f5c8 100644 --- a/highlights/2021-07-11-released-1-5-0/index.html +++ b/highlights/2021-07-11-released-1-5-0/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -39,12 +39,12 @@
-
/ Jul 11th, 2021 /

Released gnet v1.5.0

Released the official stable version of v1.5.0

Features

  • Move the logging module out of the internal package and refactor to make it serviceable for users d56606 b6b1cf 8837a9

Enhancements

  • Support writev and readv in eventloop f299a8
  • Reduce GC pause frequency for Conn.AsyncWrite (#218) 477bb4
  • Improve logging module 8837a9 b6b1cf
  • Refactor the inside AsyncTaskQueue to make it more generic 2d1a46
  • Reduce GC pause frequency for accepting connections 2d1a46

Docs

  • Add a new user case: Tencent Games b7ea83
  • Add a new donor ee965a

Misc

  • Add debugging log when error occurs in Accept() #222
  • Make some trivial changes to ring-buffer 1bdd3a

Get This Change

This change was made available in 1.5.0.

Like What You See?

+
/ Jul 11th, 2021 /

Released gnet v1.5.0

Released the official stable version of v1.5.0

Features

  • Move the logging module out of the internal package and refactor to make it serviceable for users d56606 b6b1cf 8837a9

Enhancements

  • Support writev and readv in eventloop f299a8
  • Reduce GC pause frequency for Conn.AsyncWrite (#218) 477bb4
  • Improve logging module 8837a9 b6b1cf
  • Refactor the inside AsyncTaskQueue to make it more generic 2d1a46
  • Reduce GC pause frequency for accepting connections 2d1a46

Docs

  • Add a new user case: Tencent Games b7ea83
  • Add a new donor ee965a

Misc

  • Add debugging log when error occurs in Accept() #222
  • Make some trivial changes to ring-buffer 1bdd3a

Get This Change

This change was made available in 1.5.0.

Like What You See?

- + @@ -54,7 +54,7 @@ - + diff --git a/highlights/2021-07-20-released-1-5-2/index.html b/highlights/2021-07-20-released-1-5-2/index.html index 5d1fa9619..985de6531 100644 --- a/highlights/2021-07-20-released-1-5-2/index.html +++ b/highlights/2021-07-20-released-1-5-2/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -39,12 +39,12 @@
-
/ Jul 20th, 2021 /

Released gnet v1.5.2

Released the official stable version of v1.5.2

Enhancements

About poller

By default, gnet utilizes the standard package golang.org/x/sys/unix to implement pollers with epoll or kqueue, where a HASH MAP of fd->conn is introduced to help retrieve connections by file descriptors returned from pollers, but now the user can run go build with build tags poll_opt, like this: go build -tags=poll_opt, and gnet then switch to the optimized implementations of pollers that invoke the system calls of epoll or kqueue directly and add file descriptors to the interest list along with storing the corresponding connection pointers into epoll_data or kevent, in which case gnet can get rid of the HASH MAP of fd->conn and regain each connection pointer by the conversion of void* pointer in the I/O event-looping. In theory, it ought to achieve a higher performance with this optimization.

See #230 for code details.

About ring-buffer

Adjust the growth strategy of ring-buffer, make it go more smoothly rather than simply doubling up (which may waste a huge amount of memory) in each buffer scaling. ccd37f fd8d27

Get This Change

This change was made available in 1.5.2.

Like What You See?

+
/ Jul 20th, 2021 /

Released gnet v1.5.2

Released the official stable version of v1.5.2

Enhancements

About poller

By default, gnet utilizes the standard package golang.org/x/sys/unix to implement pollers with epoll or kqueue, where a HASH MAP of fd->conn is introduced to help retrieve connections by file descriptors returned from pollers, but now the user can run go build with build tags poll_opt, like this: go build -tags=poll_opt, and gnet then switch to the optimized implementations of pollers that invoke the system calls of epoll or kqueue directly and add file descriptors to the interest list along with storing the corresponding connection pointers into epoll_data or kevent, in which case gnet can get rid of the HASH MAP of fd->conn and regain each connection pointer by the conversion of void* pointer in the I/O event-looping. In theory, it ought to achieve a higher performance with this optimization.

See #230 for code details.

About ring-buffer

Adjust the growth strategy of ring-buffer, make it go more smoothly rather than simply doubling up (which may waste a huge amount of memory) in each buffer scaling. ccd37f fd8d27

Get This Change

This change was made available in 1.5.2.

Like What You See?

- + @@ -54,7 +54,7 @@ - + diff --git a/highlights/2021-12-05-released-1-6-0/index.html b/highlights/2021-12-05-released-1-6-0/index.html index cf65aa2d8..04161ef64 100644 --- a/highlights/2021-12-05-released-1-6-0/index.html +++ b/highlights/2021-12-05-released-1-6-0/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -39,12 +39,12 @@
-
/ Dec 5th, 2021 /

Released gnet v1.6.0

Released the official stable version of v1.6.0

gnet client is now available for production!

Features

  • Add a new event handler: AfterWrite() 6a654c
  • Implement the gnet client 2295e8 a5ac95 4db46d 802fa3 7159b9
  • Implement writev and readv on BSD-like OS's 60ba6d
  • Implement a mixed buffer of ring-buffer and list-buffer edbdf4
  • Invoke OnClosed() when a UDP socket is closed 7be4b2
  • Implement the gnet.Conn.AsyncWritev() 9a2032

Enhancements

  • Prevent the event-list from expanding or shrinking endlessly b220df
  • Reduce the potential system calls for waking pollers up 9ce41f
  • Eliminate the code for preventing false-sharing 0bfade
  • Support so_reuseaddr #280
  • Make several improvements for logger 58d203
  • Optimize the buffer management and network I/O 6aba6d
  • Improve the project layout 2e172b
  • Improve the logic of reading data from socket into ring-buffer a7f07b
  • Get as much data read from socket per loop as possible 148ee1
  • Improve the network read with ring-buffer and readv 0dcf59
  • Avoid memory allocations when calling readv 15611b
  • Refactor the logic of handling UDP sockets d72d3d
  • Make the mixed-buffer more flexible d72d3d
  • Improve the management logic of the mixed-buffer b8d571

Bugfixes

  • Resolve the data race of stdConn on Windows #235
  • Fix the data corruption in some default codecs a56d2f
  • Fix the issue of panic: runtime error: slice bounds out of range 30311e

Docs

Misc

Get This Change

This change was made available in 1.6.0.

Like What You See?

+
/ Dec 5th, 2021 /

Released gnet v1.6.0

Released the official stable version of v1.6.0

gnet client is now available for production!

Features

  • Add a new event handler: AfterWrite() 6a654c
  • Implement the gnet client 2295e8 a5ac95 4db46d 802fa3 7159b9
  • Implement writev and readv on BSD-like OS's 60ba6d
  • Implement a mixed buffer of ring-buffer and list-buffer edbdf4
  • Invoke OnClosed() when a UDP socket is closed 7be4b2
  • Implement the gnet.Conn.AsyncWritev() 9a2032

Enhancements

  • Prevent the event-list from expanding or shrinking endlessly b220df
  • Reduce the potential system calls for waking pollers up 9ce41f
  • Eliminate the code for preventing false-sharing 0bfade
  • Support so_reuseaddr #280
  • Make several improvements for logger 58d203
  • Optimize the buffer management and network I/O 6aba6d
  • Improve the project layout 2e172b
  • Improve the logic of reading data from socket into ring-buffer a7f07b
  • Get as much data read from socket per loop as possible 148ee1
  • Improve the network read with ring-buffer and readv 0dcf59
  • Avoid memory allocations when calling readv 15611b
  • Refactor the logic of handling UDP sockets d72d3d
  • Make the mixed-buffer more flexible d72d3d
  • Improve the management logic of the mixed-buffer b8d571

Bugfixes

  • Resolve the data race of stdConn on Windows #235
  • Fix the data corruption in some default codecs a56d2f
  • Fix the issue of panic: runtime error: slice bounds out of range 30311e

Docs

Misc

Get This Change

This change was made available in 1.6.0.

Like What You See?

- + @@ -54,7 +54,7 @@ - + diff --git a/highlights/2022-02-27-release-of-gnet-v2/index.html b/highlights/2022-02-27-release-of-gnet-v2/index.html index 9beb3261f..8dbc9de02 100644 --- a/highlights/2022-02-27-release-of-gnet-v2/index.html +++ b/highlights/2022-02-27-release-of-gnet-v2/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -39,12 +39,12 @@
-
/ Feb 27th, 2022 /

Release of gnet v2.0.0

Release of the official stable version of v2.0.0

Today, I'm thrilled to announce the release of gnet v2.0.0, in which we've made plenty of significant improvements and optimizations: added and removed some APIs, redesigned and reimplemented the buffer, optimized the memory pool, etc.

Please visit Announcing gnet v2.0.0 blog post

Get This Change

This change was made available in 2.0.0.

Like What You See?

+
/ Feb 27th, 2022 /

Release of gnet v2.0.0

Release of the official stable version of v2.0.0

Today, I'm thrilled to announce the release of gnet v2.0.0, in which we've made plenty of significant improvements and optimizations: added and removed some APIs, redesigned and reimplemented the buffer, optimized the memory pool, etc.

Please visit Announcing gnet v2.0.0 blog post

Get This Change

This change was made available in 2.0.0.

Like What You See?

- + @@ -54,7 +54,7 @@ - + diff --git a/highlights/2023-05-19-release-candidate-for-gnet-v2-3-0/index.html b/highlights/2023-05-19-release-candidate-for-gnet-v2-3-0/index.html index 5bfac9579..dad266012 100644 --- a/highlights/2023-05-19-release-candidate-for-gnet-v2-3-0/index.html +++ b/highlights/2023-05-19-release-candidate-for-gnet-v2-3-0/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -39,14 +39,14 @@
-
/ May 19th, 2023 /

Release candidate for gnet v2.3.0

The first release candidate for gnet v2.3.0

Intro

The two major updates in this release candidate are #460 and #461.

We introduced a new data structure matrix in #460 to displace the default map for managing connections internally, with the help of this new data structure, we can eliminate the pointers in map and store connections in the form of a matrix (an array of slices), which will significantly reduce GC (Garbage Collection) latency:

goos: darwin
goarch: arm64
pkg: github.com/panjf2000/gnet/v2
│ old │ new │
│ sec/op │ sec/op vs base │
GC4El100k/Run-4-eventloop-100000-10 30.74m ± 3% 19.68m ± 10% -35.98% (p=0.000 n=10)
GC4El200k/Run-4-eventloop-200000-10 63.64m ± 3% 38.16m ± 11% -40.04% (p=0.000 n=10)
GC4El500k/Run-4-eventloop-500000-10 177.28m ± 8% 95.21m ± 4% -46.29% (p=0.000 n=10)
geomean 70.26m 41.51m -40.92%
+
/ May 19th, 2023 /

Release candidate for gnet v2.3.0

The first release candidate for gnet v2.3.0

Intro

The two major updates in this release candidate are #460 and #461.

We introduced a new data structure matrix in #460 to displace the default map for managing connections internally, with the help of this new data structure, we can eliminate the pointers in map and store connections in the form of a matrix (an array of slices), which will significantly reduce GC (Garbage Collection) latency:

goos: darwin
goarch: arm64
pkg: github.com/panjf2000/gnet/v2
│ old │ new │
│ sec/op │ sec/op vs base │
GC4El100k/Run-4-eventloop-100000-10 30.74m ± 3% 19.68m ± 10% -35.98% (p=0.000 n=10)
GC4El200k/Run-4-eventloop-200000-10 63.64m ± 3% 38.16m ± 11% -40.04% (p=0.000 n=10)
GC4El500k/Run-4-eventloop-500000-10 177.28m ± 8% 95.21m ± 4% -46.29% (p=0.000 n=10)
geomean 70.26m 41.51m -40.92%
│ old │ new │
│ B/op │ B/op vs base │
GC4El100k/Run-4-eventloop-100000-10 27.50 ± 35% 25.50 ± 33% ~ (p=0.423 n=10)
GC4El200k/Run-4-eventloop-200000-10 27.50 ± 53% 20.50 ± 66% ~ (p=0.642 n=10)
GC4El500k/Run-4-eventloop-500000-10 16.00 ± ? 18.00 ± ? ~ (p=0.357 n=10)
geomean 22.96 21.11 -8.04%
│ old │ new │
│ allocs/op │ allocs/op vs base │
GC4El100k/Run-4-eventloop-100000-10 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=10) ¹
GC4El200k/Run-4-eventloop-200000-10 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=10) ¹
GC4El500k/Run-4-eventloop-500000-10 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=10) ¹
geomean ² +0.00% ²
¹ all samples are equal
² summaries must be >0 to compute geomean

The more connections there are, the more pronounced the effect.

While we have performed sufficient testing on matrix, we are still using map as the default connection storage in this RC version for the sake of caution, but you can enable the new data structure by specifying build tags: -tags=gc_opt. This can be considered as a precautionary measure so that in case matrix has any unexpected bugs, you can quickly fall back to the default map. We will consider promoting matrix to be the default storage for connections in a subsequent official release.

Another significant leap is #461, you can now run gnet on Windows, it should be noted that the Windows version of gnet is intended for development purposes and is not recommended for use in production.

Get This Change

This change was made available in 2.3.0-rc.1.

Like What You See?

- + @@ -56,7 +56,7 @@ - + diff --git a/highlights/2023-11-11-gnet-techempower-benchmark-top1/index.html b/highlights/2023-11-11-gnet-techempower-benchmark-top1/index.html index 538d12ccf..2ffe237cb 100644 --- a/highlights/2023-11-11-gnet-techempower-benchmark-top1/index.html +++ b/highlights/2023-11-11-gnet-techempower-benchmark-top1/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -39,12 +39,12 @@
-
/ Nov 11th, 2023 /

Gnet tops the TechEmpower benchmark leaderboard

Gnet tops the TechEmpower benchmark leaderboard, becoming the world No. 1

Breaking News 🎉🎉🎉

TechEmpower Web Framework Benchmarks is a performance comparison of many web application frameworks executing fundamental tasks such as JSON serialization, database access, and server-side template composition.

gnet tops the leaderboard of TechEmpower Plaintext Benchmark in round 22, becoming the world No. 1.

This is a leaderboard of the top 50 out of 486 frameworks that encompass various programming languages worldwide, in which gnet is ranked first.

This is the full framework ranking of Go and gnet tops all the other frameworks, which makes gnet the fastest networking framework in Go.

To see the full leaderboard, visit TechEmpower Benchmark Round 22.

Get This Change

This change was made available in 2.3.5.

Like What You See?

+
/ Nov 11th, 2023 /

Gnet tops the TechEmpower benchmark leaderboard

Gnet tops the TechEmpower benchmark leaderboard, becoming the world No. 1

Breaking News 🎉🎉🎉

TechEmpower Web Framework Benchmarks is a performance comparison of many web application frameworks executing fundamental tasks such as JSON serialization, database access, and server-side template composition.

gnet tops the leaderboard of TechEmpower Plaintext Benchmark in round 22, becoming the world No. 1.

This is a leaderboard of the top 50 out of 486 frameworks that encompass various programming languages worldwide, in which gnet is ranked first.

This is the full framework ranking of Go and gnet tops all the other frameworks, which makes gnet the fastest networking framework in Go.

To see the full leaderboard, visit TechEmpower Benchmark Round 22.

Get This Change

This change was made available in 2.3.5.

Like What You See?

- + @@ -54,7 +54,7 @@ - + diff --git a/highlights/2024-04-22-release-of-gnet-v2-5-0/index.html b/highlights/2024-04-22-release-of-gnet-v2-5-0/index.html index dcac764db..9344c1c41 100644 --- a/highlights/2024-04-22-release-of-gnet-v2-5-0/index.html +++ b/highlights/2024-04-22-release-of-gnet-v2-5-0/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -39,12 +39,12 @@
-
/ Apr 22nd, 2024 /

Release of gnet v2.5.0

Release of the official stable version of v2.5.0

I hereby announce the release of gnet v2.5.0, where we've added two major features of edge-triggered mode and multiple addresses bindings, along with a good deal of code refactoring and optimizations.

Please visit Announcing gnet v2.5.0 for more details.

Get This Change

This change was made available in 2.5.0.

Like What You See?

+
/ Apr 22nd, 2024 /

Release of gnet v2.5.0

Release of the official stable version of v2.5.0

I hereby announce the release of gnet v2.5.0, where we've added two major features of edge-triggered mode and multiple addresses bindings, along with a good deal of code refactoring and optimizations.

Please visit Announcing gnet v2.5.0 for more details.

Get This Change

This change was made available in 2.5.0.

Like What You See?

- + @@ -54,7 +54,7 @@ - + diff --git a/highlights/index.html b/highlights/index.html index 0beec8e86..36e374c98 100644 --- a/highlights/index.html +++ b/highlights/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -71,12 +71,12 @@
-

gnet Highlights

New features & updates. Follow @panjf2000 for real-time updates!
+

gnet Highlights

New features & updates. Follow @panjf2000 for real-time updates!
- + @@ -86,7 +86,7 @@ - + diff --git a/highlights/tags/domain-load-balancing/index.html b/highlights/tags/domain-load-balancing/index.html index e2d3f34cb..a5533252a 100644 --- a/highlights/tags/domain-load-balancing/index.html +++ b/highlights/tags/domain-load-balancing/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -43,12 +43,12 @@ - + @@ -58,7 +58,7 @@ - + diff --git a/highlights/tags/domain-os/index.html b/highlights/tags/domain-os/index.html index 43e13b06d..290e04add 100644 --- a/highlights/tags/domain-os/index.html +++ b/highlights/tags/domain-os/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -41,12 +41,12 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/highlights/tags/domain-socket/index.html b/highlights/tags/domain-socket/index.html index a889350e1..cdcbe3a63 100644 --- a/highlights/tags/domain-socket/index.html +++ b/highlights/tags/domain-socket/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -41,12 +41,12 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/highlights/tags/domain-thread/index.html b/highlights/tags/domain-thread/index.html index 62c2ad9da..3cab45e7d 100644 --- a/highlights/tags/domain-thread/index.html +++ b/highlights/tags/domain-thread/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -41,12 +41,12 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/highlights/tags/domain-v-1-0-0/index.html b/highlights/tags/domain-v-1-0-0/index.html index 07a6cea6b..1440863be 100644 --- a/highlights/tags/domain-v-1-0-0/index.html +++ b/highlights/tags/domain-v-1-0-0/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -41,12 +41,12 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/highlights/tags/domain-v-1-1-0/index.html b/highlights/tags/domain-v-1-1-0/index.html index e68b484eb..68e99315b 100644 --- a/highlights/tags/domain-v-1-1-0/index.html +++ b/highlights/tags/domain-v-1-1-0/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -41,12 +41,12 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/highlights/tags/domain-v-1-2-0/index.html b/highlights/tags/domain-v-1-2-0/index.html index fd0e74b64..a57e75937 100644 --- a/highlights/tags/domain-v-1-2-0/index.html +++ b/highlights/tags/domain-v-1-2-0/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -41,12 +41,12 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/highlights/tags/domain-v-1-3-0/index.html b/highlights/tags/domain-v-1-3-0/index.html index c5aa4f17d..408e7fdbc 100644 --- a/highlights/tags/domain-v-1-3-0/index.html +++ b/highlights/tags/domain-v-1-3-0/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -41,12 +41,12 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/highlights/tags/domain-v-1-4-0/index.html b/highlights/tags/domain-v-1-4-0/index.html index 703a48258..6f02bb41b 100644 --- a/highlights/tags/domain-v-1-4-0/index.html +++ b/highlights/tags/domain-v-1-4-0/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -41,12 +41,12 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/highlights/tags/domain-v-1-5-0/index.html b/highlights/tags/domain-v-1-5-0/index.html index 907cca8ee..6e674b0f3 100644 --- a/highlights/tags/domain-v-1-5-0/index.html +++ b/highlights/tags/domain-v-1-5-0/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -41,12 +41,12 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/highlights/tags/domain-v-1-5-2/index.html b/highlights/tags/domain-v-1-5-2/index.html index 3f445c811..ce663e453 100644 --- a/highlights/tags/domain-v-1-5-2/index.html +++ b/highlights/tags/domain-v-1-5-2/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -41,12 +41,12 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/highlights/tags/domain-v-1-6-0/index.html b/highlights/tags/domain-v-1-6-0/index.html index b6eeed2e5..b004ed5e1 100644 --- a/highlights/tags/domain-v-1-6-0/index.html +++ b/highlights/tags/domain-v-1-6-0/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -41,12 +41,12 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/highlights/tags/domain-v-2-0-0/index.html b/highlights/tags/domain-v-2-0-0/index.html index 478937ab0..368193f7f 100644 --- a/highlights/tags/domain-v-2-0-0/index.html +++ b/highlights/tags/domain-v-2-0-0/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -41,12 +41,12 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/highlights/tags/domain-v-2-3-0-rc-1/index.html b/highlights/tags/domain-v-2-3-0-rc-1/index.html index b96c8f94f..21bd0635e 100644 --- a/highlights/tags/domain-v-2-3-0-rc-1/index.html +++ b/highlights/tags/domain-v-2-3-0-rc-1/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -41,12 +41,12 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/highlights/tags/domain-v-2-3-5/index.html b/highlights/tags/domain-v-2-3-5/index.html index 405575016..f8d307be8 100644 --- a/highlights/tags/domain-v-2-3-5/index.html +++ b/highlights/tags/domain-v-2-3-5/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -41,12 +41,12 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/highlights/tags/domain-v-2-5-0/index.html b/highlights/tags/domain-v-2-5-0/index.html index ceeda2608..72825591f 100644 --- a/highlights/tags/domain-v-2-5-0/index.html +++ b/highlights/tags/domain-v-2-5-0/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -41,12 +41,12 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/highlights/tags/index.html b/highlights/tags/index.html index 026b155af..ede9f7bca 100644 --- a/highlights/tags/index.html +++ b/highlights/tags/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -39,12 +39,12 @@ - + @@ -54,7 +54,7 @@ - + diff --git a/highlights/tags/platform-arm-64/index.html b/highlights/tags/platform-arm-64/index.html index 430b66052..78fe5a930 100644 --- a/highlights/tags/platform-arm-64/index.html +++ b/highlights/tags/platform-arm-64/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -43,12 +43,12 @@ - + @@ -58,7 +58,7 @@ - + diff --git a/highlights/tags/platform-windows/index.html b/highlights/tags/platform-windows/index.html index 54954a3c5..1a457ed2c 100644 --- a/highlights/tags/platform-windows/index.html +++ b/highlights/tags/platform-windows/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -41,12 +41,12 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/highlights/tags/type-new-feature/index.html b/highlights/tags/type-new-feature/index.html index 69efc43f6..66b32fbcf 100644 --- a/highlights/tags/type-new-feature/index.html +++ b/highlights/tags/type-new-feature/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -47,12 +47,12 @@
- +
- + @@ -62,7 +62,7 @@ - + diff --git a/highlights/tags/type-optimization/index.html b/highlights/tags/type-optimization/index.html index 12df49c8e..4b0f907f5 100644 --- a/highlights/tags/type-optimization/index.html +++ b/highlights/tags/type-optimization/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -41,12 +41,12 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/highlights/tags/type-release/index.html b/highlights/tags/type-release/index.html index 3981e28c8..7b6f2f5dc 100644 --- a/highlights/tags/type-release/index.html +++ b/highlights/tags/type-release/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -51,12 +51,12 @@
- +
- + @@ -66,7 +66,7 @@ - + diff --git a/highlights/tags/type-tag/index.html b/highlights/tags/type-tag/index.html index ded856a66..77b6b4ba8 100644 --- a/highlights/tags/type-tag/index.html +++ b/highlights/tags/type-tag/index.html @@ -21,7 +21,7 @@ - + @@ -31,7 +31,7 @@ - + @@ -51,12 +51,12 @@
- +
- + @@ -66,7 +66,7 @@ - + diff --git a/index.html b/index.html index 8c3c752b7..86c2bb984 100644 --- a/index.html +++ b/index.html @@ -21,7 +21,7 @@ - + @@ -31,18 +31,18 @@ - +
-
newAnnouncing gnet v2.5.0

Build high-performance networking applications in Go

On top of a variety of protocols of HTTP, RPC, WebSocket, Redis, etc.

gnet is the fastest networking framework in Go.

Why gnet?

Ultra-Fast

Built in Go, gnet is ultra-fast and memory efficient based on the event-driven mechanism. It's designed to create a networking server framework for Go that performs on par with Redis and Haproxy for networking packets handling.

Lock-Free

gnet is lock-free during the entire runtime, which keeps gnet free from synchronization issues and speeds it up.

Concise & Easy-to-use APIs

gnet provides concise and easy-to-use APIs for users, it only exposes the essential APIs and takes over most of the tough work for users, minimizing the complexity of business code so that developers are able to concentrate on business logic instead of the underlying implementations.

Multiple Protocols

gnet supports multiple protocols/IPC mechanism: TCP, UDP and Unix Domain Socket, enabling you to develop a variety of networking applications.

Cross Platform

gnet is devised as a cross-platform framework, as a result, it works faultlessly on multiple platforms: Linux, FreeBSD, DragonFly BSD, Windows.

Powerful Libraries

There is a rich set of libraries in gnet, such as memory pool, goroutine pool, elastic buffers, logging package, etc., which makes it convenient for developers to build fast and efficient networking applications.

Networking model of multiple reactors

Learn how gnet works

Cross Platform

Built on Linux, FreeBSD, DragonFly BSD, Darwin, Windows
        
UNIX & Windows
X86_64, ARM64
Light-weight
Ultra-fast

How to install gnet

`gnet` is available as a Go module and we highly recommend that you use `gnet` via Go Modules, with Go 1.11 Modules enabled (Go 1.11+), you can just simply add `import "github.com/panjf2000/gnet/v2"` to the codebase and run `go mod download/go mod tidy` or `go [build|run|test]` to download the necessary dependencies automatically.

Run go get to download gnet:

With v2

go get -u github.com/panjf2000/gnet/v2

With v1

go get -u github.com/panjf2000/gnet

Performance

Benchmarks on TechEmpower
# Hardware Environment
* 28 HT Cores Intel(R) Xeon(R) Gold 5120 CPU @ 3.20GHz
* 32GB RAM
* Dedicated Cisco 10-gigabit Ethernet switch
* Debian 12 "bookworm"
* Go1.19.x linux/amd64

All languages

This is a leaderboard of the top 50 out of 486 frameworks that encompass various programming languages worldwide, in which gnet is ranked first.

Go

This is the full framework ranking of Go and gnet tops all the other frameworks, which makes gnet the fastest networking framework in Go.


To check the full ranking list, visit TechEmpower Benchmark Round 22.

Note that the HTTP implementation of gnet on TechEmpower is half-baked and fine-tuned for benchmark purposes only and is far from production-ready.

Use cases

The following companies/organizations use gnet as the underlying network service in production.

If your projects are also using gnet, feel free to open a pull request refreshing this list.

+
newAnnouncing gnet v2.5.0

Build high-performance networking applications in Go

On top of a variety of protocols of HTTP, RPC, WebSocket, Redis, etc.

gnet is the fastest networking framework in Go.

Why gnet?

Ultra-Fast

Built in Go, gnet is ultra-fast and memory efficient based on the event-driven mechanism. It's designed to create a networking server framework for Go that performs on par with Redis and Haproxy for networking packets handling.

Lock-Free

gnet is lock-free during the entire runtime, which keeps gnet free from synchronization issues and speeds it up.

Concise & Easy-to-use APIs

gnet provides concise and easy-to-use APIs for users, it only exposes the essential APIs and takes over most of the tough work for users, minimizing the complexity of business code so that developers are able to concentrate on business logic instead of the underlying implementations.

Multiple Protocols

gnet supports multiple protocols/IPC mechanism: TCP, UDP and Unix Domain Socket, enabling you to develop a variety of networking applications.

Cross Platform

gnet is devised as a cross-platform framework, as a result, it works faultlessly on multiple platforms: Linux, FreeBSD, DragonFly BSD, Windows.

Powerful Libraries

There is a rich set of libraries in gnet, such as memory pool, goroutine pool, elastic buffers, logging package, etc., which makes it convenient for developers to build fast and efficient networking applications.

Networking model of multiple reactors

Learn how gnet works

Cross Platform

Built on Linux, FreeBSD, DragonFly BSD, Darwin, Windows
        
UNIX & Windows
X86_64, ARM64
Light-weight
Ultra-fast

How to install gnet

`gnet` is available as a Go module and we highly recommend that you use `gnet` via Go Modules, with Go 1.11 Modules enabled (Go 1.11+), you can just simply add `import "github.com/panjf2000/gnet/v2"` to the codebase and run `go mod download/go mod tidy` or `go [build|run|test]` to download the necessary dependencies automatically.

Run go get to download gnet:

With v2

go get -u github.com/panjf2000/gnet/v2

With v1

go get -u github.com/panjf2000/gnet

Performance

Benchmarks on TechEmpower
# Hardware Environment
* 28 HT Cores Intel(R) Xeon(R) Gold 5120 CPU @ 3.20GHz
* 32GB RAM
* Dedicated Cisco 10-gigabit Ethernet switch
* Debian 12 "bookworm"
* Go1.19.x linux/amd64

All languages

This is a leaderboard of the top 50 out of 486 frameworks that encompass various programming languages worldwide, in which gnet is ranked first.

Go

This is the full framework ranking of Go and gnet tops all the other frameworks, which makes gnet the fastest networking framework in Go.


To check the full ranking list, visit TechEmpower Benchmark Round 22.

Note that the HTTP implementation of gnet on TechEmpower is half-baked and fine-tuned for benchmark purposes only and is far from production-ready.

Use cases

The following companies/organizations use gnet as the underlying network service in production.

If your projects are also using gnet, feel free to open a pull request refreshing this list.

- + @@ -52,7 +52,7 @@ - + diff --git a/runtime~main.51c1c531.js b/runtime~main.eba4d2cd.js similarity index 92% rename from runtime~main.51c1c531.js rename to runtime~main.eba4d2cd.js index c897f237c..d87e16771 100644 --- a/runtime~main.51c1c531.js +++ b/runtime~main.eba4d2cd.js @@ -1 +1 @@ -!function(e){function c(c){for(var d,a,r=c[0],n=c[1],o=c[2],u=0,i=[];u