aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLouis <6653109+artonge@users.noreply.github.com>2023-09-20 10:38:17 +0200
committerGitHub <noreply@github.com>2023-09-20 10:38:17 +0200
commitd5fc95b661d34899095dc53b363cdb35fa458565 (patch)
treefe91cf078ae87c7d7a9b2e447570617a96de3a80
parent0cfdf6f6ad7ff30dba778a3b3fd1210ac3159aec (diff)
parent6792724657e606b172505380f369ad812edaae66 (diff)
downloadnextcloud-server-d5fc95b661d34899095dc53b363cdb35fa458565.tar.gz
nextcloud-server-d5fc95b661d34899095dc53b363cdb35fa458565.zip
Merge pull request #40213 from nextcloud/dependabot/npm_and_yarn/nextcloud/browserslist-config-3.0.0
chore(deps): Bump @nextcloud/browserslist-config from 2.3.0 to 3.0.0
-rw-r--r--dist/7816-7816.js4
-rw-r--r--dist/7816-7816.js.map2
-rw-r--r--dist/core-unsupported-browser-redirect.js4
-rw-r--r--dist/core-unsupported-browser-redirect.js.map2
-rw-r--r--dist/core-unsupported-browser.js4
-rw-r--r--dist/core-unsupported-browser.js.map2
-rw-r--r--package-lock.json17
-rw-r--r--package.json2
8 files changed, 21 insertions, 16 deletions
diff --git a/dist/7816-7816.js b/dist/7816-7816.js
index 10cc001015d..090842cacd8 100644
--- a/dist/7816-7816.js
+++ b/dist/7816-7816.js
@@ -1,3 +1,3 @@
/*! For license information please see 7816-7816.js.LICENSE.txt */
-(self.webpackChunknextcloud=self.webpackChunknextcloud||[]).push([[7816],{77727:function(e){e.exports=[">0.25%","not ie 11","not op_mini all","not dead","Firefox ESR"]},75893:function(e,u,r){"use strict";var n,d=r(77958),t=r(17499);u.Z=null===(n=(0,d.ts)())?(0,t.IY)().setApp("core").build():(0,t.IY)().setApp("core").setUid(n.uid).build()},5650:function(e,u,r){"use strict";var n=r(62556);u.Z=(0,n.getBuilder)("core").clearOnLogout().persist().build()},95350:function(e,u,r){"use strict";r.d(u,{B:function(){return i}});var n=r(20879),d=r(31e3),t=r.n(d),a=r(77727),s=r.n(a),i=(0,n.z$)({allowHigherVersions:!0,browsers:s()});t()(s())},77816:function(e,u,r){"use strict";r.r(u),r.d(u,{browserStorageKey:function(){return i},testSupportedBrowser:function(){return c}});var n=r(79753),d=r(95350),t=r(5650),a=r(75893),s=r(23085).lW,i="unsupported-browser-ignore",f=(0,n.generateUrl)("/unsupported"),o="true"===t.Z.getItem(i),c=function(){if(d.B.test(navigator.userAgent))a.Z.debug("this browser is officially supported ! 🚀");else if(o)a.Z.debug("this browser is NOT supported but has been manually overridden ! ⚠️");else if(-1===window.location.pathname.indexOf(f)){var e=window.location.href.replace(window.location.origin,""),u=s.from(e).toString("base64");history.pushState(null,null,"".concat(f,"?redirect_url=").concat(u)),window.location.reload()}}},84660:function(e,u,r){var n=r(9667);function d(){}e.exports={loadQueries:function(){throw new n("Sharable configs are not supported in client-side build of Browserslist")},getStat:function(e){return e.stats},loadConfig:function(e){if(e.config)throw new n("Browserslist config are not supported in client-side build")},loadCountry:function(){throw new n("Country statistics are not supported in client-side build of Browserslist")},loadFeature:function(){throw new n("Supports queries are not available in client-side build of Browserslist")},currentNode:function(e,u){return e(["maintained node versions"],u)[0]},parseConfig:d,readConfig:d,findConfig:d,clearCaches:d,oldDataWarning:d,env:{}}},9667:function(e){function u(e){this.name="BrowserslistError",this.message=e,this.browserslist=!0,Error.captureStackTrace&&Error.captureStackTrace(this,u)}u.prototype=Error.prototype,e.exports=u},31e3:function(e,u,r){var n=r(76052),d=r(95459).agents,t=r(78864),a=r(72950),s=r(76250),i=r(9667),f=r(65723),o=r(84660),c="37";function l(e,u){return 0===(e+".").indexOf(u+".")}function v(e){return e.filter((function(e){return"string"==typeof e}))}function b(e){var u=e;return 3===e.split(".").length&&(u=e.split(".").slice(0,-1).join(".")),u}function p(e){return function(u){return e+" "+u}}function h(e){return parseInt(e.split(".")[0])}function m(e,u){if(0===e.length)return[];var r=y(e.map(h)),n=r[r.length-u];if(!n)return e;for(var d=[],t=e.length-1;t>=0&&!(n>h(e[t]));t--)d.unshift(e[t]);return d}function y(e){for(var u=[],r=0;r<e.length;r++)-1===u.indexOf(e[r])&&u.push(e[r]);return u}function g(e,u,r){for(var n in r)e[u+" "+n]=r[n]}function C(e,u){return u=parseFloat(u),">"===e?function(e){return parseFloat(e)>u}:">="===e?function(e){return parseFloat(e)>=u}:"<"===e?function(e){return parseFloat(e)<u}:function(e){return parseFloat(e)<=u}}function B(e){return parseInt(e)}function _(e,u){return e<u?-1:e>u?1:0}function x(e,u){return _(parseInt(e[0]),parseInt(u[0]))||_(parseInt(e[1]||"0"),parseInt(u[1]||"0"))||_(parseInt(e[2]||"0"),parseInt(u[2]||"0"))}function A(e,u){return void 0===(u=u.split(".").map(B))[1]&&(u[1]="x"),"<="===e?function(e){return S(e=e.split(".").map(B),u)<=0}:function(e){return S(e=e.split(".").map(B),u)>=0}}function S(e,u){return e[0]!==u[0]?e[0]<u[0]?-1:1:"x"===u[1]?0:e[1]!==u[1]?e[1]<u[1]?-1:1:0}function w(e,u){var r=function(e,u){return-1!==e.versions.indexOf(u)?u:!!M.versionAliases[e.name][u]&&M.versionAliases[e.name][u]}(e,u);return r||1===e.versions.length&&e.versions[0]}function j(e,u){return e/=1e3,Object.keys(d).reduce((function(r,n){var d=E(n,u);if(!d)return r;var t=Object.keys(d.releaseDate).filter((function(u){var r=d.releaseDate[u];return null!==r&&r>=e}));return r.concat(t.map(p(d.name)))}),[])}function k(e){return{name:e.name,versions:e.versions,released:e.released,releaseDate:e.releaseDate}}function E(e,u){if(e=e.toLowerCase(),e=M.aliases[e]||e,u.mobileToDesktop&&M.desktopNames[e]){var r=M.data[M.desktopNames[e]];if("android"===e)return d=k(M.data[e]),t=r,d.released=P(d.released,t.released),d.versions=P(d.versions,t.versions),d.released.forEach((function(e){void 0===d.releaseDate[e]&&(d.releaseDate[e]=t.releaseDate[e])})),d;var n=k(r);return n.name=e,n}var d,t;return M.data[e]}function P(e,u){var r=u.indexOf(c);return e.filter((function(e){return/^(?:[2-4]\.|[34]$)/.test(e)})).concat(u.slice(r))}function O(e,u){var r=E(e,u);if(!r)throw new i("Unknown browser "+e);return r}function T(e,u,r,n){var d=1;switch(u){case"android":if(n.mobileToDesktop)return e;var t=M.data.chrome.released;d=t.length-t.indexOf(c);break;case"op_mob":d=h(M.data.op_mob.released.slice(-1)[0])-14+1;break;default:return e}return r<=d?e.slice(-1):e.slice(d-1-r)}function R(e){return"string"==typeof e&&(e.indexOf("y")>=0||e.indexOf("a")>=0)}function N(e,u){return f(V,e).reduce((function(e,r,n){if(r.not&&0===n)throw new i("Write any browsers query (for instance, `defaults`) before `"+r.query+"`");var d=V[r.type].select.call(M,u,r).map((function(e){var r=e.split(" ");return"0"===r[1]?r[0]+" "+E(r[0],u).versions[0]:e}));if("and"===r.compose)return r.not?e.filter((function(e){return-1===d.indexOf(e)})):e.filter((function(e){return-1!==d.indexOf(e)}));if(r.not){var t={};return d.forEach((function(e){t[e]=!0})),e.filter((function(e){return!t[e]}))}return e.concat(d)}),[])}function D(e){return void 0===e&&(e={}),void 0===e.path&&(e.path=a.resolve?a.resolve("."):"."),e}function L(e,u){null==e&&(e=M.loadConfig(u)||M.defaults);return e}function F(e){if("string"!=typeof e&&!Array.isArray(e))throw new i("Browser queries must be an array or string. Got "+typeof e+".")}var I={};function M(e,u){F(e=L(e,u=D(u)));var r={ignoreUnknownVersions:u.ignoreUnknownVersions,dangerousExtend:u.dangerousExtend,mobileToDesktop:u.mobileToDesktop,path:u.path,env:u.env};o.oldDataWarning(M.data);var n=o.getStat(u,M.data);if(n)for(var d in r.customUsage={},n)g(r.customUsage,d,n[d]);var t=JSON.stringify([e,r]);if(I[t])return I[t];var a=y(N(e,r)).sort((function(e,u){if(e=e.split(" "),u=u.split(" "),e[0]===u[0]){var r=e[1].split("-")[0];return x(u[1].split("-")[0].split("."),r.split("."))}return _(e[0],u[0])}));return o.env.BROWSERSLIST_DISABLE_CACHE||(I[t]=a),a}function U(e,u){var r=M.nodeVersions.filter((function(e){return l(e,u.version)}));if(0===r.length){if(e.ignoreUnknownVersions)return[];throw new i("Unknown version "+u.version+" of Node.js")}return["node "+r[r.length-1]]}function G(e,u){var r=parseInt(u.year),n=parseInt(u.month||"01")-1,d=parseInt(u.day||"01");return j(Date.UTC(r,n,d,0,0,0),e)}function H(e,u){var r=parseFloat(u.coverage),n=M.usage.global;if(u.place)if(u.place.match(/^my\s+stats$/i)){if(!e.customUsage)throw new i("Custom usage statistics was not provided");n=e.customUsage}else{var d;d=2===u.place.length?u.place.toUpperCase():u.place.toLowerCase(),o.loadCountry(M.usage,d,M.data),n=M.usage[d]}for(var t,a=Object.keys(n).sort((function(e,u){return n[u]-n[e]})),s=0,f=[],c=0;c<a.length&&(t=a[c],0!==n[t])&&(s+=n[t],f.push(t),!(s>=r));c++);return f}M.parse=function(e,u){return F(e=L(e,u=D(u))),f(V,e)},M.cache={},M.data={},M.usage={global:{},custom:null},M.defaults=["> 0.5%","last 2 versions","Firefox ESR","not dead"],M.aliases={fx:"firefox",ff:"firefox",ios:"ios_saf",explorer:"ie",blackberry:"bb",explorermobile:"ie_mob",operamini:"op_mini",operamobile:"op_mob",chromeandroid:"and_chr",firefoxandroid:"and_ff",ucandroid:"and_uc",qqandroid:"and_qq"},M.desktopNames={and_chr:"chrome",and_ff:"firefox",ie_mob:"ie",android:"chrome"},M.versionAliases={},M.clearCaches=o.clearCaches,M.parseConfig=o.parseConfig,M.readConfig=o.readConfig,M.findConfig=o.findConfig,M.loadConfig=o.loadConfig,M.coverage=function(e,u){var r;if(void 0===u)r=M.usage.global;else if("my stats"===u){var n={};n.path=a.resolve?a.resolve("."):".";var d=o.getStat(n);if(!d)throw new i("Custom usage statistics was not provided");for(var t in r={},d)g(r,t,d[t])}else if("string"==typeof u)u=u.length>2?u.toLowerCase():u.toUpperCase(),o.loadCountry(M.usage,u,M.data),r=M.usage[u];else for(var s in"dataByBrowser"in u&&(u=u.dataByBrowser),r={},u)for(var f in u[s])r[s+" "+f]=u[s][f];return e.reduce((function(e,u){var n=r[u];return void 0===n&&(n=r[u.replace(/ \S+$/," 0")]),e+(n||0)}),0)};var V={last_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+major\s+versions?$/i,select:function(e,u){return Object.keys(d).reduce((function(r,n){var d=E(n,e);if(!d)return r;var t=m(d.released,u.versions);return t=T(t=t.map(p(d.name)),d.name,u.versions,e),r.concat(t)}),[])}},last_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+versions?$/i,select:function(e,u){return Object.keys(d).reduce((function(r,n){var d=E(n,e);if(!d)return r;var t=d.released.slice(-u.versions);return t=T(t=t.map(p(d.name)),d.name,u.versions,e),r.concat(t)}),[])}},last_electron_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+electron\s+major\s+versions?$/i,select:function(e,u){return m(Object.keys(s),u.versions).map((function(e){return"chrome "+s[e]}))}},last_node_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+node\s+major\s+versions?$/i,select:function(e,u){return m(M.nodeVersions,u.versions).map((function(e){return"node "+e}))}},last_browser_major_versions:{matches:["versions","browser"],regexp:/^last\s+(\d+)\s+(\w+)\s+major\s+versions?$/i,select:function(e,u){var r=O(u.browser,e),n=m(r.released,u.versions).map(p(r.name));return T(n,r.name,u.versions,e)}},last_electron_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+electron\s+versions?$/i,select:function(e,u){return Object.keys(s).slice(-u.versions).map((function(e){return"chrome "+s[e]}))}},last_node_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+node\s+versions?$/i,select:function(e,u){return M.nodeVersions.slice(-u.versions).map((function(e){return"node "+e}))}},last_browser_versions:{matches:["versions","browser"],regexp:/^last\s+(\d+)\s+(\w+)\s+versions?$/i,select:function(e,u){var r=O(u.browser,e),n=r.released.slice(-u.versions).map(p(r.name));return T(n,r.name,u.versions,e)}},unreleased_versions:{matches:[],regexp:/^unreleased\s+versions$/i,select:function(e){return Object.keys(d).reduce((function(u,r){var n=E(r,e);if(!n)return u;var d=n.versions.filter((function(e){return-1===n.released.indexOf(e)}));return d=d.map(p(n.name)),u.concat(d)}),[])}},unreleased_electron_versions:{matches:[],regexp:/^unreleased\s+electron\s+versions?$/i,select:function(){return[]}},unreleased_browser_versions:{matches:["browser"],regexp:/^unreleased\s+(\w+)\s+versions?$/i,select:function(e,u){var r=O(u.browser,e);return r.versions.filter((function(e){return-1===r.released.indexOf(e)})).map(p(r.name))}},last_years:{matches:["years"],regexp:/^last\s+(\d*.?\d+)\s+years?$/i,select:function(e,u){return j(Date.now()-31558432982.4*u.years,e)}},since_y:{matches:["year"],regexp:/^since (\d+)$/i,select:G},since_y_m:{matches:["year","month"],regexp:/^since (\d+)-(\d+)$/i,select:G},since_y_m_d:{matches:["year","month","day"],regexp:/^since (\d+)-(\d+)-(\d+)$/i,select:G},popularity:{matches:["sign","popularity"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%$/,select:function(e,u){var r=parseFloat(u.popularity),n=M.usage.global;return Object.keys(n).reduce((function(e,d){return">"===u.sign?n[d]>r&&e.push(d):"<"===u.sign?n[d]<r&&e.push(d):"<="===u.sign?n[d]<=r&&e.push(d):n[d]>=r&&e.push(d),e}),[])}},popularity_in_my_stats:{matches:["sign","popularity"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+my\s+stats$/,select:function(e,u){var r=parseFloat(u.popularity);if(!e.customUsage)throw new i("Custom usage statistics was not provided");var n=e.customUsage;return Object.keys(n).reduce((function(e,d){var t=n[d];return null==t||(">"===u.sign?t>r&&e.push(d):"<"===u.sign?t<r&&e.push(d):"<="===u.sign?t<=r&&e.push(d):t>=r&&e.push(d)),e}),[])}},popularity_in_config_stats:{matches:["sign","popularity","config"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/,select:function(e,u){var r=parseFloat(u.popularity),n=o.loadStat(e,u.config,M.data);if(n)for(var d in e.customUsage={},n)g(e.customUsage,d,n[d]);if(!e.customUsage)throw new i("Custom usage statistics was not provided");var t=e.customUsage;return Object.keys(t).reduce((function(e,n){var d=t[n];return null==d||(">"===u.sign?d>r&&e.push(n):"<"===u.sign?d<r&&e.push(n):"<="===u.sign?d<=r&&e.push(n):d>=r&&e.push(n)),e}),[])}},popularity_in_place:{matches:["sign","popularity","place"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+((alt-)?\w\w)$/,select:function(e,u){var r=parseFloat(u.popularity),n=u.place;n=2===n.length?n.toUpperCase():n.toLowerCase(),o.loadCountry(M.usage,n,M.data);var d=M.usage[n];return Object.keys(d).reduce((function(e,n){var t=d[n];return null==t||(">"===u.sign?t>r&&e.push(n):"<"===u.sign?t<r&&e.push(n):"<="===u.sign?t<=r&&e.push(n):t>=r&&e.push(n)),e}),[])}},cover:{matches:["coverage"],regexp:/^cover\s+(\d+|\d+\.\d+|\.\d+)%$/i,select:H},cover_in:{matches:["coverage","place"],regexp:/^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(my\s+stats|(alt-)?\w\w)$/i,select:H},supports:{matches:["feature"],regexp:/^supports\s+([\w-]+)$/,select:function(e,u){o.loadFeature(M.cache,u.feature);var r=M.cache[u.feature],n=[];for(var d in r){var t=E(d,e),a=e.mobileToDesktop&&d in M.desktopNames&&R(r[d][t.released.slice(-1)[0]]);t.versions.forEach((function(e){var u=r[d][e];void 0===u&&a&&(u=r[M.desktopNames[d]][e]),R(u)&&n.push(d+" "+e)}))}return n}},electron_range:{matches:["from","to"],regexp:/^electron\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,u){var r=b(u.from),n=b(u.to),d=parseFloat(u.from),t=parseFloat(u.to);if(!s[r])throw new i("Unknown version "+d+" of electron");if(!s[n])throw new i("Unknown version "+t+" of electron");return Object.keys(s).filter((function(e){var u=parseFloat(e);return u>=d&&u<=t})).map((function(e){return"chrome "+s[e]}))}},node_range:{matches:["from","to"],regexp:/^node\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,u){return M.nodeVersions.filter(A(">=",u.from)).filter(A("<=",u.to)).map((function(e){return"node "+e}))}},browser_range:{matches:["browser","from","to"],regexp:/^(\w+)\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,u){var r=O(u.browser,e),n=parseFloat(w(r,u.from)||u.from),d=parseFloat(w(r,u.to)||u.to);return r.released.filter((function(e){var u=parseFloat(e);return u>=n&&u<=d})).map(p(r.name))}},electron_ray:{matches:["sign","version"],regexp:/^electron\s*(>=?|<=?)\s*([\d.]+)$/i,select:function(e,u){var r=b(u.version);return Object.keys(s).filter(C(u.sign,r)).map((function(e){return"chrome "+s[e]}))}},node_ray:{matches:["sign","version"],regexp:/^node\s*(>=?|<=?)\s*([\d.]+)$/i,select:function(e,u){return M.nodeVersions.filter((r=u.sign,n=u.version,(n=n.split(".").map(B))[1]=n[1]||0,n[2]=n[2]||0,">"===r?function(e){return x(e=e.split(".").map(B),n)>0}:">="===r?function(e){return x(e=e.split(".").map(B),n)>=0}:"<"===r?function(e){return e=e.split(".").map(B),x(n,e)>0}:function(e){return e=e.split(".").map(B),x(n,e)>=0})).map((function(e){return"node "+e}));var r,n}},browser_ray:{matches:["browser","sign","version"],regexp:/^(\w+)\s*(>=?|<=?)\s*([\d.]+)$/,select:function(e,u){var r=u.version,n=O(u.browser,e),d=M.versionAliases[n.name][r];return d&&(r=d),n.released.filter(C(u.sign,r)).map((function(e){return n.name+" "+e}))}},firefox_esr:{matches:[],regexp:/^(firefox|ff|fx)\s+esr$/i,select:function(){return["firefox 102","firefox 115"]}},opera_mini_all:{matches:[],regexp:/(operamini|op_mini)\s+all/i,select:function(){return["op_mini all"]}},electron_version:{matches:["version"],regexp:/^electron\s+([\d.]+)$/i,select:function(e,u){var r=b(u.version),n=s[r];if(!n)throw new i("Unknown version "+u.version+" of electron");return["chrome "+n]}},node_major_version:{matches:["version"],regexp:/^node\s+(\d+)$/i,select:U},node_minor_version:{matches:["version"],regexp:/^node\s+(\d+\.\d+)$/i,select:U},node_patch_version:{matches:["version"],regexp:/^node\s+(\d+\.\d+\.\d+)$/i,select:U},current_node:{matches:[],regexp:/^current\s+node$/i,select:function(e){return[o.currentNode(N,e)]}},maintained_node:{matches:[],regexp:/^maintained\s+node\s+versions$/i,select:function(e){var u=Date.now();return N(Object.keys(t).filter((function(e){return u<Date.parse(t[e].end)&&u>Date.parse(t[e].start)&&(r=e.slice(1),M.nodeVersions.some((function(e){return l(e,r)})));var r})).map((function(e){return"node "+e.slice(1)})),e)}},phantomjs_1_9:{matches:[],regexp:/^phantomjs\s+1.9$/i,select:function(){return["safari 5"]}},phantomjs_2_1:{matches:[],regexp:/^phantomjs\s+2.1$/i,select:function(){return["safari 6"]}},browser_version:{matches:["browser","version"],regexp:/^(\w+)\s+(tp|[\d.]+)$/i,select:function(e,u){var r=u.version;/^tp$/i.test(r)&&(r="TP");var n=O(u.browser,e),d=w(n,r);if(d)r=d;else{if(!(d=w(n,d=-1===r.indexOf(".")?r+".0":r.replace(/\.0$/,"")))){if(e.ignoreUnknownVersions)return[];throw new i("Unknown version "+r+" of "+u.browser)}r=d}return[n.name+" "+r]}},browserslist_config:{matches:[],regexp:/^browserslist config$/i,select:function(e){return M(void 0,e)}},extends:{matches:["config"],regexp:/^extends (.+)$/i,select:function(e,u){return N(o.loadQueries(e,u.config),e)}},defaults:{matches:[],regexp:/^defaults$/i,select:function(e){return N(M.defaults,e)}},dead:{matches:[],regexp:/^dead$/i,select:function(e){return N(["Baidu >= 0","ie <= 11","ie_mob <= 11","bb <= 10","op_mob <= 12.1","samsung 4"],e)}},unknown:{matches:[],regexp:/^(\w+)$/i,select:function(e,u){throw E(u.query,e)?new i("Specify versions in Browserslist query for browser "+u.query):(r=u.query,new i("Unknown browser query `"+r+"`. Maybe you are using old Browserslist or made typo in query."));var r}}};!function(){for(var e in d){var u=d[e];M.data[e]={name:e,versions:v(d[e].versions),released:v(d[e].versions.slice(0,-3)),releaseDate:d[e].release_date},g(M.usage.global,e,u.usage_global),M.versionAliases[e]={};for(var r=0;r<u.versions.length;r++){var t=u.versions[r];if(t&&-1!==t.indexOf("-"))for(var a=t.split("-"),s=0;s<a.length;s++)M.versionAliases[e][a[s]]=t}}M.nodeVersions=n.map((function(e){return e.version}))}(),e.exports=M},65723:function(e){var u=/^\s+and\s+(.*)/i,r=/^(?:,\s*|\s+or\s+)(.*)/i;function n(e){return Array.isArray(e)?e.reduce((function(e,u){return e.concat(n(u))}),[]):[e]}function d(e,u){var r={query:u};for(var n in 0===u.indexOf("not ")&&(r.not=!0,u=u.slice(4)),e){var d=e[n],t=u.match(d.regexp);if(t){r.type=n;for(var a=0;a<d.matches.length;a++)r[d.matches[a]]=t[a+1];return r}}return r.type="unknown",r}function t(e,n,t){var a;return function(e,u){for(var r=1,n=e.length;r<=n;r++)if(u(e.substr(-r,r),r,n))return e.slice(0,-r);return""}(n,(function(n,s,i){return u.test(n)?((a=d(e,n.match(u)[1])).compose="and",t.unshift(a),!0):r.test(n)?((a=d(e,n.match(r)[1])).compose="or",t.unshift(a),!0):s===i&&((a=d(e,n.trim())).compose="or",t.unshift(a),!0)}))}e.exports=function(e,u){return Array.isArray(u)||(u=[u]),n(u.map((function(u){var r=[];do{u=t(e,u,r)}while(u);return r})))}},66954:function(e){e.exports={A:{A:{K:0,F:0,G:.0326854,H:.0435805,A:0,B:.392224,JC:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","JC","K","F","G","H","A","B","","",""],E:"IE",F:{JC:962323200,K:998870400,F:1161129600,G:1237420800,H:1300060800,A:1346716800,B:1381968e3}},B:{A:{0:3.56904,C:0,L:0,M:0,I:.004259,N:0,D:.004259,O:.012777,P:0,Q:.004259,R:.004259,S:.004259,T:.008518,U:.004259,V:.004259,W:.004259,X:0,Y:.004259,Z:.004259,a:0,b:.012777,c:0,d:0,e:0,f:0,g:0,h:0,i:.008518,j:0,n:.008518,o:.008518,p:.004259,q:0,r:0,s:.004259,t:.008518,u:.012777,v:.076662,w:.021295,x:.029813,y:.579224,z:.745325,E:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","C","L","M","I","N","D","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","n","o","p","q","r","s","t","u","v","w","x","y","z","0","E","","",""],E:"Edge",F:{0:1685664e3,C:1438128e3,L:1447286400,M:1470096e3,I:1491868800,N:1508198400,D:1525046400,O:1542067200,P:1579046400,Q:1581033600,R:1586736e3,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:161136e4,Y:1614816e3,Z:1618358400,a:1622073600,b:1626912e3,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,n:1651190400,o:1653955200,p:1655942400,q:1659657600,r:1661990400,s:1664755200,t:1666915200,u:1670198400,v:1673481600,w:1675900800,x:1678665600,y:1680825600,z:1683158400,E:1689897600},D:{C:"ms",L:"ms",M:"ms",I:"ms",N:"ms",D:"ms",O:"ms"}},C:{A:{0:1.2564,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,KC:0,zB:0,J:0,K:0,F:0,G:0,H:0,A:0,B:.008518,C:0,L:0,M:0,I:0,N:0,D:0,O:0,k:0,l:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:.012777,PB:.004259,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:.051108,YB:0,ZB:0,aB:0,bB:.004259,cB:0,dB:0,"0B":.004259,eB:0,"1B":0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:.004259,mB:0,nB:0,oB:0,pB:.008518,m:0,qB:0,rB:0,sB:0,tB:0,uB:.051108,P:0,Q:0,R:0,"2B":0,S:0,T:.017036,U:0,V:0,W:.008518,X:.004259,Y:0,Z:0,a:.012777,b:0,c:0,d:.004259,e:0,f:0,g:0,h:0,i:0,j:0,n:0,o:.110734,p:.012777,q:0,r:.008518,s:.004259,t:.008518,u:.012777,v:.012777,w:.012777,x:.025554,y:.055367,z:.660145,E:.012777,"3B":0,"4B":0,LC:0,MC:0},B:"moz",C:["KC","zB","LC","MC","J","1","K","F","G","H","A","B","C","L","M","I","N","D","O","2","k","l","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","0B","eB","1B","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","m","qB","rB","sB","tB","uB","P","Q","R","2B","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","n","o","p","q","r","s","t","u","v","w","x","y","z","0","E","3B","4B",""],E:"Firefox",F:{0:1686009600,1:1308614400,2:1357603200,3:1368489600,4:1372118400,5:1375747200,6:1379376e3,7:1386633600,8:1391472e3,9:1395100800,KC:1161648e3,zB:1213660800,LC:124632e4,MC:1264032e3,J:1300752e3,K:1313452800,F:1317081600,G:1317081600,H:1320710400,A:1324339200,B:1327968e3,C:1331596800,L:1335225600,M:1338854400,I:1342483200,N:1346112e3,D:1349740800,O:1353628800,k:1361232e3,l:1364860800,AB:1398729600,BB:1402358400,CB:1405987200,DB:1409616e3,EB:1413244800,FB:1417392e3,GB:1421107200,HB:1424736e3,IB:1428278400,JB:1431475200,KB:1435881600,LB:1439251200,MB:144288e4,NB:1446508800,OB:1450137600,PB:1453852800,QB:1457395200,RB:1461628800,SB:1465257600,TB:1470096e3,UB:1474329600,VB:1479168e3,WB:1485216e3,XB:1488844800,YB:149256e4,ZB:1497312e3,aB:1502150400,bB:1506556800,cB:1510617600,dB:1516665600,"0B":1520985600,eB:1525824e3,"1B":1529971200,fB:1536105600,gB:1540252800,hB:1544486400,iB:154872e4,jB:1552953600,kB:1558396800,lB:1562630400,mB:1567468800,nB:1571788800,oB:1575331200,pB:1578355200,m:1581379200,qB:1583798400,rB:1586304e3,sB:1588636800,tB:1591056e3,uB:1593475200,P:1595894400,Q:1598313600,R:1600732800,"2B":1603152e3,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392e3,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536e3,n:1653955200,o:1656374400,p:1658793600,q:1661212800,r:1663632e3,s:1666051200,t:1668470400,u:1670889600,v:1673913600,w:1676332800,x:1678752e3,y:1681171200,z:1683590400,E:1688428800,"3B":null,"4B":null}},D:{A:{0:14.553,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,J:0,K:0,F:0,G:0,H:0,A:0,B:0,C:0,L:0,M:0,I:0,N:0,D:0,O:0,k:0,l:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:.008518,GB:0,HB:0,IB:0,JB:.017036,KB:0,LB:.012777,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:.008518,TB:.017036,UB:.038331,VB:.008518,WB:0,XB:.004259,YB:.008518,ZB:0,aB:.004259,bB:.051108,cB:0,dB:0,"0B":0,eB:.017036,"1B":.012777,fB:0,gB:.004259,hB:0,iB:.012777,jB:.029813,kB:.008518,lB:.025554,mB:.051108,nB:.04259,oB:.017036,pB:.025554,m:.012777,qB:.059626,rB:.059626,sB:.093698,tB:.025554,uB:.038331,P:.200173,Q:.051108,R:.051108,S:.110734,T:.029813,U:.089439,V:.072403,W:.089439,X:.046849,Y:.038331,Z:.055367,a:.089439,b:.038331,c:.17036,d:.034072,e:.021295,f:.025554,g:.025554,h:.063885,i:.055367,j:.046849,n:.04259,o:.051108,p:.268317,q:.063885,r:.076662,s:.051108,t:.059626,u:.149065,v:1.96766,w:.123511,x:.455713,y:.630332,z:3.9268,E:.021295,"3B":.021295,"4B":0,NC:0},B:"webkit",C:["","","","","","J","1","K","F","G","H","A","B","C","L","M","I","N","D","O","2","k","l","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","0B","eB","1B","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","m","qB","rB","sB","tB","uB","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","n","o","p","q","r","s","t","u","v","w","x","y","z","0","E","3B","4B","NC"],E:"Chrome",F:{0:1685404800,1:1274745600,2:1332892800,3:1343692800,4:1348531200,5:1352246400,6:1357862400,7:1361404800,8:1364428800,9:1369094400,J:1264377600,K:1283385600,F:1287619200,G:1291248e3,H:1296777600,A:1299542400,B:1303862400,C:1307404800,L:1312243200,M:1316131200,I:1316131200,N:1319500800,D:1323734400,O:1328659200,k:133704e4,l:1340668800,AB:1374105600,BB:1376956800,CB:1384214400,DB:1389657600,EB:1392940800,FB:1397001600,GB:1400544e3,HB:1405468800,IB:1409011200,JB:141264e4,KB:1416268800,LB:1421798400,MB:1425513600,NB:1429401600,OB:143208e4,PB:1437523200,QB:1441152e3,RB:1444780800,SB:1449014400,TB:1453248e3,UB:1456963200,VB:1460592e3,WB:1464134400,XB:1469059200,YB:1472601600,ZB:1476230400,aB:1480550400,bB:1485302400,cB:1489017600,dB:149256e4,"0B":1496707200,eB:1500940800,"1B":1504569600,fB:1508198400,gB:1512518400,hB:1516752e3,iB:1520294400,jB:1523923200,kB:1527552e3,lB:1532390400,mB:1536019200,nB:1539648e3,oB:1543968e3,pB:154872e4,m:1552348800,qB:1555977600,rB:1559606400,sB:1564444800,tB:1568073600,uB:1571702400,P:1575936e3,Q:1580860800,R:1586304e3,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272e3,a:1621987200,b:1626739200,c:1630368e3,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512e3,n:1650931200,o:1653350400,p:1655769600,q:1659398400,r:1661817600,s:1664236800,t:1666656e3,u:166968e4,v:1673308800,w:1675728e3,x:1678147200,y:1680566400,z:1682985600,E:1689724800,"3B":null,"4B":null,NC:null}},E:{A:{1:0,J:0,K:0,F:0,G:0,H:0,A:0,B:0,C:0,L:.025554,M:.12777,I:.029813,D:.008518,OC:0,"5B":0,PC:.008518,QC:0,RC:0,SC:.102216,"6B":0,vB:.008518,wB:.038331,"7B":.166101,TC:.332202,UC:.055367,"8B":.046849,"9B":.106475,xB:.191655,AC:.779397,yB:.080921,BC:.25554,CC:.289612,DC:.706994,EC:.498303,FC:2.00599,GC:.021295,VC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","OC","5B","J","1","PC","K","QC","F","RC","G","H","SC","A","6B","B","vB","C","wB","L","7B","M","TC","I","UC","8B","9B","xB","AC","yB","BC","CC","DC","EC","FC","GC","D","VC"],E:"Safari",F:{1:1275868800,OC:1205798400,"5B":1226534400,J:1244419200,PC:131112e4,K:1343174400,QC:13824e5,F:13824e5,RC:1410998400,G:1413417600,H:1443657600,SC:1458518400,A:1474329600,"6B":1490572800,B:1505779200,vB:1522281600,C:1537142400,wB:1553472e3,L:1568851200,"7B":1585008e3,M:1600214400,TC:1619395200,I:1632096e3,UC:1635292800,"8B":1639353600,"9B":1647216e3,xB:1652745600,AC:1658275200,yB:1662940800,BC:1666569600,CC:1670889600,DC:1674432e3,EC:1679875200,FC:1684368e3,GC:null,D:null,VC:null}},F:{A:{2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:.008518,H:0,B:.038331,C:0,I:0,N:0,D:0,O:0,k:0,l:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:.004259,MB:0,NB:0,OB:0,PB:0,QB:0,RB:.017036,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,m:0,qB:0,rB:0,sB:0,tB:0,uB:0,P:0,Q:0,R:0,"2B":0,S:0,T:0,U:.004259,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0,c:0,d:0,e:.059626,f:.012777,g:.021295,h:.664404,i:1.29048,j:.012777,WC:0,XC:0,YC:0,ZC:0,vB:0,HC:0,aC:0,wB:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","H","WC","XC","YC","ZC","B","vB","HC","aC","C","wB","I","N","D","O","2","k","l","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","m","qB","rB","sB","tB","uB","P","Q","R","2B","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","","",""],E:"Opera",F:{2:1390867200,3:1401753600,4:1405987200,5:1409616e3,6:1413331200,7:1417132800,8:1422316800,9:1425945600,H:1150761600,WC:1223424e3,XC:1251763200,YC:1267488e3,ZC:1277942400,B:1292457600,vB:1302566400,HC:1309219200,aC:1323129600,C:1323129600,wB:1352073600,I:1372723200,N:1377561600,D:1381104e3,O:1386288e3,k:1393891200,l:1399334400,AB:1430179200,BB:1433808e3,CB:1438646400,DB:1442448e3,EB:1445904e3,FB:1449100800,GB:1454371200,HB:1457308800,IB:146232e4,JB:1465344e3,KB:1470096e3,LB:1474329600,MB:1477267200,NB:1481587200,OB:1486425600,PB:1490054400,QB:1494374400,RB:1498003200,SB:1502236800,TB:1506470400,UB:1510099200,VB:1515024e3,WB:1517961600,XB:1521676800,YB:1525910400,ZB:1530144e3,aB:1534982400,bB:1537833600,cB:1543363200,dB:1548201600,eB:1554768e3,fB:1561593600,gB:1566259200,hB:1570406400,iB:1573689600,jB:1578441600,kB:1583971200,lB:1587513600,mB:1592956800,nB:1595894400,oB:1600128e3,pB:1603238400,m:161352e4,qB:1612224e3,rB:1616544e3,sB:1619568e3,tB:1623715200,uB:1627948800,P:1631577600,Q:1633392e3,R:1635984e3,"2B":1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152e3,Z:1660780800,a:1663113600,b:1668816e3,c:1668643200,d:1671062400,e:1675209600,f:1677024e3,g:1679529600,h:1681948800,i:1684195200,j:1687219200},D:{H:"o",B:"o",C:"o",WC:"o",XC:"o",YC:"o",ZC:"o",vB:"o",HC:"o",aC:"o",wB:"o"}},G:{A:{G:0,D:.0227641,"5B":0,bC:0,IC:.00303522,cC:.00303522,dC:.00455283,eC:.0121409,fC:.00455283,gC:.00910566,hC:.0440107,iC:.00455283,jC:.062222,kC:.0303522,lC:.0197289,mC:.0166937,nC:.321733,oC:.00910566,pC:.00910566,qC:.0227641,rC:.0773981,sC:.20336,tC:.374849,uC:.119891,"8B":.141138,"9B":.160867,xB:.239782,AC:.582762,yB:.648019,BC:1.23837,CC:.661678,DC:1.56617,EC:1.0259,FC:6.55152,GC:.0637396},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","5B","bC","IC","cC","dC","eC","G","fC","gC","hC","iC","jC","kC","lC","mC","nC","oC","pC","qC","rC","sC","tC","uC","8B","9B","xB","AC","yB","BC","CC","DC","EC","FC","GC","D",""],E:"Safari on iOS",F:{"5B":1270252800,bC:1283904e3,IC:1299628800,cC:1331078400,dC:1359331200,eC:1394409600,G:1410912e3,fC:1413763200,gC:1442361600,hC:1458518400,iC:1473724800,jC:1490572800,kC:1505779200,lC:1522281600,mC:1537142400,nC:1553472e3,oC:1568851200,pC:1572220800,qC:1580169600,rC:1585008e3,sC:1600214400,tC:1619395200,uC:1632096e3,"8B":1639353600,"9B":1647216e3,xB:1652659200,AC:1658275200,yB:1662940800,BC:1666569600,CC:1670889600,DC:1674432e3,EC:1679875200,FC:1684368e3,GC:null,D:null}},H:{A:{vC:.956597},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","vC","","",""],E:"Opera Mini",F:{vC:1426464e3}},I:{A:{zB:0,J:.0252848,E:0,wC:0,xC:.00842828,yC:0,zC:.0168566,IC:.092711,"0C":0,"1C":.252848},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","wC","xC","yC","zB","J","zC","IC","0C","1C","E","","",""],E:"Android Browser",F:{wC:1256515200,xC:1274313600,yC:1291593600,zB:1298332800,J:1318896e3,zC:1341792e3,IC:1374624e3,"0C":1386547200,"1C":1401667200,E:1690243200}},J:{A:{F:0,A:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","F","A","","",""],E:"Blackberry Browser",F:{F:1325376e3,A:1359504e3}},K:{A:{A:0,B:0,C:0,m:0,vB:0,HC:0,wB:0},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","vB","HC","C","wB","m","","",""],E:"Opera Mobile",F:{A:1287100800,B:1300752e3,vB:1314835200,HC:1318291200,C:1330300800,wB:1349740800,m:1673827200},D:{m:"webkit"}},L:{A:{E:38.2012},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","E","","",""],E:"Chrome for Android",F:{E:1690243200}},M:{A:{E:.281309},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","E","","",""],E:"Firefox for Android",F:{E:1688428800}},N:{A:{A:0,B:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","","",""],E:"IE Mobile",F:{A:1340150400,B:1353456e3}},O:{A:{xB:1.04486},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","xB","","",""],E:"UC Browser for Android",F:{xB:1687132800},D:{xB:"webkit"}},P:{A:{J:.156242,k:.229156,l:1.74991,"2C":0,"3C":0,"4C":.0520808,"5C":0,"6C":0,"6B":0,"7C":.0208323,"8C":0,"9C":.0208323,AD:.0208323,BD:.0104162,yB:.0416646,CD:.0416646,DD:.0416646,ED:.0833293},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","J","2C","3C","4C","5C","6C","6B","7C","8C","9C","AD","BD","yB","CD","DD","ED","k","l","","",""],E:"Samsung Internet",F:{J:1461024e3,"2C":1481846400,"3C":1509408e3,"4C":1528329600,"5C":1546128e3,"6C":1554163200,"6B":1567900800,"7C":1582588800,"8C":1593475200,"9C":1605657600,AD:1618531200,BD:1629072e3,yB:1640736e3,CD:1651708800,DD:1659657600,ED:1667260800,k:1677369600,l:1684454400}},Q:{A:{"7B":.155007},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","7B","","",""],E:"QQ Browser",F:{"7B":1663718400}},R:{A:{FD:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","FD","","",""],E:"Baidu Browser",F:{FD:1663027200}},S:{A:{GD:.103338,HD:0},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","GD","HD","","",""],E:"KaiOS Browser",F:{GD:1527811200,HD:1631664e3}}}},6974:function(e){e.exports={0:"114",1:"5",2:"19",3:"22",4:"23",5:"24",6:"25",7:"26",8:"27",9:"28",A:"10",B:"11",C:"12",D:"17",E:"115",F:"7",G:"8",H:"9",I:"15",J:"4",K:"6",L:"13",M:"14",N:"16",O:"18",P:"79",Q:"80",R:"81",S:"83",T:"84",U:"85",V:"86",W:"87",X:"88",Y:"89",Z:"90",a:"91",b:"92",c:"93",d:"94",e:"95",f:"96",g:"97",h:"98",i:"99",j:"100",k:"20",l:"21",m:"73",n:"101",o:"102",p:"103",q:"104",r:"105",s:"106",t:"107",u:"108",v:"109",w:"110",x:"111",y:"112",z:"113",AB:"29",BB:"30",CB:"31",DB:"32",EB:"33",FB:"34",GB:"35",HB:"36",IB:"37",JB:"38",KB:"39",LB:"40",MB:"41",NB:"42",OB:"43",PB:"44",QB:"45",RB:"46",SB:"47",TB:"48",UB:"49",VB:"50",WB:"51",XB:"52",YB:"53",ZB:"54",aB:"55",bB:"56",cB:"57",dB:"58",eB:"60",fB:"62",gB:"63",hB:"64",iB:"65",jB:"66",kB:"67",lB:"68",mB:"69",nB:"70",oB:"71",pB:"72",qB:"74",rB:"75",sB:"76",tB:"77",uB:"78",vB:"11.1",wB:"12.1",xB:"15.5",yB:"16.0",zB:"3","0B":"59","1B":"61","2B":"82","3B":"116","4B":"117","5B":"3.2","6B":"10.1","7B":"13.1","8B":"15.2-15.3","9B":"15.4",AC:"15.6",BC:"16.1",CC:"16.2",DC:"16.3",EC:"16.4",FC:"16.5",GC:"16.6",HC:"11.5",IC:"4.2-4.3",JC:"5.5",KC:"2",LC:"3.5",MC:"3.6",NC:"118",OC:"3.1",PC:"5.1",QC:"6.1",RC:"7.1",SC:"9.1",TC:"14.1",UC:"15.1",VC:"TP",WC:"9.5-9.6",XC:"10.0-10.1",YC:"10.5",ZC:"10.6",aC:"11.6",bC:"4.0-4.1",cC:"5.0-5.1",dC:"6.0-6.1",eC:"7.0-7.1",fC:"8.1-8.4",gC:"9.0-9.2",hC:"9.3",iC:"10.0-10.2",jC:"10.3",kC:"11.0-11.2",lC:"11.3-11.4",mC:"12.0-12.1",nC:"12.2-12.5",oC:"13.0-13.1",pC:"13.2",qC:"13.3",rC:"13.4-13.7",sC:"14.0-14.4",tC:"14.5-14.8",uC:"15.0-15.1",vC:"all",wC:"2.1",xC:"2.2",yC:"2.3",zC:"4.1","0C":"4.4","1C":"4.4.3-4.4.4","2C":"5.0-5.4","3C":"6.2-6.4","4C":"7.2-7.4","5C":"8.2","6C":"9.2","7C":"11.1-11.2","8C":"12.0","9C":"13.0",AD:"14.0",BD:"15.0",CD:"17.0",DD:"18.0",ED:"19.0",FD:"13.18",GD:"2.5",HD:"3.0-3.1"}},12757:function(e){e.exports={A:"ie",B:"edge",C:"firefox",D:"chrome",E:"safari",F:"opera",G:"ios_saf",H:"op_mini",I:"android",J:"bb",K:"op_mob",L:"and_chr",M:"and_ff",N:"ie_mob",O:"and_uc",P:"samsung",Q:"and_qq",R:"baidu",S:"kaios"}},95459:function(e,u,r){"use strict";const n=r(8833).browsers,d=r(28788).browserVersions,t=r(66954);function a(e){return Object.keys(e).reduce(((u,r)=>(u[d[r]]=e[r],u)),{})}e.exports.agents=Object.keys(t).reduce(((e,u)=>{let r=t[u];return e[n[u]]=Object.keys(r).reduce(((e,u)=>("A"===u?e.usage_global=a(r[u]):"C"===u?e.versions=r[u].reduce(((e,u)=>(""===u?e.push(null):e.push(d[u]),e)),[]):"D"===u?e.prefix_exceptions=a(r[u]):"E"===u?e.browser=r[u]:"F"===u?e.release_date=Object.keys(r[u]).reduce(((e,n)=>(e[d[n]]=r[u][n],e)),{}):e.prefix=r[u],e)),{}),e}),{})},28788:function(e,u,r){e.exports.browserVersions=r(6974)},8833:function(e,u,r){e.exports.browsers=r(12757)},76250:function(e){e.exports={"0.20":"39",.21:"41",.22:"41",.23:"41",.24:"41",.25:"42",.26:"42",.27:"43",.28:"43",.29:"43","0.30":"44",.31:"45",.32:"45",.33:"45",.34:"45",.35:"45",.36:"47",.37:"49","1.0":"49",1.1:"50",1.2:"51",1.3:"52",1.4:"53",1.5:"54",1.6:"56",1.7:"58",1.8:"59","2.0":"61",2.1:"61","3.0":"66",3.1:"66","4.0":"69",4.1:"69",4.2:"69","5.0":"73","6.0":"76",6.1:"76","7.0":"78",7.1:"78",7.2:"78",7.3:"78","8.0":"80",8.1:"80",8.2:"80",8.3:"80",8.4:"80",8.5:"80","9.0":"83",9.1:"83",9.2:"83",9.3:"83",9.4:"83","10.0":"85",10.1:"85",10.2:"85",10.3:"85",10.4:"85","11.0":"87",11.1:"87",11.2:"87",11.3:"87",11.4:"87",11.5:"87","12.0":"89",12.1:"89",12.2:"89","13.0":"91",13.1:"91",13.2:"91",13.3:"91",13.4:"91",13.5:"91",13.6:"91","14.0":"93",14.1:"93",14.2:"93","15.0":"94",15.1:"94",15.2:"94",15.3:"94",15.4:"94",15.5:"94","16.0":"96",16.1:"96",16.2:"96","17.0":"98",17.1:"98",17.2:"98",17.3:"98",17.4:"98","18.0":"100",18.1:"100",18.2:"100",18.3:"100","19.0":"102",19.1:"102","20.0":"104",20.1:"104",20.2:"104",20.3:"104","21.0":"106",21.1:"106",21.2:"106",21.3:"106",21.4:"106","22.0":"108",22.1:"108",22.2:"108",22.3:"108","23.0":"110",23.1:"110",23.2:"110",23.3:"110","24.0":"112",24.1:"112",24.2:"112",24.3:"112",24.4:"112",24.5:"112",24.6:"112","25.0":"114",25.1:"114",25.2:"114",25.3:"114","26.0":"116"}},78355:function(e,u,r){"use strict";var n=r(1264),d=r(60045);e.exports={transform:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=u.length>0?u:Object.keys(n),t=void 0,a={};return r.forEach((function(u){if(!n.hasOwnProperty(u))throw new Error("Unknown compat-transform: "+u+". Available transforms are: "+Object.keys(n).join(", "));var r=n[u];t=d.transform(e,r),e=t.getAST(),"function"==typeof r.getExtra&&(a[u]=r.getExtra())})),t.setExtra(a),t}}},77460:function(e){"use strict";var u=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),r=function(){function e(u,r){var n=r.flags,d=r.groups,t=r.source;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._re=u,this._groups=d,this.flags=n,this.source=t||u.source,this.dotAll=n.includes("s"),this.global=u.global,this.ignoreCase=u.ignoreCase,this.multiline=u.multiline,this.sticky=u.sticky,this.unicode=u.unicode}return u(e,[{key:"test",value:function(e){return this._re.test(e)}},{key:"compile",value:function(e){return this._re.compile(e)}},{key:"toString",value:function(){return this._toStringResult||(this._toStringResult="/"+this.source+"/"+this.flags),this._toStringResult}},{key:"exec",value:function(e){var u=this._re.exec(e);if(!this._groups||!u)return u;for(var r in u.groups={},this._groups){var n=this._groups[r];u.groups[r]=u[n]}return u}}]),e}();e.exports={RegExpTree:r}},98708:function(e){"use strict";e.exports={_hasUFlag:!1,shouldRun:function(e){return!!e.flags.includes("s")&&(e.flags=e.flags.replace("s",""),this._hasUFlag=e.flags.includes("u"),!0)},Char:function(e){var u=e.node;if("meta"===u.kind&&"."===u.value){var r="\\uFFFF",n="￿";this._hasUFlag&&(r="\\u{10FFFF}",n="􏿿"),e.replace({type:"CharacterClass",expressions:[{type:"ClassRange",from:{type:"Char",value:"\\0",kind:"decimal",symbol:"\0"},to:{type:"Char",value:r,kind:"unicode",symbol:n}}]})}}}},305:function(e){"use strict";e.exports={_groupNames:{},init:function(){this._groupNames={}},getExtra:function(){return this._groupNames},Group:function(e){var u=e.node;u.name&&(this._groupNames[u.name]=u.number,delete u.name,delete u.nameRaw)},Backreference:function(e){var u=e.node;"name"===u.kind&&(u.kind="number",u.reference=u.number,delete u.referenceRaw)}}},96437:function(e){"use strict";e.exports={RegExp:function(e){var u=e.node;u.flags.includes("x")&&(u.flags=u.flags.replace("x",""))}}},1264:function(e,u,r){"use strict";e.exports={dotAll:r(98708),namedCapturingGroups:r(305),xFlag:r(96437)}},89702:function(e){"use strict";function u(e){return e?r[e.type](e):""}var r={RegExp:function(e){return"/"+u(e.body)+"/"+e.flags},Alternative:function(e){return(e.expressions||[]).map(u).join("")},Disjunction:function(e){return u(e.left)+"|"+u(e.right)},Group:function(e){var r=u(e.expression);return e.capturing?e.name?"(?<"+(e.nameRaw||e.name)+">"+r+")":"("+r+")":"(?:"+r+")"},Backreference:function(e){switch(e.kind){case"number":return"\\"+e.reference;case"name":return"\\k<"+(e.referenceRaw||e.reference)+">";default:throw new TypeError("Unknown Backreference kind: "+e.kind)}},Assertion:function(e){switch(e.kind){case"^":case"$":case"\\b":case"\\B":return e.kind;case"Lookahead":var r=u(e.assertion);return e.negative?"(?!"+r+")":"(?="+r+")";case"Lookbehind":var n=u(e.assertion);return e.negative?"(?<!"+n+")":"(?<="+n+")";default:throw new TypeError("Unknown Assertion kind: "+e.kind)}},CharacterClass:function(e){var r=e.expressions.map(u).join("");return e.negative?"[^"+r+"]":"["+r+"]"},ClassRange:function(e){return u(e.from)+"-"+u(e.to)},Repetition:function(e){return""+u(e.expression)+u(e.quantifier)},Quantifier:function(e){var u=void 0,r=e.greedy?"":"?";switch(e.kind){case"+":case"?":case"*":u=e.kind;break;case"Range":u=e.from===e.to?"{"+e.from+"}":e.to?"{"+e.from+","+e.to+"}":"{"+e.from+",}";break;default:throw new TypeError("Unknown Quantifier kind: "+e.kind)}return""+u+r},Char:function(e){var u=e.value;switch(e.kind){case"simple":return e.escaped?"\\"+u:u;case"hex":case"unicode":case"oct":case"decimal":case"control":case"meta":return u;default:throw new TypeError("Unknown Char kind: "+e.kind)}},UnicodeProperty:function(e){return"\\"+(e.negative?"P":"p")+"{"+(e.shorthand||e.binary?"":e.name+"=")+e.value+"}"}};e.exports={generate:u}},41693:function(e){"use strict";var u=function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,u){var r=[],n=!0,d=!1,t=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!u||r.length!==u);n=!0);}catch(e){d=!0,t=e}finally{try{!n&&s.return&&s.return()}finally{if(d)throw t}}return r}(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")};function r(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var n=null;function d(e,u){if(!u)return!1;if(e.length!==u.length)return!1;for(var n=0;n<e.length;n++){var d=e[n],t=u[n];if(d.size!==t.size)return!1;if([].concat(r(d)).sort().join(",")!==[].concat(r(t)).sort().join(","))return!1}return!0}function t(e,u,r,n){var d=!0,t=!1,s=void 0;try{for(var i,f=n[Symbol.iterator]();!(d=(i=f.next()).done);d=!0)if(!a(e,u,r,i.value))return!1}catch(e){t=!0,s=e}finally{try{!d&&f.return&&f.return()}finally{if(t)throw s}}return!0}function a(e,u,r,d){if(!n[e]||!n[u])return!1;var t=r[e][d],a=r[u][d];return!t&&!a||n[e].has(t)&&n[u].has(a)}e.exports={minimize:function(e){var a=e.getTransitionTable(),s=Object.keys(a),i=e.getAlphabet(),f=e.getAcceptingStateNumbers();n={};var o=new Set;s.forEach((function(e){e=Number(e),f.has(e)?n[e]=f:(o.add(e),n[e]=o)}));var c=[[o,f].filter((function(e){return e.size>0}))],l=void 0,v=void 0;l=c[c.length-1],v=c[c.length-2];for(var b=function(){var e,u={},d=!0,s=!1,f=void 0;try{for(var o,b=l[Symbol.iterator]();!(d=(o=b.next()).done);d=!0){var p=o.value,h={},m=(e=p,Array.isArray(e)?e:Array.from(e)),y=m[0],g=m.slice(1);h[y]=new Set([y]);var C=!0,B=!1,_=void 0;try{e:for(var x,A=g[Symbol.iterator]();!(C=(x=A.next()).done);C=!0){var S=x.value,w=!0,j=!1,k=void 0;try{for(var E,P=Object.keys(h)[Symbol.iterator]();!(w=(E=P.next()).done);w=!0){var O=E.value;if(t(S,O,a,i)){h[O].add(S),h[S]=h[O];continue e}}}catch(e){j=!0,k=e}finally{try{!w&&P.return&&P.return()}finally{if(j)throw k}}h[S]=new Set([S])}}catch(e){B=!0,_=e}finally{try{!C&&A.return&&A.return()}finally{if(B)throw _}}Object.assign(u,h)}}catch(e){s=!0,f=e}finally{try{!d&&b.return&&b.return()}finally{if(s)throw f}}n=u;var T=new Set(Object.keys(u).map((function(e){return u[e]})));c.push([].concat(r(T))),l=c[c.length-1],v=c[c.length-2]};!d(l,v);)b();var p=new Map,h=1;l.forEach((function(e){return p.set(e,h++)}));var m={},y=new Set,g=function(e,u){var r=!0,n=!1,d=void 0;try{for(var t,a=e[Symbol.iterator]();!(r=(t=a.next()).done);r=!0){var s=t.value;f.has(s)&&y.add(u)}}catch(e){n=!0,d=e}finally{try{!r&&a.return&&a.return()}finally{if(n)throw d}}},C=!0,B=!1,_=void 0;try{for(var x,A=p.entries()[Symbol.iterator]();!(C=(x=A.next()).done);C=!0){var S=x.value,w=u(S,2),j=w[0],k=w[1];m[k]={};var E=!0,P=!1,O=void 0;try{for(var T,R=i[Symbol.iterator]();!(E=(T=R.next()).done);E=!0){var N=T.value;g(j,k);var D=void 0,L=!0,F=!1,I=void 0;try{for(var M,U=j[Symbol.iterator]();!(L=(M=U.next()).done);L=!0){var G=M.value;if(D=a[G][N])break}}catch(e){F=!0,I=e}finally{try{!L&&U.return&&U.return()}finally{if(F)throw I}}D&&(m[k][N]=p.get(n[D]))}}catch(e){P=!0,O=e}finally{try{!E&&R.return&&R.return()}finally{if(P)throw O}}}}catch(e){B=!0,_=e}finally{try{!C&&A.return&&A.return()}finally{if(B)throw _}}return e.setTransitionTable(m),e.setAcceptingStateNumbers(y),e}}},13158:function(e,u,r){"use strict";var n=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}();function d(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var t=r(41693),a=r(3341).EPSILON_CLOSURE,s=function(){function e(u){!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._nfa=u}return n(e,[{key:"minimize",value:function(){this.getTransitionTable(),this._originalAcceptingStateNumbers=this._acceptingStateNumbers,this._originalTransitionTable=this._transitionTable,t.minimize(this)}},{key:"getAlphabet",value:function(){return this._nfa.getAlphabet()}},{key:"getAcceptingStateNumbers",value:function(){return this._acceptingStateNumbers||this.getTransitionTable(),this._acceptingStateNumbers}},{key:"getOriginaAcceptingStateNumbers",value:function(){return this._originalAcceptingStateNumbers||this.getTransitionTable(),this._originalAcceptingStateNumbers}},{key:"setTransitionTable",value:function(e){this._transitionTable=e}},{key:"setAcceptingStateNumbers",value:function(e){this._acceptingStateNumbers=e}},{key:"getTransitionTable",value:function(){var e=this;if(this._transitionTable)return this._transitionTable;var u=this._nfa.getTransitionTable(),r=Object.keys(u);this._acceptingStateNumbers=new Set;for(var n=[u[r[0]][a]],t=this.getAlphabet(),s=this._nfa.getAcceptingStateNumbers(),i={},f=function(u){var r=!0,n=!1,d=void 0;try{for(var t,a=s[Symbol.iterator]();!(r=(t=a.next()).done);r=!0){var i=t.value;if(-1!==u.indexOf(i)){e._acceptingStateNumbers.add(u.join(","));break}}}catch(e){n=!0,d=e}finally{try{!r&&a.return&&a.return()}finally{if(n)throw d}}};n.length>0;){var o=n.shift(),c=o.join(",");i[c]={};var l=!0,v=!1,b=void 0;try{for(var p,h=t[Symbol.iterator]();!(l=(p=h.next()).done);l=!0){var m=p.value,y=[];f(o);var g=!0,C=!1,B=void 0;try{for(var _,x=o[Symbol.iterator]();!(g=(_=x.next()).done);g=!0){var A=u[_.value][m];if(A){var S=!0,w=!1,j=void 0;try{for(var k,E=A[Symbol.iterator]();!(S=(k=E.next()).done);S=!0){var P=k.value;u[P]&&y.push.apply(y,d(u[P][a]))}}catch(e){w=!0,j=e}finally{try{!S&&E.return&&E.return()}finally{if(w)throw j}}}}}catch(e){C=!0,B=e}finally{try{!g&&x.return&&x.return()}finally{if(C)throw B}}var O=new Set(y),T=[].concat(d(O));if(T.length>0){var R=T.join(",");i[c][m]=R,i.hasOwnProperty(R)||n.unshift(T)}}}catch(e){v=!0,b=e}finally{try{!l&&h.return&&h.return()}finally{if(v)throw b}}}return this._transitionTable=this._remapStateNumbers(i)}},{key:"_remapStateNumbers",value:function(e){var u={};this._originalTransitionTable=e;var r={};for(var n in Object.keys(e).forEach((function(e,r){u[e]=r+1})),e){var d=e[n],t={};for(var a in d)t[a]=u[d[a]];r[u[n]]=t}this._originalAcceptingStateNumbers=this._acceptingStateNumbers,this._acceptingStateNumbers=new Set;var s=!0,i=!1,f=void 0;try{for(var o,c=this._originalAcceptingStateNumbers[Symbol.iterator]();!(s=(o=c.next()).done);s=!0){var l=o.value;this._acceptingStateNumbers.add(u[l])}}catch(e){i=!0,f=e}finally{try{!s&&c.return&&c.return()}finally{if(i)throw f}}return r}},{key:"getOriginalTransitionTable",value:function(){return this._originalTransitionTable||this.getTransitionTable(),this._originalTransitionTable}},{key:"matches",value:function(e){for(var u=1,r=0,n=this.getTransitionTable();e[r];)if(!(u=n[u][e[r++]]))return!1;return!!this.getAcceptingStateNumbers().has(u)}}]),e}();e.exports=s},22722:function(e,u,r){"use strict";var n=r(95050),d=r(13158),t=r(39761),a=r(2970);e.exports={NFA:n,DFA:d,builders:a,toNFA:function(e){return t.build(e)},toDFA:function(e){return new d(this.toNFA(e))},test:function(e,u){return this.toDFA(e).matches(u)}}},2970:function(e,u,r){"use strict";var n=r(95050),d=r(81115),t=r(3341).EPSILON;function a(e){var u=new d,r=new d({accepting:!0});return new n(u.addTransition(e,r),r)}function s(e,u){return e.out.accepting=!1,u.out.accepting=!0,e.out.addTransition(t,u.in),new n(e.in,u.out)}function i(e,u){var r=new d,a=new d;return r.addTransition(t,e.in),r.addTransition(t,u.in),a.accepting=!0,e.out.accepting=!1,u.out.accepting=!1,e.out.addTransition(t,a),u.out.addTransition(t,a),new n(r,a)}e.exports={alt:function(e){for(var u=arguments.length,r=Array(u>1?u-1:0),n=1;n<u;n++)r[n-1]=arguments[n];var d=!0,t=!1,a=void 0;try{for(var i,f=r[Symbol.iterator]();!(d=(i=f.next()).done);d=!0)e=s(e,i.value)}catch(e){t=!0,a=e}finally{try{!d&&f.return&&f.return()}finally{if(t)throw a}}return e},char:a,e:function(){return a(t)},or:function(e){for(var u=arguments.length,r=Array(u>1?u-1:0),n=1;n<u;n++)r[n-1]=arguments[n];var d=!0,t=!1,a=void 0;try{for(var s,f=r[Symbol.iterator]();!(d=(s=f.next()).done);d=!0)e=i(e,s.value)}catch(e){t=!0,a=e}finally{try{!d&&f.return&&f.return()}finally{if(t)throw a}}return e},rep:function(e){return e.in.addTransition(t,e.out),e.out.addTransition(t,e.in),e},repExplicit:function(e){var u=new d,r=new d({accepting:!0});return u.addTransition(t,e.in),u.addTransition(t,r),e.out.accepting=!1,e.out.addTransition(t,r),r.addTransition(t,e.in),new n(u,r)},plusRep:function(e){return e.out.addTransition(t,e.in),e},questionRep:function(e){return e.in.addTransition(t,e.out),e}}},39761:function(e,u,r){"use strict";var n=r(37112),d=r(2970),t=d.alt,a=d.char,s=d.or,i=d.rep,f=d.plusRep,o=d.questionRep;function c(e){if(e&&!l[e.type])throw new Error(e.type+" is not supported in NFA/DFA interpreter.");return e?l[e.type](e):""}var l={RegExp:function(e){if(""!==e.flags)throw new Error("NFA/DFA: Flags are not supported yet.");return c(e.body)},Alternative:function(e){var u=(e.expressions||[]).map(c);return t.apply(void 0,function(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}(u))},Disjunction:function(e){return s(c(e.left),c(e.right))},Repetition:function(e){switch(e.quantifier.kind){case"*":return i(c(e.expression));case"+":return f(c(e.expression));case"?":return o(c(e.expression));default:throw new Error("Unknown repeatition: "+e.quantifier.kind+".")}},Char:function(e){if("simple"!==e.kind)throw new Error("NFA/DFA: Only simple chars are supported yet.");return a(e.value)},Group:function(e){return c(e.expression)}};e.exports={build:function(e){var u=e;return e instanceof RegExp&&(e=""+e),"string"==typeof e&&(u=n.parse(e,{captureLocations:!0})),c(u)}}},81115:function(e,u,r){"use strict";var n=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),d=r(74128),t=r(3341).EPSILON,a=function(e){function u(){return function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,u),function(e,u){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!u||"object"!=typeof u&&"function"!=typeof u?e:u}(this,(u.__proto__||Object.getPrototypeOf(u)).apply(this,arguments))}return function(e,u){if("function"!=typeof u&&null!==u)throw new TypeError("Super expression must either be null or a function, not "+typeof u);e.prototype=Object.create(u&&u.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),u&&(Object.setPrototypeOf?Object.setPrototypeOf(e,u):e.__proto__=u)}(u,e),n(u,[{key:"matches",value:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Set;if(u.has(this))return!1;if(u.add(this),0===e.length){if(this.accepting)return!0;var r=!0,n=!1,d=void 0;try{for(var a,s=this.getTransitionsOnSymbol(t)[Symbol.iterator]();!(r=(a=s.next()).done);r=!0)if(a.value.matches("",u))return!0}catch(e){n=!0,d=e}finally{try{!r&&s.return&&s.return()}finally{if(n)throw d}}return!1}var i=e[0],f=e.slice(1),o=this.getTransitionsOnSymbol(i),c=!0,l=!1,v=void 0;try{for(var b,p=o[Symbol.iterator]();!(c=(b=p.next()).done);c=!0)if(b.value.matches(f))return!0}catch(e){l=!0,v=e}finally{try{!c&&p.return&&p.return()}finally{if(l)throw v}}var h=!0,m=!1,y=void 0;try{for(var g,C=this.getTransitionsOnSymbol(t)[Symbol.iterator]();!(h=(g=C.next()).done);h=!0)if(g.value.matches(e,u))return!0}catch(e){m=!0,y=e}finally{try{!h&&C.return&&C.return()}finally{if(m)throw y}}return!1}},{key:"getEpsilonClosure",value:function(){var e=this;return this._epsilonClosure||function(){var u=e.getTransitionsOnSymbol(t),r=e._epsilonClosure=new Set;r.add(e);var n=!0,d=!1,a=void 0;try{for(var s,i=u[Symbol.iterator]();!(n=(s=i.next()).done);n=!0){var f=s.value;r.has(f)||(r.add(f),f.getEpsilonClosure().forEach((function(e){return r.add(e)})))}}catch(e){d=!0,a=e}finally{try{!n&&i.return&&i.return()}finally{if(d)throw a}}}(),this._epsilonClosure}}]),u}(d);e.exports=a},95050:function(e,u,r){"use strict";var n=function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,u){var r=[],n=!0,d=!1,t=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!u||r.length!==u);n=!0);}catch(e){d=!0,t=e}finally{try{!n&&s.return&&s.return()}finally{if(d)throw t}}return r}(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")},d=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),t=r(3341),a=t.EPSILON,s=t.EPSILON_CLOSURE,i=function(){function e(u,r){!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this.in=u,this.out=r}return d(e,[{key:"matches",value:function(e){return this.in.matches(e)}},{key:"getAlphabet",value:function(){if(!this._alphabet){this._alphabet=new Set;var e=this.getTransitionTable();for(var u in e){var r=e[u];for(var n in r)n!==s&&this._alphabet.add(n)}}return this._alphabet}},{key:"getAcceptingStates",value:function(){return this._acceptingStates||this.getTransitionTable(),this._acceptingStates}},{key:"getAcceptingStateNumbers",value:function(){if(!this._acceptingStateNumbers){this._acceptingStateNumbers=new Set;var e=!0,u=!1,r=void 0;try{for(var n,d=this.getAcceptingStates()[Symbol.iterator]();!(e=(n=d.next()).done);e=!0){var t=n.value;this._acceptingStateNumbers.add(t.number)}}catch(e){u=!0,r=e}finally{try{!e&&d.return&&d.return()}finally{if(u)throw r}}}return this._acceptingStateNumbers}},{key:"getTransitionTable",value:function(){var e=this;if(!this._transitionTable){this._transitionTable={},this._acceptingStates=new Set;var u=new Set,r=new Set;!function d(t){if(!u.has(t)){u.add(t),t.number=u.size,e._transitionTable[t.number]={},t.accepting&&e._acceptingStates.add(t);var a=t.getTransitions(),s=!0,i=!1,f=void 0;try{for(var o,c=a[Symbol.iterator]();!(s=(o=c.next()).done);s=!0){var l=o.value,v=n(l,2),b=v[0],p=v[1],h=[];r.add(b);var m=!0,y=!1,g=void 0;try{for(var C,B=p[Symbol.iterator]();!(m=(C=B.next()).done);m=!0){var _=C.value;d(_),h.push(_.number)}}catch(e){y=!0,g=e}finally{try{!m&&B.return&&B.return()}finally{if(y)throw g}}e._transitionTable[t.number][b]=h}}catch(e){i=!0,f=e}finally{try{!s&&c.return&&c.return()}finally{if(i)throw f}}}}(this.in),u.forEach((function(u){delete e._transitionTable[u.number][a],e._transitionTable[u.number][s]=[].concat(function(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}(u.getEpsilonClosure())).map((function(e){return e.number}))}))}return this._transitionTable}}]),e}();e.exports=i},3341:function(e){"use strict";e.exports={EPSILON:"ε",EPSILON_CLOSURE:"ε*"}},74128:function(e){"use strict";var u=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),r=function(){function e(){var u=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).accepting,r=void 0!==u&&u;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._transitions=new Map,this.accepting=r}return u(e,[{key:"getTransitions",value:function(){return this._transitions}},{key:"addTransition",value:function(e,u){return this.getTransitionsOnSymbol(e).add(u),this}},{key:"getTransitionsOnSymbol",value:function(e){var u=this._transitions.get(e);return u||(u=new Set,this._transitions.set(e,u)),u}}]),e}();e.exports=r},47393:function(e,u,r){"use strict";var n=r(60689),d=r(37112),t=r(60045),a=r(55319);e.exports={optimize:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=u.whitelist,s=void 0===r?[]:r,i=u.blacklist,f=void 0===i?[]:i,o=(s.length>0?s:Array.from(a.keys())).filter((function(e){return!f.includes(e)})),c=e;e instanceof RegExp&&(e=""+e),"string"==typeof e&&(c=d.parse(e));var l=new t.TransformResult(c),v=void 0;do{v=l.toString(),c=n(l.getAST()),o.forEach((function(e){if(!a.has(e))throw new Error("Unknown optimization-transform: "+e+". Available transforms are: "+Array.from(a.keys()).join(", "));var u=a.get(e),r=t.transform(c,u);r.toString()!==l.toString()&&(r.toString().length<=l.toString().length?l=r:c=n(l.getAST()))}))}while(l.toString()!==v);return l}}},98327:function(e){"use strict";var u="A".codePointAt(0),r="Z".codePointAt(0);e.exports={_AZClassRanges:null,_hasUFlag:!1,init:function(e){this._AZClassRanges=new Set,this._hasUFlag=e.flags.includes("u")},shouldRun:function(e){return e.flags.includes("i")},Char:function(e){var n=e.node,d=e.parent;if(!isNaN(n.codePoint)&&(this._hasUFlag||!(n.codePoint>=4096))){if("ClassRange"===d.type){if(!(this._AZClassRanges.has(d)||(t=d,a=t.from,s=t.to,a.codePoint>=u&&a.codePoint<=r&&s.codePoint>=u&&s.codePoint<=r)))return;this._AZClassRanges.add(d)}var t,a,s,i=n.symbol.toLowerCase();i!==n.symbol&&(n.value=function(e,u){var r=e.codePointAt(0);if("decimal"===u.kind)return"\\"+r;if("oct"===u.kind)return"\\0"+r.toString(8);if("hex"===u.kind)return"\\x"+r.toString(16);if("unicode"===u.kind){if(u.isSurrogatePair){var n=function(e){var u=(e-65536)%1024+56320;return{lead:(Math.floor((e-65536)/1024)+55296).toString(16),trail:u.toString(16)}}(r),d=n.lead,t=n.trail;return"\\u"+"0".repeat(4-d.length)+d+"\\u"+"0".repeat(4-t.length)+t}if(u.value.includes("{"))return"\\u{"+r.toString(16)+"}";var a=r.toString(16);return"\\u"+"0".repeat(4-a.length)+a}return e}(i,n),n.symbol=i,n.codePoint=i.codePointAt(0))}}}},52445:function(e){"use strict";function u(e,u){var t=r(e),a=r(u);if(t===a){if("ClassRange"===e.type&&"ClassRange"!==u.type)return-1;if("ClassRange"===u.type&&"ClassRange"!==e.type)return 1;if("ClassRange"===e.type&&"ClassRange"===u.type)return r(e.to)-r(u.to);if(n(e)&&n(u)||d(e)&&d(u))return e.value<u.value?-1:1}return t-a}function r(e){return"Char"===e.type?"-"===e.value||"control"===e.kind?1/0:"meta"===e.kind&&isNaN(e.codePoint)?-1:e.codePoint:e.from.codePoint}function n(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return"Char"===e.type&&"meta"===e.kind&&(u?e.value===u:/^\\[dws]$/i.test(e.value))}function d(e){return"Char"===e.type&&"control"===e.kind}function t(e,u,r){for(var n=0;n<u.length;n++)if(a(e,u[n],r))return!0;return!1}function a(e,u,r){return"ClassRange"===e.type?a(e.from,u,r)&&a(e.to,u,r):!("\\S"!==u||!n(e,"\\w")&&!n(e,"\\d"))||!("\\D"!==u||!n(e,"\\W")&&!n(e,"\\s"))||!("\\w"!==u||!n(e,"\\d"))||!("\\W"!==u||!n(e,"\\s"))||"Char"===e.type&&!isNaN(e.codePoint)&&("\\s"===u?s(e):"\\S"===u?!s(e):"\\d"===u?i(e):"\\D"===u?!i(e):"\\w"===u?f(e,r):"\\W"===u&&!f(e,r))}function s(e){return 9===e.codePoint||10===e.codePoint||11===e.codePoint||12===e.codePoint||13===e.codePoint||32===e.codePoint||160===e.codePoint||5760===e.codePoint||e.codePoint>=8192&&e.codePoint<=8202||8232===e.codePoint||8233===e.codePoint||8239===e.codePoint||8287===e.codePoint||12288===e.codePoint||65279===e.codePoint}function i(e){return e.codePoint>=48&&e.codePoint<=57}function f(e,u){return i(e)||e.codePoint>=65&&e.codePoint<=90||e.codePoint>=97&&e.codePoint<=122||"_"===e.value||u&&(383===e.codePoint||8490===e.codePoint)}function o(e,u){if(u&&"ClassRange"===u.type){if(l(e,u))return!0;if(b(e)&&u.to.codePoint===e.codePoint-1)return u.to=e,!0;if("ClassRange"===e.type&&e.from.codePoint<=u.to.codePoint+1&&e.to.codePoint>=u.from.codePoint-1)return e.from.codePoint<u.from.codePoint&&(u.from=e.from),e.to.codePoint>u.to.codePoint&&(u.to=e.to),!0}return!1}function c(e,u){return!(!u||"ClassRange"!==u.type||!b(e)||u.from.codePoint!==e.codePoint+1||(u.from=e,0))}function l(e,u){return("Char"!==e.type||!isNaN(e.codePoint))&&("ClassRange"===e.type?l(e.from,u)&&l(e.to,u):e.codePoint>=u.from.codePoint&&e.codePoint<=u.to.codePoint)}function v(e,u,r){if(!b(e))return 0;for(var n=0;u>0;){var d=r[u],t=r[u-1];if(!b(t)||t.codePoint!==d.codePoint-1)break;n++,u--}return n>1?(r[u]={type:"ClassRange",from:r[u],to:e},n):0}function b(e){return e&&"Char"===e.type&&!isNaN(e.codePoint)&&(f(e,!1)||"unicode"===e.kind||"hex"===e.kind||"oct"===e.kind||"decimal"===e.kind)}e.exports={_hasIUFlags:!1,init:function(e){this._hasIUFlags=e.flags.includes("i")&&e.flags.includes("u")},CharacterClass:function(e){var r=e.node.expressions,d=[];r.forEach((function(e){n(e)&&d.push(e.value)})),r.sort(u);for(var a=0;a<r.length;a++){var s=r[a];if(t(s,d,this._hasIUFlags)||o(s,r[a-1])||c(s,r[a+1]))r.splice(a,1),a--;else{var i=v(s,a,r);r.splice(a-i+1,i),a-=i}}}}},54122:function(e){"use strict";e.exports={ClassRange:function(e){var u=e.node;u.from.codePoint===u.to.codePoint?e.replace(u.from):u.from.codePoint===u.to.codePoint-1&&(e.getParent().insertChildAt(u.to,e.index+1),e.replace(u.from))}}},71216:function(e){"use strict";e.exports={CharacterClass:function(e){for(var u=e.node,r={},n=0;n<u.expressions.length;n++){var d=e.getChild(n),t=d.jsonEncode();r.hasOwnProperty(t)&&(d.remove(),n--),r[t]=!0}}}},94126:function(e){"use strict";function u(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}e.exports={_hasIFlag:!1,_hasUFlag:!1,init:function(e){this._hasIFlag=e.flags.includes("i"),this._hasUFlag=e.flags.includes("u")},CharacterClass:function(e){!function(e){e.node.expressions.forEach((function(u,r){(function(e){return"ClassRange"===e.type&&"0"===e.from.value&&"9"===e.to.value})(u)&&e.getChild(r).replace({type:"Char",value:"\\d",kind:"meta"})}))}(e),function(e,u,r){var n=e.node,a=null,s=null,i=null,f=null,o=null,c=null;n.expressions.forEach((function(n,l){d(n,"\\d")?a=e.getChild(l):function(e){return"ClassRange"===e.type&&"a"===e.from.value&&"z"===e.to.value}(n)?s=e.getChild(l):function(e){return"ClassRange"===e.type&&"A"===e.from.value&&"Z"===e.to.value}(n)?i=e.getChild(l):function(e){return"Char"===e.type&&"_"===e.value&&"simple"===e.kind}(n)?f=e.getChild(l):u&&r&&t(n,383)?o=e.getChild(l):u&&r&&t(n,8490)&&(c=e.getChild(l))})),a&&(s&&i||u&&(s||i))&&f&&(!r||!u||o&&c)&&(a.replace({type:"Char",value:"\\w",kind:"meta"}),s&&s.remove(),i&&i.remove(),f.remove(),o&&o.remove(),c&&c.remove())}(e,this._hasIFlag,this._hasUFlag),function(e){var u=e.node;if(!(u.expressions.length<r.length)&&r.every((function(e){return u.expressions.some((function(u){return e(u)}))}))){var n=u.expressions.find((function(e){return d(e,"\\n")}));n.value="\\s",n.symbol=void 0,n.codePoint=NaN,u.expressions.map((function(u,n){return r.some((function(e){return e(u)}))?e.getChild(n):void 0})).filter(Boolean).forEach((function(e){return e.remove()}))}}(e)}};var r=[function(e){return n(e," ")}].concat(u(["\\f","\\n","\\r","\\t","\\v"].map((function(e){return function(u){return d(u,e)}}))),u([160,5760,8232,8233,8239,8287,12288,65279].map((function(e){return function(u){return t(u,e)}}))),[function(e){return"ClassRange"===e.type&&t(e.from,8192)&&t(e.to,8202)}]);function n(e,u){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"simple";return"Char"===e.type&&e.value===u&&e.kind===r}function d(e,u){return n(e,u,"meta")}function t(e,u){return"Char"===e.type&&"unicode"===e.kind&&e.codePoint===u}},1949:function(e){"use strict";function u(e){return/[*[()+?$./{}|]/.test(e)}e.exports={CharacterClass:function(e){var r=e.node;if(1===r.expressions.length&&function(e){var u=e.parent,r=e.index;if("Alternative"!==u.type)return!0;var n=u.expressions[r-1];return null==n||("Backreference"!==n.type||"number"!==n.kind)&&("Char"!==n.type||"decimal"!==n.kind)}(e)&&function(e){return"Char"===e.type&&"\\b"!==e.value}(r.expressions[0])){var n=r.expressions[0],d=n.value,t=n.kind,a=n.escaped;if(r.negative){if(!function(e){return/^\\[dwsDWS]$/.test(e)}(d))return;d=function(e){return/[dws]/.test(e)?e.toUpperCase():e.toLowerCase()}(d)}e.replace({type:"Char",value:d,kind:t,escaped:a||u(d)})}}}},57335:function(e){"use strict";var u="A".codePointAt(0),r="Z".codePointAt(0),n="a".codePointAt(0),d="z".codePointAt(0),t="0".codePointAt(0),a="9".codePointAt(0);e.exports={Char:function(e){var s,i,f,o=e.node,c=e.parent;if(!isNaN(o.codePoint)&&"simple"!==o.kind&&("ClassRange"!==c.type||(i=(s=c).from,f=s.to,i.codePoint>=t&&i.codePoint<=a&&f.codePoint>=t&&f.codePoint<=a||i.codePoint>=u&&i.codePoint<=r&&f.codePoint>=u&&f.codePoint<=r||i.codePoint>=n&&i.codePoint<=d&&f.codePoint>=n&&f.codePoint<=d))&&(l=o.codePoint)>=32&&l<=126){var l,v=String.fromCodePoint(o.codePoint),b={type:"Char",kind:"simple",value:v,symbol:v,codePoint:o.codePoint};(function(e,u){return"ClassRange"===u||"CharacterClass"===u?/[\]\\^-]/.test(e):/[*[()+?^$./\\|{}]/.test(e)})(v,c.type)&&(b.escaped=!0),e.replace(b)}}}},29141:function(e){"use strict";function u(e,u,r){for(var n=e,d=(r?n>=0:n<u.expressions.length)&&u.expressions[n];d&&"Char"===d.type&&"simple"===d.kind&&!d.escaped&&/\d/.test(d.value);)r?n--:n++,d=(r?n>=0:n<u.expressions.length)&&u.expressions[n];return Math.abs(e-n)}function r(e,u){return e&&"Char"===e.type&&"simple"===e.kind&&!e.escaped&&e.value===u}e.exports={_hasXFlag:!1,init:function(e){this._hasXFlag=e.flags.includes("x")},Char:function(e){var n=e.node;n.escaped&&function(e,n){var d=e.node.value,t=e.index,a=e.parent;return"CharacterClass"!==a.type&&"ClassRange"!==a.type?!function(e,n,d,t){return"{"===e?function(e,n){if(null==e)return!1;var d=u(e+1,n),t=e+d+1,a=t<n.expressions.length&&n.expressions[t];if(d){if(r(a,"}"))return!0;if(r(a,","))return r(a=(t=t+(d=u(t+1,n))+1)<n.expressions.length&&n.expressions[t],"}")}return!1}(n,d):"}"===e?function(e,n){if(null==e)return!1;var d=u(e-1,n,!0),t=e-d-1,a=t>=0&&n.expressions[t];return!(!d||!r(a,"{"))||!!r(a,",")&&(a=(t=t-(d=u(t-1,n,!0))-1)<n.expressions.length&&n.expressions[t],d&&r(a,"{"))}(n,d):!(!t||!/[ #]/.test(e))||/[*[()+?^$./\\|]/.test(e)}(d,t,a,n):!function(e,u,r){return"^"===e?0===u&&!r.negative:"-"===e||/[\]\\]/.test(e)}(d,t,a)}(e,this._hasXFlag)&&delete n.escaped}}},93843:function(e){"use strict";e.exports={shouldRun:function(e){return e.flags.includes("u")},Char:function(e){var u=e.node;"unicode"===u.kind&&u.isSurrogatePair&&!isNaN(u.codePoint)&&(u.value="\\u{"+u.codePoint.toString(16)+"}",delete u.isSurrogatePair)}}},61143:function(e,u,r){"use strict";function n(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var d=r(27762),t=r(26554).increaseQuantifierByOne;function a(e,u,r){for(var t=e.node,a=Math.ceil(r/2),s=0;s<a;){var i=r-2*s-1,f=void 0,o=void 0;if(0===s?(f=u,o=e.getChild(i)):(f=d.getForNode({type:"Alternative",expressions:[].concat(n(t.expressions.slice(r-s,r)),[u.node])}),o=d.getForNode({type:"Alternative",expressions:[].concat(n(t.expressions.slice(i,r-s)))})),f.hasEqualSource(o)){for(var c=0;c<2*s+1;c++)e.getChild(i).remove();return u.replace({type:"Repetition",expression:0===s&&"Repetition"!==f.node.type?f.node:{type:"Group",capturing:!1,expression:f.node},quantifier:{type:"Quantifier",kind:"Range",from:2,to:2,greedy:!0}}),i}s++}return r}function s(e,u,r){for(var a=e.node,s=0;s<r;){var i=e.getChild(s);if("Repetition"===i.node.type&&i.node.quantifier.greedy){var f=i.getChild(),o=void 0;if("Group"!==f.node.type||f.node.capturing||(f=f.getChild()),s+1===r?"Group"!==(o=u).node.type||o.node.capturing||(o=o.getChild()):o=d.getForNode({type:"Alternative",expressions:[].concat(n(a.expressions.slice(s+1,r+1)))}),f.hasEqualSource(o)){for(var c=s;c<r;c++)e.getChild(s+1).remove();return t(i.node.quantifier),s}}s++}return r}function i(e,u,r){var a=e.node;if("Repetition"===u.node.type&&u.node.quantifier.greedy){var s=u.getChild(),i=void 0;"Group"!==s.node.type||s.node.capturing||(s=s.getChild());var f=void 0;if("Alternative"===s.node.type?(f=s.node.expressions.length,i=d.getForNode({type:"Alternative",expressions:[].concat(n(a.expressions.slice(r-f,r)))})):(f=1,"Group"!==(i=e.getChild(r-1)).node.type||i.node.capturing||(i=i.getChild())),i.hasEqualSource(s)){for(var o=r-f;o<r;o++)e.getChild(r-f).remove();return t(u.node.quantifier),r-f}}return r}e.exports={Alternative:function(e){for(var u=e.node,r=1;r<u.expressions.length;){var n=e.getChild(r);if((r=Math.max(1,a(e,n,r)))>=u.expressions.length)break;if(n=e.getChild(r),(r=Math.max(1,s(e,n,r)))>=u.expressions.length)break;n=e.getChild(r),r=Math.max(1,i(e,n,r)),r++}}}},49895:function(e,u,r){"use strict";var n=r(27762),d=r(26554),t=d.disjunctionToList,a=d.listToDisjunction;e.exports={Disjunction:function(e){var u=e.node,r={},d=t(u).filter((function(e){var u=e?n.getForNode(e).jsonEncode():"null";return!r.hasOwnProperty(u)&&(r[u]=e,!0)}));e.replace(a(d))}}},40623:function(e){"use strict";e.exports={Disjunction:function(e){var n=e.node,d=e.parent;if(u[d.type]){var t=new Map;if(r(n,t)&&t.size){var a={type:"CharacterClass",expressions:Array.from(t.keys()).sort().map((function(e){return t.get(e)}))};u[d.type](e.getParent(),a)}}}};var u={RegExp:function(e,u){e.node.body=u},Group:function(e,u){var r=e.node;r.capturing?r.expression=u:e.replace(u)}};function r(e,u){if(!e)return!1;var n=e.type;if("Disjunction"===n){var d=e.left,t=e.right;return r(d,u)&&r(t,u)}if("Char"===n){if("meta"===e.kind&&"."===e.symbol)return!1;var a=e.value;return u.set(a,e),!0}return"CharacterClass"===n&&!e.negative&&e.expressions.every((function(e){return r(e,u)}))}},55319:function(e,u,r){"use strict";e.exports=new Map([["charSurrogatePairToSingleUnicode",r(93843)],["charCodeToSimpleChar",r(57335)],["charCaseInsensitiveLowerCaseTransform",r(98327)],["charClassRemoveDuplicates",r(71216)],["quantifiersMerge",r(58124)],["quantifierRangeToSymbol",r(81280)],["charClassClassrangesToChars",r(54122)],["charClassToMeta",r(94126)],["charClassToSingleChar",r(1949)],["charEscapeUnescape",r(29141)],["charClassClassrangesMerge",r(52445)],["disjunctionRemoveDuplicates",r(49895)],["groupSingleCharsToCharClass",r(40623)],["removeEmptyGroup",r(22223)],["ungroup",r(14952)],["combineRepeatingPatterns",r(61143)]])},81280:function(e){"use strict";e.exports={Quantifier:function(e){"Range"===e.node.kind&&(function(e){var u=e.node;0!==u.from||u.to||(u.kind="*",delete u.from)}(e),function(e){var u=e.node;1!==u.from||u.to||(u.kind="+",delete u.from)}(e),function(e){var u=e.node;1===u.from&&1===u.to&&e.parentPath.replace(e.parentPath.node.expression)}(e))}}},58124:function(e,u,r){"use strict";var n=r(26554).increaseQuantifierByOne;function d(e){return e.greedy&&("+"===e.kind||"*"===e.kind||"Range"===e.kind&&!e.to)}function t(e){var u=void 0,r=void 0;return"*"===e.kind?u=0:"+"===e.kind?u=1:"?"===e.kind?(u=0,r=1):(u=e.from,e.to&&(r=e.to)),{from:u,to:r}}e.exports={Repetition:function(e){var u=e.node;if("Alternative"===e.parent.type&&e.index){var r=e.getPreviousSibling();if(r)if("Repetition"===r.node.type){if(!r.getChild().hasEqualSource(e.getChild()))return;var a=t(r.node.quantifier),s=a.from,i=a.to,f=t(u.quantifier),o=f.from,c=f.to;if(r.node.quantifier.greedy!==u.quantifier.greedy&&!d(r.node.quantifier)&&!d(u.quantifier))return;u.quantifier.kind="Range",u.quantifier.from=s+o,i&&c?u.quantifier.to=i+c:delete u.quantifier.to,(d(r.node.quantifier)||d(u.quantifier))&&(u.quantifier.greedy=!0),r.remove()}else{if(!r.hasEqualSource(e.getChild()))return;n(u.quantifier),r.remove()}}}}},22223:function(e){"use strict";e.exports={Group:function(e){var u=e.node,r=e.parent,n=e.getChild();u.capturing||n||("Repetition"===r.type?e.getParent().replace(u):"RegExp"!==r.type&&e.remove())}}},14952:function(e){"use strict";function u(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}e.exports={Group:function(e){var r=e.node,n=e.parent,d=e.getChild();if(!r.capturing&&d&&function(e){var u=e.parent,r=e.index;if("Alternative"!==u.type)return!0;var n=u.expressions[r-1];return null==n||("Backreference"!==n.type||"number"!==n.kind)&&("Char"!==n.type||"decimal"!==n.kind)}(e)&&!("Disjunction"===d.node.type&&"RegExp"!==n.type||"Repetition"===n.type&&"Char"!==d.node.type&&"CharacterClass"!==d.node.type))if("Alternative"===d.node.type){var t=e.getParent();"Alternative"===t.node.type&&t.replace({type:"Alternative",expressions:[].concat(u(n.expressions.slice(0,e.index)),u(d.node.expressions),u(n.expressions.slice(e.index+1)))})}else e.replace(d.node)}}},42669:function(e,u,r){"use strict";function n(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var d=void 0,t={},a=void 0,s=void 0;function i(e,u){return t.options.captureLocations?e&&u?{startOffset:e.startOffset,endOffset:u.endOffset,startLine:e.startLine,endLine:u.endLine,startColumn:e.startColumn,endColumn:u.endColumn}:e||u:null}var f=[[-1,1,function(e,u){s=i(u,u),a=e}],[0,4,function(e,u,r,n,d,t,f,o){s=i(d,o),a=R({type:"RegExp",body:u,flags:w(n)},N(d,o||f))}],[1,1,function(e,u){s=i(u,u),a=e}],[1,0,function(){s=null,a=""}],[2,1,function(e,u){s=i(u,u),a=e}],[2,2,function(e,u,r,n){s=i(r,n),a=e+u}],[3,1,function(e,u){s=i(u,u),a=e}],[4,1,function(e,u){s=i(u,u),a=e}],[4,3,function(e,u,r,n,d,t){s=i(n,t);var f=null;d&&(f=N(n||d,t||d)),a=R({type:"Disjunction",left:e,right:r},f)}],[5,1,function(e,u){s=i(u,u),a=0!==e.length?1===e.length?R(e[0],s):R({type:"Alternative",expressions:e},s):null}],[6,0,function(){s=null,a=[]}],[6,2,function(e,u,r,n){s=i(r,n),a=e.concat(u)}],[7,1,function(e,u){s=i(u,u),a=R(Object.assign({type:"Assertion"},e),s)}],[7,2,function(e,u,r,n){s=i(r,n),a=e,u&&(a=R({type:"Repetition",expression:e,quantifier:u},s))}],[8,1,function(e,u){s=i(u,u),a={kind:"^"}}],[8,1,function(e,u){s=i(u,u),a={kind:"$"}}],[8,1,function(e,u){s=i(u,u),a={kind:"\\b"}}],[8,1,function(e,u){s=i(u,u),a={kind:"\\B"}}],[8,3,function(e,u,r,n,d,t){s=i(n,t),a={kind:"Lookahead",assertion:u}}],[8,3,function(e,u,r,n,d,t){s=i(n,t),a={kind:"Lookahead",negative:!0,assertion:u}}],[8,3,function(e,u,r,n,d,t){s=i(n,t),a={kind:"Lookbehind",assertion:u}}],[8,3,function(e,u,r,n,d,t){s=i(n,t),a={kind:"Lookbehind",negative:!0,assertion:u}}],[9,1,function(e,u){s=i(u,u),a=e}],[9,1,function(e,u){s=i(u,u),a=e}],[9,1,function(e,u){s=i(u,u),a=e}],[10,1,function(e,u){s=i(u,u),a=A(e,"simple",s)}],[10,1,function(e,u){s=i(u,u),(a=A(e.slice(1),"simple",s)).escaped=!0}],[10,1,function(e,u){s=i(u,u),(a=A(e,"unicode",s)).isSurrogatePair=!0}],[10,1,function(e,u){s=i(u,u),a=A(e,"unicode",s)}],[10,1,function(e,u){s=i(u,u),a=function(e,u){var r="P"===e[1],n=e.indexOf("="),d=e.slice(3,-1!==n?n:-1),t=void 0,a=-1===n&&x.isGeneralCategoryValue(d),s=-1===n&&x.isBinaryPropertyName(d);if(a)t=d,d="General_Category";else if(s)t=d;else{if(!x.isValidName(d))throw new SyntaxError("Invalid unicode property name: "+d+".");if(t=e.slice(n+1,-1),!x.isValidValue(d,t))throw new SyntaxError("Invalid "+d+" unicode property value: "+t+".")}return R({type:"UnicodeProperty",name:d,value:t,negative:r,shorthand:a,binary:s,canonicalName:x.getCanonicalName(d)||d,canonicalValue:x.getCanonicalValue(t)||t},u)}(e,s)}],[10,1,function(e,u){s=i(u,u),a=A(e,"control",s)}],[10,1,function(e,u){s=i(u,u),a=A(e,"hex",s)}],[10,1,function(e,u){s=i(u,u),a=A(e,"oct",s)}],[10,1,function(e,u){var r,n,d;s=i(u,u),r=e,n=s,d=Number(r.slice(1)),a=d>0&&d<=y?R({type:"Backreference",kind:"number",number:d,reference:d},n):A(r,"decimal",n)}],[10,1,function(e,u){s=i(u,u),a=A(e,"meta",s)}],[10,1,function(e,u){s=i(u,u),a=A(e,"meta",s)}],[10,1,function(e,u){s=i(u,u),a=function(e,u){var r=e.slice(3,-1),n=T(r);if(g.hasOwnProperty(n))return R({type:"Backreference",kind:"name",number:g[n],reference:n,referenceRaw:r},u);var d=null,t=null,a=null,s=null;u&&(d=u.startOffset,t=u.startLine,a=u.endLine,s=u.startColumn);var i=/^[\w$<>]/,f=void 0,o=[A(e.slice(1,2),"simple",d?{startLine:t,endLine:a,startColumn:s,startOffset:d,endOffset:d+=2,endColumn:s+=2}:null)];for(o[0].escaped=!0,e=e.slice(2);e.length>0;){var c=null;(c=e.match(j))||(c=e.match(k))?(d&&(f={startLine:t,endLine:a,startColumn:s,startOffset:d,endOffset:d+=c[0].length,endColumn:s+=c[0].length}),o.push(A(c[0],"unicode",f)),e=e.slice(c[0].length)):(c=e.match(i))&&(d&&(f={startLine:t,endLine:a,startColumn:s,startOffset:d,endOffset:++d,endColumn:++s}),o.push(A(c[0],"simple",f)),e=e.slice(1))}return o}(e,u)}],[11,1,function(e,u){s=i(u,u),a=e}],[11,0],[12,1,function(e,u){s=i(u,u),a=e}],[12,2,function(e,u,r,n){s=i(r,n),e.greedy=!1,a=e}],[13,1,function(e,u){s=i(u,u),a=R({type:"Quantifier",kind:e,greedy:!0},s)}],[13,1,function(e,u){s=i(u,u),a=R({type:"Quantifier",kind:e,greedy:!0},s)}],[13,1,function(e,u){s=i(u,u),a=R({type:"Quantifier",kind:e,greedy:!0},s)}],[13,1,function(e,u){s=i(u,u);var r=B(e);a=R({type:"Quantifier",kind:"Range",from:r[0],to:r[0],greedy:!0},s)}],[13,1,function(e,u){s=i(u,u),a=R({type:"Quantifier",kind:"Range",from:B(e)[0],greedy:!0},s)}],[13,1,function(e,u){s=i(u,u);var r=B(e);a=R({type:"Quantifier",kind:"Range",from:r[0],to:r[1],greedy:!0},s)}],[14,1,function(e,u){s=i(u,u),a=e}],[14,1,function(e,u){s=i(u,u),a=e}],[15,3,function(e,u,r,n,d,f){s=i(n,f);var o=String(e),c=T(o);if(!t.options.allowGroupNameDuplicates&&g.hasOwnProperty(c))throw new SyntaxError('Duplicate of the named group "'+c+'".');g[c]=e.groupNumber,a=R({type:"Group",capturing:!0,name:c,nameRaw:o,number:e.groupNumber,expression:u},s)}],[15,3,function(e,u,r,n,d,t){s=i(n,t),a=R({type:"Group",capturing:!0,number:e.groupNumber,expression:u},s)}],[16,3,function(e,u,r,n,d,t){s=i(n,t),a=R({type:"Group",capturing:!1,expression:u},s)}],[17,3,function(e,u,r,n,d,t){s=i(n,t),a=R({type:"CharacterClass",negative:!0,expressions:u},s)}],[17,3,function(e,u,r,n,d,t){s=i(n,t),a=R({type:"CharacterClass",expressions:u},s)}],[18,0,function(){s=null,a=[]}],[18,1,function(e,u){s=i(u,u),a=e}],[19,1,function(e,u){s=i(u,u),a=[e]}],[19,2,function(e,u,r,n){s=i(r,n),a=[e].concat(u)}],[19,4,function(e,u,r,n,d,t,f,o){s=i(d,o),_(e,r),a=[R({type:"ClassRange",from:e,to:r},N(d,f))],n&&(a=a.concat(n))}],[20,1,function(e,u){s=i(u,u),a=e}],[20,2,function(e,u,r,n){s=i(r,n),a=[e].concat(u)}],[20,4,function(e,u,r,n,d,t,f,o){s=i(d,o),_(e,r),a=[R({type:"ClassRange",from:e,to:r},N(d,f))],n&&(a=a.concat(n))}],[21,1,function(e,u){s=i(u,u),a=A(e,"simple",s)}],[21,1,function(e,u){s=i(u,u),a=e}],[22,1,function(e,u){s=i(u,u),a=e}],[22,1,function(e,u){s=i(u,u),a=A(e,"meta",s)}]],o={SLASH:"23",CHAR:"24",BAR:"25",BOS:"26",EOS:"27",ESC_b:"28",ESC_B:"29",POS_LA_ASSERT:"30",R_PAREN:"31",NEG_LA_ASSERT:"32",POS_LB_ASSERT:"33",NEG_LB_ASSERT:"34",ESC_CHAR:"35",U_CODE_SURROGATE:"36",U_CODE:"37",U_PROP_VALUE_EXP:"38",CTRL_CH:"39",HEX_CODE:"40",OCT_CODE:"41",DEC_CODE:"42",META_CHAR:"43",ANY:"44",NAMED_GROUP_REF:"45",Q_MARK:"46",STAR:"47",PLUS:"48",RANGE_EXACT:"49",RANGE_OPEN:"50",RANGE_CLOSED:"51",NAMED_CAPTURE_GROUP:"52",L_PAREN:"53",NON_CAPTURE_GROUP:"54",NEG_CLASS:"55",R_BRACKET:"56",L_BRACKET:"57",DASH:"58",$:"59"},c=[{0:1,23:"s2"},{59:"acc"},{3:3,4:4,5:5,6:6,23:"r10",24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"s7"},{23:"r6",25:"s12"},{23:"r7",25:"r7",31:"r7"},{7:14,8:15,9:16,10:25,14:27,15:42,16:43,17:26,23:"r9",24:"s28",25:"r9",26:"s17",27:"s18",28:"s19",29:"s20",30:"s21",31:"r9",32:"s22",33:"s23",34:"s24",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",52:"s44",53:"s45",54:"s46",55:"s40",57:"s41"},{1:8,2:9,24:"s10",59:"r3"},{59:"r1"},{24:"s11",59:"r2"},{24:"r4",59:"r4"},{24:"r5",59:"r5"},{5:13,6:6,23:"r10",24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"r8",25:"r8",31:"r8"},{23:"r11",24:"r11",25:"r11",26:"r11",27:"r11",28:"r11",29:"r11",30:"r11",31:"r11",32:"r11",33:"r11",34:"r11",35:"r11",36:"r11",37:"r11",38:"r11",39:"r11",40:"r11",41:"r11",42:"r11",43:"r11",44:"r11",45:"r11",52:"r11",53:"r11",54:"r11",55:"r11",57:"r11"},{23:"r12",24:"r12",25:"r12",26:"r12",27:"r12",28:"r12",29:"r12",30:"r12",31:"r12",32:"r12",33:"r12",34:"r12",35:"r12",36:"r12",37:"r12",38:"r12",39:"r12",40:"r12",41:"r12",42:"r12",43:"r12",44:"r12",45:"r12",52:"r12",53:"r12",54:"r12",55:"r12",57:"r12"},{11:47,12:48,13:49,23:"r38",24:"r38",25:"r38",26:"r38",27:"r38",28:"r38",29:"r38",30:"r38",31:"r38",32:"r38",33:"r38",34:"r38",35:"r38",36:"r38",37:"r38",38:"r38",39:"r38",40:"r38",41:"r38",42:"r38",43:"r38",44:"r38",45:"r38",46:"s52",47:"s50",48:"s51",49:"s53",50:"s54",51:"s55",52:"r38",53:"r38",54:"r38",55:"r38",57:"r38"},{23:"r14",24:"r14",25:"r14",26:"r14",27:"r14",28:"r14",29:"r14",30:"r14",31:"r14",32:"r14",33:"r14",34:"r14",35:"r14",36:"r14",37:"r14",38:"r14",39:"r14",40:"r14",41:"r14",42:"r14",43:"r14",44:"r14",45:"r14",52:"r14",53:"r14",54:"r14",55:"r14",57:"r14"},{23:"r15",24:"r15",25:"r15",26:"r15",27:"r15",28:"r15",29:"r15",30:"r15",31:"r15",32:"r15",33:"r15",34:"r15",35:"r15",36:"r15",37:"r15",38:"r15",39:"r15",40:"r15",41:"r15",42:"r15",43:"r15",44:"r15",45:"r15",52:"r15",53:"r15",54:"r15",55:"r15",57:"r15"},{23:"r16",24:"r16",25:"r16",26:"r16",27:"r16",28:"r16",29:"r16",30:"r16",31:"r16",32:"r16",33:"r16",34:"r16",35:"r16",36:"r16",37:"r16",38:"r16",39:"r16",40:"r16",41:"r16",42:"r16",43:"r16",44:"r16",45:"r16",52:"r16",53:"r16",54:"r16",55:"r16",57:"r16"},{23:"r17",24:"r17",25:"r17",26:"r17",27:"r17",28:"r17",29:"r17",30:"r17",31:"r17",32:"r17",33:"r17",34:"r17",35:"r17",36:"r17",37:"r17",38:"r17",39:"r17",40:"r17",41:"r17",42:"r17",43:"r17",44:"r17",45:"r17",52:"r17",53:"r17",54:"r17",55:"r17",57:"r17"},{4:57,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:59,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:61,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:63,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"r22",24:"r22",25:"r22",26:"r22",27:"r22",28:"r22",29:"r22",30:"r22",31:"r22",32:"r22",33:"r22",34:"r22",35:"r22",36:"r22",37:"r22",38:"r22",39:"r22",40:"r22",41:"r22",42:"r22",43:"r22",44:"r22",45:"r22",46:"r22",47:"r22",48:"r22",49:"r22",50:"r22",51:"r22",52:"r22",53:"r22",54:"r22",55:"r22",57:"r22"},{23:"r23",24:"r23",25:"r23",26:"r23",27:"r23",28:"r23",29:"r23",30:"r23",31:"r23",32:"r23",33:"r23",34:"r23",35:"r23",36:"r23",37:"r23",38:"r23",39:"r23",40:"r23",41:"r23",42:"r23",43:"r23",44:"r23",45:"r23",46:"r23",47:"r23",48:"r23",49:"r23",50:"r23",51:"r23",52:"r23",53:"r23",54:"r23",55:"r23",57:"r23"},{23:"r24",24:"r24",25:"r24",26:"r24",27:"r24",28:"r24",29:"r24",30:"r24",31:"r24",32:"r24",33:"r24",34:"r24",35:"r24",36:"r24",37:"r24",38:"r24",39:"r24",40:"r24",41:"r24",42:"r24",43:"r24",44:"r24",45:"r24",46:"r24",47:"r24",48:"r24",49:"r24",50:"r24",51:"r24",52:"r24",53:"r24",54:"r24",55:"r24",57:"r24"},{23:"r25",24:"r25",25:"r25",26:"r25",27:"r25",28:"r25",29:"r25",30:"r25",31:"r25",32:"r25",33:"r25",34:"r25",35:"r25",36:"r25",37:"r25",38:"r25",39:"r25",40:"r25",41:"r25",42:"r25",43:"r25",44:"r25",45:"r25",46:"r25",47:"r25",48:"r25",49:"r25",50:"r25",51:"r25",52:"r25",53:"r25",54:"r25",55:"r25",56:"r25",57:"r25",58:"r25"},{23:"r26",24:"r26",25:"r26",26:"r26",27:"r26",28:"r26",29:"r26",30:"r26",31:"r26",32:"r26",33:"r26",34:"r26",35:"r26",36:"r26",37:"r26",38:"r26",39:"r26",40:"r26",41:"r26",42:"r26",43:"r26",44:"r26",45:"r26",46:"r26",47:"r26",48:"r26",49:"r26",50:"r26",51:"r26",52:"r26",53:"r26",54:"r26",55:"r26",56:"r26",57:"r26",58:"r26"},{23:"r27",24:"r27",25:"r27",26:"r27",27:"r27",28:"r27",29:"r27",30:"r27",31:"r27",32:"r27",33:"r27",34:"r27",35:"r27",36:"r27",37:"r27",38:"r27",39:"r27",40:"r27",41:"r27",42:"r27",43:"r27",44:"r27",45:"r27",46:"r27",47:"r27",48:"r27",49:"r27",50:"r27",51:"r27",52:"r27",53:"r27",54:"r27",55:"r27",56:"r27",57:"r27",58:"r27"},{23:"r28",24:"r28",25:"r28",26:"r28",27:"r28",28:"r28",29:"r28",30:"r28",31:"r28",32:"r28",33:"r28",34:"r28",35:"r28",36:"r28",37:"r28",38:"r28",39:"r28",40:"r28",41:"r28",42:"r28",43:"r28",44:"r28",45:"r28",46:"r28",47:"r28",48:"r28",49:"r28",50:"r28",51:"r28",52:"r28",53:"r28",54:"r28",55:"r28",56:"r28",57:"r28",58:"r28"},{23:"r29",24:"r29",25:"r29",26:"r29",27:"r29",28:"r29",29:"r29",30:"r29",31:"r29",32:"r29",33:"r29",34:"r29",35:"r29",36:"r29",37:"r29",38:"r29",39:"r29",40:"r29",41:"r29",42:"r29",43:"r29",44:"r29",45:"r29",46:"r29",47:"r29",48:"r29",49:"r29",50:"r29",51:"r29",52:"r29",53:"r29",54:"r29",55:"r29",56:"r29",57:"r29",58:"r29"},{23:"r30",24:"r30",25:"r30",26:"r30",27:"r30",28:"r30",29:"r30",30:"r30",31:"r30",32:"r30",33:"r30",34:"r30",35:"r30",36:"r30",37:"r30",38:"r30",39:"r30",40:"r30",41:"r30",42:"r30",43:"r30",44:"r30",45:"r30",46:"r30",47:"r30",48:"r30",49:"r30",50:"r30",51:"r30",52:"r30",53:"r30",54:"r30",55:"r30",56:"r30",57:"r30",58:"r30"},{23:"r31",24:"r31",25:"r31",26:"r31",27:"r31",28:"r31",29:"r31",30:"r31",31:"r31",32:"r31",33:"r31",34:"r31",35:"r31",36:"r31",37:"r31",38:"r31",39:"r31",40:"r31",41:"r31",42:"r31",43:"r31",44:"r31",45:"r31",46:"r31",47:"r31",48:"r31",49:"r31",50:"r31",51:"r31",52:"r31",53:"r31",54:"r31",55:"r31",56:"r31",57:"r31",58:"r31"},{23:"r32",24:"r32",25:"r32",26:"r32",27:"r32",28:"r32",29:"r32",30:"r32",31:"r32",32:"r32",33:"r32",34:"r32",35:"r32",36:"r32",37:"r32",38:"r32",39:"r32",40:"r32",41:"r32",42:"r32",43:"r32",44:"r32",45:"r32",46:"r32",47:"r32",48:"r32",49:"r32",50:"r32",51:"r32",52:"r32",53:"r32",54:"r32",55:"r32",56:"r32",57:"r32",58:"r32"},{23:"r33",24:"r33",25:"r33",26:"r33",27:"r33",28:"r33",29:"r33",30:"r33",31:"r33",32:"r33",33:"r33",34:"r33",35:"r33",36:"r33",37:"r33",38:"r33",39:"r33",40:"r33",41:"r33",42:"r33",43:"r33",44:"r33",45:"r33",46:"r33",47:"r33",48:"r33",49:"r33",50:"r33",51:"r33",52:"r33",53:"r33",54:"r33",55:"r33",56:"r33",57:"r33",58:"r33"},{23:"r34",24:"r34",25:"r34",26:"r34",27:"r34",28:"r34",29:"r34",30:"r34",31:"r34",32:"r34",33:"r34",34:"r34",35:"r34",36:"r34",37:"r34",38:"r34",39:"r34",40:"r34",41:"r34",42:"r34",43:"r34",44:"r34",45:"r34",46:"r34",47:"r34",48:"r34",49:"r34",50:"r34",51:"r34",52:"r34",53:"r34",54:"r34",55:"r34",56:"r34",57:"r34",58:"r34"},{23:"r35",24:"r35",25:"r35",26:"r35",27:"r35",28:"r35",29:"r35",30:"r35",31:"r35",32:"r35",33:"r35",34:"r35",35:"r35",36:"r35",37:"r35",38:"r35",39:"r35",40:"r35",41:"r35",42:"r35",43:"r35",44:"r35",45:"r35",46:"r35",47:"r35",48:"r35",49:"r35",50:"r35",51:"r35",52:"r35",53:"r35",54:"r35",55:"r35",56:"r35",57:"r35",58:"r35"},{23:"r36",24:"r36",25:"r36",26:"r36",27:"r36",28:"r36",29:"r36",30:"r36",31:"r36",32:"r36",33:"r36",34:"r36",35:"r36",36:"r36",37:"r36",38:"r36",39:"r36",40:"r36",41:"r36",42:"r36",43:"r36",44:"r36",45:"r36",46:"r36",47:"r36",48:"r36",49:"r36",50:"r36",51:"r36",52:"r36",53:"r36",54:"r36",55:"r36",56:"r36",57:"r36",58:"r36"},{10:70,18:65,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{10:70,18:83,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{23:"r47",24:"r47",25:"r47",26:"r47",27:"r47",28:"r47",29:"r47",30:"r47",31:"r47",32:"r47",33:"r47",34:"r47",35:"r47",36:"r47",37:"r47",38:"r47",39:"r47",40:"r47",41:"r47",42:"r47",43:"r47",44:"r47",45:"r47",46:"r47",47:"r47",48:"r47",49:"r47",50:"r47",51:"r47",52:"r47",53:"r47",54:"r47",55:"r47",57:"r47"},{23:"r48",24:"r48",25:"r48",26:"r48",27:"r48",28:"r48",29:"r48",30:"r48",31:"r48",32:"r48",33:"r48",34:"r48",35:"r48",36:"r48",37:"r48",38:"r48",39:"r48",40:"r48",41:"r48",42:"r48",43:"r48",44:"r48",45:"r48",46:"r48",47:"r48",48:"r48",49:"r48",50:"r48",51:"r48",52:"r48",53:"r48",54:"r48",55:"r48",57:"r48"},{4:85,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:87,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:89,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"r13",24:"r13",25:"r13",26:"r13",27:"r13",28:"r13",29:"r13",30:"r13",31:"r13",32:"r13",33:"r13",34:"r13",35:"r13",36:"r13",37:"r13",38:"r13",39:"r13",40:"r13",41:"r13",42:"r13",43:"r13",44:"r13",45:"r13",52:"r13",53:"r13",54:"r13",55:"r13",57:"r13"},{23:"r37",24:"r37",25:"r37",26:"r37",27:"r37",28:"r37",29:"r37",30:"r37",31:"r37",32:"r37",33:"r37",34:"r37",35:"r37",36:"r37",37:"r37",38:"r37",39:"r37",40:"r37",41:"r37",42:"r37",43:"r37",44:"r37",45:"r37",52:"r37",53:"r37",54:"r37",55:"r37",57:"r37"},{23:"r39",24:"r39",25:"r39",26:"r39",27:"r39",28:"r39",29:"r39",30:"r39",31:"r39",32:"r39",33:"r39",34:"r39",35:"r39",36:"r39",37:"r39",38:"r39",39:"r39",40:"r39",41:"r39",42:"r39",43:"r39",44:"r39",45:"r39",46:"s56",52:"r39",53:"r39",54:"r39",55:"r39",57:"r39"},{23:"r41",24:"r41",25:"r41",26:"r41",27:"r41",28:"r41",29:"r41",30:"r41",31:"r41",32:"r41",33:"r41",34:"r41",35:"r41",36:"r41",37:"r41",38:"r41",39:"r41",40:"r41",41:"r41",42:"r41",43:"r41",44:"r41",45:"r41",46:"r41",52:"r41",53:"r41",54:"r41",55:"r41",57:"r41"},{23:"r42",24:"r42",25:"r42",26:"r42",27:"r42",28:"r42",29:"r42",30:"r42",31:"r42",32:"r42",33:"r42",34:"r42",35:"r42",36:"r42",37:"r42",38:"r42",39:"r42",40:"r42",41:"r42",42:"r42",43:"r42",44:"r42",45:"r42",46:"r42",52:"r42",53:"r42",54:"r42",55:"r42",57:"r42"},{23:"r43",24:"r43",25:"r43",26:"r43",27:"r43",28:"r43",29:"r43",30:"r43",31:"r43",32:"r43",33:"r43",34:"r43",35:"r43",36:"r43",37:"r43",38:"r43",39:"r43",40:"r43",41:"r43",42:"r43",43:"r43",44:"r43",45:"r43",46:"r43",52:"r43",53:"r43",54:"r43",55:"r43",57:"r43"},{23:"r44",24:"r44",25:"r44",26:"r44",27:"r44",28:"r44",29:"r44",30:"r44",31:"r44",32:"r44",33:"r44",34:"r44",35:"r44",36:"r44",37:"r44",38:"r44",39:"r44",40:"r44",41:"r44",42:"r44",43:"r44",44:"r44",45:"r44",46:"r44",52:"r44",53:"r44",54:"r44",55:"r44",57:"r44"},{23:"r45",24:"r45",25:"r45",26:"r45",27:"r45",28:"r45",29:"r45",30:"r45",31:"r45",32:"r45",33:"r45",34:"r45",35:"r45",36:"r45",37:"r45",38:"r45",39:"r45",40:"r45",41:"r45",42:"r45",43:"r45",44:"r45",45:"r45",46:"r45",52:"r45",53:"r45",54:"r45",55:"r45",57:"r45"},{23:"r46",24:"r46",25:"r46",26:"r46",27:"r46",28:"r46",29:"r46",30:"r46",31:"r46",32:"r46",33:"r46",34:"r46",35:"r46",36:"r46",37:"r46",38:"r46",39:"r46",40:"r46",41:"r46",42:"r46",43:"r46",44:"r46",45:"r46",46:"r46",52:"r46",53:"r46",54:"r46",55:"r46",57:"r46"},{23:"r40",24:"r40",25:"r40",26:"r40",27:"r40",28:"r40",29:"r40",30:"r40",31:"r40",32:"r40",33:"r40",34:"r40",35:"r40",36:"r40",37:"r40",38:"r40",39:"r40",40:"r40",41:"r40",42:"r40",43:"r40",44:"r40",45:"r40",52:"r40",53:"r40",54:"r40",55:"r40",57:"r40"},{25:"s12",31:"s58"},{23:"r18",24:"r18",25:"r18",26:"r18",27:"r18",28:"r18",29:"r18",30:"r18",31:"r18",32:"r18",33:"r18",34:"r18",35:"r18",36:"r18",37:"r18",38:"r18",39:"r18",40:"r18",41:"r18",42:"r18",43:"r18",44:"r18",45:"r18",52:"r18",53:"r18",54:"r18",55:"r18",57:"r18"},{25:"s12",31:"s60"},{23:"r19",24:"r19",25:"r19",26:"r19",27:"r19",28:"r19",29:"r19",30:"r19",31:"r19",32:"r19",33:"r19",34:"r19",35:"r19",36:"r19",37:"r19",38:"r19",39:"r19",40:"r19",41:"r19",42:"r19",43:"r19",44:"r19",45:"r19",52:"r19",53:"r19",54:"r19",55:"r19",57:"r19"},{25:"s12",31:"s62"},{23:"r20",24:"r20",25:"r20",26:"r20",27:"r20",28:"r20",29:"r20",30:"r20",31:"r20",32:"r20",33:"r20",34:"r20",35:"r20",36:"r20",37:"r20",38:"r20",39:"r20",40:"r20",41:"r20",42:"r20",43:"r20",44:"r20",45:"r20",52:"r20",53:"r20",54:"r20",55:"r20",57:"r20"},{25:"s12",31:"s64"},{23:"r21",24:"r21",25:"r21",26:"r21",27:"r21",28:"r21",29:"r21",30:"r21",31:"r21",32:"r21",33:"r21",34:"r21",35:"r21",36:"r21",37:"r21",38:"r21",39:"r21",40:"r21",41:"r21",42:"r21",43:"r21",44:"r21",45:"r21",52:"r21",53:"r21",54:"r21",55:"r21",57:"r21"},{56:"s72"},{56:"r55"},{10:70,20:73,21:75,22:76,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r56",58:"s74"},{24:"r62",28:"r62",35:"r62",36:"r62",37:"r62",38:"r62",39:"r62",40:"r62",41:"r62",42:"r62",43:"r62",44:"r62",45:"r62",56:"r62",58:"r62"},{24:"r63",28:"r63",35:"r63",36:"r63",37:"r63",38:"r63",39:"r63",40:"r63",41:"r63",42:"r63",43:"r63",44:"r63",45:"r63",56:"r63",58:"r63"},{24:"r64",28:"r64",35:"r64",36:"r64",37:"r64",38:"r64",39:"r64",40:"r64",41:"r64",42:"r64",43:"r64",44:"r64",45:"r64",56:"r64",58:"r64"},{24:"r65",28:"r65",35:"r65",36:"r65",37:"r65",38:"r65",39:"r65",40:"r65",41:"r65",42:"r65",43:"r65",44:"r65",45:"r65",56:"r65",58:"r65"},{23:"r52",24:"r52",25:"r52",26:"r52",27:"r52",28:"r52",29:"r52",30:"r52",31:"r52",32:"r52",33:"r52",34:"r52",35:"r52",36:"r52",37:"r52",38:"r52",39:"r52",40:"r52",41:"r52",42:"r52",43:"r52",44:"r52",45:"r52",46:"r52",47:"r52",48:"r52",49:"r52",50:"r52",51:"r52",52:"r52",53:"r52",54:"r52",55:"r52",57:"r52"},{56:"r57"},{10:70,21:77,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r62",58:"s68"},{56:"r59"},{10:70,20:79,21:75,22:76,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r63",58:"s80"},{10:70,18:78,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{56:"r58"},{56:"r60"},{10:70,21:81,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r62",58:"s68"},{10:70,18:82,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{56:"r61"},{56:"s84"},{23:"r53",24:"r53",25:"r53",26:"r53",27:"r53",28:"r53",29:"r53",30:"r53",31:"r53",32:"r53",33:"r53",34:"r53",35:"r53",36:"r53",37:"r53",38:"r53",39:"r53",40:"r53",41:"r53",42:"r53",43:"r53",44:"r53",45:"r53",46:"r53",47:"r53",48:"r53",49:"r53",50:"r53",51:"r53",52:"r53",53:"r53",54:"r53",55:"r53",57:"r53"},{25:"s12",31:"s86"},{23:"r49",24:"r49",25:"r49",26:"r49",27:"r49",28:"r49",29:"r49",30:"r49",31:"r49",32:"r49",33:"r49",34:"r49",35:"r49",36:"r49",37:"r49",38:"r49",39:"r49",40:"r49",41:"r49",42:"r49",43:"r49",44:"r49",45:"r49",46:"r49",47:"r49",48:"r49",49:"r49",50:"r49",51:"r49",52:"r49",53:"r49",54:"r49",55:"r49",57:"r49"},{25:"s12",31:"s88"},{23:"r50",24:"r50",25:"r50",26:"r50",27:"r50",28:"r50",29:"r50",30:"r50",31:"r50",32:"r50",33:"r50",34:"r50",35:"r50",36:"r50",37:"r50",38:"r50",39:"r50",40:"r50",41:"r50",42:"r50",43:"r50",44:"r50",45:"r50",46:"r50",47:"r50",48:"r50",49:"r50",50:"r50",51:"r50",52:"r50",53:"r50",54:"r50",55:"r50",57:"r50"},{25:"s12",31:"s90"},{23:"r51",24:"r51",25:"r51",26:"r51",27:"r51",28:"r51",29:"r51",30:"r51",31:"r51",32:"r51",33:"r51",34:"r51",35:"r51",36:"r51",37:"r51",38:"r51",39:"r51",40:"r51",41:"r51",42:"r51",43:"r51",44:"r51",45:"r51",46:"r51",47:"r51",48:"r51",49:"r51",50:"r51",51:"r51",52:"r51",53:"r51",54:"r51",55:"r51",57:"r51"}],l=[],v=void 0,b=[[/^#[^\n]+/,function(){}],[/^\s+/,function(){}],[/^-/,function(){return"DASH"}],[/^\//,function(){return"CHAR"}],[/^#/,function(){return"CHAR"}],[/^\|/,function(){return"CHAR"}],[/^\./,function(){return"CHAR"}],[/^\{/,function(){return"CHAR"}],[/^\{\d+\}/,function(){return"RANGE_EXACT"}],[/^\{\d+,\}/,function(){return"RANGE_OPEN"}],[/^\{\d+,\d+\}/,function(){return"RANGE_CLOSED"}],[/^\\k<(([\u0041-\u005a\u0061-\u007a\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e-\u066f\u0671-\u06d3\u06d5\u06e5-\u06e6\u06ee-\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4-\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0-\u0ae1\u0af9\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60-\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e46\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2-\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065-\u1066\u106e-\u1070\u1075-\u1081\u108e\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\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5-\u1cf6\u1cfa\u1d00-\u1dbf\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\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\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\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a-\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\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]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf75\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\ude10-\ude13\ude15-\ude17\ude19-\ude35\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd23\udf00-\udf1c\udf27\udf30-\udf45\udfe0-\udff6]|\ud804[\udc03-\udc37\udc83-\udcaf\udcd0-\udce8\udd03-\udd26\udd44\udd50-\udd72\udd76\udd83-\uddb2\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude2b\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udede\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3d\udf50\udf5d-\udf61]|\ud805[\udc00-\udc34\udc47-\udc4a\udc5f\udc80-\udcaf\udcc4-\udcc5\udcc7\udd80-\uddae\uddd8-\udddb\ude00-\ude2f\ude44\ude80-\udeaa\udeb8\udf00-\udf1a]|\ud806[\udc00-\udc2b\udca0-\udcdf\udcff\udda0-\udda7\uddaa-\uddd0\udde1\udde3\ude00\ude0b-\ude32\ude3a\ude50\ude5c-\ude89\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc2e\udc40\udc72-\udc8f\udd00-\udd06\udd08-\udd09\udd0b-\udd30\udd46\udd60-\udd65\udd67-\udd68\udd6a-\udd89\udd98\udee0-\udef2]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf2f\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf50\udf93-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99]|\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[\udd00-\udd2c\udd37-\udd3d\udd4e\udec0-\udeeb]|\ud83a[\udc00-\udcc4\udd00-\udd43\udd4b]|\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]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\}))(([\u0030-\u0039\u0041-\u005a\u005f\u0061-\u007a\u00aa\u00b5\u00b7\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u05d0-\u05ea\u05ef-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u07fd\u0800-\u082d\u0840-\u085b\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u08d3-\u08e1\u08e3-\u0963\u0966-\u096f\u0971-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09f1\u09fc\u09fe\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\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0af9-\u0aff\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-\u0b6f\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-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c60-\u0c63\u0c66-\u0c6f\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\u0d00-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d54-\u0d57\u0d5f-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18-\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\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\u135d-\u135f\u1369-\u1371\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17d3\u17d7\u17dc-\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1ab0-\u1abd\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1cd0-\u1cd2\u1cd4-\u1cfa\u1d00-\u1df9\u1dfb-\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\u203f-\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua827\ua840-\ua873\ua880-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua8fd-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\ua9e0-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabea\uabec-\uabed\uabf0-\uabf9\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\ufe00-\ufe0f\ufe20-\ufe2f\ufe33-\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\uddfd\ude80-\ude9c\udea0-\uded0\udee0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf7a\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udca0-\udca9\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-\ude35\ude38-\ude3a\ude3f\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee6\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd27\udd30-\udd39\udf00-\udf1c\udf27\udf30-\udf50\udfe0-\udff6]|\ud804[\udc00-\udc46\udc66-\udc6f\udc7f-\udcba\udcd0-\udce8\udcf0-\udcf9\udd00-\udd34\udd36-\udd3f\udd44-\udd46\udd50-\udd73\udd76\udd80-\uddc4\uddc9-\uddcc\uddd0-\uddda\udddc\ude00-\ude11\ude13-\ude37\ude3e\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udeea\udef0-\udef9\udf00-\udf03\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3b-\udf44\udf47-\udf48\udf4b-\udf4d\udf50\udf57\udf5d-\udf63\udf66-\udf6c\udf70-\udf74]|\ud805[\udc00-\udc4a\udc50-\udc59\udc5e-\udc5f\udc80-\udcc5\udcc7\udcd0-\udcd9\udd80-\uddb5\uddb8-\uddc0\uddd8-\udddd\ude00-\ude40\ude44\ude50-\ude59\ude80-\udeb8\udec0-\udec9\udf00-\udf1a\udf1d-\udf2b\udf30-\udf39]|\ud806[\udc00-\udc3a\udca0-\udce9\udcff\udda0-\udda7\uddaa-\uddd7\uddda-\udde1\udde3-\udde4\ude00-\ude3e\ude47\ude50-\ude99\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc36\udc38-\udc40\udc50-\udc59\udc72-\udc8f\udc92-\udca7\udca9-\udcb6\udd00-\udd06\udd08-\udd09\udd0b-\udd36\udd3a\udd3c-\udd3d\udd3f-\udd47\udd50-\udd59\udd60-\udd65\udd67-\udd68\udd6a-\udd8e\udd90-\udd91\udd93-\udd98\udda0-\udda9\udee0-\udef6]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\ude60-\ude69\uded0-\udeed\udef0-\udef4\udf00-\udf36\udf40-\udf43\udf50-\udf59\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf4f-\udf87\udf8f-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99\udc9d-\udc9e]|\ud834[\udd65-\udd69\udd6d-\udd72\udd7b-\udd82\udd85-\udd8b\uddaa-\uddad\ude42-\ude44]|\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\udfce-\udfff]|\ud836[\ude00-\ude36\ude3b-\ude6c\ude75\ude84\ude9b-\ude9f\udea1-\udeaf]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23-\udc24\udc26-\udc2a\udd00-\udd2c\udd30-\udd3d\udd40-\udd49\udd4e\udec0-\udef9]|\ud83a[\udc00-\udcc4\udcd0-\udcd6\udd00-\udd4b\udd50-\udd59]|\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]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d]|\udb40[\udd00-\uddef])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\})|[\u200c\u200d])*>/,function(){return P(d.slice(3,-1),this.getCurrentState()),"NAMED_GROUP_REF"}],[/^\\b/,function(){return"ESC_b"}],[/^\\B/,function(){return"ESC_B"}],[/^\\c[a-zA-Z]/,function(){return"CTRL_CH"}],[/^\\0\d{1,2}/,function(){return"OCT_CODE"}],[/^\\0/,function(){return"DEC_CODE"}],[/^\\\d{1,3}/,function(){return"DEC_CODE"}],[/^\\u[dD][89abAB][0-9a-fA-F]{2}\\u[dD][c-fC-F][0-9a-fA-F]{2}/,function(){return"U_CODE_SURROGATE"}],[/^\\u\{[0-9a-fA-F]{1,}\}/,function(){return"U_CODE"}],[/^\\u[0-9a-fA-F]{4}/,function(){return"U_CODE"}],[/^\\[pP]\{\w+(?:=\w+)?\}/,function(){return"U_PROP_VALUE_EXP"}],[/^\\x[0-9a-fA-F]{2}/,function(){return"HEX_CODE"}],[/^\\[tnrdDsSwWvf]/,function(){return"META_CHAR"}],[/^\\\//,function(){return"ESC_CHAR"}],[/^\\[ #]/,function(){return"ESC_CHAR"}],[/^\\[\^\$\.\*\+\?\(\)\\\[\]\{\}\|\/]/,function(){return"ESC_CHAR"}],[/^\\[^*?+\[()\\|]/,function(){var e=this.getCurrentState();if("u_class"===e&&"\\-"===d)return"ESC_CHAR";if("u"===e||"xu"===e||"u_class"===e)throw new SyntaxError("invalid Unicode escape "+d);return"ESC_CHAR"}],[/^\(/,function(){return"CHAR"}],[/^\)/,function(){return"CHAR"}],[/^\(\?=/,function(){return"POS_LA_ASSERT"}],[/^\(\?!/,function(){return"NEG_LA_ASSERT"}],[/^\(\?<=/,function(){return"POS_LB_ASSERT"}],[/^\(\?<!/,function(){return"NEG_LB_ASSERT"}],[/^\(\?:/,function(){return"NON_CAPTURE_GROUP"}],[/^\(\?<(([\u0041-\u005a\u0061-\u007a\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e-\u066f\u0671-\u06d3\u06d5\u06e5-\u06e6\u06ee-\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4-\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0-\u0ae1\u0af9\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60-\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e46\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2-\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065-\u1066\u106e-\u1070\u1075-\u1081\u108e\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\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5-\u1cf6\u1cfa\u1d00-\u1dbf\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\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\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\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a-\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\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]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf75\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\ude10-\ude13\ude15-\ude17\ude19-\ude35\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd23\udf00-\udf1c\udf27\udf30-\udf45\udfe0-\udff6]|\ud804[\udc03-\udc37\udc83-\udcaf\udcd0-\udce8\udd03-\udd26\udd44\udd50-\udd72\udd76\udd83-\uddb2\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude2b\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udede\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3d\udf50\udf5d-\udf61]|\ud805[\udc00-\udc34\udc47-\udc4a\udc5f\udc80-\udcaf\udcc4-\udcc5\udcc7\udd80-\uddae\uddd8-\udddb\ude00-\ude2f\ude44\ude80-\udeaa\udeb8\udf00-\udf1a]|\ud806[\udc00-\udc2b\udca0-\udcdf\udcff\udda0-\udda7\uddaa-\uddd0\udde1\udde3\ude00\ude0b-\ude32\ude3a\ude50\ude5c-\ude89\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc2e\udc40\udc72-\udc8f\udd00-\udd06\udd08-\udd09\udd0b-\udd30\udd46\udd60-\udd65\udd67-\udd68\udd6a-\udd89\udd98\udee0-\udef2]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf2f\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf50\udf93-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99]|\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[\udd00-\udd2c\udd37-\udd3d\udd4e\udec0-\udeeb]|\ud83a[\udc00-\udcc4\udd00-\udd43\udd4b]|\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]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\}))(([\u0030-\u0039\u0041-\u005a\u005f\u0061-\u007a\u00aa\u00b5\u00b7\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u05d0-\u05ea\u05ef-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u07fd\u0800-\u082d\u0840-\u085b\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u08d3-\u08e1\u08e3-\u0963\u0966-\u096f\u0971-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09f1\u09fc\u09fe\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\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0af9-\u0aff\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-\u0b6f\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-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c60-\u0c63\u0c66-\u0c6f\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\u0d00-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d54-\u0d57\u0d5f-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18-\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\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\u135d-\u135f\u1369-\u1371\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17d3\u17d7\u17dc-\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1ab0-\u1abd\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1cd0-\u1cd2\u1cd4-\u1cfa\u1d00-\u1df9\u1dfb-\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\u203f-\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua827\ua840-\ua873\ua880-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua8fd-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\ua9e0-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabea\uabec-\uabed\uabf0-\uabf9\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\ufe00-\ufe0f\ufe20-\ufe2f\ufe33-\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\uddfd\ude80-\ude9c\udea0-\uded0\udee0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf7a\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udca0-\udca9\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-\ude35\ude38-\ude3a\ude3f\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee6\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd27\udd30-\udd39\udf00-\udf1c\udf27\udf30-\udf50\udfe0-\udff6]|\ud804[\udc00-\udc46\udc66-\udc6f\udc7f-\udcba\udcd0-\udce8\udcf0-\udcf9\udd00-\udd34\udd36-\udd3f\udd44-\udd46\udd50-\udd73\udd76\udd80-\uddc4\uddc9-\uddcc\uddd0-\uddda\udddc\ude00-\ude11\ude13-\ude37\ude3e\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udeea\udef0-\udef9\udf00-\udf03\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3b-\udf44\udf47-\udf48\udf4b-\udf4d\udf50\udf57\udf5d-\udf63\udf66-\udf6c\udf70-\udf74]|\ud805[\udc00-\udc4a\udc50-\udc59\udc5e-\udc5f\udc80-\udcc5\udcc7\udcd0-\udcd9\udd80-\uddb5\uddb8-\uddc0\uddd8-\udddd\ude00-\ude40\ude44\ude50-\ude59\ude80-\udeb8\udec0-\udec9\udf00-\udf1a\udf1d-\udf2b\udf30-\udf39]|\ud806[\udc00-\udc3a\udca0-\udce9\udcff\udda0-\udda7\uddaa-\uddd7\uddda-\udde1\udde3-\udde4\ude00-\ude3e\ude47\ude50-\ude99\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc36\udc38-\udc40\udc50-\udc59\udc72-\udc8f\udc92-\udca7\udca9-\udcb6\udd00-\udd06\udd08-\udd09\udd0b-\udd36\udd3a\udd3c-\udd3d\udd3f-\udd47\udd50-\udd59\udd60-\udd65\udd67-\udd68\udd6a-\udd8e\udd90-\udd91\udd93-\udd98\udda0-\udda9\udee0-\udef6]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\ude60-\ude69\uded0-\udeed\udef0-\udef4\udf00-\udf36\udf40-\udf43\udf50-\udf59\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf4f-\udf87\udf8f-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99\udc9d-\udc9e]|\ud834[\udd65-\udd69\udd6d-\udd72\udd7b-\udd82\udd85-\udd8b\uddaa-\uddad\ude42-\ude44]|\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\udfce-\udfff]|\ud836[\ude00-\ude36\ude3b-\ude6c\ude75\ude84\ude9b-\ude9f\udea1-\udeaf]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23-\udc24\udc26-\udc2a\udd00-\udd2c\udd30-\udd3d\udd40-\udd49\udd4e\udec0-\udef9]|\ud83a[\udc00-\udcc4\udcd0-\udcd6\udd00-\udd4b\udd50-\udd59]|\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]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d]|\udb40[\udd00-\uddef])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\})|[\u200c\u200d])*>/,function(){return P(d=d.slice(3,-1),this.getCurrentState()),"NAMED_CAPTURE_GROUP"}],[/^\(/,function(){return"L_PAREN"}],[/^\)/,function(){return"R_PAREN"}],[/^[*?+[^$]/,function(){return"CHAR"}],[/^\\\]/,function(){return"ESC_CHAR"}],[/^\]/,function(){return this.popState(),"R_BRACKET"}],[/^\^/,function(){return"BOS"}],[/^\$/,function(){return"EOS"}],[/^\*/,function(){return"STAR"}],[/^\?/,function(){return"Q_MARK"}],[/^\+/,function(){return"PLUS"}],[/^\|/,function(){return"BAR"}],[/^\./,function(){return"ANY"}],[/^\//,function(){return"SLASH"}],[/^[^*?+\[()\\|]/,function(){return"CHAR"}],[/^\[\^/,function(){var e=this.getCurrentState();return this.pushState("u"===e||"xu"===e?"u_class":"class"),"NEG_CLASS"}],[/^\[/,function(){var e=this.getCurrentState();return this.pushState("u"===e||"xu"===e?"u_class":"class"),"L_BRACKET"}]],p={INITIAL:[8,9,10,11,12,13,14,15,16,17,20,22,23,24,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],u:[8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],xu:[0,1,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],x:[0,1,8,9,10,11,12,13,14,15,16,17,20,22,23,24,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],u_class:[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],class:[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,20,22,23,24,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51]},h={type:"$",value:""};v={initString:function(e){return this._string=e,this._cursor=0,this._states=["INITIAL"],this._tokensQueue=[],this._currentLine=1,this._currentColumn=0,this._currentLineBeginOffset=0,this._tokenStartOffset=0,this._tokenEndOffset=0,this._tokenStartLine=1,this._tokenEndLine=1,this._tokenStartColumn=0,this._tokenEndColumn=0,this},getStates:function(){return this._states},getCurrentState:function(){return this._states[this._states.length-1]},pushState:function(e){this._states.push(e)},begin:function(e){this.pushState(e)},popState:function(){return this._states.length>1?this._states.pop():this._states[0]},getNextToken:function(){if(this._tokensQueue.length>0)return this.onToken(this._toToken(this._tokensQueue.shift()));if(!this.hasMoreTokens())return this.onToken(h);for(var e=this._string.slice(this._cursor),u=p[this.getCurrentState()],r=0;r<u.length;r++){var t=u[r],a=b[t],s=this._match(e,a[0]);if(""===e&&""===s&&this._cursor++,null!==s){(d=s).length;var i=a[1].call(this);if(!i)return this.getNextToken();if(Array.isArray(i)){var f,o=i.slice(1);i=i[0],o.length>0&&(f=this._tokensQueue).unshift.apply(f,n(o))}return this.onToken(this._toToken(i,d))}}if(this.isEOF())return this._cursor++,h;this.throwUnexpectedToken(e[0],this._currentLine,this._currentColumn)},throwUnexpectedToken:function(e,u,r){var n=this._string.split("\n")[u-1],d="";throw n&&(d="\n\n"+n+"\n"+" ".repeat(r)+"^\n"),new SyntaxError(d+'Unexpected token: "'+e+'" at '+u+":"+r+".")},getCursor:function(){return this._cursor},getCurrentLine:function(){return this._currentLine},getCurrentColumn:function(){return this._currentColumn},_captureLocation:function(e){var u=/\n/g;this._tokenStartOffset=this._cursor,this._tokenStartLine=this._currentLine,this._tokenStartColumn=this._tokenStartOffset-this._currentLineBeginOffset;for(var r=void 0;null!==(r=u.exec(e));)this._currentLine++,this._currentLineBeginOffset=this._tokenStartOffset+r.index+1;this._tokenEndOffset=this._cursor+e.length,this._tokenEndLine=this._currentLine,this._tokenEndColumn=this._currentColumn=this._tokenEndOffset-this._currentLineBeginOffset},_toToken:function(e){return{type:e,value:arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",startOffset:this._tokenStartOffset,endOffset:this._tokenEndOffset,startLine:this._tokenStartLine,endLine:this._tokenEndLine,startColumn:this._tokenStartColumn,endColumn:this._tokenEndColumn}},isEOF:function(){return this._cursor===this._string.length},hasMoreTokens:function(){return this._cursor<=this._string.length},_match:function(e,u){var r=e.match(u);return r?(this._captureLocation(r[0]),this._cursor+=r[0].length,r[0]):null},onToken:function(e){return e}},t.lexer=v,t.tokenizer=v,t.options={captureLocations:!0};var m={setOptions:function(e){return t.options=e,this},getOptions:function(){return t.options},parse:function(e,u){if(!v)throw new Error("Tokenizer instance wasn't specified.");v.initString(e);var r=t.options;u&&(t.options=Object.assign({},t.options,u)),m.onParseBegin(e,v,t.options),l.length=0,l.push(0);var i=v.getNextToken(),b=null;do{i||(t.options=r,L());var p=l[l.length-1],h=o[i.type];c[p].hasOwnProperty(h)||(t.options=r,D(i));var y=c[p][h];if("s"===y[0]){var g=null;t.options.captureLocations&&(g={startOffset:i.startOffset,endOffset:i.endOffset,startLine:i.startLine,endLine:i.endLine,startColumn:i.startColumn,endColumn:i.endColumn}),b=this.onShift(i),l.push({symbol:o[b.type],semanticValue:b.value,loc:g},Number(y.slice(1))),i=v.getNextToken()}else if("r"===y[0]){var C=y.slice(1),B=f[C],_="function"==typeof B[2],x=_?[]:null,A=_&&t.options.captureLocations?[]:null;if(0!==B[1])for(var S=B[1];S-- >0;){l.pop();var w=l.pop();_&&(x.unshift(w.semanticValue),A&&A.unshift(w.loc))}var j={symbol:B[0]};if(_){d=b?b.value:null,b&&b.value.length;var k=null!==A?x.concat(A):x;B[2].apply(B,n(k)),j.semanticValue=a,A&&(j.loc=s)}var E=l[l.length-1],P=B[0];l.push(j,c[E][P])}else if("acc"===y){l.pop();var O=l.pop();return(1!==l.length||0!==l[0]||v.hasMoreTokens())&&(t.options=r,D(i)),O.hasOwnProperty("semanticValue")?(t.options=r,m.onParseEnd(O.semanticValue),O.semanticValue):(m.onParseEnd(),t.options=r,!0)}}while(v.hasMoreTokens()||l.length>1)},setTokenizer:function(e){return v=e,m},getTokenizer:function(){return v},onParseBegin:function(e,u,r){},onParseEnd:function(e){},onShift:function(e){return e}},y=0,g={},C="";function B(e){var u=e.match(/\d+/g).map(Number);if(Number.isFinite(u[1])&&u[1]<u[0])throw new SyntaxError("Numbers out of order in "+e+" quantifier");return u}function _(e,u){if("control"===e.kind||"control"===u.kind||!isNaN(e.codePoint)&&!isNaN(u.codePoint)&&e.codePoint>u.codePoint)throw new SyntaxError("Range "+e.value+"-"+u.value+" out of order in character class")}m.onParseBegin=function(e,u){C=e,y=0,g={};var r=e.lastIndexOf("/"),n=e.slice(r);n.includes("x")&&n.includes("u")?u.pushState("xu"):(n.includes("x")&&u.pushState("x"),n.includes("u")&&u.pushState("u"))},m.onShift=function(e){return"L_PAREN"!==e.type&&"NAMED_CAPTURE_GROUP"!==e.type||(e.value=new String(e.value),e.value.groupNumber=++y),e};var x=r(24876);function A(e,u,r){var n=void 0,d=void 0;switch(u){case"decimal":d=Number(e.slice(1)),n=String.fromCodePoint(d);break;case"oct":d=parseInt(e.slice(1),8),n=String.fromCodePoint(d);break;case"hex":case"unicode":if(e.lastIndexOf("\\u")>0){var t=function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,u){var r=[],n=!0,d=!1,t=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!u||r.length!==u);n=!0);}catch(e){d=!0,t=e}finally{try{!n&&s.return&&s.return()}finally{if(d)throw t}}return r}(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")}(e.split("\\u").slice(1),2),a=t[0],s=t[1];d=1024*((a=parseInt(a,16))-55296)+((s=parseInt(s,16))-56320)+65536,n=String.fromCodePoint(d)}else{var i=e.slice(2).replace("{","");if((d=parseInt(i,16))>1114111)throw new SyntaxError("Bad character escape sequence: "+e);n=String.fromCodePoint(d)}break;case"meta":switch(e){case"\\t":d=(n="\t").codePointAt(0);break;case"\\n":d=(n="\n").codePointAt(0);break;case"\\r":d=(n="\r").codePointAt(0);break;case"\\v":d=(n="\v").codePointAt(0);break;case"\\f":d=(n="\f").codePointAt(0);break;case"\\b":d=(n="\b").codePointAt(0);case"\\0":n="\0",d=0;case".":n=".",d=NaN;break;default:d=NaN}break;case"simple":d=(n=e).codePointAt(0)}return R({type:"Char",value:e,kind:u,symbol:n,codePoint:d},r)}var S="gimsuxy";function w(e){var u=new Set,r=!0,n=!1,d=void 0;try{for(var t,a=e[Symbol.iterator]();!(r=(t=a.next()).done);r=!0){var s=t.value;if(u.has(s)||!S.includes(s))throw new SyntaxError("Invalid flags: "+e);u.add(s)}}catch(e){n=!0,d=e}finally{try{!r&&a.return&&a.return()}finally{if(n)throw d}}return e.split("").sort().join("")}var j=/^\\u[0-9a-fA-F]{4}/,k=/^\\u\{[0-9a-fA-F]{1,}\}/,E=/\\u\{[0-9a-fA-F]{1,}\}/;function P(e,u){if(E.test(e)&&"u"!==u&&"xu"!==u&&"u_class"!==u)throw new SyntaxError('invalid group Unicode name "'+e+'", use `u` flag.');return e}var O=/\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\})/;function T(e){return e.replace(new RegExp(O,"g"),(function(e,u,r,n,d,t,a){return u?String.fromCodePoint(parseInt(u,16),parseInt(r,16)):n?String.fromCodePoint(parseInt(n,16)):d?String.fromCodePoint(parseInt(d,16)):t?String.fromCodePoint(parseInt(t,16)):a?String.fromCodePoint(parseInt(a,16)):e}))}function R(e,u){return t.options.captureLocations&&(e.loc={source:C.slice(u.startOffset,u.endOffset),start:{line:u.startLine,column:u.startColumn,offset:u.startOffset},end:{line:u.endLine,column:u.endColumn,offset:u.endOffset}}),e}function N(e,u){return t.options.captureLocations?{startOffset:e.startOffset,endOffset:u.endOffset,startLine:e.startLine,endLine:u.endLine,startColumn:e.startColumn,endColumn:u.endColumn}:null}function D(e){"$"===e.type&&L(),v.throwUnexpectedToken(e.value,e.startLine,e.startColumn)}function L(){!function(e){throw new SyntaxError("Unexpected end of input.")}()}e.exports=m},37112:function(e,u,r){"use strict";var n=r(42669),d=n.parse.bind(n);n.parse=function(e,u){return d(""+e,u)},n.setOptions({captureLocations:!1}),e.exports=n},24876:function(e){"use strict";var u={General_Category:"gc",Script:"sc",Script_Extensions:"scx"},r=f(u),n={ASCII:"ASCII",ASCII_Hex_Digit:"AHex",Alphabetic:"Alpha",Any:"Any",Assigned:"Assigned",Bidi_Control:"Bidi_C",Bidi_Mirrored:"Bidi_M",Case_Ignorable:"CI",Cased:"Cased",Changes_When_Casefolded:"CWCF",Changes_When_Casemapped:"CWCM",Changes_When_Lowercased:"CWL",Changes_When_NFKC_Casefolded:"CWKCF",Changes_When_Titlecased:"CWT",Changes_When_Uppercased:"CWU",Dash:"Dash",Default_Ignorable_Code_Point:"DI",Deprecated:"Dep",Diacritic:"Dia",Emoji:"Emoji",Emoji_Component:"Emoji_Component",Emoji_Modifier:"Emoji_Modifier",Emoji_Modifier_Base:"Emoji_Modifier_Base",Emoji_Presentation:"Emoji_Presentation",Extended_Pictographic:"Extended_Pictographic",Extender:"Ext",Grapheme_Base:"Gr_Base",Grapheme_Extend:"Gr_Ext",Hex_Digit:"Hex",IDS_Binary_Operator:"IDSB",IDS_Trinary_Operator:"IDST",ID_Continue:"IDC",ID_Start:"IDS",Ideographic:"Ideo",Join_Control:"Join_C",Logical_Order_Exception:"LOE",Lowercase:"Lower",Math:"Math",Noncharacter_Code_Point:"NChar",Pattern_Syntax:"Pat_Syn",Pattern_White_Space:"Pat_WS",Quotation_Mark:"QMark",Radical:"Radical",Regional_Indicator:"RI",Sentence_Terminal:"STerm",Soft_Dotted:"SD",Terminal_Punctuation:"Term",Unified_Ideograph:"UIdeo",Uppercase:"Upper",Variation_Selector:"VS",White_Space:"space",XID_Continue:"XIDC",XID_Start:"XIDS"},d=f(n),t={Cased_Letter:"LC",Close_Punctuation:"Pe",Connector_Punctuation:"Pc",Control:["Cc","cntrl"],Currency_Symbol:"Sc",Dash_Punctuation:"Pd",Decimal_Number:["Nd","digit"],Enclosing_Mark:"Me",Final_Punctuation:"Pf",Format:"Cf",Initial_Punctuation:"Pi",Letter:"L",Letter_Number:"Nl",Line_Separator:"Zl",Lowercase_Letter:"Ll",Mark:["M","Combining_Mark"],Math_Symbol:"Sm",Modifier_Letter:"Lm",Modifier_Symbol:"Sk",Nonspacing_Mark:"Mn",Number:"N",Open_Punctuation:"Ps",Other:"C",Other_Letter:"Lo",Other_Number:"No",Other_Punctuation:"Po",Other_Symbol:"So",Paragraph_Separator:"Zp",Private_Use:"Co",Punctuation:["P","punct"],Separator:"Z",Space_Separator:"Zs",Spacing_Mark:"Mc",Surrogate:"Cs",Symbol:"S",Titlecase_Letter:"Lt",Unassigned:"Cn",Uppercase_Letter:"Lu"},a=f(t),s={Adlam:"Adlm",Ahom:"Ahom",Anatolian_Hieroglyphs:"Hluw",Arabic:"Arab",Armenian:"Armn",Avestan:"Avst",Balinese:"Bali",Bamum:"Bamu",Bassa_Vah:"Bass",Batak:"Batk",Bengali:"Beng",Bhaiksuki:"Bhks",Bopomofo:"Bopo",Brahmi:"Brah",Braille:"Brai",Buginese:"Bugi",Buhid:"Buhd",Canadian_Aboriginal:"Cans",Carian:"Cari",Caucasian_Albanian:"Aghb",Chakma:"Cakm",Cham:"Cham",Cherokee:"Cher",Common:"Zyyy",Coptic:["Copt","Qaac"],Cuneiform:"Xsux",Cypriot:"Cprt",Cyrillic:"Cyrl",Deseret:"Dsrt",Devanagari:"Deva",Dogra:"Dogr",Duployan:"Dupl",Egyptian_Hieroglyphs:"Egyp",Elbasan:"Elba",Ethiopic:"Ethi",Georgian:"Geor",Glagolitic:"Glag",Gothic:"Goth",Grantha:"Gran",Greek:"Grek",Gujarati:"Gujr",Gunjala_Gondi:"Gong",Gurmukhi:"Guru",Han:"Hani",Hangul:"Hang",Hanifi_Rohingya:"Rohg",Hanunoo:"Hano",Hatran:"Hatr",Hebrew:"Hebr",Hiragana:"Hira",Imperial_Aramaic:"Armi",Inherited:["Zinh","Qaai"],Inscriptional_Pahlavi:"Phli",Inscriptional_Parthian:"Prti",Javanese:"Java",Kaithi:"Kthi",Kannada:"Knda",Katakana:"Kana",Kayah_Li:"Kali",Kharoshthi:"Khar",Khmer:"Khmr",Khojki:"Khoj",Khudawadi:"Sind",Lao:"Laoo",Latin:"Latn",Lepcha:"Lepc",Limbu:"Limb",Linear_A:"Lina",Linear_B:"Linb",Lisu:"Lisu",Lycian:"Lyci",Lydian:"Lydi",Mahajani:"Mahj",Makasar:"Maka",Malayalam:"Mlym",Mandaic:"Mand",Manichaean:"Mani",Marchen:"Marc",Medefaidrin:"Medf",Masaram_Gondi:"Gonm",Meetei_Mayek:"Mtei",Mende_Kikakui:"Mend",Meroitic_Cursive:"Merc",Meroitic_Hieroglyphs:"Mero",Miao:"Plrd",Modi:"Modi",Mongolian:"Mong",Mro:"Mroo",Multani:"Mult",Myanmar:"Mymr",Nabataean:"Nbat",New_Tai_Lue:"Talu",Newa:"Newa",Nko:"Nkoo",Nushu:"Nshu",Ogham:"Ogam",Ol_Chiki:"Olck",Old_Hungarian:"Hung",Old_Italic:"Ital",Old_North_Arabian:"Narb",Old_Permic:"Perm",Old_Persian:"Xpeo",Old_Sogdian:"Sogo",Old_South_Arabian:"Sarb",Old_Turkic:"Orkh",Oriya:"Orya",Osage:"Osge",Osmanya:"Osma",Pahawh_Hmong:"Hmng",Palmyrene:"Palm",Pau_Cin_Hau:"Pauc",Phags_Pa:"Phag",Phoenician:"Phnx",Psalter_Pahlavi:"Phlp",Rejang:"Rjng",Runic:"Runr",Samaritan:"Samr",Saurashtra:"Saur",Sharada:"Shrd",Shavian:"Shaw",Siddham:"Sidd",SignWriting:"Sgnw",Sinhala:"Sinh",Sogdian:"Sogd",Sora_Sompeng:"Sora",Soyombo:"Soyo",Sundanese:"Sund",Syloti_Nagri:"Sylo",Syriac:"Syrc",Tagalog:"Tglg",Tagbanwa:"Tagb",Tai_Le:"Tale",Tai_Tham:"Lana",Tai_Viet:"Tavt",Takri:"Takr",Tamil:"Taml",Tangut:"Tang",Telugu:"Telu",Thaana:"Thaa",Thai:"Thai",Tibetan:"Tibt",Tifinagh:"Tfng",Tirhuta:"Tirh",Ugaritic:"Ugar",Vai:"Vaii",Warang_Citi:"Wara",Yi:"Yiii",Zanabazar_Square:"Zanb"},i=f(s);function f(e){var u={};for(var r in e)if(e.hasOwnProperty(r)){var n=e[r];if(Array.isArray(n))for(var d=0;d<n.length;d++)u[n[d]]=r;else u[n]=r}return u}function o(e){return t.hasOwnProperty(e)||a.hasOwnProperty(e)}function c(e){return s.hasOwnProperty(e)||i.hasOwnProperty(e)}e.exports={isAlias:function(e){return r.hasOwnProperty(e)||d.hasOwnProperty(e)},isValidName:function(e){return u.hasOwnProperty(e)||r.hasOwnProperty(e)||n.hasOwnProperty(e)||d.hasOwnProperty(e)},isValidValue:function(e,u){return function(e){return"General_Category"===e||"gc"==e}(e)?o(u):!!function(e){return"Script"===e||"Script_Extensions"===e||"sc"===e||"scx"===e}(e)&&c(u)},isGeneralCategoryValue:o,isScriptCategoryValue:c,isBinaryPropertyName:function(e){return n.hasOwnProperty(e)||d.hasOwnProperty(e)},getCanonicalName:function(e){return r.hasOwnProperty(e)?r[e]:d.hasOwnProperty(e)?d[e]:null},getCanonicalValue:function(e){return a.hasOwnProperty(e)?a[e]:i.hasOwnProperty(e)?i[e]:d.hasOwnProperty(e)?d[e]:null},NON_BINARY_PROP_NAMES_TO_ALIASES:u,NON_BINARY_ALIASES_TO_PROP_NAMES:r,BINARY_PROP_NAMES_TO_ALIASES:n,BINARY_ALIASES_TO_PROP_NAMES:d,GENERAL_CATEGORY_VALUE_TO_ALIASES:t,GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES:a,SCRIPT_VALUE_TO_ALIASES:s,SCRIPT_VALUE_ALIASES_TO_VALUE:i}},51474:function(e,u,r){"use strict";var n=r(78355),d=r(89702),t=r(47393),a=r(37112),s=r(60045),i=r(8785),f=r(22722),o=r(77460).RegExpTree,c={parser:a,fa:f,TransformResult:s.TransformResult,parse:function(e,u){return a.parse(""+e,u)},traverse:function(e,u,r){return i.traverse(e,u,r)},transform:function(e,u){return s.transform(e,u)},generate:function(e){return d.generate(e)},toRegExp:function(e){var u=this.compatTranspile(e);return new RegExp(u.getSource(),u.getFlags())},optimize:function(e,u){var r=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).blacklist;return t.optimize(e,{whitelist:u,blacklist:r})},compatTranspile:function(e,u){return n.transform(e,u)},exec:function(e,u){if("string"==typeof e){var r=this.compatTranspile(e),n=r.getExtra();e=n.namedCapturingGroups?new o(r.toRegExp(),{flags:r.getFlags(),source:r.getSource(),groups:n.namedCapturingGroups}):r.toRegExp()}return e.exec(u)}};e.exports=c},60045:function(e,u,r){"use strict";var n=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),d=r(89702),t=r(37112),a=r(8785),s=function(){function e(u){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._ast=u,this._source=null,this._string=null,this._regexp=null,this._extra=r}return n(e,[{key:"getAST",value:function(){return this._ast}},{key:"setExtra",value:function(e){this._extra=e}},{key:"getExtra",value:function(){return this._extra}},{key:"toRegExp",value:function(){return this._regexp||(this._regexp=new RegExp(this.getSource(),this._ast.flags)),this._regexp}},{key:"getSource",value:function(){return this._source||(this._source=d.generate(this._ast.body)),this._source}},{key:"getFlags",value:function(){return this._ast.flags}},{key:"toString",value:function(){return this._string||(this._string=d.generate(this._ast)),this._string}}]),e}();e.exports={TransformResult:s,transform:function(e,u){var r=e;return e instanceof RegExp&&(e=""+e),"string"==typeof e&&(r=t.parse(e,{captureLocations:!0})),a.traverse(r,u),new s(r)}}},26554:function(e){"use strict";e.exports={disjunctionToList:function e(u){if("Disjunction"!==u.type)throw new TypeError('Expected "Disjunction" node, got "'+u.type+'"');var r=[];return u.left&&"Disjunction"===u.left.type?r.push.apply(r,function(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}(e(u.left)).concat([u.right])):r.push(u.left,u.right),r},listToDisjunction:function(e){return e.reduce((function(e,u){return{type:"Disjunction",left:e,right:u}}))},increaseQuantifierByOne:function(e){"*"===e.kind?e.kind="+":"+"===e.kind?(e.kind="Range",e.from=2,delete e.to):"?"===e.kind?(e.kind="Range",e.from=1,e.to=2):"Range"===e.kind&&(e.from+=1,e.to&&(e.to+=1))}}},8785:function(e,u,r){"use strict";var n=r(27762);e.exports={traverse:function(e,u){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{asNodes:!1};function d(e,u,r,d){var t=n.getForNode(u);return n.getForNode(e,t,r,d)}Array.isArray(u)||(u=[u]),u=u.filter((function(u){return"function"!=typeof u.shouldRun||u.shouldRun(e)})),n.initRegistry(),u.forEach((function(u){"function"==typeof u.init&&u.init(e)})),function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=u.pre,d=u.post,t=u.skipProperty;!function e(u,a,s,i){if(u&&"string"==typeof u.type){var f=void 0;if(r&&(f=r(u,a,s,i)),!1!==f)for(var o in a&&a[s]&&(u=isNaN(i)?a[s]:a[s][i]),u)if(u.hasOwnProperty(o)){if(t?t(o,u):"$"===o[0])continue;var c=u[o];if(Array.isArray(c)){var l=0;for(n.traversingIndexStack.push(l);l<c.length;)e(c[l],u,o,l),l=n.updateTraversingIndex(1);n.traversingIndexStack.pop()}else e(c,u,o)}d&&d(u,a,s,i)}}(e,null)}(e,{pre:function(e,n,t,a){var s=void 0;r.asNodes||(s=d(e,n,t,a));var i=!0,f=!1,o=void 0;try{for(var c,l=u[Symbol.iterator]();!(i=(c=l.next()).done);i=!0){var v=c.value;if("function"==typeof v["*"])if(s){if(!s.isRemoved()&&!1===v["*"](s))return!1}else v["*"](e,n,t,a);var b=void 0;if("function"==typeof v[e.type]?b=v[e.type]:"object"==typeof v[e.type]&&"function"==typeof v[e.type].pre&&(b=v[e.type].pre),b)if(s){if(!s.isRemoved()&&!1===b.call(v,s))return!1}else b.call(v,e,n,t,a)}}catch(e){f=!0,o=e}finally{try{!i&&l.return&&l.return()}finally{if(f)throw o}}},post:function(e,n,t,a){if(e){var s=void 0;r.asNodes||(s=d(e,n,t,a));var i=!0,f=!1,o=void 0;try{for(var c,l=u[Symbol.iterator]();!(i=(c=l.next()).done);i=!0){var v=c.value,b=void 0;if("object"==typeof v[e.type]&&"function"==typeof v[e.type].post&&(b=v[e.type].post),b)if(s){if(!s.isRemoved()&&!1===b.call(v,s))return!1}else b.call(v,e,n,t,a)}}catch(e){f=!0,o=e}finally{try{!i&&l.return&&l.return()}finally{if(f)throw o}}}},skipProperty:function(e){return"loc"===e}})}}},27762:function(e){"use strict";var u=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),r="expressions",n="expression",d=function(){function e(u){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this.node=u,this.parentPath=r,this.parent=r?r.node:null,this.property=n,this.index=d}return u(e,[{key:"_enforceProp",value:function(e){if(!this.node.hasOwnProperty(e))throw new Error("Node of type "+this.node.type+" doesn't have \""+e+'" collection.')}},{key:"setChild",value:function(u){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=void 0;return null!=d?(t||(t=r),this._enforceProp(t),this.node[t][d]=u,a=e.getForNode(u,this,t,d)):(t||(t=n),this._enforceProp(t),this.node[t]=u,a=e.getForNode(u,this,t,null)),a}},{key:"appendChild",value:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;u||(u=r),this._enforceProp(u);var n=this.node[u].length;return this.setChild(e,n,u)}},{key:"insertChildAt",value:function(u,n){var d=arguments.length>2&&void 0!==arguments[2]?arguments[2]:r;this._enforceProp(d),this.node[d].splice(n,0,u),n<=e.getTraversingIndex()&&e.updateTraversingIndex(1),this._rebuildIndex(this.node,d)}},{key:"remove",value:function(){if(!this.isRemoved()&&(e.registry.delete(this.node),this.node=null,this.parent)){if(null!==this.index)return this.parent[this.property].splice(this.index,1),this.index<=e.getTraversingIndex()&&e.updateTraversingIndex(-1),this._rebuildIndex(this.parent,this.property),this.index=null,void(this.property=null);delete this.parent[this.property],this.property=null}}},{key:"_rebuildIndex",value:function(u,r){for(var n=e.getForNode(u),d=0;d<u[r].length;d++)e.getForNode(u[r][d],n,r,d).index=d}},{key:"isRemoved",value:function(){return null===this.node}},{key:"replace",value:function(u){return e.registry.delete(this.node),this.node=u,this.parent?(null!==this.index?this.parent[this.property][this.index]=u:this.parent[this.property]=u,e.getForNode(u,this.parentPath,this.property,this.index)):null}},{key:"update",value:function(e){Object.assign(this.node,e)}},{key:"getParent",value:function(){return this.parentPath}},{key:"getChild",value:function(){var u=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.node.expressions?e.getForNode(this.node.expressions[u],this,r,u):this.node.expression&&0==u?e.getForNode(this.node.expression,this,n):null}},{key:"hasEqualSource",value:function(e){return JSON.stringify(this.node,t)===JSON.stringify(e.node,t)}},{key:"jsonEncode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},u=e.format,r=e.useLoc;return JSON.stringify(this.node,r?null:t,u)}},{key:"getPreviousSibling",value:function(){return this.parent&&null!=this.index?e.getForNode(this.parent[this.property][this.index-1],e.getForNode(this.parent),this.property,this.index-1):null}},{key:"getNextSibling",value:function(){return this.parent&&null!=this.index?e.getForNode(this.parent[this.property][this.index+1],e.getForNode(this.parent),this.property,this.index+1):null}}],[{key:"getForNode",value:function(u){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1;if(!u)return null;e.registry.has(u)||e.registry.set(u,new e(u,r,n,-1==d?null:d));var t=e.registry.get(u);return null!==r&&(t.parentPath=r,t.parent=t.parentPath.node),null!==n&&(t.property=n),d>=0&&(t.index=d),t}},{key:"initRegistry",value:function(){e.registry||(e.registry=new Map),e.registry.clear()}},{key:"updateTraversingIndex",value:function(u){return e.traversingIndexStack[e.traversingIndexStack.length-1]+=u}},{key:"getTraversingIndex",value:function(){return e.traversingIndexStack[e.traversingIndexStack.length-1]}}]),e}();function t(e,u){if("loc"!==e)return u}d.initRegistry(),d.traversingIndexStack=[],e.exports=d},60689:function(e){"use strict";e.exports=function e(u){if(null===u||"object"!=typeof u)return u;var r=void 0;for(var n in r=Array.isArray(u)?[]:{},u)r[n]=e(u[n]);return r}},16262:function(e,u,r){"use strict";e.exports=r(51474)},72950:function(){},20879:function(e,u,r){"use strict";r.d(u,{z$:function(){return I}});var n,d=r(31e3),t=r(16262),a=r(54876);function s(e){return"number"==typeof e?e:1===e.length?e[0]:[e[0],e[e.length-1]]}function i(e){const u=Array.isArray(e)?e:e.toString().split(".");if("all"===u[0])return[1/0,0,0];let r=null,n=null;const d=[0,0,0];for(let e=0;e<3;e++)if(r=u[e],void 0!==r){if(n="number"==typeof r?r:parseInt(r,10),isNaN(n))return null;d[e]=n}return d}function f(e,u,r){const[n,d,t]=e,[a,s,i]=u,{ignoreMinor:f,ignorePatch:o,allowHigherVersions:c}=r;if(a===1/0)return!0;const l=!f,v=l&&!o;return c?!(v&&t<i||l&&d<s)&&n>=a:!(v&&t!==i||l&&d!==s)&&n===a}function o(e,u,r=0){const n=e.length;for(let d=r;d<n;d++)if(e[d]!==u[d])return!1;return!0}function c(e){if(null===e||"object"!=typeof e)return e;const u=Array.isArray(e)?[]:{};let r;for(r in e)u[r]=c(e[r]);return u}function l(e){return[].concat(...e)}function v(...e){const u=l(e).filter(Boolean);return 1===u.length?u[0]:{type:"Alternative",expressions:u}}function b(e){return{type:"Char",kind:"simple",value:String(e),codePoint:NaN}}function p(e,u){return{type:"ClassRange",from:e,to:u}}function h(...e){return{type:"CharacterClass",expressions:l(e).filter(Boolean)}}function m(e){return{type:"Group",capturing:!0,expression:e,number:null}}function y(...e){const u=function(...e){const u=l(e).filter(Boolean);if(1===u.length)return u[0];const r={type:"Disjunction",left:null,right:u.pop()};return u.reduceRight(((e,u,r)=>0===r?(e.left=u,e):(e.left={type:"Disjunction",left:null,right:u},e.left)),r),r}(...e);return"Disjunction"===u.type?m(u):u}function g(){return{type:"Char",kind:"meta",value:"\\d",codePoint:NaN}}function C(e={type:"Quantifier",kind:"+",greedy:!0}){const u=function(e,u){return{type:"Repetition",expression:{type:"Char",kind:"meta",value:"\\d",codePoint:NaN},quantifier:u}}(0,e);return u}function B(e){return v(Array.from(String(e),b))}function _(e){if("Group"===e.type&&"Repetition"===e.expression.type){const{expression:u,quantifier:r}=e.expression;return"Char"===u.type&&"\\d"===u.value&&"+"===r.kind&&r.greedy}return!1}function x(e,u){return!(!e||"Char"!==e.type)&&(void 0===u||u instanceof RegExp&&u.test(e.value)||String(u)===e.value)}function A(e){if("CharacterClass"===e.type&&1===e.expressions.length){const[u]=e.expressions;return"ClassRange"===u.type&&x(u.from,/\d/)&&x(u.to,/\d/)}return!1}function S(e){return"RegExp"!==e.type&&"ClassRange"!==e.type&&"Quantifier"!==e.type}function w(e){return"string"==typeof e?t.parse(e.replace(/^([^/])/,"/$1").replace(/([^/])$/,"$1/")):e instanceof RegExp?t.parse(e):e}!function(e){e[e.Major=0]="Major",e[e.Minor=1]="Minor",e[e.Patch=2]="Patch"}(n||(n={}));const j=["RegExp","Disjunction","Alternative","Assertion","Char","CharacterClass","ClassRange","Backreference","Group","Repetition","Quantifier"];function k(e){const{every:u}=e;return u?"function"==typeof u?{"*":u,...e}:j.reduce(((r,n)=>{const d=e[n],t=d?"pre"in d?d.pre:d:null,a=d&&"post"in d?d.post:null;return r[n]={pre(e){return!1===u.pre(e)||!t||t(e)},post(e){return!1===u.post(e)||!a||a(e)}},r}),{}):e}function E(e){return Array.from(e.toString(),Number)}function P(e,u){const r=e+Number(!u);return 0===r?{type:"Char",kind:"meta",value:"\\d",codePoint:NaN}:9===r?b("9"):r>9?null:h(p(b(r),b("9")))}function O(e,u,r){if(u<e)return null;const n=b(e),d=b(u),t="number"==typeof r&&r>0?Array.from({length:r},(()=>b(0))):[];return(t.length?e=>v(t,e):e=>e)(e===u?n:0===e&&9===u?{type:"Char",kind:"meta",value:"\\d",codePoint:NaN}:u-e==1?h(n,d):h(p(n,d)))}function T(e,u,r=0){const n=E(e),d=n.length;if(e<10&&u<10||e===u)return[O(e,u,r-d)];const t=E(u);if(d!==t.length){const n=function(e,u){const r=[];let n=e,d=1;do{d*=10,n<d&&(r.push([n,Math.min(d-1,u)]),n=d)}while(d<=u);return r}(e,u),d=l(n.map((([e,u])=>T(e,u,r))));return d}const a=function(e,u){const r=e.length;if(r!==u.length||e[0]!==u[0])return null;let n=e[0].toString(),d=0,t=0,a="",s="";for(let i=1;i<r;i++)d=e[i],t=u[i],d===t?n+=d:(a+=d,s+=t);return[n,parseInt(a,10),parseInt(s,10)]}(n,t);if(Array.isArray(a)){const[e,u,r]=a,n=T(u,r,d-e.length);return[v(Array.from(e,b),y(n))]}const s=Array.from({length:d-1}),i=O(n[0]+1,t[0]-1);return[...s.map(((e,u)=>{const r=d-u-1,t=Number(u>0);return v(n.map(((e,u)=>u<r?b(e):O(u>r?0:e+t,9))))})),...i?[v(i,Array.from({length:d-1},(()=>({type:"Char",kind:"meta",value:"\\d",codePoint:NaN}))))]:[],...s.map(((e,u)=>{const r=d-u-1,n=Number(u>0);return v(t.map(((e,u)=>u<r?b(e):O(0,u>r?9:e-n))))}))].reduce(((e,u)=>{const r=e[e.length-1];if(r&&"Alternative"===u.type&&"Alternative"===r.type&&u.expressions.length===r.expressions.length){const n=r.expressions.reduceRight(((e,r,n)=>{if(!e)return e;const d=(t=r,a=u.expressions[n],x(t)&&x(a)&&t.value===a.value?a:x(t,/\d/)&&A(a)&&Number(a.expressions[0].from.value)-Number(t.value)==1?{...a,expressions:[{...a.expressions[0],from:t}]}:A(t)&&x(a,/\d/)&&Number(a.value)-Number(t.expressions[0].to.value)==1?{...t,expressions:[{...t.expressions[0],to:a}]}:null);var t,a;return d?(e.unshift(d),e):null}),[]);n&&(u.expressions=n,e.pop())}return e.push(u),e}),[])}function R(e,u=1/0){return e===1/0?C():y(u===1/0?function(e){if(0===e)return[C()];const u=E(e),r=u.length,n=C(function(e,u){return{type:"Quantifier",kind:"Range",from:e,to:void 0,greedy:!0}}(r+1)),d=r-1;if(e/Math.pow(10,d)===u[0])return[v(P(u[0],!0),Array.from({length:d},g)),n];const t=u.reduce(((e,n,d)=>{const t=r-d-1,a=0===d;let s=b("");const i=u.reduce(((e,u,r)=>{if(r<t)e.push(b(u));else if(s)if(r>t)e.push({type:"Char",kind:"meta",value:"\\d",codePoint:NaN});else{if(s=P(u,a),!s)return[];e.push(s)}return e}),[]);return i.length&&e.push(i),e}),[]).map((e=>v(e)));return t.push(n),t}(e):T(e,u))}function N(e,u){const r=w(e),n=Math.min(function(e){const u=w(e);let r=0;return t.traverse(u,{Group(e){_(e.node)&&r++}}),r}(r),u||1/0),d=[];let a=0,s=!1;return t.traverse(r,k({every:{pre({node:e,parent:u}){return e===r||!!S(e)&&(u===r&&(s=!1),a<n)},post({node:e,parent:u}){e!==r&&u===r&&S(e)&&(s||a>0&&a<n)&&d.push(e)}},Group(e){return!(_(e.node)&&a<n&&(s=!0,a++,1))}})),1!==d.length||_(d[0])?d:N(d[0],n)}function D(e,u,r){const{allowHigherVersions:n}=r,d=w(e),a=n&&u.length?[u[0]]:u,s=a.reduce(((e,u)=>Math.max(e,function(e,u){const{ignoreMinor:r,ignorePatch:n,allowZeroSubversions:d}=u;let t=r?1:n?2:3;if(d)for(let u=t-1;u>0&&0===e[u]&&1!==t;u--)t--;return t}(u,r))),1),i=N(d,s),f=y(...a.map((e=>function(e,u){const{ignoreMinor:r,ignorePatch:n,allowHigherVersions:d}=u,t=e[0]===1/0?0:r?1:n?2:3;if(d){const u=[];let r=!0,n=0,d=0;const a=e=>(u,r)=>r>=t?C():(d=Array.isArray(u)?u[0]:u,r<e?B(d):r>e?C():R(d+n));for(let d=t-1;d>=0;d--)r&&!e[d]||(r=!1,u.push(e.map(a(d))),n=1);return u}return[e.map(((e,u)=>u>=t?C():Array.isArray(e)?R(e[0],e[1]):B(e)))]}(e,r).map((e=>function(e,u,r){let n=w(e);const d="number"==typeof r&&r<u.length?u.slice(0,r):u.slice();return t.traverse(n,k({every(){return Boolean(d.length)},Group(e){return!_(e.node)||!d.length||(n===e.node?n=d.shift():e.replace(d.shift()),!1)}})),n}(v(c(i)),e,s))))));return t.traverse(d,k({every(e){return!!i.length&&(e.node===i[0]&&(1===i.length?e.replace(f):e.remove(),i.shift()),!0)}})),d}const L={ignoreMinor:!1,ignorePatch:!0,allowZeroSubversions:!1,allowHigherVersions:!1};function F(e={}){const u={...L,...e};return function(e,u){return e.map((({regex:e,version:r,maxVersion:d,matchedVersions:t,...a})=>{let i=w(e);return r||(i=D(i,function(e){if(e.length<2)return e;const u=e.length+1,r=[];let d=null,t=e[0],a=[t[n.Major]],i=[t[n.Minor]],f=[t[n.Patch]],c=null;for(let l=1;l<u;l++){d=e[l-1],t=e[l]||[];for(let e=n.Major;e<=n.Patch;e++){if((e===c||null===c)&&d[e]+1===t[e]&&o(d,t,e+1)){c=e,e===n.Major?a.push(t[n.Major]):a=t[n.Major],e===n.Minor?i.push(t[n.Minor]):i=t[n.Minor],e===n.Patch?f.push(t[n.Patch]):f=t[n.Patch];break}if(c===e||d[e]!==t[e]){r.push([s(a),s(i),s(f)]),a=[t[n.Major]],i=[t[n.Minor]],f=[t[n.Patch]],c=null;break}}}return r}(t),{...u,allowHigherVersions:!d&&u.allowHigherVersions})),{regex:null,sourceRegex:e,regexAst:i,version:r,maxVersion:d,matchedVersions:t,...a}}))}(function(e,u,r=a.U){const n=[];let d="",t=!1;return r.forEach((r=>{const a=e.get(r.family);if(!a)return;let{version:s,minVersion:i,maxVersion:o}=r;s&&(i=s,o=s);let c=function(e,u,r,n){const d={...n,allowHigherVersions:!0},t=u=>f(u,e,d),a=e=>f(u,e,d),s=e&&u?e=>t(e)&&a(e):e?t:u?a:()=>!0;return r.filter(s)}(i,o,a,u);c.length&&(d===r.family&&t&&(s=void 0,i=void 0,o=void 0,c=a,n.pop()),n.push({...r,version:s,minVersion:i,maxVersion:o,requestVersions:a,matchedVersions:c})),t=!s&&!i&&!o,d=r.family})),n}(function(e){const u=new Map;return e.forEach((({family:e,version:r})=>{const n=u.get(e);if(n){const e=r.join(".");n.every((u=>u.join(".")!==e))&&n.push(r)}else u.set(e,[r])})),u.forEach((e=>{e.sort(((e,u)=>{for(const r in e)if(e[r]!==u[r])return e[r]-u[r];return 0}))})),u}(function(e={}){const{browsers:u,...r}=e;return d(u,r).reduce(((e,u)=>{const[r,n,d]=u.split(/ |-/),t=i(n);return(t?d?function(e,u){let r=0;const n=[];for(let n=2;n>=0;n--)if(e[n]!==u[n]){r=n;break}for(let d=e[r],t=u[r];d<=t;d++)n.push(e.map(((e,u)=>u===r?d:e)));return n}(t,i(d)):[t]:[]).reduce(((e,u)=>(u&&e.push({family:r,version:u}),e)),e)}),[])}(u)),u),u)}function I(e={}){return"string"==typeof(u=function(e){const u=t.optimize(w((r=e,"string"==typeof r?r:r instanceof RegExp?r.toString():t.generate(r)))).getAST();var r;return t.traverse(u,{Group(e){const{parent:u,node:r}=e,{expression:n}=r;r.capturing=!0,("RegExp"===u.type||"Disjunction"!==n.type&&"Repetition"!==u.type||"Disjunction"===n.type&&"Disjunction"===u.type)&&e.replace(e.node.expression)}}),u}({type:"RegExp",body:y(F(e).map((({regexAst:e})=>m(e.body)))),flags:""}))?new RegExp(u):new RegExp(t.generate(u.body),u.flags);var u}},54876:function(e,u,r){"use strict";r.d(u,{U:function(){return n}});const n=[{regex:/IE (\d+)\.(\d+)/,family:"ie",maxVersion:[7,1/0,1/0]},{regex:/Trident\/4\.0/,family:"ie",version:[8,0,0]},{regex:/Trident\/5\.0/,family:"ie",version:[9,0,0]},{regex:/Trident\/6\.0/,family:"ie",version:[10,0,0]},{regex:/Trident\/[78]\.0/,family:"ie",version:[11,0,0]},{regex:/Edge?\/(\d+)(\.(\d+)|)(\.(\d+)|)/,family:"edge"},{regex:/Firefox\/(\d+)\.(\d+)(\.(\d+)|)/,family:"firefox"},{regex:/Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)/,family:"chrome"},{regex:/Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))/,family:"chrome",maxVersion:[70,1/0,1/0]},{regex:/Maci.+ Version\/(\d+)\.(\d+)([.,](\d+)|)( \(\w+\)|)( Mobile\/\w+|) Safari\//,family:"safari"},{regex:/Opera\/9\.80.+Version\/(\d+)\.(\d+)(\.(\d+)|)/,family:"opera",maxVersion:[12,15,0]},{regex:/Chrome.+OPR\/(\d+)\.(\d+)\.(\d+)/,family:"opera",minVersion:[15,0,0]},{regex:/(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\d+)[_.](\d+)([_.](\d+)|)/,family:"ios_saf"},{regex:/[^e] (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\d+)[_.](\d+)([_.](\d+)|)/,family:"ios_saf",version:[7,0,3]},{regex:/Opera Mini/,family:"op_mini"},{regex:/Android Donut/,family:"android",version:[1,2,0]},{regex:/Android Eclair/,family:"android",version:[2,1,0]},{regex:/Android Froyo/,family:"android",version:[2,2,0]},{regex:/Android Gingerbread/,family:"android",version:[2,3,0]},{regex:/Android Honeycomb/,family:"android",version:[3,0,0]},{regex:/Android:?[ /-](\d+)(\.(\d+)|)(\.(\d+)|)/,family:"android"},{regex:/Android:?[ /-](\d+)(\.(\d+)|)(\.(\d+)|);(?! ARM; Trident)/,family:"android",version:[4,0,0]},{regex:/PlayBook.+RIM Tablet OS (\d+)\.(\d+)\.(\d+)/,family:"bb"},{regex:/(Black[bB]erry|BB10).+Version\/(\d+)\.(\d+)\.(\d+)/,family:"bb"},{regex:/Opera\/.+Opera Mobi.+Version\/(\d+)\.(\d+)/,family:"op_mob",maxVersion:[12,16,0]},{regex:/Mobile Safari.+OPR\/(\d+)\.(\d+)\.(\d+)/,family:"op_mob",minVersion:[14,0,0]},{regex:/Android.+Firefox\/(\d+)\.(\d+)(\.(\d+)|)/,family:"and_ff"},{regex:/Android.+Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)/,family:"and_chr"},{regex:/IEMobile[ /](\d+)\.(\d+)/,family:"ie_mob"},{regex:/Android.+(UC? ?Browser|UCWEB|U3)[ /]?(\d+)\.(\d+)\.(\d+)/,family:"and_uc"},{regex:/SamsungBrowser\/(\d+)\.(\d+)/,family:"samsung"},{regex:/Android.+MQQBrowser\/(\d+)(\.(\d+)|)(\.(\d+)|)/,family:"and_qq"},{regex:/baidubrowser[/\s](\d+)(\.(\d+)|)(\.(\d+)|)/,family:"baidu"},{regex:/K[Aa][Ii]OS\/(\d+)\.(\d+)(\.(\d+)|)/,family:"kaios"}]},76052:function(e){"use strict";e.exports=JSON.parse('[{"name":"nodejs","version":"0.2.0","date":"2011-08-26","lts":false,"security":false,"v8":"2.3.8.0"},{"name":"nodejs","version":"0.3.0","date":"2011-08-26","lts":false,"security":false,"v8":"2.5.1.0"},{"name":"nodejs","version":"0.4.0","date":"2011-08-26","lts":false,"security":false,"v8":"3.1.2.0"},{"name":"nodejs","version":"0.5.0","date":"2011-08-26","lts":false,"security":false,"v8":"3.1.8.25"},{"name":"nodejs","version":"0.6.0","date":"2011-11-04","lts":false,"security":false,"v8":"3.6.6.6"},{"name":"nodejs","version":"0.7.0","date":"2012-01-17","lts":false,"security":false,"v8":"3.8.6.0"},{"name":"nodejs","version":"0.8.0","date":"2012-06-22","lts":false,"security":false,"v8":"3.11.10.10"},{"name":"nodejs","version":"0.9.0","date":"2012-07-20","lts":false,"security":false,"v8":"3.11.10.15"},{"name":"nodejs","version":"0.10.0","date":"2013-03-11","lts":false,"security":false,"v8":"3.14.5.8"},{"name":"nodejs","version":"0.11.0","date":"2013-03-28","lts":false,"security":false,"v8":"3.17.13.0"},{"name":"nodejs","version":"0.12.0","date":"2015-02-06","lts":false,"security":false,"v8":"3.28.73.0"},{"name":"nodejs","version":"4.0.0","date":"2015-09-08","lts":false,"security":false,"v8":"4.5.103.30"},{"name":"nodejs","version":"4.1.0","date":"2015-09-17","lts":false,"security":false,"v8":"4.5.103.33"},{"name":"nodejs","version":"4.2.0","date":"2015-10-12","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.3.0","date":"2016-02-09","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.4.0","date":"2016-03-08","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.5.0","date":"2016-08-16","lts":"Argon","security":false,"v8":"4.5.103.37"},{"name":"nodejs","version":"4.6.0","date":"2016-09-27","lts":"Argon","security":true,"v8":"4.5.103.37"},{"name":"nodejs","version":"4.7.0","date":"2016-12-06","lts":"Argon","security":false,"v8":"4.5.103.43"},{"name":"nodejs","version":"4.8.0","date":"2017-02-21","lts":"Argon","security":false,"v8":"4.5.103.45"},{"name":"nodejs","version":"4.9.0","date":"2018-03-28","lts":"Argon","security":true,"v8":"4.5.103.53"},{"name":"nodejs","version":"5.0.0","date":"2015-10-29","lts":false,"security":false,"v8":"4.6.85.28"},{"name":"nodejs","version":"5.1.0","date":"2015-11-17","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.2.0","date":"2015-12-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.3.0","date":"2015-12-15","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.4.0","date":"2016-01-06","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.5.0","date":"2016-01-21","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.6.0","date":"2016-02-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.7.0","date":"2016-02-23","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.8.0","date":"2016-03-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.9.0","date":"2016-03-16","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.10.0","date":"2016-04-01","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.11.0","date":"2016-04-21","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.12.0","date":"2016-06-23","lts":false,"security":false,"v8":"4.6.85.32"},{"name":"nodejs","version":"6.0.0","date":"2016-04-26","lts":false,"security":false,"v8":"5.0.71.35"},{"name":"nodejs","version":"6.1.0","date":"2016-05-05","lts":false,"security":false,"v8":"5.0.71.35"},{"name":"nodejs","version":"6.2.0","date":"2016-05-17","lts":false,"security":false,"v8":"5.0.71.47"},{"name":"nodejs","version":"6.3.0","date":"2016-07-06","lts":false,"security":false,"v8":"5.0.71.52"},{"name":"nodejs","version":"6.4.0","date":"2016-08-12","lts":false,"security":false,"v8":"5.0.71.60"},{"name":"nodejs","version":"6.5.0","date":"2016-08-26","lts":false,"security":false,"v8":"5.1.281.81"},{"name":"nodejs","version":"6.6.0","date":"2016-09-14","lts":false,"security":false,"v8":"5.1.281.83"},{"name":"nodejs","version":"6.7.0","date":"2016-09-27","lts":false,"security":true,"v8":"5.1.281.83"},{"name":"nodejs","version":"6.8.0","date":"2016-10-12","lts":false,"security":false,"v8":"5.1.281.84"},{"name":"nodejs","version":"6.9.0","date":"2016-10-18","lts":"Boron","security":false,"v8":"5.1.281.84"},{"name":"nodejs","version":"6.10.0","date":"2017-02-21","lts":"Boron","security":false,"v8":"5.1.281.93"},{"name":"nodejs","version":"6.11.0","date":"2017-06-06","lts":"Boron","security":false,"v8":"5.1.281.102"},{"name":"nodejs","version":"6.12.0","date":"2017-11-06","lts":"Boron","security":false,"v8":"5.1.281.108"},{"name":"nodejs","version":"6.13.0","date":"2018-02-10","lts":"Boron","security":false,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.14.0","date":"2018-03-28","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.15.0","date":"2018-11-27","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.16.0","date":"2018-12-26","lts":"Boron","security":false,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.17.0","date":"2019-02-28","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"7.0.0","date":"2016-10-25","lts":false,"security":false,"v8":"5.4.500.36"},{"name":"nodejs","version":"7.1.0","date":"2016-11-08","lts":false,"security":false,"v8":"5.4.500.36"},{"name":"nodejs","version":"7.2.0","date":"2016-11-22","lts":false,"security":false,"v8":"5.4.500.43"},{"name":"nodejs","version":"7.3.0","date":"2016-12-20","lts":false,"security":false,"v8":"5.4.500.45"},{"name":"nodejs","version":"7.4.0","date":"2017-01-04","lts":false,"security":false,"v8":"5.4.500.45"},{"name":"nodejs","version":"7.5.0","date":"2017-01-31","lts":false,"security":false,"v8":"5.4.500.48"},{"name":"nodejs","version":"7.6.0","date":"2017-02-21","lts":false,"security":false,"v8":"5.5.372.40"},{"name":"nodejs","version":"7.7.0","date":"2017-02-28","lts":false,"security":false,"v8":"5.5.372.41"},{"name":"nodejs","version":"7.8.0","date":"2017-03-29","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"7.9.0","date":"2017-04-11","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"7.10.0","date":"2017-05-02","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"8.0.0","date":"2017-05-30","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.1.0","date":"2017-06-08","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.2.0","date":"2017-07-19","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.3.0","date":"2017-08-08","lts":false,"security":false,"v8":"6.0.286.52"},{"name":"nodejs","version":"8.4.0","date":"2017-08-15","lts":false,"security":false,"v8":"6.0.286.52"},{"name":"nodejs","version":"8.5.0","date":"2017-09-12","lts":false,"security":false,"v8":"6.0.287.53"},{"name":"nodejs","version":"8.6.0","date":"2017-09-26","lts":false,"security":false,"v8":"6.0.287.53"},{"name":"nodejs","version":"8.7.0","date":"2017-10-11","lts":false,"security":false,"v8":"6.1.534.42"},{"name":"nodejs","version":"8.8.0","date":"2017-10-24","lts":false,"security":false,"v8":"6.1.534.42"},{"name":"nodejs","version":"8.9.0","date":"2017-10-31","lts":"Carbon","security":false,"v8":"6.1.534.46"},{"name":"nodejs","version":"8.10.0","date":"2018-03-06","lts":"Carbon","security":false,"v8":"6.2.414.50"},{"name":"nodejs","version":"8.11.0","date":"2018-03-28","lts":"Carbon","security":true,"v8":"6.2.414.50"},{"name":"nodejs","version":"8.12.0","date":"2018-09-10","lts":"Carbon","security":false,"v8":"6.2.414.66"},{"name":"nodejs","version":"8.13.0","date":"2018-11-20","lts":"Carbon","security":false,"v8":"6.2.414.72"},{"name":"nodejs","version":"8.14.0","date":"2018-11-27","lts":"Carbon","security":true,"v8":"6.2.414.72"},{"name":"nodejs","version":"8.15.0","date":"2018-12-26","lts":"Carbon","security":false,"v8":"6.2.414.75"},{"name":"nodejs","version":"8.16.0","date":"2019-04-16","lts":"Carbon","security":false,"v8":"6.2.414.77"},{"name":"nodejs","version":"8.17.0","date":"2019-12-17","lts":"Carbon","security":true,"v8":"6.2.414.78"},{"name":"nodejs","version":"9.0.0","date":"2017-10-31","lts":false,"security":false,"v8":"6.2.414.32"},{"name":"nodejs","version":"9.1.0","date":"2017-11-07","lts":false,"security":false,"v8":"6.2.414.32"},{"name":"nodejs","version":"9.2.0","date":"2017-11-14","lts":false,"security":false,"v8":"6.2.414.44"},{"name":"nodejs","version":"9.3.0","date":"2017-12-12","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.4.0","date":"2018-01-10","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.5.0","date":"2018-01-31","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.6.0","date":"2018-02-21","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.7.0","date":"2018-03-01","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.8.0","date":"2018-03-07","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.9.0","date":"2018-03-21","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.10.0","date":"2018-03-28","lts":false,"security":true,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.11.0","date":"2018-04-04","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"10.0.0","date":"2018-04-24","lts":false,"security":false,"v8":"6.6.346.24"},{"name":"nodejs","version":"10.1.0","date":"2018-05-08","lts":false,"security":false,"v8":"6.6.346.27"},{"name":"nodejs","version":"10.2.0","date":"2018-05-23","lts":false,"security":false,"v8":"6.6.346.32"},{"name":"nodejs","version":"10.3.0","date":"2018-05-29","lts":false,"security":false,"v8":"6.6.346.32"},{"name":"nodejs","version":"10.4.0","date":"2018-06-06","lts":false,"security":false,"v8":"6.7.288.43"},{"name":"nodejs","version":"10.5.0","date":"2018-06-20","lts":false,"security":false,"v8":"6.7.288.46"},{"name":"nodejs","version":"10.6.0","date":"2018-07-04","lts":false,"security":false,"v8":"6.7.288.46"},{"name":"nodejs","version":"10.7.0","date":"2018-07-18","lts":false,"security":false,"v8":"6.7.288.49"},{"name":"nodejs","version":"10.8.0","date":"2018-08-01","lts":false,"security":false,"v8":"6.7.288.49"},{"name":"nodejs","version":"10.9.0","date":"2018-08-15","lts":false,"security":false,"v8":"6.8.275.24"},{"name":"nodejs","version":"10.10.0","date":"2018-09-06","lts":false,"security":false,"v8":"6.8.275.30"},{"name":"nodejs","version":"10.11.0","date":"2018-09-19","lts":false,"security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.12.0","date":"2018-10-10","lts":false,"security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.13.0","date":"2018-10-30","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.14.0","date":"2018-11-27","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.15.0","date":"2018-12-26","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.16.0","date":"2019-05-28","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.17.0","date":"2019-10-22","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.18.0","date":"2019-12-17","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.19.0","date":"2020-02-05","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.20.0","date":"2020-03-26","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.21.0","date":"2020-06-02","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.22.0","date":"2020-07-21","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.23.0","date":"2020-10-27","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.24.0","date":"2021-02-23","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"11.0.0","date":"2018-10-23","lts":false,"security":false,"v8":"7.0.276.28"},{"name":"nodejs","version":"11.1.0","date":"2018-10-30","lts":false,"security":false,"v8":"7.0.276.32"},{"name":"nodejs","version":"11.2.0","date":"2018-11-15","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.3.0","date":"2018-11-27","lts":false,"security":true,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.4.0","date":"2018-12-07","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.5.0","date":"2018-12-18","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.6.0","date":"2018-12-26","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.7.0","date":"2019-01-17","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.8.0","date":"2019-01-24","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.9.0","date":"2019-01-30","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.10.0","date":"2019-02-14","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.11.0","date":"2019-03-05","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.12.0","date":"2019-03-14","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.13.0","date":"2019-03-28","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.14.0","date":"2019-04-10","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.15.0","date":"2019-04-30","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"12.0.0","date":"2019-04-23","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.1.0","date":"2019-04-29","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.2.0","date":"2019-05-07","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.3.0","date":"2019-05-21","lts":false,"security":false,"v8":"7.4.288.27"},{"name":"nodejs","version":"12.4.0","date":"2019-06-04","lts":false,"security":false,"v8":"7.4.288.27"},{"name":"nodejs","version":"12.5.0","date":"2019-06-26","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.6.0","date":"2019-07-03","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.7.0","date":"2019-07-23","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.8.0","date":"2019-08-06","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.9.0","date":"2019-08-20","lts":false,"security":false,"v8":"7.6.303.29"},{"name":"nodejs","version":"12.10.0","date":"2019-09-04","lts":false,"security":false,"v8":"7.6.303.29"},{"name":"nodejs","version":"12.11.0","date":"2019-09-25","lts":false,"security":false,"v8":"7.7.299.11"},{"name":"nodejs","version":"12.12.0","date":"2019-10-11","lts":false,"security":false,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.13.0","date":"2019-10-21","lts":"Erbium","security":false,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.14.0","date":"2019-12-17","lts":"Erbium","security":true,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.15.0","date":"2020-02-05","lts":"Erbium","security":true,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.16.0","date":"2020-02-11","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.17.0","date":"2020-05-26","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.18.0","date":"2020-06-02","lts":"Erbium","security":true,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.19.0","date":"2020-10-06","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.20.0","date":"2020-11-24","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.21.0","date":"2021-02-23","lts":"Erbium","security":true,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.22.0","date":"2021-03-30","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"13.0.0","date":"2019-10-22","lts":false,"security":false,"v8":"7.8.279.17"},{"name":"nodejs","version":"13.1.0","date":"2019-11-05","lts":false,"security":false,"v8":"7.8.279.17"},{"name":"nodejs","version":"13.2.0","date":"2019-11-21","lts":false,"security":false,"v8":"7.9.317.23"},{"name":"nodejs","version":"13.3.0","date":"2019-12-03","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.4.0","date":"2019-12-17","lts":false,"security":true,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.5.0","date":"2019-12-18","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.6.0","date":"2020-01-07","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.7.0","date":"2020-01-21","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.8.0","date":"2020-02-05","lts":false,"security":true,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.9.0","date":"2020-02-18","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.10.0","date":"2020-03-04","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.11.0","date":"2020-03-12","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.12.0","date":"2020-03-26","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.13.0","date":"2020-04-14","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.14.0","date":"2020-04-29","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"14.0.0","date":"2020-04-21","lts":false,"security":false,"v8":"8.1.307.30"},{"name":"nodejs","version":"14.1.0","date":"2020-04-29","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.2.0","date":"2020-05-05","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.3.0","date":"2020-05-19","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.4.0","date":"2020-06-02","lts":false,"security":true,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.5.0","date":"2020-06-30","lts":false,"security":false,"v8":"8.3.110.9"},{"name":"nodejs","version":"14.6.0","date":"2020-07-20","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.7.0","date":"2020-07-29","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.8.0","date":"2020-08-11","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.9.0","date":"2020-08-27","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.10.0","date":"2020-09-08","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.11.0","date":"2020-09-15","lts":false,"security":true,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.12.0","date":"2020-09-22","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.13.0","date":"2020-09-29","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.14.0","date":"2020-10-15","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.15.0","date":"2020-10-27","lts":"Fermium","security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.16.0","date":"2021-02-23","lts":"Fermium","security":true,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.17.0","date":"2021-05-11","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.18.0","date":"2021-09-28","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.19.0","date":"2022-02-01","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.20.0","date":"2022-07-07","lts":"Fermium","security":true,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.21.0","date":"2022-11-01","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"15.0.0","date":"2020-10-20","lts":false,"security":false,"v8":"8.6.395.16"},{"name":"nodejs","version":"15.1.0","date":"2020-11-04","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.2.0","date":"2020-11-10","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.3.0","date":"2020-11-24","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.4.0","date":"2020-12-09","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.5.0","date":"2020-12-22","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.6.0","date":"2021-01-14","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.7.0","date":"2021-01-25","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.8.0","date":"2021-02-02","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.9.0","date":"2021-02-18","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.10.0","date":"2021-02-23","lts":false,"security":true,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.11.0","date":"2021-03-03","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.12.0","date":"2021-03-17","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.13.0","date":"2021-03-31","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.14.0","date":"2021-04-06","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"16.0.0","date":"2021-04-20","lts":false,"security":false,"v8":"9.0.257.17"},{"name":"nodejs","version":"16.1.0","date":"2021-05-04","lts":false,"security":false,"v8":"9.0.257.24"},{"name":"nodejs","version":"16.2.0","date":"2021-05-19","lts":false,"security":false,"v8":"9.0.257.25"},{"name":"nodejs","version":"16.3.0","date":"2021-06-03","lts":false,"security":false,"v8":"9.0.257.25"},{"name":"nodejs","version":"16.4.0","date":"2021-06-23","lts":false,"security":false,"v8":"9.1.269.36"},{"name":"nodejs","version":"16.5.0","date":"2021-07-14","lts":false,"security":false,"v8":"9.1.269.38"},{"name":"nodejs","version":"16.6.0","date":"2021-07-29","lts":false,"security":true,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.7.0","date":"2021-08-18","lts":false,"security":false,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.8.0","date":"2021-08-25","lts":false,"security":false,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.9.0","date":"2021-09-07","lts":false,"security":false,"v8":"9.3.345.16"},{"name":"nodejs","version":"16.10.0","date":"2021-09-22","lts":false,"security":false,"v8":"9.3.345.19"},{"name":"nodejs","version":"16.11.0","date":"2021-10-08","lts":false,"security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.12.0","date":"2021-10-20","lts":false,"security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.13.0","date":"2021-10-26","lts":"Gallium","security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.14.0","date":"2022-02-08","lts":"Gallium","security":false,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.15.0","date":"2022-04-26","lts":"Gallium","security":false,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.16.0","date":"2022-07-07","lts":"Gallium","security":true,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.17.0","date":"2022-08-16","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.18.0","date":"2022-10-12","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.19.0","date":"2022-12-13","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.20.0","date":"2023-03-28","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"17.0.0","date":"2021-10-19","lts":false,"security":false,"v8":"9.5.172.21"},{"name":"nodejs","version":"17.1.0","date":"2021-11-09","lts":false,"security":false,"v8":"9.5.172.25"},{"name":"nodejs","version":"17.2.0","date":"2021-11-30","lts":false,"security":false,"v8":"9.6.180.14"},{"name":"nodejs","version":"17.3.0","date":"2021-12-17","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.4.0","date":"2022-01-18","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.5.0","date":"2022-02-10","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.6.0","date":"2022-02-22","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.7.0","date":"2022-03-09","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.8.0","date":"2022-03-22","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.9.0","date":"2022-04-07","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"18.0.0","date":"2022-04-18","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.1.0","date":"2022-05-03","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.2.0","date":"2022-05-17","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.3.0","date":"2022-06-02","lts":false,"security":false,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.4.0","date":"2022-06-16","lts":false,"security":false,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.5.0","date":"2022-07-06","lts":false,"security":true,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.6.0","date":"2022-07-13","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.7.0","date":"2022-07-26","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.8.0","date":"2022-08-24","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.9.0","date":"2022-09-07","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.10.0","date":"2022-09-28","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.11.0","date":"2022-10-13","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.12.0","date":"2022-10-25","lts":"Hydrogen","security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.13.0","date":"2023-01-05","lts":"Hydrogen","security":false,"v8":"10.2.154.23"},{"name":"nodejs","version":"18.14.0","date":"2023-02-01","lts":"Hydrogen","security":false,"v8":"10.2.154.23"},{"name":"nodejs","version":"18.15.0","date":"2023-03-05","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.16.0","date":"2023-04-12","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"19.0.0","date":"2022-10-17","lts":false,"security":false,"v8":"10.7.193.13"},{"name":"nodejs","version":"19.1.0","date":"2022-11-14","lts":false,"security":false,"v8":"10.7.193.20"},{"name":"nodejs","version":"19.2.0","date":"2022-11-29","lts":false,"security":false,"v8":"10.8.168.20"},{"name":"nodejs","version":"19.3.0","date":"2022-12-14","lts":false,"security":false,"v8":"10.8.168.21"},{"name":"nodejs","version":"19.4.0","date":"2023-01-05","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.5.0","date":"2023-01-24","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.6.0","date":"2023-02-01","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.7.0","date":"2023-02-21","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.8.0","date":"2023-03-14","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.9.0","date":"2023-04-10","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"20.0.0","date":"2023-04-17","lts":false,"security":false,"v8":"11.3.244.4"},{"name":"nodejs","version":"20.1.0","date":"2023-05-03","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.2.0","date":"2023-05-16","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.3.0","date":"2023-06-08","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.4.0","date":"2023-07-04","lts":false,"security":false,"v8":"11.3.244.8"}]')},78864:function(e){"use strict";e.exports=JSON.parse('{"v0.8":{"start":"2012-06-25","end":"2014-07-31"},"v0.10":{"start":"2013-03-11","end":"2016-10-31"},"v0.12":{"start":"2015-02-06","end":"2016-12-31"},"v4":{"start":"2015-09-08","lts":"2015-10-12","maintenance":"2017-04-01","end":"2018-04-30","codename":"Argon"},"v5":{"start":"2015-10-29","maintenance":"2016-04-30","end":"2016-06-30"},"v6":{"start":"2016-04-26","lts":"2016-10-18","maintenance":"2018-04-30","end":"2019-04-30","codename":"Boron"},"v7":{"start":"2016-10-25","maintenance":"2017-04-30","end":"2017-06-30"},"v8":{"start":"2017-05-30","lts":"2017-10-31","maintenance":"2019-01-01","end":"2019-12-31","codename":"Carbon"},"v9":{"start":"2017-10-01","maintenance":"2018-04-01","end":"2018-06-30"},"v10":{"start":"2018-04-24","lts":"2018-10-30","maintenance":"2020-05-19","end":"2021-04-30","codename":"Dubnium"},"v11":{"start":"2018-10-23","maintenance":"2019-04-22","end":"2019-06-01"},"v12":{"start":"2019-04-23","lts":"2019-10-21","maintenance":"2020-11-30","end":"2022-04-30","codename":"Erbium"},"v13":{"start":"2019-10-22","maintenance":"2020-04-01","end":"2020-06-01"},"v14":{"start":"2020-04-21","lts":"2020-10-27","maintenance":"2021-10-19","end":"2023-04-30","codename":"Fermium"},"v15":{"start":"2020-10-20","maintenance":"2021-04-01","end":"2021-06-01"},"v16":{"start":"2021-04-20","lts":"2021-10-26","maintenance":"2022-10-18","end":"2023-09-11","codename":"Gallium"},"v17":{"start":"2021-10-19","maintenance":"2022-04-01","end":"2022-06-01"},"v18":{"start":"2022-04-19","lts":"2022-10-25","maintenance":"2023-10-18","end":"2025-04-30","codename":"Hydrogen"},"v19":{"start":"2022-10-18","maintenance":"2023-04-01","end":"2023-06-01"},"v20":{"start":"2023-04-18","lts":"2023-10-24","maintenance":"2024-10-22","end":"2026-04-30","codename":""}}')}}]);
-//# sourceMappingURL=7816-7816.js.map?v=65431bc18b0fe13cdaff \ No newline at end of file
+(self.webpackChunknextcloud=self.webpackChunknextcloud||[]).push([[7816],{77727:function(e){e.exports=[">0.25%","not op_mini all","not dead","Firefox ESR"]},75893:function(e,u,r){"use strict";var n,d=r(77958),t=r(17499);u.Z=null===(n=(0,d.ts)())?(0,t.IY)().setApp("core").build():(0,t.IY)().setApp("core").setUid(n.uid).build()},5650:function(e,u,r){"use strict";var n=r(62556);u.Z=(0,n.getBuilder)("core").clearOnLogout().persist().build()},95350:function(e,u,r){"use strict";r.d(u,{B:function(){return i}});var n=r(20879),d=r(31e3),t=r.n(d),a=r(77727),s=r.n(a),i=(0,n.z$)({allowHigherVersions:!0,browsers:s()});t()(s())},77816:function(e,u,r){"use strict";r.r(u),r.d(u,{browserStorageKey:function(){return i},testSupportedBrowser:function(){return c}});var n=r(79753),d=r(95350),t=r(5650),a=r(75893),s=r(23085).lW,i="unsupported-browser-ignore",f=(0,n.generateUrl)("/unsupported"),o="true"===t.Z.getItem(i),c=function(){if(d.B.test(navigator.userAgent))a.Z.debug("this browser is officially supported ! 🚀");else if(o)a.Z.debug("this browser is NOT supported but has been manually overridden ! ⚠️");else if(-1===window.location.pathname.indexOf(f)){var e=window.location.href.replace(window.location.origin,""),u=s.from(e).toString("base64");history.pushState(null,null,"".concat(f,"?redirect_url=").concat(u)),window.location.reload()}}},84660:function(e,u,r){var n=r(9667);function d(){}e.exports={loadQueries:function(){throw new n("Sharable configs are not supported in client-side build of Browserslist")},getStat:function(e){return e.stats},loadConfig:function(e){if(e.config)throw new n("Browserslist config are not supported in client-side build")},loadCountry:function(){throw new n("Country statistics are not supported in client-side build of Browserslist")},loadFeature:function(){throw new n("Supports queries are not available in client-side build of Browserslist")},currentNode:function(e,u){return e(["maintained node versions"],u)[0]},parseConfig:d,readConfig:d,findConfig:d,clearCaches:d,oldDataWarning:d,env:{}}},9667:function(e){function u(e){this.name="BrowserslistError",this.message=e,this.browserslist=!0,Error.captureStackTrace&&Error.captureStackTrace(this,u)}u.prototype=Error.prototype,e.exports=u},31e3:function(e,u,r){var n=r(76052),d=r(95459).agents,t=r(78864),a=r(72950),s=r(76250),i=r(9667),f=r(65723),o=r(84660),c="37";function l(e,u){return 0===(e+".").indexOf(u+".")}function v(e){return e.filter((function(e){return"string"==typeof e}))}function b(e){var u=e;return 3===e.split(".").length&&(u=e.split(".").slice(0,-1).join(".")),u}function p(e){return function(u){return e+" "+u}}function h(e){return parseInt(e.split(".")[0])}function m(e,u){if(0===e.length)return[];var r=y(e.map(h)),n=r[r.length-u];if(!n)return e;for(var d=[],t=e.length-1;t>=0&&!(n>h(e[t]));t--)d.unshift(e[t]);return d}function y(e){for(var u=[],r=0;r<e.length;r++)-1===u.indexOf(e[r])&&u.push(e[r]);return u}function g(e,u,r){for(var n in r)e[u+" "+n]=r[n]}function C(e,u){return u=parseFloat(u),">"===e?function(e){return parseFloat(e)>u}:">="===e?function(e){return parseFloat(e)>=u}:"<"===e?function(e){return parseFloat(e)<u}:function(e){return parseFloat(e)<=u}}function B(e){return parseInt(e)}function _(e,u){return e<u?-1:e>u?1:0}function x(e,u){return _(parseInt(e[0]),parseInt(u[0]))||_(parseInt(e[1]||"0"),parseInt(u[1]||"0"))||_(parseInt(e[2]||"0"),parseInt(u[2]||"0"))}function A(e,u){return void 0===(u=u.split(".").map(B))[1]&&(u[1]="x"),"<="===e?function(e){return S(e=e.split(".").map(B),u)<=0}:function(e){return S(e=e.split(".").map(B),u)>=0}}function S(e,u){return e[0]!==u[0]?e[0]<u[0]?-1:1:"x"===u[1]?0:e[1]!==u[1]?e[1]<u[1]?-1:1:0}function w(e,u){var r=function(e,u){return-1!==e.versions.indexOf(u)?u:!!M.versionAliases[e.name][u]&&M.versionAliases[e.name][u]}(e,u);return r||1===e.versions.length&&e.versions[0]}function j(e,u){return e/=1e3,Object.keys(d).reduce((function(r,n){var d=E(n,u);if(!d)return r;var t=Object.keys(d.releaseDate).filter((function(u){var r=d.releaseDate[u];return null!==r&&r>=e}));return r.concat(t.map(p(d.name)))}),[])}function k(e){return{name:e.name,versions:e.versions,released:e.released,releaseDate:e.releaseDate}}function E(e,u){if(e=e.toLowerCase(),e=M.aliases[e]||e,u.mobileToDesktop&&M.desktopNames[e]){var r=M.data[M.desktopNames[e]];if("android"===e)return d=k(M.data[e]),t=r,d.released=P(d.released,t.released),d.versions=P(d.versions,t.versions),d.released.forEach((function(e){void 0===d.releaseDate[e]&&(d.releaseDate[e]=t.releaseDate[e])})),d;var n=k(r);return n.name=e,n}var d,t;return M.data[e]}function P(e,u){var r=u.indexOf(c);return e.filter((function(e){return/^(?:[2-4]\.|[34]$)/.test(e)})).concat(u.slice(r))}function O(e,u){var r=E(e,u);if(!r)throw new i("Unknown browser "+e);return r}function T(e,u,r,n){var d=1;switch(u){case"android":if(n.mobileToDesktop)return e;var t=M.data.chrome.released;d=t.length-t.indexOf(c);break;case"op_mob":d=h(M.data.op_mob.released.slice(-1)[0])-14+1;break;default:return e}return r<=d?e.slice(-1):e.slice(d-1-r)}function R(e){return"string"==typeof e&&(e.indexOf("y")>=0||e.indexOf("a")>=0)}function N(e,u){return f(V,e).reduce((function(e,r,n){if(r.not&&0===n)throw new i("Write any browsers query (for instance, `defaults`) before `"+r.query+"`");var d=V[r.type].select.call(M,u,r).map((function(e){var r=e.split(" ");return"0"===r[1]?r[0]+" "+E(r[0],u).versions[0]:e}));if("and"===r.compose)return r.not?e.filter((function(e){return-1===d.indexOf(e)})):e.filter((function(e){return-1!==d.indexOf(e)}));if(r.not){var t={};return d.forEach((function(e){t[e]=!0})),e.filter((function(e){return!t[e]}))}return e.concat(d)}),[])}function D(e){return void 0===e&&(e={}),void 0===e.path&&(e.path=a.resolve?a.resolve("."):"."),e}function L(e,u){null==e&&(e=M.loadConfig(u)||M.defaults);return e}function F(e){if("string"!=typeof e&&!Array.isArray(e))throw new i("Browser queries must be an array or string. Got "+typeof e+".")}var I={};function M(e,u){F(e=L(e,u=D(u)));var r={ignoreUnknownVersions:u.ignoreUnknownVersions,dangerousExtend:u.dangerousExtend,mobileToDesktop:u.mobileToDesktop,path:u.path,env:u.env};o.oldDataWarning(M.data);var n=o.getStat(u,M.data);if(n)for(var d in r.customUsage={},n)g(r.customUsage,d,n[d]);var t=JSON.stringify([e,r]);if(I[t])return I[t];var a=y(N(e,r)).sort((function(e,u){if(e=e.split(" "),u=u.split(" "),e[0]===u[0]){var r=e[1].split("-")[0];return x(u[1].split("-")[0].split("."),r.split("."))}return _(e[0],u[0])}));return o.env.BROWSERSLIST_DISABLE_CACHE||(I[t]=a),a}function U(e,u){var r=M.nodeVersions.filter((function(e){return l(e,u.version)}));if(0===r.length){if(e.ignoreUnknownVersions)return[];throw new i("Unknown version "+u.version+" of Node.js")}return["node "+r[r.length-1]]}function G(e,u){var r=parseInt(u.year),n=parseInt(u.month||"01")-1,d=parseInt(u.day||"01");return j(Date.UTC(r,n,d,0,0,0),e)}function H(e,u){var r=parseFloat(u.coverage),n=M.usage.global;if(u.place)if(u.place.match(/^my\s+stats$/i)){if(!e.customUsage)throw new i("Custom usage statistics was not provided");n=e.customUsage}else{var d;d=2===u.place.length?u.place.toUpperCase():u.place.toLowerCase(),o.loadCountry(M.usage,d,M.data),n=M.usage[d]}for(var t,a=Object.keys(n).sort((function(e,u){return n[u]-n[e]})),s=0,f=[],c=0;c<a.length&&(t=a[c],0!==n[t])&&(s+=n[t],f.push(t),!(s>=r));c++);return f}M.parse=function(e,u){return F(e=L(e,u=D(u))),f(V,e)},M.cache={},M.data={},M.usage={global:{},custom:null},M.defaults=["> 0.5%","last 2 versions","Firefox ESR","not dead"],M.aliases={fx:"firefox",ff:"firefox",ios:"ios_saf",explorer:"ie",blackberry:"bb",explorermobile:"ie_mob",operamini:"op_mini",operamobile:"op_mob",chromeandroid:"and_chr",firefoxandroid:"and_ff",ucandroid:"and_uc",qqandroid:"and_qq"},M.desktopNames={and_chr:"chrome",and_ff:"firefox",ie_mob:"ie",android:"chrome"},M.versionAliases={},M.clearCaches=o.clearCaches,M.parseConfig=o.parseConfig,M.readConfig=o.readConfig,M.findConfig=o.findConfig,M.loadConfig=o.loadConfig,M.coverage=function(e,u){var r;if(void 0===u)r=M.usage.global;else if("my stats"===u){var n={};n.path=a.resolve?a.resolve("."):".";var d=o.getStat(n);if(!d)throw new i("Custom usage statistics was not provided");for(var t in r={},d)g(r,t,d[t])}else if("string"==typeof u)u=u.length>2?u.toLowerCase():u.toUpperCase(),o.loadCountry(M.usage,u,M.data),r=M.usage[u];else for(var s in"dataByBrowser"in u&&(u=u.dataByBrowser),r={},u)for(var f in u[s])r[s+" "+f]=u[s][f];return e.reduce((function(e,u){var n=r[u];return void 0===n&&(n=r[u.replace(/ \S+$/," 0")]),e+(n||0)}),0)};var V={last_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+major\s+versions?$/i,select:function(e,u){return Object.keys(d).reduce((function(r,n){var d=E(n,e);if(!d)return r;var t=m(d.released,u.versions);return t=T(t=t.map(p(d.name)),d.name,u.versions,e),r.concat(t)}),[])}},last_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+versions?$/i,select:function(e,u){return Object.keys(d).reduce((function(r,n){var d=E(n,e);if(!d)return r;var t=d.released.slice(-u.versions);return t=T(t=t.map(p(d.name)),d.name,u.versions,e),r.concat(t)}),[])}},last_electron_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+electron\s+major\s+versions?$/i,select:function(e,u){return m(Object.keys(s),u.versions).map((function(e){return"chrome "+s[e]}))}},last_node_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+node\s+major\s+versions?$/i,select:function(e,u){return m(M.nodeVersions,u.versions).map((function(e){return"node "+e}))}},last_browser_major_versions:{matches:["versions","browser"],regexp:/^last\s+(\d+)\s+(\w+)\s+major\s+versions?$/i,select:function(e,u){var r=O(u.browser,e),n=m(r.released,u.versions).map(p(r.name));return T(n,r.name,u.versions,e)}},last_electron_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+electron\s+versions?$/i,select:function(e,u){return Object.keys(s).slice(-u.versions).map((function(e){return"chrome "+s[e]}))}},last_node_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+node\s+versions?$/i,select:function(e,u){return M.nodeVersions.slice(-u.versions).map((function(e){return"node "+e}))}},last_browser_versions:{matches:["versions","browser"],regexp:/^last\s+(\d+)\s+(\w+)\s+versions?$/i,select:function(e,u){var r=O(u.browser,e),n=r.released.slice(-u.versions).map(p(r.name));return T(n,r.name,u.versions,e)}},unreleased_versions:{matches:[],regexp:/^unreleased\s+versions$/i,select:function(e){return Object.keys(d).reduce((function(u,r){var n=E(r,e);if(!n)return u;var d=n.versions.filter((function(e){return-1===n.released.indexOf(e)}));return d=d.map(p(n.name)),u.concat(d)}),[])}},unreleased_electron_versions:{matches:[],regexp:/^unreleased\s+electron\s+versions?$/i,select:function(){return[]}},unreleased_browser_versions:{matches:["browser"],regexp:/^unreleased\s+(\w+)\s+versions?$/i,select:function(e,u){var r=O(u.browser,e);return r.versions.filter((function(e){return-1===r.released.indexOf(e)})).map(p(r.name))}},last_years:{matches:["years"],regexp:/^last\s+(\d*.?\d+)\s+years?$/i,select:function(e,u){return j(Date.now()-31558432982.4*u.years,e)}},since_y:{matches:["year"],regexp:/^since (\d+)$/i,select:G},since_y_m:{matches:["year","month"],regexp:/^since (\d+)-(\d+)$/i,select:G},since_y_m_d:{matches:["year","month","day"],regexp:/^since (\d+)-(\d+)-(\d+)$/i,select:G},popularity:{matches:["sign","popularity"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%$/,select:function(e,u){var r=parseFloat(u.popularity),n=M.usage.global;return Object.keys(n).reduce((function(e,d){return">"===u.sign?n[d]>r&&e.push(d):"<"===u.sign?n[d]<r&&e.push(d):"<="===u.sign?n[d]<=r&&e.push(d):n[d]>=r&&e.push(d),e}),[])}},popularity_in_my_stats:{matches:["sign","popularity"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+my\s+stats$/,select:function(e,u){var r=parseFloat(u.popularity);if(!e.customUsage)throw new i("Custom usage statistics was not provided");var n=e.customUsage;return Object.keys(n).reduce((function(e,d){var t=n[d];return null==t||(">"===u.sign?t>r&&e.push(d):"<"===u.sign?t<r&&e.push(d):"<="===u.sign?t<=r&&e.push(d):t>=r&&e.push(d)),e}),[])}},popularity_in_config_stats:{matches:["sign","popularity","config"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/,select:function(e,u){var r=parseFloat(u.popularity),n=o.loadStat(e,u.config,M.data);if(n)for(var d in e.customUsage={},n)g(e.customUsage,d,n[d]);if(!e.customUsage)throw new i("Custom usage statistics was not provided");var t=e.customUsage;return Object.keys(t).reduce((function(e,n){var d=t[n];return null==d||(">"===u.sign?d>r&&e.push(n):"<"===u.sign?d<r&&e.push(n):"<="===u.sign?d<=r&&e.push(n):d>=r&&e.push(n)),e}),[])}},popularity_in_place:{matches:["sign","popularity","place"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+((alt-)?\w\w)$/,select:function(e,u){var r=parseFloat(u.popularity),n=u.place;n=2===n.length?n.toUpperCase():n.toLowerCase(),o.loadCountry(M.usage,n,M.data);var d=M.usage[n];return Object.keys(d).reduce((function(e,n){var t=d[n];return null==t||(">"===u.sign?t>r&&e.push(n):"<"===u.sign?t<r&&e.push(n):"<="===u.sign?t<=r&&e.push(n):t>=r&&e.push(n)),e}),[])}},cover:{matches:["coverage"],regexp:/^cover\s+(\d+|\d+\.\d+|\.\d+)%$/i,select:H},cover_in:{matches:["coverage","place"],regexp:/^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(my\s+stats|(alt-)?\w\w)$/i,select:H},supports:{matches:["feature"],regexp:/^supports\s+([\w-]+)$/,select:function(e,u){o.loadFeature(M.cache,u.feature);var r=M.cache[u.feature],n=[];for(var d in r){var t=E(d,e),a=e.mobileToDesktop&&d in M.desktopNames&&R(r[d][t.released.slice(-1)[0]]);t.versions.forEach((function(e){var u=r[d][e];void 0===u&&a&&(u=r[M.desktopNames[d]][e]),R(u)&&n.push(d+" "+e)}))}return n}},electron_range:{matches:["from","to"],regexp:/^electron\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,u){var r=b(u.from),n=b(u.to),d=parseFloat(u.from),t=parseFloat(u.to);if(!s[r])throw new i("Unknown version "+d+" of electron");if(!s[n])throw new i("Unknown version "+t+" of electron");return Object.keys(s).filter((function(e){var u=parseFloat(e);return u>=d&&u<=t})).map((function(e){return"chrome "+s[e]}))}},node_range:{matches:["from","to"],regexp:/^node\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,u){return M.nodeVersions.filter(A(">=",u.from)).filter(A("<=",u.to)).map((function(e){return"node "+e}))}},browser_range:{matches:["browser","from","to"],regexp:/^(\w+)\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,u){var r=O(u.browser,e),n=parseFloat(w(r,u.from)||u.from),d=parseFloat(w(r,u.to)||u.to);return r.released.filter((function(e){var u=parseFloat(e);return u>=n&&u<=d})).map(p(r.name))}},electron_ray:{matches:["sign","version"],regexp:/^electron\s*(>=?|<=?)\s*([\d.]+)$/i,select:function(e,u){var r=b(u.version);return Object.keys(s).filter(C(u.sign,r)).map((function(e){return"chrome "+s[e]}))}},node_ray:{matches:["sign","version"],regexp:/^node\s*(>=?|<=?)\s*([\d.]+)$/i,select:function(e,u){return M.nodeVersions.filter((r=u.sign,n=u.version,(n=n.split(".").map(B))[1]=n[1]||0,n[2]=n[2]||0,">"===r?function(e){return x(e=e.split(".").map(B),n)>0}:">="===r?function(e){return x(e=e.split(".").map(B),n)>=0}:"<"===r?function(e){return e=e.split(".").map(B),x(n,e)>0}:function(e){return e=e.split(".").map(B),x(n,e)>=0})).map((function(e){return"node "+e}));var r,n}},browser_ray:{matches:["browser","sign","version"],regexp:/^(\w+)\s*(>=?|<=?)\s*([\d.]+)$/,select:function(e,u){var r=u.version,n=O(u.browser,e),d=M.versionAliases[n.name][r];return d&&(r=d),n.released.filter(C(u.sign,r)).map((function(e){return n.name+" "+e}))}},firefox_esr:{matches:[],regexp:/^(firefox|ff|fx)\s+esr$/i,select:function(){return["firefox 102","firefox 115"]}},opera_mini_all:{matches:[],regexp:/(operamini|op_mini)\s+all/i,select:function(){return["op_mini all"]}},electron_version:{matches:["version"],regexp:/^electron\s+([\d.]+)$/i,select:function(e,u){var r=b(u.version),n=s[r];if(!n)throw new i("Unknown version "+u.version+" of electron");return["chrome "+n]}},node_major_version:{matches:["version"],regexp:/^node\s+(\d+)$/i,select:U},node_minor_version:{matches:["version"],regexp:/^node\s+(\d+\.\d+)$/i,select:U},node_patch_version:{matches:["version"],regexp:/^node\s+(\d+\.\d+\.\d+)$/i,select:U},current_node:{matches:[],regexp:/^current\s+node$/i,select:function(e){return[o.currentNode(N,e)]}},maintained_node:{matches:[],regexp:/^maintained\s+node\s+versions$/i,select:function(e){var u=Date.now();return N(Object.keys(t).filter((function(e){return u<Date.parse(t[e].end)&&u>Date.parse(t[e].start)&&(r=e.slice(1),M.nodeVersions.some((function(e){return l(e,r)})));var r})).map((function(e){return"node "+e.slice(1)})),e)}},phantomjs_1_9:{matches:[],regexp:/^phantomjs\s+1.9$/i,select:function(){return["safari 5"]}},phantomjs_2_1:{matches:[],regexp:/^phantomjs\s+2.1$/i,select:function(){return["safari 6"]}},browser_version:{matches:["browser","version"],regexp:/^(\w+)\s+(tp|[\d.]+)$/i,select:function(e,u){var r=u.version;/^tp$/i.test(r)&&(r="TP");var n=O(u.browser,e),d=w(n,r);if(d)r=d;else{if(!(d=w(n,d=-1===r.indexOf(".")?r+".0":r.replace(/\.0$/,"")))){if(e.ignoreUnknownVersions)return[];throw new i("Unknown version "+r+" of "+u.browser)}r=d}return[n.name+" "+r]}},browserslist_config:{matches:[],regexp:/^browserslist config$/i,select:function(e){return M(void 0,e)}},extends:{matches:["config"],regexp:/^extends (.+)$/i,select:function(e,u){return N(o.loadQueries(e,u.config),e)}},defaults:{matches:[],regexp:/^defaults$/i,select:function(e){return N(M.defaults,e)}},dead:{matches:[],regexp:/^dead$/i,select:function(e){return N(["Baidu >= 0","ie <= 11","ie_mob <= 11","bb <= 10","op_mob <= 12.1","samsung 4"],e)}},unknown:{matches:[],regexp:/^(\w+)$/i,select:function(e,u){throw E(u.query,e)?new i("Specify versions in Browserslist query for browser "+u.query):(r=u.query,new i("Unknown browser query `"+r+"`. Maybe you are using old Browserslist or made typo in query."));var r}}};!function(){for(var e in d){var u=d[e];M.data[e]={name:e,versions:v(d[e].versions),released:v(d[e].versions.slice(0,-3)),releaseDate:d[e].release_date},g(M.usage.global,e,u.usage_global),M.versionAliases[e]={};for(var r=0;r<u.versions.length;r++){var t=u.versions[r];if(t&&-1!==t.indexOf("-"))for(var a=t.split("-"),s=0;s<a.length;s++)M.versionAliases[e][a[s]]=t}}M.nodeVersions=n.map((function(e){return e.version}))}(),e.exports=M},65723:function(e){var u=/^\s+and\s+(.*)/i,r=/^(?:,\s*|\s+or\s+)(.*)/i;function n(e){return Array.isArray(e)?e.reduce((function(e,u){return e.concat(n(u))}),[]):[e]}function d(e,u){var r={query:u};for(var n in 0===u.indexOf("not ")&&(r.not=!0,u=u.slice(4)),e){var d=e[n],t=u.match(d.regexp);if(t){r.type=n;for(var a=0;a<d.matches.length;a++)r[d.matches[a]]=t[a+1];return r}}return r.type="unknown",r}function t(e,n,t){var a;return function(e,u){for(var r=1,n=e.length;r<=n;r++)if(u(e.substr(-r,r),r,n))return e.slice(0,-r);return""}(n,(function(n,s,i){return u.test(n)?((a=d(e,n.match(u)[1])).compose="and",t.unshift(a),!0):r.test(n)?((a=d(e,n.match(r)[1])).compose="or",t.unshift(a),!0):s===i&&((a=d(e,n.trim())).compose="or",t.unshift(a),!0)}))}e.exports=function(e,u){return Array.isArray(u)||(u=[u]),n(u.map((function(u){var r=[];do{u=t(e,u,r)}while(u);return r})))}},66954:function(e){e.exports={A:{A:{K:0,F:0,G:.0326854,H:.0435805,A:0,B:.392224,JC:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","JC","K","F","G","H","A","B","","",""],E:"IE",F:{JC:962323200,K:998870400,F:1161129600,G:1237420800,H:1300060800,A:1346716800,B:1381968e3}},B:{A:{0:3.56904,C:0,L:0,M:0,I:.004259,N:0,D:.004259,O:.012777,P:0,Q:.004259,R:.004259,S:.004259,T:.008518,U:.004259,V:.004259,W:.004259,X:0,Y:.004259,Z:.004259,a:0,b:.012777,c:0,d:0,e:0,f:0,g:0,h:0,i:.008518,j:0,n:.008518,o:.008518,p:.004259,q:0,r:0,s:.004259,t:.008518,u:.012777,v:.076662,w:.021295,x:.029813,y:.579224,z:.745325,E:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","C","L","M","I","N","D","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","n","o","p","q","r","s","t","u","v","w","x","y","z","0","E","","",""],E:"Edge",F:{0:1685664e3,C:1438128e3,L:1447286400,M:1470096e3,I:1491868800,N:1508198400,D:1525046400,O:1542067200,P:1579046400,Q:1581033600,R:1586736e3,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:161136e4,Y:1614816e3,Z:1618358400,a:1622073600,b:1626912e3,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,n:1651190400,o:1653955200,p:1655942400,q:1659657600,r:1661990400,s:1664755200,t:1666915200,u:1670198400,v:1673481600,w:1675900800,x:1678665600,y:1680825600,z:1683158400,E:1689897600},D:{C:"ms",L:"ms",M:"ms",I:"ms",N:"ms",D:"ms",O:"ms"}},C:{A:{0:1.2564,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,KC:0,zB:0,J:0,K:0,F:0,G:0,H:0,A:0,B:.008518,C:0,L:0,M:0,I:0,N:0,D:0,O:0,k:0,l:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:.012777,PB:.004259,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:.051108,YB:0,ZB:0,aB:0,bB:.004259,cB:0,dB:0,"0B":.004259,eB:0,"1B":0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:.004259,mB:0,nB:0,oB:0,pB:.008518,m:0,qB:0,rB:0,sB:0,tB:0,uB:.051108,P:0,Q:0,R:0,"2B":0,S:0,T:.017036,U:0,V:0,W:.008518,X:.004259,Y:0,Z:0,a:.012777,b:0,c:0,d:.004259,e:0,f:0,g:0,h:0,i:0,j:0,n:0,o:.110734,p:.012777,q:0,r:.008518,s:.004259,t:.008518,u:.012777,v:.012777,w:.012777,x:.025554,y:.055367,z:.660145,E:.012777,"3B":0,"4B":0,LC:0,MC:0},B:"moz",C:["KC","zB","LC","MC","J","1","K","F","G","H","A","B","C","L","M","I","N","D","O","2","k","l","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","0B","eB","1B","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","m","qB","rB","sB","tB","uB","P","Q","R","2B","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","n","o","p","q","r","s","t","u","v","w","x","y","z","0","E","3B","4B",""],E:"Firefox",F:{0:1686009600,1:1308614400,2:1357603200,3:1368489600,4:1372118400,5:1375747200,6:1379376e3,7:1386633600,8:1391472e3,9:1395100800,KC:1161648e3,zB:1213660800,LC:124632e4,MC:1264032e3,J:1300752e3,K:1313452800,F:1317081600,G:1317081600,H:1320710400,A:1324339200,B:1327968e3,C:1331596800,L:1335225600,M:1338854400,I:1342483200,N:1346112e3,D:1349740800,O:1353628800,k:1361232e3,l:1364860800,AB:1398729600,BB:1402358400,CB:1405987200,DB:1409616e3,EB:1413244800,FB:1417392e3,GB:1421107200,HB:1424736e3,IB:1428278400,JB:1431475200,KB:1435881600,LB:1439251200,MB:144288e4,NB:1446508800,OB:1450137600,PB:1453852800,QB:1457395200,RB:1461628800,SB:1465257600,TB:1470096e3,UB:1474329600,VB:1479168e3,WB:1485216e3,XB:1488844800,YB:149256e4,ZB:1497312e3,aB:1502150400,bB:1506556800,cB:1510617600,dB:1516665600,"0B":1520985600,eB:1525824e3,"1B":1529971200,fB:1536105600,gB:1540252800,hB:1544486400,iB:154872e4,jB:1552953600,kB:1558396800,lB:1562630400,mB:1567468800,nB:1571788800,oB:1575331200,pB:1578355200,m:1581379200,qB:1583798400,rB:1586304e3,sB:1588636800,tB:1591056e3,uB:1593475200,P:1595894400,Q:1598313600,R:1600732800,"2B":1603152e3,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392e3,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536e3,n:1653955200,o:1656374400,p:1658793600,q:1661212800,r:1663632e3,s:1666051200,t:1668470400,u:1670889600,v:1673913600,w:1676332800,x:1678752e3,y:1681171200,z:1683590400,E:1688428800,"3B":null,"4B":null}},D:{A:{0:14.553,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,J:0,K:0,F:0,G:0,H:0,A:0,B:0,C:0,L:0,M:0,I:0,N:0,D:0,O:0,k:0,l:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:.008518,GB:0,HB:0,IB:0,JB:.017036,KB:0,LB:.012777,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:.008518,TB:.017036,UB:.038331,VB:.008518,WB:0,XB:.004259,YB:.008518,ZB:0,aB:.004259,bB:.051108,cB:0,dB:0,"0B":0,eB:.017036,"1B":.012777,fB:0,gB:.004259,hB:0,iB:.012777,jB:.029813,kB:.008518,lB:.025554,mB:.051108,nB:.04259,oB:.017036,pB:.025554,m:.012777,qB:.059626,rB:.059626,sB:.093698,tB:.025554,uB:.038331,P:.200173,Q:.051108,R:.051108,S:.110734,T:.029813,U:.089439,V:.072403,W:.089439,X:.046849,Y:.038331,Z:.055367,a:.089439,b:.038331,c:.17036,d:.034072,e:.021295,f:.025554,g:.025554,h:.063885,i:.055367,j:.046849,n:.04259,o:.051108,p:.268317,q:.063885,r:.076662,s:.051108,t:.059626,u:.149065,v:1.96766,w:.123511,x:.455713,y:.630332,z:3.9268,E:.021295,"3B":.021295,"4B":0,NC:0},B:"webkit",C:["","","","","","J","1","K","F","G","H","A","B","C","L","M","I","N","D","O","2","k","l","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","0B","eB","1B","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","m","qB","rB","sB","tB","uB","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","n","o","p","q","r","s","t","u","v","w","x","y","z","0","E","3B","4B","NC"],E:"Chrome",F:{0:1685404800,1:1274745600,2:1332892800,3:1343692800,4:1348531200,5:1352246400,6:1357862400,7:1361404800,8:1364428800,9:1369094400,J:1264377600,K:1283385600,F:1287619200,G:1291248e3,H:1296777600,A:1299542400,B:1303862400,C:1307404800,L:1312243200,M:1316131200,I:1316131200,N:1319500800,D:1323734400,O:1328659200,k:133704e4,l:1340668800,AB:1374105600,BB:1376956800,CB:1384214400,DB:1389657600,EB:1392940800,FB:1397001600,GB:1400544e3,HB:1405468800,IB:1409011200,JB:141264e4,KB:1416268800,LB:1421798400,MB:1425513600,NB:1429401600,OB:143208e4,PB:1437523200,QB:1441152e3,RB:1444780800,SB:1449014400,TB:1453248e3,UB:1456963200,VB:1460592e3,WB:1464134400,XB:1469059200,YB:1472601600,ZB:1476230400,aB:1480550400,bB:1485302400,cB:1489017600,dB:149256e4,"0B":1496707200,eB:1500940800,"1B":1504569600,fB:1508198400,gB:1512518400,hB:1516752e3,iB:1520294400,jB:1523923200,kB:1527552e3,lB:1532390400,mB:1536019200,nB:1539648e3,oB:1543968e3,pB:154872e4,m:1552348800,qB:1555977600,rB:1559606400,sB:1564444800,tB:1568073600,uB:1571702400,P:1575936e3,Q:1580860800,R:1586304e3,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272e3,a:1621987200,b:1626739200,c:1630368e3,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512e3,n:1650931200,o:1653350400,p:1655769600,q:1659398400,r:1661817600,s:1664236800,t:1666656e3,u:166968e4,v:1673308800,w:1675728e3,x:1678147200,y:1680566400,z:1682985600,E:1689724800,"3B":null,"4B":null,NC:null}},E:{A:{1:0,J:0,K:0,F:0,G:0,H:0,A:0,B:0,C:0,L:.025554,M:.12777,I:.029813,D:.008518,OC:0,"5B":0,PC:.008518,QC:0,RC:0,SC:.102216,"6B":0,vB:.008518,wB:.038331,"7B":.166101,TC:.332202,UC:.055367,"8B":.046849,"9B":.106475,xB:.191655,AC:.779397,yB:.080921,BC:.25554,CC:.289612,DC:.706994,EC:.498303,FC:2.00599,GC:.021295,VC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","OC","5B","J","1","PC","K","QC","F","RC","G","H","SC","A","6B","B","vB","C","wB","L","7B","M","TC","I","UC","8B","9B","xB","AC","yB","BC","CC","DC","EC","FC","GC","D","VC"],E:"Safari",F:{1:1275868800,OC:1205798400,"5B":1226534400,J:1244419200,PC:131112e4,K:1343174400,QC:13824e5,F:13824e5,RC:1410998400,G:1413417600,H:1443657600,SC:1458518400,A:1474329600,"6B":1490572800,B:1505779200,vB:1522281600,C:1537142400,wB:1553472e3,L:1568851200,"7B":1585008e3,M:1600214400,TC:1619395200,I:1632096e3,UC:1635292800,"8B":1639353600,"9B":1647216e3,xB:1652745600,AC:1658275200,yB:1662940800,BC:1666569600,CC:1670889600,DC:1674432e3,EC:1679875200,FC:1684368e3,GC:null,D:null,VC:null}},F:{A:{2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:.008518,H:0,B:.038331,C:0,I:0,N:0,D:0,O:0,k:0,l:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:.004259,MB:0,NB:0,OB:0,PB:0,QB:0,RB:.017036,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,m:0,qB:0,rB:0,sB:0,tB:0,uB:0,P:0,Q:0,R:0,"2B":0,S:0,T:0,U:.004259,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0,c:0,d:0,e:.059626,f:.012777,g:.021295,h:.664404,i:1.29048,j:.012777,WC:0,XC:0,YC:0,ZC:0,vB:0,HC:0,aC:0,wB:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","H","WC","XC","YC","ZC","B","vB","HC","aC","C","wB","I","N","D","O","2","k","l","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","m","qB","rB","sB","tB","uB","P","Q","R","2B","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","","",""],E:"Opera",F:{2:1390867200,3:1401753600,4:1405987200,5:1409616e3,6:1413331200,7:1417132800,8:1422316800,9:1425945600,H:1150761600,WC:1223424e3,XC:1251763200,YC:1267488e3,ZC:1277942400,B:1292457600,vB:1302566400,HC:1309219200,aC:1323129600,C:1323129600,wB:1352073600,I:1372723200,N:1377561600,D:1381104e3,O:1386288e3,k:1393891200,l:1399334400,AB:1430179200,BB:1433808e3,CB:1438646400,DB:1442448e3,EB:1445904e3,FB:1449100800,GB:1454371200,HB:1457308800,IB:146232e4,JB:1465344e3,KB:1470096e3,LB:1474329600,MB:1477267200,NB:1481587200,OB:1486425600,PB:1490054400,QB:1494374400,RB:1498003200,SB:1502236800,TB:1506470400,UB:1510099200,VB:1515024e3,WB:1517961600,XB:1521676800,YB:1525910400,ZB:1530144e3,aB:1534982400,bB:1537833600,cB:1543363200,dB:1548201600,eB:1554768e3,fB:1561593600,gB:1566259200,hB:1570406400,iB:1573689600,jB:1578441600,kB:1583971200,lB:1587513600,mB:1592956800,nB:1595894400,oB:1600128e3,pB:1603238400,m:161352e4,qB:1612224e3,rB:1616544e3,sB:1619568e3,tB:1623715200,uB:1627948800,P:1631577600,Q:1633392e3,R:1635984e3,"2B":1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152e3,Z:1660780800,a:1663113600,b:1668816e3,c:1668643200,d:1671062400,e:1675209600,f:1677024e3,g:1679529600,h:1681948800,i:1684195200,j:1687219200},D:{H:"o",B:"o",C:"o",WC:"o",XC:"o",YC:"o",ZC:"o",vB:"o",HC:"o",aC:"o",wB:"o"}},G:{A:{G:0,D:.0227641,"5B":0,bC:0,IC:.00303522,cC:.00303522,dC:.00455283,eC:.0121409,fC:.00455283,gC:.00910566,hC:.0440107,iC:.00455283,jC:.062222,kC:.0303522,lC:.0197289,mC:.0166937,nC:.321733,oC:.00910566,pC:.00910566,qC:.0227641,rC:.0773981,sC:.20336,tC:.374849,uC:.119891,"8B":.141138,"9B":.160867,xB:.239782,AC:.582762,yB:.648019,BC:1.23837,CC:.661678,DC:1.56617,EC:1.0259,FC:6.55152,GC:.0637396},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","5B","bC","IC","cC","dC","eC","G","fC","gC","hC","iC","jC","kC","lC","mC","nC","oC","pC","qC","rC","sC","tC","uC","8B","9B","xB","AC","yB","BC","CC","DC","EC","FC","GC","D",""],E:"Safari on iOS",F:{"5B":1270252800,bC:1283904e3,IC:1299628800,cC:1331078400,dC:1359331200,eC:1394409600,G:1410912e3,fC:1413763200,gC:1442361600,hC:1458518400,iC:1473724800,jC:1490572800,kC:1505779200,lC:1522281600,mC:1537142400,nC:1553472e3,oC:1568851200,pC:1572220800,qC:1580169600,rC:1585008e3,sC:1600214400,tC:1619395200,uC:1632096e3,"8B":1639353600,"9B":1647216e3,xB:1652659200,AC:1658275200,yB:1662940800,BC:1666569600,CC:1670889600,DC:1674432e3,EC:1679875200,FC:1684368e3,GC:null,D:null}},H:{A:{vC:.956597},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","vC","","",""],E:"Opera Mini",F:{vC:1426464e3}},I:{A:{zB:0,J:.0252848,E:0,wC:0,xC:.00842828,yC:0,zC:.0168566,IC:.092711,"0C":0,"1C":.252848},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","wC","xC","yC","zB","J","zC","IC","0C","1C","E","","",""],E:"Android Browser",F:{wC:1256515200,xC:1274313600,yC:1291593600,zB:1298332800,J:1318896e3,zC:1341792e3,IC:1374624e3,"0C":1386547200,"1C":1401667200,E:1690243200}},J:{A:{F:0,A:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","F","A","","",""],E:"Blackberry Browser",F:{F:1325376e3,A:1359504e3}},K:{A:{A:0,B:0,C:0,m:0,vB:0,HC:0,wB:0},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","vB","HC","C","wB","m","","",""],E:"Opera Mobile",F:{A:1287100800,B:1300752e3,vB:1314835200,HC:1318291200,C:1330300800,wB:1349740800,m:1673827200},D:{m:"webkit"}},L:{A:{E:38.2012},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","E","","",""],E:"Chrome for Android",F:{E:1690243200}},M:{A:{E:.281309},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","E","","",""],E:"Firefox for Android",F:{E:1688428800}},N:{A:{A:0,B:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","","",""],E:"IE Mobile",F:{A:1340150400,B:1353456e3}},O:{A:{xB:1.04486},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","xB","","",""],E:"UC Browser for Android",F:{xB:1687132800},D:{xB:"webkit"}},P:{A:{J:.156242,k:.229156,l:1.74991,"2C":0,"3C":0,"4C":.0520808,"5C":0,"6C":0,"6B":0,"7C":.0208323,"8C":0,"9C":.0208323,AD:.0208323,BD:.0104162,yB:.0416646,CD:.0416646,DD:.0416646,ED:.0833293},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","J","2C","3C","4C","5C","6C","6B","7C","8C","9C","AD","BD","yB","CD","DD","ED","k","l","","",""],E:"Samsung Internet",F:{J:1461024e3,"2C":1481846400,"3C":1509408e3,"4C":1528329600,"5C":1546128e3,"6C":1554163200,"6B":1567900800,"7C":1582588800,"8C":1593475200,"9C":1605657600,AD:1618531200,BD:1629072e3,yB:1640736e3,CD:1651708800,DD:1659657600,ED:1667260800,k:1677369600,l:1684454400}},Q:{A:{"7B":.155007},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","7B","","",""],E:"QQ Browser",F:{"7B":1663718400}},R:{A:{FD:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","FD","","",""],E:"Baidu Browser",F:{FD:1663027200}},S:{A:{GD:.103338,HD:0},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","GD","HD","","",""],E:"KaiOS Browser",F:{GD:1527811200,HD:1631664e3}}}},6974:function(e){e.exports={0:"114",1:"5",2:"19",3:"22",4:"23",5:"24",6:"25",7:"26",8:"27",9:"28",A:"10",B:"11",C:"12",D:"17",E:"115",F:"7",G:"8",H:"9",I:"15",J:"4",K:"6",L:"13",M:"14",N:"16",O:"18",P:"79",Q:"80",R:"81",S:"83",T:"84",U:"85",V:"86",W:"87",X:"88",Y:"89",Z:"90",a:"91",b:"92",c:"93",d:"94",e:"95",f:"96",g:"97",h:"98",i:"99",j:"100",k:"20",l:"21",m:"73",n:"101",o:"102",p:"103",q:"104",r:"105",s:"106",t:"107",u:"108",v:"109",w:"110",x:"111",y:"112",z:"113",AB:"29",BB:"30",CB:"31",DB:"32",EB:"33",FB:"34",GB:"35",HB:"36",IB:"37",JB:"38",KB:"39",LB:"40",MB:"41",NB:"42",OB:"43",PB:"44",QB:"45",RB:"46",SB:"47",TB:"48",UB:"49",VB:"50",WB:"51",XB:"52",YB:"53",ZB:"54",aB:"55",bB:"56",cB:"57",dB:"58",eB:"60",fB:"62",gB:"63",hB:"64",iB:"65",jB:"66",kB:"67",lB:"68",mB:"69",nB:"70",oB:"71",pB:"72",qB:"74",rB:"75",sB:"76",tB:"77",uB:"78",vB:"11.1",wB:"12.1",xB:"15.5",yB:"16.0",zB:"3","0B":"59","1B":"61","2B":"82","3B":"116","4B":"117","5B":"3.2","6B":"10.1","7B":"13.1","8B":"15.2-15.3","9B":"15.4",AC:"15.6",BC:"16.1",CC:"16.2",DC:"16.3",EC:"16.4",FC:"16.5",GC:"16.6",HC:"11.5",IC:"4.2-4.3",JC:"5.5",KC:"2",LC:"3.5",MC:"3.6",NC:"118",OC:"3.1",PC:"5.1",QC:"6.1",RC:"7.1",SC:"9.1",TC:"14.1",UC:"15.1",VC:"TP",WC:"9.5-9.6",XC:"10.0-10.1",YC:"10.5",ZC:"10.6",aC:"11.6",bC:"4.0-4.1",cC:"5.0-5.1",dC:"6.0-6.1",eC:"7.0-7.1",fC:"8.1-8.4",gC:"9.0-9.2",hC:"9.3",iC:"10.0-10.2",jC:"10.3",kC:"11.0-11.2",lC:"11.3-11.4",mC:"12.0-12.1",nC:"12.2-12.5",oC:"13.0-13.1",pC:"13.2",qC:"13.3",rC:"13.4-13.7",sC:"14.0-14.4",tC:"14.5-14.8",uC:"15.0-15.1",vC:"all",wC:"2.1",xC:"2.2",yC:"2.3",zC:"4.1","0C":"4.4","1C":"4.4.3-4.4.4","2C":"5.0-5.4","3C":"6.2-6.4","4C":"7.2-7.4","5C":"8.2","6C":"9.2","7C":"11.1-11.2","8C":"12.0","9C":"13.0",AD:"14.0",BD:"15.0",CD:"17.0",DD:"18.0",ED:"19.0",FD:"13.18",GD:"2.5",HD:"3.0-3.1"}},12757:function(e){e.exports={A:"ie",B:"edge",C:"firefox",D:"chrome",E:"safari",F:"opera",G:"ios_saf",H:"op_mini",I:"android",J:"bb",K:"op_mob",L:"and_chr",M:"and_ff",N:"ie_mob",O:"and_uc",P:"samsung",Q:"and_qq",R:"baidu",S:"kaios"}},95459:function(e,u,r){"use strict";const n=r(8833).browsers,d=r(28788).browserVersions,t=r(66954);function a(e){return Object.keys(e).reduce(((u,r)=>(u[d[r]]=e[r],u)),{})}e.exports.agents=Object.keys(t).reduce(((e,u)=>{let r=t[u];return e[n[u]]=Object.keys(r).reduce(((e,u)=>("A"===u?e.usage_global=a(r[u]):"C"===u?e.versions=r[u].reduce(((e,u)=>(""===u?e.push(null):e.push(d[u]),e)),[]):"D"===u?e.prefix_exceptions=a(r[u]):"E"===u?e.browser=r[u]:"F"===u?e.release_date=Object.keys(r[u]).reduce(((e,n)=>(e[d[n]]=r[u][n],e)),{}):e.prefix=r[u],e)),{}),e}),{})},28788:function(e,u,r){e.exports.browserVersions=r(6974)},8833:function(e,u,r){e.exports.browsers=r(12757)},76250:function(e){e.exports={"0.20":"39",.21:"41",.22:"41",.23:"41",.24:"41",.25:"42",.26:"42",.27:"43",.28:"43",.29:"43","0.30":"44",.31:"45",.32:"45",.33:"45",.34:"45",.35:"45",.36:"47",.37:"49","1.0":"49",1.1:"50",1.2:"51",1.3:"52",1.4:"53",1.5:"54",1.6:"56",1.7:"58",1.8:"59","2.0":"61",2.1:"61","3.0":"66",3.1:"66","4.0":"69",4.1:"69",4.2:"69","5.0":"73","6.0":"76",6.1:"76","7.0":"78",7.1:"78",7.2:"78",7.3:"78","8.0":"80",8.1:"80",8.2:"80",8.3:"80",8.4:"80",8.5:"80","9.0":"83",9.1:"83",9.2:"83",9.3:"83",9.4:"83","10.0":"85",10.1:"85",10.2:"85",10.3:"85",10.4:"85","11.0":"87",11.1:"87",11.2:"87",11.3:"87",11.4:"87",11.5:"87","12.0":"89",12.1:"89",12.2:"89","13.0":"91",13.1:"91",13.2:"91",13.3:"91",13.4:"91",13.5:"91",13.6:"91","14.0":"93",14.1:"93",14.2:"93","15.0":"94",15.1:"94",15.2:"94",15.3:"94",15.4:"94",15.5:"94","16.0":"96",16.1:"96",16.2:"96","17.0":"98",17.1:"98",17.2:"98",17.3:"98",17.4:"98","18.0":"100",18.1:"100",18.2:"100",18.3:"100","19.0":"102",19.1:"102","20.0":"104",20.1:"104",20.2:"104",20.3:"104","21.0":"106",21.1:"106",21.2:"106",21.3:"106",21.4:"106","22.0":"108",22.1:"108",22.2:"108",22.3:"108","23.0":"110",23.1:"110",23.2:"110",23.3:"110","24.0":"112",24.1:"112",24.2:"112",24.3:"112",24.4:"112",24.5:"112",24.6:"112","25.0":"114",25.1:"114",25.2:"114",25.3:"114","26.0":"116"}},78355:function(e,u,r){"use strict";var n=r(1264),d=r(60045);e.exports={transform:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=u.length>0?u:Object.keys(n),t=void 0,a={};return r.forEach((function(u){if(!n.hasOwnProperty(u))throw new Error("Unknown compat-transform: "+u+". Available transforms are: "+Object.keys(n).join(", "));var r=n[u];t=d.transform(e,r),e=t.getAST(),"function"==typeof r.getExtra&&(a[u]=r.getExtra())})),t.setExtra(a),t}}},77460:function(e){"use strict";var u=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),r=function(){function e(u,r){var n=r.flags,d=r.groups,t=r.source;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._re=u,this._groups=d,this.flags=n,this.source=t||u.source,this.dotAll=n.includes("s"),this.global=u.global,this.ignoreCase=u.ignoreCase,this.multiline=u.multiline,this.sticky=u.sticky,this.unicode=u.unicode}return u(e,[{key:"test",value:function(e){return this._re.test(e)}},{key:"compile",value:function(e){return this._re.compile(e)}},{key:"toString",value:function(){return this._toStringResult||(this._toStringResult="/"+this.source+"/"+this.flags),this._toStringResult}},{key:"exec",value:function(e){var u=this._re.exec(e);if(!this._groups||!u)return u;for(var r in u.groups={},this._groups){var n=this._groups[r];u.groups[r]=u[n]}return u}}]),e}();e.exports={RegExpTree:r}},98708:function(e){"use strict";e.exports={_hasUFlag:!1,shouldRun:function(e){return!!e.flags.includes("s")&&(e.flags=e.flags.replace("s",""),this._hasUFlag=e.flags.includes("u"),!0)},Char:function(e){var u=e.node;if("meta"===u.kind&&"."===u.value){var r="\\uFFFF",n="￿";this._hasUFlag&&(r="\\u{10FFFF}",n="􏿿"),e.replace({type:"CharacterClass",expressions:[{type:"ClassRange",from:{type:"Char",value:"\\0",kind:"decimal",symbol:"\0"},to:{type:"Char",value:r,kind:"unicode",symbol:n}}]})}}}},305:function(e){"use strict";e.exports={_groupNames:{},init:function(){this._groupNames={}},getExtra:function(){return this._groupNames},Group:function(e){var u=e.node;u.name&&(this._groupNames[u.name]=u.number,delete u.name,delete u.nameRaw)},Backreference:function(e){var u=e.node;"name"===u.kind&&(u.kind="number",u.reference=u.number,delete u.referenceRaw)}}},96437:function(e){"use strict";e.exports={RegExp:function(e){var u=e.node;u.flags.includes("x")&&(u.flags=u.flags.replace("x",""))}}},1264:function(e,u,r){"use strict";e.exports={dotAll:r(98708),namedCapturingGroups:r(305),xFlag:r(96437)}},89702:function(e){"use strict";function u(e){return e?r[e.type](e):""}var r={RegExp:function(e){return"/"+u(e.body)+"/"+e.flags},Alternative:function(e){return(e.expressions||[]).map(u).join("")},Disjunction:function(e){return u(e.left)+"|"+u(e.right)},Group:function(e){var r=u(e.expression);return e.capturing?e.name?"(?<"+(e.nameRaw||e.name)+">"+r+")":"("+r+")":"(?:"+r+")"},Backreference:function(e){switch(e.kind){case"number":return"\\"+e.reference;case"name":return"\\k<"+(e.referenceRaw||e.reference)+">";default:throw new TypeError("Unknown Backreference kind: "+e.kind)}},Assertion:function(e){switch(e.kind){case"^":case"$":case"\\b":case"\\B":return e.kind;case"Lookahead":var r=u(e.assertion);return e.negative?"(?!"+r+")":"(?="+r+")";case"Lookbehind":var n=u(e.assertion);return e.negative?"(?<!"+n+")":"(?<="+n+")";default:throw new TypeError("Unknown Assertion kind: "+e.kind)}},CharacterClass:function(e){var r=e.expressions.map(u).join("");return e.negative?"[^"+r+"]":"["+r+"]"},ClassRange:function(e){return u(e.from)+"-"+u(e.to)},Repetition:function(e){return""+u(e.expression)+u(e.quantifier)},Quantifier:function(e){var u=void 0,r=e.greedy?"":"?";switch(e.kind){case"+":case"?":case"*":u=e.kind;break;case"Range":u=e.from===e.to?"{"+e.from+"}":e.to?"{"+e.from+","+e.to+"}":"{"+e.from+",}";break;default:throw new TypeError("Unknown Quantifier kind: "+e.kind)}return""+u+r},Char:function(e){var u=e.value;switch(e.kind){case"simple":return e.escaped?"\\"+u:u;case"hex":case"unicode":case"oct":case"decimal":case"control":case"meta":return u;default:throw new TypeError("Unknown Char kind: "+e.kind)}},UnicodeProperty:function(e){return"\\"+(e.negative?"P":"p")+"{"+(e.shorthand||e.binary?"":e.name+"=")+e.value+"}"}};e.exports={generate:u}},41693:function(e){"use strict";var u=function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,u){var r=[],n=!0,d=!1,t=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!u||r.length!==u);n=!0);}catch(e){d=!0,t=e}finally{try{!n&&s.return&&s.return()}finally{if(d)throw t}}return r}(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")};function r(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var n=null;function d(e,u){if(!u)return!1;if(e.length!==u.length)return!1;for(var n=0;n<e.length;n++){var d=e[n],t=u[n];if(d.size!==t.size)return!1;if([].concat(r(d)).sort().join(",")!==[].concat(r(t)).sort().join(","))return!1}return!0}function t(e,u,r,n){var d=!0,t=!1,s=void 0;try{for(var i,f=n[Symbol.iterator]();!(d=(i=f.next()).done);d=!0)if(!a(e,u,r,i.value))return!1}catch(e){t=!0,s=e}finally{try{!d&&f.return&&f.return()}finally{if(t)throw s}}return!0}function a(e,u,r,d){if(!n[e]||!n[u])return!1;var t=r[e][d],a=r[u][d];return!t&&!a||n[e].has(t)&&n[u].has(a)}e.exports={minimize:function(e){var a=e.getTransitionTable(),s=Object.keys(a),i=e.getAlphabet(),f=e.getAcceptingStateNumbers();n={};var o=new Set;s.forEach((function(e){e=Number(e),f.has(e)?n[e]=f:(o.add(e),n[e]=o)}));var c=[[o,f].filter((function(e){return e.size>0}))],l=void 0,v=void 0;l=c[c.length-1],v=c[c.length-2];for(var b=function(){var e,u={},d=!0,s=!1,f=void 0;try{for(var o,b=l[Symbol.iterator]();!(d=(o=b.next()).done);d=!0){var p=o.value,h={},m=(e=p,Array.isArray(e)?e:Array.from(e)),y=m[0],g=m.slice(1);h[y]=new Set([y]);var C=!0,B=!1,_=void 0;try{e:for(var x,A=g[Symbol.iterator]();!(C=(x=A.next()).done);C=!0){var S=x.value,w=!0,j=!1,k=void 0;try{for(var E,P=Object.keys(h)[Symbol.iterator]();!(w=(E=P.next()).done);w=!0){var O=E.value;if(t(S,O,a,i)){h[O].add(S),h[S]=h[O];continue e}}}catch(e){j=!0,k=e}finally{try{!w&&P.return&&P.return()}finally{if(j)throw k}}h[S]=new Set([S])}}catch(e){B=!0,_=e}finally{try{!C&&A.return&&A.return()}finally{if(B)throw _}}Object.assign(u,h)}}catch(e){s=!0,f=e}finally{try{!d&&b.return&&b.return()}finally{if(s)throw f}}n=u;var T=new Set(Object.keys(u).map((function(e){return u[e]})));c.push([].concat(r(T))),l=c[c.length-1],v=c[c.length-2]};!d(l,v);)b();var p=new Map,h=1;l.forEach((function(e){return p.set(e,h++)}));var m={},y=new Set,g=function(e,u){var r=!0,n=!1,d=void 0;try{for(var t,a=e[Symbol.iterator]();!(r=(t=a.next()).done);r=!0){var s=t.value;f.has(s)&&y.add(u)}}catch(e){n=!0,d=e}finally{try{!r&&a.return&&a.return()}finally{if(n)throw d}}},C=!0,B=!1,_=void 0;try{for(var x,A=p.entries()[Symbol.iterator]();!(C=(x=A.next()).done);C=!0){var S=x.value,w=u(S,2),j=w[0],k=w[1];m[k]={};var E=!0,P=!1,O=void 0;try{for(var T,R=i[Symbol.iterator]();!(E=(T=R.next()).done);E=!0){var N=T.value;g(j,k);var D=void 0,L=!0,F=!1,I=void 0;try{for(var M,U=j[Symbol.iterator]();!(L=(M=U.next()).done);L=!0){var G=M.value;if(D=a[G][N])break}}catch(e){F=!0,I=e}finally{try{!L&&U.return&&U.return()}finally{if(F)throw I}}D&&(m[k][N]=p.get(n[D]))}}catch(e){P=!0,O=e}finally{try{!E&&R.return&&R.return()}finally{if(P)throw O}}}}catch(e){B=!0,_=e}finally{try{!C&&A.return&&A.return()}finally{if(B)throw _}}return e.setTransitionTable(m),e.setAcceptingStateNumbers(y),e}}},13158:function(e,u,r){"use strict";var n=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}();function d(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var t=r(41693),a=r(3341).EPSILON_CLOSURE,s=function(){function e(u){!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._nfa=u}return n(e,[{key:"minimize",value:function(){this.getTransitionTable(),this._originalAcceptingStateNumbers=this._acceptingStateNumbers,this._originalTransitionTable=this._transitionTable,t.minimize(this)}},{key:"getAlphabet",value:function(){return this._nfa.getAlphabet()}},{key:"getAcceptingStateNumbers",value:function(){return this._acceptingStateNumbers||this.getTransitionTable(),this._acceptingStateNumbers}},{key:"getOriginaAcceptingStateNumbers",value:function(){return this._originalAcceptingStateNumbers||this.getTransitionTable(),this._originalAcceptingStateNumbers}},{key:"setTransitionTable",value:function(e){this._transitionTable=e}},{key:"setAcceptingStateNumbers",value:function(e){this._acceptingStateNumbers=e}},{key:"getTransitionTable",value:function(){var e=this;if(this._transitionTable)return this._transitionTable;var u=this._nfa.getTransitionTable(),r=Object.keys(u);this._acceptingStateNumbers=new Set;for(var n=[u[r[0]][a]],t=this.getAlphabet(),s=this._nfa.getAcceptingStateNumbers(),i={},f=function(u){var r=!0,n=!1,d=void 0;try{for(var t,a=s[Symbol.iterator]();!(r=(t=a.next()).done);r=!0){var i=t.value;if(-1!==u.indexOf(i)){e._acceptingStateNumbers.add(u.join(","));break}}}catch(e){n=!0,d=e}finally{try{!r&&a.return&&a.return()}finally{if(n)throw d}}};n.length>0;){var o=n.shift(),c=o.join(",");i[c]={};var l=!0,v=!1,b=void 0;try{for(var p,h=t[Symbol.iterator]();!(l=(p=h.next()).done);l=!0){var m=p.value,y=[];f(o);var g=!0,C=!1,B=void 0;try{for(var _,x=o[Symbol.iterator]();!(g=(_=x.next()).done);g=!0){var A=u[_.value][m];if(A){var S=!0,w=!1,j=void 0;try{for(var k,E=A[Symbol.iterator]();!(S=(k=E.next()).done);S=!0){var P=k.value;u[P]&&y.push.apply(y,d(u[P][a]))}}catch(e){w=!0,j=e}finally{try{!S&&E.return&&E.return()}finally{if(w)throw j}}}}}catch(e){C=!0,B=e}finally{try{!g&&x.return&&x.return()}finally{if(C)throw B}}var O=new Set(y),T=[].concat(d(O));if(T.length>0){var R=T.join(",");i[c][m]=R,i.hasOwnProperty(R)||n.unshift(T)}}}catch(e){v=!0,b=e}finally{try{!l&&h.return&&h.return()}finally{if(v)throw b}}}return this._transitionTable=this._remapStateNumbers(i)}},{key:"_remapStateNumbers",value:function(e){var u={};this._originalTransitionTable=e;var r={};for(var n in Object.keys(e).forEach((function(e,r){u[e]=r+1})),e){var d=e[n],t={};for(var a in d)t[a]=u[d[a]];r[u[n]]=t}this._originalAcceptingStateNumbers=this._acceptingStateNumbers,this._acceptingStateNumbers=new Set;var s=!0,i=!1,f=void 0;try{for(var o,c=this._originalAcceptingStateNumbers[Symbol.iterator]();!(s=(o=c.next()).done);s=!0){var l=o.value;this._acceptingStateNumbers.add(u[l])}}catch(e){i=!0,f=e}finally{try{!s&&c.return&&c.return()}finally{if(i)throw f}}return r}},{key:"getOriginalTransitionTable",value:function(){return this._originalTransitionTable||this.getTransitionTable(),this._originalTransitionTable}},{key:"matches",value:function(e){for(var u=1,r=0,n=this.getTransitionTable();e[r];)if(!(u=n[u][e[r++]]))return!1;return!!this.getAcceptingStateNumbers().has(u)}}]),e}();e.exports=s},22722:function(e,u,r){"use strict";var n=r(95050),d=r(13158),t=r(39761),a=r(2970);e.exports={NFA:n,DFA:d,builders:a,toNFA:function(e){return t.build(e)},toDFA:function(e){return new d(this.toNFA(e))},test:function(e,u){return this.toDFA(e).matches(u)}}},2970:function(e,u,r){"use strict";var n=r(95050),d=r(81115),t=r(3341).EPSILON;function a(e){var u=new d,r=new d({accepting:!0});return new n(u.addTransition(e,r),r)}function s(e,u){return e.out.accepting=!1,u.out.accepting=!0,e.out.addTransition(t,u.in),new n(e.in,u.out)}function i(e,u){var r=new d,a=new d;return r.addTransition(t,e.in),r.addTransition(t,u.in),a.accepting=!0,e.out.accepting=!1,u.out.accepting=!1,e.out.addTransition(t,a),u.out.addTransition(t,a),new n(r,a)}e.exports={alt:function(e){for(var u=arguments.length,r=Array(u>1?u-1:0),n=1;n<u;n++)r[n-1]=arguments[n];var d=!0,t=!1,a=void 0;try{for(var i,f=r[Symbol.iterator]();!(d=(i=f.next()).done);d=!0)e=s(e,i.value)}catch(e){t=!0,a=e}finally{try{!d&&f.return&&f.return()}finally{if(t)throw a}}return e},char:a,e:function(){return a(t)},or:function(e){for(var u=arguments.length,r=Array(u>1?u-1:0),n=1;n<u;n++)r[n-1]=arguments[n];var d=!0,t=!1,a=void 0;try{for(var s,f=r[Symbol.iterator]();!(d=(s=f.next()).done);d=!0)e=i(e,s.value)}catch(e){t=!0,a=e}finally{try{!d&&f.return&&f.return()}finally{if(t)throw a}}return e},rep:function(e){return e.in.addTransition(t,e.out),e.out.addTransition(t,e.in),e},repExplicit:function(e){var u=new d,r=new d({accepting:!0});return u.addTransition(t,e.in),u.addTransition(t,r),e.out.accepting=!1,e.out.addTransition(t,r),r.addTransition(t,e.in),new n(u,r)},plusRep:function(e){return e.out.addTransition(t,e.in),e},questionRep:function(e){return e.in.addTransition(t,e.out),e}}},39761:function(e,u,r){"use strict";var n=r(37112),d=r(2970),t=d.alt,a=d.char,s=d.or,i=d.rep,f=d.plusRep,o=d.questionRep;function c(e){if(e&&!l[e.type])throw new Error(e.type+" is not supported in NFA/DFA interpreter.");return e?l[e.type](e):""}var l={RegExp:function(e){if(""!==e.flags)throw new Error("NFA/DFA: Flags are not supported yet.");return c(e.body)},Alternative:function(e){var u=(e.expressions||[]).map(c);return t.apply(void 0,function(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}(u))},Disjunction:function(e){return s(c(e.left),c(e.right))},Repetition:function(e){switch(e.quantifier.kind){case"*":return i(c(e.expression));case"+":return f(c(e.expression));case"?":return o(c(e.expression));default:throw new Error("Unknown repeatition: "+e.quantifier.kind+".")}},Char:function(e){if("simple"!==e.kind)throw new Error("NFA/DFA: Only simple chars are supported yet.");return a(e.value)},Group:function(e){return c(e.expression)}};e.exports={build:function(e){var u=e;return e instanceof RegExp&&(e=""+e),"string"==typeof e&&(u=n.parse(e,{captureLocations:!0})),c(u)}}},81115:function(e,u,r){"use strict";var n=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),d=r(74128),t=r(3341).EPSILON,a=function(e){function u(){return function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,u),function(e,u){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!u||"object"!=typeof u&&"function"!=typeof u?e:u}(this,(u.__proto__||Object.getPrototypeOf(u)).apply(this,arguments))}return function(e,u){if("function"!=typeof u&&null!==u)throw new TypeError("Super expression must either be null or a function, not "+typeof u);e.prototype=Object.create(u&&u.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),u&&(Object.setPrototypeOf?Object.setPrototypeOf(e,u):e.__proto__=u)}(u,e),n(u,[{key:"matches",value:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Set;if(u.has(this))return!1;if(u.add(this),0===e.length){if(this.accepting)return!0;var r=!0,n=!1,d=void 0;try{for(var a,s=this.getTransitionsOnSymbol(t)[Symbol.iterator]();!(r=(a=s.next()).done);r=!0)if(a.value.matches("",u))return!0}catch(e){n=!0,d=e}finally{try{!r&&s.return&&s.return()}finally{if(n)throw d}}return!1}var i=e[0],f=e.slice(1),o=this.getTransitionsOnSymbol(i),c=!0,l=!1,v=void 0;try{for(var b,p=o[Symbol.iterator]();!(c=(b=p.next()).done);c=!0)if(b.value.matches(f))return!0}catch(e){l=!0,v=e}finally{try{!c&&p.return&&p.return()}finally{if(l)throw v}}var h=!0,m=!1,y=void 0;try{for(var g,C=this.getTransitionsOnSymbol(t)[Symbol.iterator]();!(h=(g=C.next()).done);h=!0)if(g.value.matches(e,u))return!0}catch(e){m=!0,y=e}finally{try{!h&&C.return&&C.return()}finally{if(m)throw y}}return!1}},{key:"getEpsilonClosure",value:function(){var e=this;return this._epsilonClosure||function(){var u=e.getTransitionsOnSymbol(t),r=e._epsilonClosure=new Set;r.add(e);var n=!0,d=!1,a=void 0;try{for(var s,i=u[Symbol.iterator]();!(n=(s=i.next()).done);n=!0){var f=s.value;r.has(f)||(r.add(f),f.getEpsilonClosure().forEach((function(e){return r.add(e)})))}}catch(e){d=!0,a=e}finally{try{!n&&i.return&&i.return()}finally{if(d)throw a}}}(),this._epsilonClosure}}]),u}(d);e.exports=a},95050:function(e,u,r){"use strict";var n=function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,u){var r=[],n=!0,d=!1,t=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!u||r.length!==u);n=!0);}catch(e){d=!0,t=e}finally{try{!n&&s.return&&s.return()}finally{if(d)throw t}}return r}(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")},d=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),t=r(3341),a=t.EPSILON,s=t.EPSILON_CLOSURE,i=function(){function e(u,r){!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this.in=u,this.out=r}return d(e,[{key:"matches",value:function(e){return this.in.matches(e)}},{key:"getAlphabet",value:function(){if(!this._alphabet){this._alphabet=new Set;var e=this.getTransitionTable();for(var u in e){var r=e[u];for(var n in r)n!==s&&this._alphabet.add(n)}}return this._alphabet}},{key:"getAcceptingStates",value:function(){return this._acceptingStates||this.getTransitionTable(),this._acceptingStates}},{key:"getAcceptingStateNumbers",value:function(){if(!this._acceptingStateNumbers){this._acceptingStateNumbers=new Set;var e=!0,u=!1,r=void 0;try{for(var n,d=this.getAcceptingStates()[Symbol.iterator]();!(e=(n=d.next()).done);e=!0){var t=n.value;this._acceptingStateNumbers.add(t.number)}}catch(e){u=!0,r=e}finally{try{!e&&d.return&&d.return()}finally{if(u)throw r}}}return this._acceptingStateNumbers}},{key:"getTransitionTable",value:function(){var e=this;if(!this._transitionTable){this._transitionTable={},this._acceptingStates=new Set;var u=new Set,r=new Set;!function d(t){if(!u.has(t)){u.add(t),t.number=u.size,e._transitionTable[t.number]={},t.accepting&&e._acceptingStates.add(t);var a=t.getTransitions(),s=!0,i=!1,f=void 0;try{for(var o,c=a[Symbol.iterator]();!(s=(o=c.next()).done);s=!0){var l=o.value,v=n(l,2),b=v[0],p=v[1],h=[];r.add(b);var m=!0,y=!1,g=void 0;try{for(var C,B=p[Symbol.iterator]();!(m=(C=B.next()).done);m=!0){var _=C.value;d(_),h.push(_.number)}}catch(e){y=!0,g=e}finally{try{!m&&B.return&&B.return()}finally{if(y)throw g}}e._transitionTable[t.number][b]=h}}catch(e){i=!0,f=e}finally{try{!s&&c.return&&c.return()}finally{if(i)throw f}}}}(this.in),u.forEach((function(u){delete e._transitionTable[u.number][a],e._transitionTable[u.number][s]=[].concat(function(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}(u.getEpsilonClosure())).map((function(e){return e.number}))}))}return this._transitionTable}}]),e}();e.exports=i},3341:function(e){"use strict";e.exports={EPSILON:"ε",EPSILON_CLOSURE:"ε*"}},74128:function(e){"use strict";var u=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),r=function(){function e(){var u=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).accepting,r=void 0!==u&&u;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._transitions=new Map,this.accepting=r}return u(e,[{key:"getTransitions",value:function(){return this._transitions}},{key:"addTransition",value:function(e,u){return this.getTransitionsOnSymbol(e).add(u),this}},{key:"getTransitionsOnSymbol",value:function(e){var u=this._transitions.get(e);return u||(u=new Set,this._transitions.set(e,u)),u}}]),e}();e.exports=r},47393:function(e,u,r){"use strict";var n=r(60689),d=r(37112),t=r(60045),a=r(55319);e.exports={optimize:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=u.whitelist,s=void 0===r?[]:r,i=u.blacklist,f=void 0===i?[]:i,o=(s.length>0?s:Array.from(a.keys())).filter((function(e){return!f.includes(e)})),c=e;e instanceof RegExp&&(e=""+e),"string"==typeof e&&(c=d.parse(e));var l=new t.TransformResult(c),v=void 0;do{v=l.toString(),c=n(l.getAST()),o.forEach((function(e){if(!a.has(e))throw new Error("Unknown optimization-transform: "+e+". Available transforms are: "+Array.from(a.keys()).join(", "));var u=a.get(e),r=t.transform(c,u);r.toString()!==l.toString()&&(r.toString().length<=l.toString().length?l=r:c=n(l.getAST()))}))}while(l.toString()!==v);return l}}},98327:function(e){"use strict";var u="A".codePointAt(0),r="Z".codePointAt(0);e.exports={_AZClassRanges:null,_hasUFlag:!1,init:function(e){this._AZClassRanges=new Set,this._hasUFlag=e.flags.includes("u")},shouldRun:function(e){return e.flags.includes("i")},Char:function(e){var n=e.node,d=e.parent;if(!isNaN(n.codePoint)&&(this._hasUFlag||!(n.codePoint>=4096))){if("ClassRange"===d.type){if(!(this._AZClassRanges.has(d)||(t=d,a=t.from,s=t.to,a.codePoint>=u&&a.codePoint<=r&&s.codePoint>=u&&s.codePoint<=r)))return;this._AZClassRanges.add(d)}var t,a,s,i=n.symbol.toLowerCase();i!==n.symbol&&(n.value=function(e,u){var r=e.codePointAt(0);if("decimal"===u.kind)return"\\"+r;if("oct"===u.kind)return"\\0"+r.toString(8);if("hex"===u.kind)return"\\x"+r.toString(16);if("unicode"===u.kind){if(u.isSurrogatePair){var n=function(e){var u=(e-65536)%1024+56320;return{lead:(Math.floor((e-65536)/1024)+55296).toString(16),trail:u.toString(16)}}(r),d=n.lead,t=n.trail;return"\\u"+"0".repeat(4-d.length)+d+"\\u"+"0".repeat(4-t.length)+t}if(u.value.includes("{"))return"\\u{"+r.toString(16)+"}";var a=r.toString(16);return"\\u"+"0".repeat(4-a.length)+a}return e}(i,n),n.symbol=i,n.codePoint=i.codePointAt(0))}}}},52445:function(e){"use strict";function u(e,u){var t=r(e),a=r(u);if(t===a){if("ClassRange"===e.type&&"ClassRange"!==u.type)return-1;if("ClassRange"===u.type&&"ClassRange"!==e.type)return 1;if("ClassRange"===e.type&&"ClassRange"===u.type)return r(e.to)-r(u.to);if(n(e)&&n(u)||d(e)&&d(u))return e.value<u.value?-1:1}return t-a}function r(e){return"Char"===e.type?"-"===e.value||"control"===e.kind?1/0:"meta"===e.kind&&isNaN(e.codePoint)?-1:e.codePoint:e.from.codePoint}function n(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return"Char"===e.type&&"meta"===e.kind&&(u?e.value===u:/^\\[dws]$/i.test(e.value))}function d(e){return"Char"===e.type&&"control"===e.kind}function t(e,u,r){for(var n=0;n<u.length;n++)if(a(e,u[n],r))return!0;return!1}function a(e,u,r){return"ClassRange"===e.type?a(e.from,u,r)&&a(e.to,u,r):!("\\S"!==u||!n(e,"\\w")&&!n(e,"\\d"))||!("\\D"!==u||!n(e,"\\W")&&!n(e,"\\s"))||!("\\w"!==u||!n(e,"\\d"))||!("\\W"!==u||!n(e,"\\s"))||"Char"===e.type&&!isNaN(e.codePoint)&&("\\s"===u?s(e):"\\S"===u?!s(e):"\\d"===u?i(e):"\\D"===u?!i(e):"\\w"===u?f(e,r):"\\W"===u&&!f(e,r))}function s(e){return 9===e.codePoint||10===e.codePoint||11===e.codePoint||12===e.codePoint||13===e.codePoint||32===e.codePoint||160===e.codePoint||5760===e.codePoint||e.codePoint>=8192&&e.codePoint<=8202||8232===e.codePoint||8233===e.codePoint||8239===e.codePoint||8287===e.codePoint||12288===e.codePoint||65279===e.codePoint}function i(e){return e.codePoint>=48&&e.codePoint<=57}function f(e,u){return i(e)||e.codePoint>=65&&e.codePoint<=90||e.codePoint>=97&&e.codePoint<=122||"_"===e.value||u&&(383===e.codePoint||8490===e.codePoint)}function o(e,u){if(u&&"ClassRange"===u.type){if(l(e,u))return!0;if(b(e)&&u.to.codePoint===e.codePoint-1)return u.to=e,!0;if("ClassRange"===e.type&&e.from.codePoint<=u.to.codePoint+1&&e.to.codePoint>=u.from.codePoint-1)return e.from.codePoint<u.from.codePoint&&(u.from=e.from),e.to.codePoint>u.to.codePoint&&(u.to=e.to),!0}return!1}function c(e,u){return!(!u||"ClassRange"!==u.type||!b(e)||u.from.codePoint!==e.codePoint+1||(u.from=e,0))}function l(e,u){return("Char"!==e.type||!isNaN(e.codePoint))&&("ClassRange"===e.type?l(e.from,u)&&l(e.to,u):e.codePoint>=u.from.codePoint&&e.codePoint<=u.to.codePoint)}function v(e,u,r){if(!b(e))return 0;for(var n=0;u>0;){var d=r[u],t=r[u-1];if(!b(t)||t.codePoint!==d.codePoint-1)break;n++,u--}return n>1?(r[u]={type:"ClassRange",from:r[u],to:e},n):0}function b(e){return e&&"Char"===e.type&&!isNaN(e.codePoint)&&(f(e,!1)||"unicode"===e.kind||"hex"===e.kind||"oct"===e.kind||"decimal"===e.kind)}e.exports={_hasIUFlags:!1,init:function(e){this._hasIUFlags=e.flags.includes("i")&&e.flags.includes("u")},CharacterClass:function(e){var r=e.node.expressions,d=[];r.forEach((function(e){n(e)&&d.push(e.value)})),r.sort(u);for(var a=0;a<r.length;a++){var s=r[a];if(t(s,d,this._hasIUFlags)||o(s,r[a-1])||c(s,r[a+1]))r.splice(a,1),a--;else{var i=v(s,a,r);r.splice(a-i+1,i),a-=i}}}}},54122:function(e){"use strict";e.exports={ClassRange:function(e){var u=e.node;u.from.codePoint===u.to.codePoint?e.replace(u.from):u.from.codePoint===u.to.codePoint-1&&(e.getParent().insertChildAt(u.to,e.index+1),e.replace(u.from))}}},71216:function(e){"use strict";e.exports={CharacterClass:function(e){for(var u=e.node,r={},n=0;n<u.expressions.length;n++){var d=e.getChild(n),t=d.jsonEncode();r.hasOwnProperty(t)&&(d.remove(),n--),r[t]=!0}}}},94126:function(e){"use strict";function u(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}e.exports={_hasIFlag:!1,_hasUFlag:!1,init:function(e){this._hasIFlag=e.flags.includes("i"),this._hasUFlag=e.flags.includes("u")},CharacterClass:function(e){!function(e){e.node.expressions.forEach((function(u,r){(function(e){return"ClassRange"===e.type&&"0"===e.from.value&&"9"===e.to.value})(u)&&e.getChild(r).replace({type:"Char",value:"\\d",kind:"meta"})}))}(e),function(e,u,r){var n=e.node,a=null,s=null,i=null,f=null,o=null,c=null;n.expressions.forEach((function(n,l){d(n,"\\d")?a=e.getChild(l):function(e){return"ClassRange"===e.type&&"a"===e.from.value&&"z"===e.to.value}(n)?s=e.getChild(l):function(e){return"ClassRange"===e.type&&"A"===e.from.value&&"Z"===e.to.value}(n)?i=e.getChild(l):function(e){return"Char"===e.type&&"_"===e.value&&"simple"===e.kind}(n)?f=e.getChild(l):u&&r&&t(n,383)?o=e.getChild(l):u&&r&&t(n,8490)&&(c=e.getChild(l))})),a&&(s&&i||u&&(s||i))&&f&&(!r||!u||o&&c)&&(a.replace({type:"Char",value:"\\w",kind:"meta"}),s&&s.remove(),i&&i.remove(),f.remove(),o&&o.remove(),c&&c.remove())}(e,this._hasIFlag,this._hasUFlag),function(e){var u=e.node;if(!(u.expressions.length<r.length)&&r.every((function(e){return u.expressions.some((function(u){return e(u)}))}))){var n=u.expressions.find((function(e){return d(e,"\\n")}));n.value="\\s",n.symbol=void 0,n.codePoint=NaN,u.expressions.map((function(u,n){return r.some((function(e){return e(u)}))?e.getChild(n):void 0})).filter(Boolean).forEach((function(e){return e.remove()}))}}(e)}};var r=[function(e){return n(e," ")}].concat(u(["\\f","\\n","\\r","\\t","\\v"].map((function(e){return function(u){return d(u,e)}}))),u([160,5760,8232,8233,8239,8287,12288,65279].map((function(e){return function(u){return t(u,e)}}))),[function(e){return"ClassRange"===e.type&&t(e.from,8192)&&t(e.to,8202)}]);function n(e,u){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"simple";return"Char"===e.type&&e.value===u&&e.kind===r}function d(e,u){return n(e,u,"meta")}function t(e,u){return"Char"===e.type&&"unicode"===e.kind&&e.codePoint===u}},1949:function(e){"use strict";function u(e){return/[*[()+?$./{}|]/.test(e)}e.exports={CharacterClass:function(e){var r=e.node;if(1===r.expressions.length&&function(e){var u=e.parent,r=e.index;if("Alternative"!==u.type)return!0;var n=u.expressions[r-1];return null==n||("Backreference"!==n.type||"number"!==n.kind)&&("Char"!==n.type||"decimal"!==n.kind)}(e)&&function(e){return"Char"===e.type&&"\\b"!==e.value}(r.expressions[0])){var n=r.expressions[0],d=n.value,t=n.kind,a=n.escaped;if(r.negative){if(!function(e){return/^\\[dwsDWS]$/.test(e)}(d))return;d=function(e){return/[dws]/.test(e)?e.toUpperCase():e.toLowerCase()}(d)}e.replace({type:"Char",value:d,kind:t,escaped:a||u(d)})}}}},57335:function(e){"use strict";var u="A".codePointAt(0),r="Z".codePointAt(0),n="a".codePointAt(0),d="z".codePointAt(0),t="0".codePointAt(0),a="9".codePointAt(0);e.exports={Char:function(e){var s,i,f,o=e.node,c=e.parent;if(!isNaN(o.codePoint)&&"simple"!==o.kind&&("ClassRange"!==c.type||(i=(s=c).from,f=s.to,i.codePoint>=t&&i.codePoint<=a&&f.codePoint>=t&&f.codePoint<=a||i.codePoint>=u&&i.codePoint<=r&&f.codePoint>=u&&f.codePoint<=r||i.codePoint>=n&&i.codePoint<=d&&f.codePoint>=n&&f.codePoint<=d))&&(l=o.codePoint)>=32&&l<=126){var l,v=String.fromCodePoint(o.codePoint),b={type:"Char",kind:"simple",value:v,symbol:v,codePoint:o.codePoint};(function(e,u){return"ClassRange"===u||"CharacterClass"===u?/[\]\\^-]/.test(e):/[*[()+?^$./\\|{}]/.test(e)})(v,c.type)&&(b.escaped=!0),e.replace(b)}}}},29141:function(e){"use strict";function u(e,u,r){for(var n=e,d=(r?n>=0:n<u.expressions.length)&&u.expressions[n];d&&"Char"===d.type&&"simple"===d.kind&&!d.escaped&&/\d/.test(d.value);)r?n--:n++,d=(r?n>=0:n<u.expressions.length)&&u.expressions[n];return Math.abs(e-n)}function r(e,u){return e&&"Char"===e.type&&"simple"===e.kind&&!e.escaped&&e.value===u}e.exports={_hasXFlag:!1,init:function(e){this._hasXFlag=e.flags.includes("x")},Char:function(e){var n=e.node;n.escaped&&function(e,n){var d=e.node.value,t=e.index,a=e.parent;return"CharacterClass"!==a.type&&"ClassRange"!==a.type?!function(e,n,d,t){return"{"===e?function(e,n){if(null==e)return!1;var d=u(e+1,n),t=e+d+1,a=t<n.expressions.length&&n.expressions[t];if(d){if(r(a,"}"))return!0;if(r(a,","))return r(a=(t=t+(d=u(t+1,n))+1)<n.expressions.length&&n.expressions[t],"}")}return!1}(n,d):"}"===e?function(e,n){if(null==e)return!1;var d=u(e-1,n,!0),t=e-d-1,a=t>=0&&n.expressions[t];return!(!d||!r(a,"{"))||!!r(a,",")&&(a=(t=t-(d=u(t-1,n,!0))-1)<n.expressions.length&&n.expressions[t],d&&r(a,"{"))}(n,d):!(!t||!/[ #]/.test(e))||/[*[()+?^$./\\|]/.test(e)}(d,t,a,n):!function(e,u,r){return"^"===e?0===u&&!r.negative:"-"===e||/[\]\\]/.test(e)}(d,t,a)}(e,this._hasXFlag)&&delete n.escaped}}},93843:function(e){"use strict";e.exports={shouldRun:function(e){return e.flags.includes("u")},Char:function(e){var u=e.node;"unicode"===u.kind&&u.isSurrogatePair&&!isNaN(u.codePoint)&&(u.value="\\u{"+u.codePoint.toString(16)+"}",delete u.isSurrogatePair)}}},61143:function(e,u,r){"use strict";function n(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var d=r(27762),t=r(26554).increaseQuantifierByOne;function a(e,u,r){for(var t=e.node,a=Math.ceil(r/2),s=0;s<a;){var i=r-2*s-1,f=void 0,o=void 0;if(0===s?(f=u,o=e.getChild(i)):(f=d.getForNode({type:"Alternative",expressions:[].concat(n(t.expressions.slice(r-s,r)),[u.node])}),o=d.getForNode({type:"Alternative",expressions:[].concat(n(t.expressions.slice(i,r-s)))})),f.hasEqualSource(o)){for(var c=0;c<2*s+1;c++)e.getChild(i).remove();return u.replace({type:"Repetition",expression:0===s&&"Repetition"!==f.node.type?f.node:{type:"Group",capturing:!1,expression:f.node},quantifier:{type:"Quantifier",kind:"Range",from:2,to:2,greedy:!0}}),i}s++}return r}function s(e,u,r){for(var a=e.node,s=0;s<r;){var i=e.getChild(s);if("Repetition"===i.node.type&&i.node.quantifier.greedy){var f=i.getChild(),o=void 0;if("Group"!==f.node.type||f.node.capturing||(f=f.getChild()),s+1===r?"Group"!==(o=u).node.type||o.node.capturing||(o=o.getChild()):o=d.getForNode({type:"Alternative",expressions:[].concat(n(a.expressions.slice(s+1,r+1)))}),f.hasEqualSource(o)){for(var c=s;c<r;c++)e.getChild(s+1).remove();return t(i.node.quantifier),s}}s++}return r}function i(e,u,r){var a=e.node;if("Repetition"===u.node.type&&u.node.quantifier.greedy){var s=u.getChild(),i=void 0;"Group"!==s.node.type||s.node.capturing||(s=s.getChild());var f=void 0;if("Alternative"===s.node.type?(f=s.node.expressions.length,i=d.getForNode({type:"Alternative",expressions:[].concat(n(a.expressions.slice(r-f,r)))})):(f=1,"Group"!==(i=e.getChild(r-1)).node.type||i.node.capturing||(i=i.getChild())),i.hasEqualSource(s)){for(var o=r-f;o<r;o++)e.getChild(r-f).remove();return t(u.node.quantifier),r-f}}return r}e.exports={Alternative:function(e){for(var u=e.node,r=1;r<u.expressions.length;){var n=e.getChild(r);if((r=Math.max(1,a(e,n,r)))>=u.expressions.length)break;if(n=e.getChild(r),(r=Math.max(1,s(e,n,r)))>=u.expressions.length)break;n=e.getChild(r),r=Math.max(1,i(e,n,r)),r++}}}},49895:function(e,u,r){"use strict";var n=r(27762),d=r(26554),t=d.disjunctionToList,a=d.listToDisjunction;e.exports={Disjunction:function(e){var u=e.node,r={},d=t(u).filter((function(e){var u=e?n.getForNode(e).jsonEncode():"null";return!r.hasOwnProperty(u)&&(r[u]=e,!0)}));e.replace(a(d))}}},40623:function(e){"use strict";e.exports={Disjunction:function(e){var n=e.node,d=e.parent;if(u[d.type]){var t=new Map;if(r(n,t)&&t.size){var a={type:"CharacterClass",expressions:Array.from(t.keys()).sort().map((function(e){return t.get(e)}))};u[d.type](e.getParent(),a)}}}};var u={RegExp:function(e,u){e.node.body=u},Group:function(e,u){var r=e.node;r.capturing?r.expression=u:e.replace(u)}};function r(e,u){if(!e)return!1;var n=e.type;if("Disjunction"===n){var d=e.left,t=e.right;return r(d,u)&&r(t,u)}if("Char"===n){if("meta"===e.kind&&"."===e.symbol)return!1;var a=e.value;return u.set(a,e),!0}return"CharacterClass"===n&&!e.negative&&e.expressions.every((function(e){return r(e,u)}))}},55319:function(e,u,r){"use strict";e.exports=new Map([["charSurrogatePairToSingleUnicode",r(93843)],["charCodeToSimpleChar",r(57335)],["charCaseInsensitiveLowerCaseTransform",r(98327)],["charClassRemoveDuplicates",r(71216)],["quantifiersMerge",r(58124)],["quantifierRangeToSymbol",r(81280)],["charClassClassrangesToChars",r(54122)],["charClassToMeta",r(94126)],["charClassToSingleChar",r(1949)],["charEscapeUnescape",r(29141)],["charClassClassrangesMerge",r(52445)],["disjunctionRemoveDuplicates",r(49895)],["groupSingleCharsToCharClass",r(40623)],["removeEmptyGroup",r(22223)],["ungroup",r(14952)],["combineRepeatingPatterns",r(61143)]])},81280:function(e){"use strict";e.exports={Quantifier:function(e){"Range"===e.node.kind&&(function(e){var u=e.node;0!==u.from||u.to||(u.kind="*",delete u.from)}(e),function(e){var u=e.node;1!==u.from||u.to||(u.kind="+",delete u.from)}(e),function(e){var u=e.node;1===u.from&&1===u.to&&e.parentPath.replace(e.parentPath.node.expression)}(e))}}},58124:function(e,u,r){"use strict";var n=r(26554).increaseQuantifierByOne;function d(e){return e.greedy&&("+"===e.kind||"*"===e.kind||"Range"===e.kind&&!e.to)}function t(e){var u=void 0,r=void 0;return"*"===e.kind?u=0:"+"===e.kind?u=1:"?"===e.kind?(u=0,r=1):(u=e.from,e.to&&(r=e.to)),{from:u,to:r}}e.exports={Repetition:function(e){var u=e.node;if("Alternative"===e.parent.type&&e.index){var r=e.getPreviousSibling();if(r)if("Repetition"===r.node.type){if(!r.getChild().hasEqualSource(e.getChild()))return;var a=t(r.node.quantifier),s=a.from,i=a.to,f=t(u.quantifier),o=f.from,c=f.to;if(r.node.quantifier.greedy!==u.quantifier.greedy&&!d(r.node.quantifier)&&!d(u.quantifier))return;u.quantifier.kind="Range",u.quantifier.from=s+o,i&&c?u.quantifier.to=i+c:delete u.quantifier.to,(d(r.node.quantifier)||d(u.quantifier))&&(u.quantifier.greedy=!0),r.remove()}else{if(!r.hasEqualSource(e.getChild()))return;n(u.quantifier),r.remove()}}}}},22223:function(e){"use strict";e.exports={Group:function(e){var u=e.node,r=e.parent,n=e.getChild();u.capturing||n||("Repetition"===r.type?e.getParent().replace(u):"RegExp"!==r.type&&e.remove())}}},14952:function(e){"use strict";function u(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}e.exports={Group:function(e){var r=e.node,n=e.parent,d=e.getChild();if(!r.capturing&&d&&function(e){var u=e.parent,r=e.index;if("Alternative"!==u.type)return!0;var n=u.expressions[r-1];return null==n||("Backreference"!==n.type||"number"!==n.kind)&&("Char"!==n.type||"decimal"!==n.kind)}(e)&&!("Disjunction"===d.node.type&&"RegExp"!==n.type||"Repetition"===n.type&&"Char"!==d.node.type&&"CharacterClass"!==d.node.type))if("Alternative"===d.node.type){var t=e.getParent();"Alternative"===t.node.type&&t.replace({type:"Alternative",expressions:[].concat(u(n.expressions.slice(0,e.index)),u(d.node.expressions),u(n.expressions.slice(e.index+1)))})}else e.replace(d.node)}}},42669:function(e,u,r){"use strict";function n(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var d=void 0,t={},a=void 0,s=void 0;function i(e,u){return t.options.captureLocations?e&&u?{startOffset:e.startOffset,endOffset:u.endOffset,startLine:e.startLine,endLine:u.endLine,startColumn:e.startColumn,endColumn:u.endColumn}:e||u:null}var f=[[-1,1,function(e,u){s=i(u,u),a=e}],[0,4,function(e,u,r,n,d,t,f,o){s=i(d,o),a=R({type:"RegExp",body:u,flags:w(n)},N(d,o||f))}],[1,1,function(e,u){s=i(u,u),a=e}],[1,0,function(){s=null,a=""}],[2,1,function(e,u){s=i(u,u),a=e}],[2,2,function(e,u,r,n){s=i(r,n),a=e+u}],[3,1,function(e,u){s=i(u,u),a=e}],[4,1,function(e,u){s=i(u,u),a=e}],[4,3,function(e,u,r,n,d,t){s=i(n,t);var f=null;d&&(f=N(n||d,t||d)),a=R({type:"Disjunction",left:e,right:r},f)}],[5,1,function(e,u){s=i(u,u),a=0!==e.length?1===e.length?R(e[0],s):R({type:"Alternative",expressions:e},s):null}],[6,0,function(){s=null,a=[]}],[6,2,function(e,u,r,n){s=i(r,n),a=e.concat(u)}],[7,1,function(e,u){s=i(u,u),a=R(Object.assign({type:"Assertion"},e),s)}],[7,2,function(e,u,r,n){s=i(r,n),a=e,u&&(a=R({type:"Repetition",expression:e,quantifier:u},s))}],[8,1,function(e,u){s=i(u,u),a={kind:"^"}}],[8,1,function(e,u){s=i(u,u),a={kind:"$"}}],[8,1,function(e,u){s=i(u,u),a={kind:"\\b"}}],[8,1,function(e,u){s=i(u,u),a={kind:"\\B"}}],[8,3,function(e,u,r,n,d,t){s=i(n,t),a={kind:"Lookahead",assertion:u}}],[8,3,function(e,u,r,n,d,t){s=i(n,t),a={kind:"Lookahead",negative:!0,assertion:u}}],[8,3,function(e,u,r,n,d,t){s=i(n,t),a={kind:"Lookbehind",assertion:u}}],[8,3,function(e,u,r,n,d,t){s=i(n,t),a={kind:"Lookbehind",negative:!0,assertion:u}}],[9,1,function(e,u){s=i(u,u),a=e}],[9,1,function(e,u){s=i(u,u),a=e}],[9,1,function(e,u){s=i(u,u),a=e}],[10,1,function(e,u){s=i(u,u),a=A(e,"simple",s)}],[10,1,function(e,u){s=i(u,u),(a=A(e.slice(1),"simple",s)).escaped=!0}],[10,1,function(e,u){s=i(u,u),(a=A(e,"unicode",s)).isSurrogatePair=!0}],[10,1,function(e,u){s=i(u,u),a=A(e,"unicode",s)}],[10,1,function(e,u){s=i(u,u),a=function(e,u){var r="P"===e[1],n=e.indexOf("="),d=e.slice(3,-1!==n?n:-1),t=void 0,a=-1===n&&x.isGeneralCategoryValue(d),s=-1===n&&x.isBinaryPropertyName(d);if(a)t=d,d="General_Category";else if(s)t=d;else{if(!x.isValidName(d))throw new SyntaxError("Invalid unicode property name: "+d+".");if(t=e.slice(n+1,-1),!x.isValidValue(d,t))throw new SyntaxError("Invalid "+d+" unicode property value: "+t+".")}return R({type:"UnicodeProperty",name:d,value:t,negative:r,shorthand:a,binary:s,canonicalName:x.getCanonicalName(d)||d,canonicalValue:x.getCanonicalValue(t)||t},u)}(e,s)}],[10,1,function(e,u){s=i(u,u),a=A(e,"control",s)}],[10,1,function(e,u){s=i(u,u),a=A(e,"hex",s)}],[10,1,function(e,u){s=i(u,u),a=A(e,"oct",s)}],[10,1,function(e,u){var r,n,d;s=i(u,u),r=e,n=s,d=Number(r.slice(1)),a=d>0&&d<=y?R({type:"Backreference",kind:"number",number:d,reference:d},n):A(r,"decimal",n)}],[10,1,function(e,u){s=i(u,u),a=A(e,"meta",s)}],[10,1,function(e,u){s=i(u,u),a=A(e,"meta",s)}],[10,1,function(e,u){s=i(u,u),a=function(e,u){var r=e.slice(3,-1),n=T(r);if(g.hasOwnProperty(n))return R({type:"Backreference",kind:"name",number:g[n],reference:n,referenceRaw:r},u);var d=null,t=null,a=null,s=null;u&&(d=u.startOffset,t=u.startLine,a=u.endLine,s=u.startColumn);var i=/^[\w$<>]/,f=void 0,o=[A(e.slice(1,2),"simple",d?{startLine:t,endLine:a,startColumn:s,startOffset:d,endOffset:d+=2,endColumn:s+=2}:null)];for(o[0].escaped=!0,e=e.slice(2);e.length>0;){var c=null;(c=e.match(j))||(c=e.match(k))?(d&&(f={startLine:t,endLine:a,startColumn:s,startOffset:d,endOffset:d+=c[0].length,endColumn:s+=c[0].length}),o.push(A(c[0],"unicode",f)),e=e.slice(c[0].length)):(c=e.match(i))&&(d&&(f={startLine:t,endLine:a,startColumn:s,startOffset:d,endOffset:++d,endColumn:++s}),o.push(A(c[0],"simple",f)),e=e.slice(1))}return o}(e,u)}],[11,1,function(e,u){s=i(u,u),a=e}],[11,0],[12,1,function(e,u){s=i(u,u),a=e}],[12,2,function(e,u,r,n){s=i(r,n),e.greedy=!1,a=e}],[13,1,function(e,u){s=i(u,u),a=R({type:"Quantifier",kind:e,greedy:!0},s)}],[13,1,function(e,u){s=i(u,u),a=R({type:"Quantifier",kind:e,greedy:!0},s)}],[13,1,function(e,u){s=i(u,u),a=R({type:"Quantifier",kind:e,greedy:!0},s)}],[13,1,function(e,u){s=i(u,u);var r=B(e);a=R({type:"Quantifier",kind:"Range",from:r[0],to:r[0],greedy:!0},s)}],[13,1,function(e,u){s=i(u,u),a=R({type:"Quantifier",kind:"Range",from:B(e)[0],greedy:!0},s)}],[13,1,function(e,u){s=i(u,u);var r=B(e);a=R({type:"Quantifier",kind:"Range",from:r[0],to:r[1],greedy:!0},s)}],[14,1,function(e,u){s=i(u,u),a=e}],[14,1,function(e,u){s=i(u,u),a=e}],[15,3,function(e,u,r,n,d,f){s=i(n,f);var o=String(e),c=T(o);if(!t.options.allowGroupNameDuplicates&&g.hasOwnProperty(c))throw new SyntaxError('Duplicate of the named group "'+c+'".');g[c]=e.groupNumber,a=R({type:"Group",capturing:!0,name:c,nameRaw:o,number:e.groupNumber,expression:u},s)}],[15,3,function(e,u,r,n,d,t){s=i(n,t),a=R({type:"Group",capturing:!0,number:e.groupNumber,expression:u},s)}],[16,3,function(e,u,r,n,d,t){s=i(n,t),a=R({type:"Group",capturing:!1,expression:u},s)}],[17,3,function(e,u,r,n,d,t){s=i(n,t),a=R({type:"CharacterClass",negative:!0,expressions:u},s)}],[17,3,function(e,u,r,n,d,t){s=i(n,t),a=R({type:"CharacterClass",expressions:u},s)}],[18,0,function(){s=null,a=[]}],[18,1,function(e,u){s=i(u,u),a=e}],[19,1,function(e,u){s=i(u,u),a=[e]}],[19,2,function(e,u,r,n){s=i(r,n),a=[e].concat(u)}],[19,4,function(e,u,r,n,d,t,f,o){s=i(d,o),_(e,r),a=[R({type:"ClassRange",from:e,to:r},N(d,f))],n&&(a=a.concat(n))}],[20,1,function(e,u){s=i(u,u),a=e}],[20,2,function(e,u,r,n){s=i(r,n),a=[e].concat(u)}],[20,4,function(e,u,r,n,d,t,f,o){s=i(d,o),_(e,r),a=[R({type:"ClassRange",from:e,to:r},N(d,f))],n&&(a=a.concat(n))}],[21,1,function(e,u){s=i(u,u),a=A(e,"simple",s)}],[21,1,function(e,u){s=i(u,u),a=e}],[22,1,function(e,u){s=i(u,u),a=e}],[22,1,function(e,u){s=i(u,u),a=A(e,"meta",s)}]],o={SLASH:"23",CHAR:"24",BAR:"25",BOS:"26",EOS:"27",ESC_b:"28",ESC_B:"29",POS_LA_ASSERT:"30",R_PAREN:"31",NEG_LA_ASSERT:"32",POS_LB_ASSERT:"33",NEG_LB_ASSERT:"34",ESC_CHAR:"35",U_CODE_SURROGATE:"36",U_CODE:"37",U_PROP_VALUE_EXP:"38",CTRL_CH:"39",HEX_CODE:"40",OCT_CODE:"41",DEC_CODE:"42",META_CHAR:"43",ANY:"44",NAMED_GROUP_REF:"45",Q_MARK:"46",STAR:"47",PLUS:"48",RANGE_EXACT:"49",RANGE_OPEN:"50",RANGE_CLOSED:"51",NAMED_CAPTURE_GROUP:"52",L_PAREN:"53",NON_CAPTURE_GROUP:"54",NEG_CLASS:"55",R_BRACKET:"56",L_BRACKET:"57",DASH:"58",$:"59"},c=[{0:1,23:"s2"},{59:"acc"},{3:3,4:4,5:5,6:6,23:"r10",24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"s7"},{23:"r6",25:"s12"},{23:"r7",25:"r7",31:"r7"},{7:14,8:15,9:16,10:25,14:27,15:42,16:43,17:26,23:"r9",24:"s28",25:"r9",26:"s17",27:"s18",28:"s19",29:"s20",30:"s21",31:"r9",32:"s22",33:"s23",34:"s24",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",52:"s44",53:"s45",54:"s46",55:"s40",57:"s41"},{1:8,2:9,24:"s10",59:"r3"},{59:"r1"},{24:"s11",59:"r2"},{24:"r4",59:"r4"},{24:"r5",59:"r5"},{5:13,6:6,23:"r10",24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"r8",25:"r8",31:"r8"},{23:"r11",24:"r11",25:"r11",26:"r11",27:"r11",28:"r11",29:"r11",30:"r11",31:"r11",32:"r11",33:"r11",34:"r11",35:"r11",36:"r11",37:"r11",38:"r11",39:"r11",40:"r11",41:"r11",42:"r11",43:"r11",44:"r11",45:"r11",52:"r11",53:"r11",54:"r11",55:"r11",57:"r11"},{23:"r12",24:"r12",25:"r12",26:"r12",27:"r12",28:"r12",29:"r12",30:"r12",31:"r12",32:"r12",33:"r12",34:"r12",35:"r12",36:"r12",37:"r12",38:"r12",39:"r12",40:"r12",41:"r12",42:"r12",43:"r12",44:"r12",45:"r12",52:"r12",53:"r12",54:"r12",55:"r12",57:"r12"},{11:47,12:48,13:49,23:"r38",24:"r38",25:"r38",26:"r38",27:"r38",28:"r38",29:"r38",30:"r38",31:"r38",32:"r38",33:"r38",34:"r38",35:"r38",36:"r38",37:"r38",38:"r38",39:"r38",40:"r38",41:"r38",42:"r38",43:"r38",44:"r38",45:"r38",46:"s52",47:"s50",48:"s51",49:"s53",50:"s54",51:"s55",52:"r38",53:"r38",54:"r38",55:"r38",57:"r38"},{23:"r14",24:"r14",25:"r14",26:"r14",27:"r14",28:"r14",29:"r14",30:"r14",31:"r14",32:"r14",33:"r14",34:"r14",35:"r14",36:"r14",37:"r14",38:"r14",39:"r14",40:"r14",41:"r14",42:"r14",43:"r14",44:"r14",45:"r14",52:"r14",53:"r14",54:"r14",55:"r14",57:"r14"},{23:"r15",24:"r15",25:"r15",26:"r15",27:"r15",28:"r15",29:"r15",30:"r15",31:"r15",32:"r15",33:"r15",34:"r15",35:"r15",36:"r15",37:"r15",38:"r15",39:"r15",40:"r15",41:"r15",42:"r15",43:"r15",44:"r15",45:"r15",52:"r15",53:"r15",54:"r15",55:"r15",57:"r15"},{23:"r16",24:"r16",25:"r16",26:"r16",27:"r16",28:"r16",29:"r16",30:"r16",31:"r16",32:"r16",33:"r16",34:"r16",35:"r16",36:"r16",37:"r16",38:"r16",39:"r16",40:"r16",41:"r16",42:"r16",43:"r16",44:"r16",45:"r16",52:"r16",53:"r16",54:"r16",55:"r16",57:"r16"},{23:"r17",24:"r17",25:"r17",26:"r17",27:"r17",28:"r17",29:"r17",30:"r17",31:"r17",32:"r17",33:"r17",34:"r17",35:"r17",36:"r17",37:"r17",38:"r17",39:"r17",40:"r17",41:"r17",42:"r17",43:"r17",44:"r17",45:"r17",52:"r17",53:"r17",54:"r17",55:"r17",57:"r17"},{4:57,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:59,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:61,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:63,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"r22",24:"r22",25:"r22",26:"r22",27:"r22",28:"r22",29:"r22",30:"r22",31:"r22",32:"r22",33:"r22",34:"r22",35:"r22",36:"r22",37:"r22",38:"r22",39:"r22",40:"r22",41:"r22",42:"r22",43:"r22",44:"r22",45:"r22",46:"r22",47:"r22",48:"r22",49:"r22",50:"r22",51:"r22",52:"r22",53:"r22",54:"r22",55:"r22",57:"r22"},{23:"r23",24:"r23",25:"r23",26:"r23",27:"r23",28:"r23",29:"r23",30:"r23",31:"r23",32:"r23",33:"r23",34:"r23",35:"r23",36:"r23",37:"r23",38:"r23",39:"r23",40:"r23",41:"r23",42:"r23",43:"r23",44:"r23",45:"r23",46:"r23",47:"r23",48:"r23",49:"r23",50:"r23",51:"r23",52:"r23",53:"r23",54:"r23",55:"r23",57:"r23"},{23:"r24",24:"r24",25:"r24",26:"r24",27:"r24",28:"r24",29:"r24",30:"r24",31:"r24",32:"r24",33:"r24",34:"r24",35:"r24",36:"r24",37:"r24",38:"r24",39:"r24",40:"r24",41:"r24",42:"r24",43:"r24",44:"r24",45:"r24",46:"r24",47:"r24",48:"r24",49:"r24",50:"r24",51:"r24",52:"r24",53:"r24",54:"r24",55:"r24",57:"r24"},{23:"r25",24:"r25",25:"r25",26:"r25",27:"r25",28:"r25",29:"r25",30:"r25",31:"r25",32:"r25",33:"r25",34:"r25",35:"r25",36:"r25",37:"r25",38:"r25",39:"r25",40:"r25",41:"r25",42:"r25",43:"r25",44:"r25",45:"r25",46:"r25",47:"r25",48:"r25",49:"r25",50:"r25",51:"r25",52:"r25",53:"r25",54:"r25",55:"r25",56:"r25",57:"r25",58:"r25"},{23:"r26",24:"r26",25:"r26",26:"r26",27:"r26",28:"r26",29:"r26",30:"r26",31:"r26",32:"r26",33:"r26",34:"r26",35:"r26",36:"r26",37:"r26",38:"r26",39:"r26",40:"r26",41:"r26",42:"r26",43:"r26",44:"r26",45:"r26",46:"r26",47:"r26",48:"r26",49:"r26",50:"r26",51:"r26",52:"r26",53:"r26",54:"r26",55:"r26",56:"r26",57:"r26",58:"r26"},{23:"r27",24:"r27",25:"r27",26:"r27",27:"r27",28:"r27",29:"r27",30:"r27",31:"r27",32:"r27",33:"r27",34:"r27",35:"r27",36:"r27",37:"r27",38:"r27",39:"r27",40:"r27",41:"r27",42:"r27",43:"r27",44:"r27",45:"r27",46:"r27",47:"r27",48:"r27",49:"r27",50:"r27",51:"r27",52:"r27",53:"r27",54:"r27",55:"r27",56:"r27",57:"r27",58:"r27"},{23:"r28",24:"r28",25:"r28",26:"r28",27:"r28",28:"r28",29:"r28",30:"r28",31:"r28",32:"r28",33:"r28",34:"r28",35:"r28",36:"r28",37:"r28",38:"r28",39:"r28",40:"r28",41:"r28",42:"r28",43:"r28",44:"r28",45:"r28",46:"r28",47:"r28",48:"r28",49:"r28",50:"r28",51:"r28",52:"r28",53:"r28",54:"r28",55:"r28",56:"r28",57:"r28",58:"r28"},{23:"r29",24:"r29",25:"r29",26:"r29",27:"r29",28:"r29",29:"r29",30:"r29",31:"r29",32:"r29",33:"r29",34:"r29",35:"r29",36:"r29",37:"r29",38:"r29",39:"r29",40:"r29",41:"r29",42:"r29",43:"r29",44:"r29",45:"r29",46:"r29",47:"r29",48:"r29",49:"r29",50:"r29",51:"r29",52:"r29",53:"r29",54:"r29",55:"r29",56:"r29",57:"r29",58:"r29"},{23:"r30",24:"r30",25:"r30",26:"r30",27:"r30",28:"r30",29:"r30",30:"r30",31:"r30",32:"r30",33:"r30",34:"r30",35:"r30",36:"r30",37:"r30",38:"r30",39:"r30",40:"r30",41:"r30",42:"r30",43:"r30",44:"r30",45:"r30",46:"r30",47:"r30",48:"r30",49:"r30",50:"r30",51:"r30",52:"r30",53:"r30",54:"r30",55:"r30",56:"r30",57:"r30",58:"r30"},{23:"r31",24:"r31",25:"r31",26:"r31",27:"r31",28:"r31",29:"r31",30:"r31",31:"r31",32:"r31",33:"r31",34:"r31",35:"r31",36:"r31",37:"r31",38:"r31",39:"r31",40:"r31",41:"r31",42:"r31",43:"r31",44:"r31",45:"r31",46:"r31",47:"r31",48:"r31",49:"r31",50:"r31",51:"r31",52:"r31",53:"r31",54:"r31",55:"r31",56:"r31",57:"r31",58:"r31"},{23:"r32",24:"r32",25:"r32",26:"r32",27:"r32",28:"r32",29:"r32",30:"r32",31:"r32",32:"r32",33:"r32",34:"r32",35:"r32",36:"r32",37:"r32",38:"r32",39:"r32",40:"r32",41:"r32",42:"r32",43:"r32",44:"r32",45:"r32",46:"r32",47:"r32",48:"r32",49:"r32",50:"r32",51:"r32",52:"r32",53:"r32",54:"r32",55:"r32",56:"r32",57:"r32",58:"r32"},{23:"r33",24:"r33",25:"r33",26:"r33",27:"r33",28:"r33",29:"r33",30:"r33",31:"r33",32:"r33",33:"r33",34:"r33",35:"r33",36:"r33",37:"r33",38:"r33",39:"r33",40:"r33",41:"r33",42:"r33",43:"r33",44:"r33",45:"r33",46:"r33",47:"r33",48:"r33",49:"r33",50:"r33",51:"r33",52:"r33",53:"r33",54:"r33",55:"r33",56:"r33",57:"r33",58:"r33"},{23:"r34",24:"r34",25:"r34",26:"r34",27:"r34",28:"r34",29:"r34",30:"r34",31:"r34",32:"r34",33:"r34",34:"r34",35:"r34",36:"r34",37:"r34",38:"r34",39:"r34",40:"r34",41:"r34",42:"r34",43:"r34",44:"r34",45:"r34",46:"r34",47:"r34",48:"r34",49:"r34",50:"r34",51:"r34",52:"r34",53:"r34",54:"r34",55:"r34",56:"r34",57:"r34",58:"r34"},{23:"r35",24:"r35",25:"r35",26:"r35",27:"r35",28:"r35",29:"r35",30:"r35",31:"r35",32:"r35",33:"r35",34:"r35",35:"r35",36:"r35",37:"r35",38:"r35",39:"r35",40:"r35",41:"r35",42:"r35",43:"r35",44:"r35",45:"r35",46:"r35",47:"r35",48:"r35",49:"r35",50:"r35",51:"r35",52:"r35",53:"r35",54:"r35",55:"r35",56:"r35",57:"r35",58:"r35"},{23:"r36",24:"r36",25:"r36",26:"r36",27:"r36",28:"r36",29:"r36",30:"r36",31:"r36",32:"r36",33:"r36",34:"r36",35:"r36",36:"r36",37:"r36",38:"r36",39:"r36",40:"r36",41:"r36",42:"r36",43:"r36",44:"r36",45:"r36",46:"r36",47:"r36",48:"r36",49:"r36",50:"r36",51:"r36",52:"r36",53:"r36",54:"r36",55:"r36",56:"r36",57:"r36",58:"r36"},{10:70,18:65,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{10:70,18:83,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{23:"r47",24:"r47",25:"r47",26:"r47",27:"r47",28:"r47",29:"r47",30:"r47",31:"r47",32:"r47",33:"r47",34:"r47",35:"r47",36:"r47",37:"r47",38:"r47",39:"r47",40:"r47",41:"r47",42:"r47",43:"r47",44:"r47",45:"r47",46:"r47",47:"r47",48:"r47",49:"r47",50:"r47",51:"r47",52:"r47",53:"r47",54:"r47",55:"r47",57:"r47"},{23:"r48",24:"r48",25:"r48",26:"r48",27:"r48",28:"r48",29:"r48",30:"r48",31:"r48",32:"r48",33:"r48",34:"r48",35:"r48",36:"r48",37:"r48",38:"r48",39:"r48",40:"r48",41:"r48",42:"r48",43:"r48",44:"r48",45:"r48",46:"r48",47:"r48",48:"r48",49:"r48",50:"r48",51:"r48",52:"r48",53:"r48",54:"r48",55:"r48",57:"r48"},{4:85,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:87,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:89,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"r13",24:"r13",25:"r13",26:"r13",27:"r13",28:"r13",29:"r13",30:"r13",31:"r13",32:"r13",33:"r13",34:"r13",35:"r13",36:"r13",37:"r13",38:"r13",39:"r13",40:"r13",41:"r13",42:"r13",43:"r13",44:"r13",45:"r13",52:"r13",53:"r13",54:"r13",55:"r13",57:"r13"},{23:"r37",24:"r37",25:"r37",26:"r37",27:"r37",28:"r37",29:"r37",30:"r37",31:"r37",32:"r37",33:"r37",34:"r37",35:"r37",36:"r37",37:"r37",38:"r37",39:"r37",40:"r37",41:"r37",42:"r37",43:"r37",44:"r37",45:"r37",52:"r37",53:"r37",54:"r37",55:"r37",57:"r37"},{23:"r39",24:"r39",25:"r39",26:"r39",27:"r39",28:"r39",29:"r39",30:"r39",31:"r39",32:"r39",33:"r39",34:"r39",35:"r39",36:"r39",37:"r39",38:"r39",39:"r39",40:"r39",41:"r39",42:"r39",43:"r39",44:"r39",45:"r39",46:"s56",52:"r39",53:"r39",54:"r39",55:"r39",57:"r39"},{23:"r41",24:"r41",25:"r41",26:"r41",27:"r41",28:"r41",29:"r41",30:"r41",31:"r41",32:"r41",33:"r41",34:"r41",35:"r41",36:"r41",37:"r41",38:"r41",39:"r41",40:"r41",41:"r41",42:"r41",43:"r41",44:"r41",45:"r41",46:"r41",52:"r41",53:"r41",54:"r41",55:"r41",57:"r41"},{23:"r42",24:"r42",25:"r42",26:"r42",27:"r42",28:"r42",29:"r42",30:"r42",31:"r42",32:"r42",33:"r42",34:"r42",35:"r42",36:"r42",37:"r42",38:"r42",39:"r42",40:"r42",41:"r42",42:"r42",43:"r42",44:"r42",45:"r42",46:"r42",52:"r42",53:"r42",54:"r42",55:"r42",57:"r42"},{23:"r43",24:"r43",25:"r43",26:"r43",27:"r43",28:"r43",29:"r43",30:"r43",31:"r43",32:"r43",33:"r43",34:"r43",35:"r43",36:"r43",37:"r43",38:"r43",39:"r43",40:"r43",41:"r43",42:"r43",43:"r43",44:"r43",45:"r43",46:"r43",52:"r43",53:"r43",54:"r43",55:"r43",57:"r43"},{23:"r44",24:"r44",25:"r44",26:"r44",27:"r44",28:"r44",29:"r44",30:"r44",31:"r44",32:"r44",33:"r44",34:"r44",35:"r44",36:"r44",37:"r44",38:"r44",39:"r44",40:"r44",41:"r44",42:"r44",43:"r44",44:"r44",45:"r44",46:"r44",52:"r44",53:"r44",54:"r44",55:"r44",57:"r44"},{23:"r45",24:"r45",25:"r45",26:"r45",27:"r45",28:"r45",29:"r45",30:"r45",31:"r45",32:"r45",33:"r45",34:"r45",35:"r45",36:"r45",37:"r45",38:"r45",39:"r45",40:"r45",41:"r45",42:"r45",43:"r45",44:"r45",45:"r45",46:"r45",52:"r45",53:"r45",54:"r45",55:"r45",57:"r45"},{23:"r46",24:"r46",25:"r46",26:"r46",27:"r46",28:"r46",29:"r46",30:"r46",31:"r46",32:"r46",33:"r46",34:"r46",35:"r46",36:"r46",37:"r46",38:"r46",39:"r46",40:"r46",41:"r46",42:"r46",43:"r46",44:"r46",45:"r46",46:"r46",52:"r46",53:"r46",54:"r46",55:"r46",57:"r46"},{23:"r40",24:"r40",25:"r40",26:"r40",27:"r40",28:"r40",29:"r40",30:"r40",31:"r40",32:"r40",33:"r40",34:"r40",35:"r40",36:"r40",37:"r40",38:"r40",39:"r40",40:"r40",41:"r40",42:"r40",43:"r40",44:"r40",45:"r40",52:"r40",53:"r40",54:"r40",55:"r40",57:"r40"},{25:"s12",31:"s58"},{23:"r18",24:"r18",25:"r18",26:"r18",27:"r18",28:"r18",29:"r18",30:"r18",31:"r18",32:"r18",33:"r18",34:"r18",35:"r18",36:"r18",37:"r18",38:"r18",39:"r18",40:"r18",41:"r18",42:"r18",43:"r18",44:"r18",45:"r18",52:"r18",53:"r18",54:"r18",55:"r18",57:"r18"},{25:"s12",31:"s60"},{23:"r19",24:"r19",25:"r19",26:"r19",27:"r19",28:"r19",29:"r19",30:"r19",31:"r19",32:"r19",33:"r19",34:"r19",35:"r19",36:"r19",37:"r19",38:"r19",39:"r19",40:"r19",41:"r19",42:"r19",43:"r19",44:"r19",45:"r19",52:"r19",53:"r19",54:"r19",55:"r19",57:"r19"},{25:"s12",31:"s62"},{23:"r20",24:"r20",25:"r20",26:"r20",27:"r20",28:"r20",29:"r20",30:"r20",31:"r20",32:"r20",33:"r20",34:"r20",35:"r20",36:"r20",37:"r20",38:"r20",39:"r20",40:"r20",41:"r20",42:"r20",43:"r20",44:"r20",45:"r20",52:"r20",53:"r20",54:"r20",55:"r20",57:"r20"},{25:"s12",31:"s64"},{23:"r21",24:"r21",25:"r21",26:"r21",27:"r21",28:"r21",29:"r21",30:"r21",31:"r21",32:"r21",33:"r21",34:"r21",35:"r21",36:"r21",37:"r21",38:"r21",39:"r21",40:"r21",41:"r21",42:"r21",43:"r21",44:"r21",45:"r21",52:"r21",53:"r21",54:"r21",55:"r21",57:"r21"},{56:"s72"},{56:"r55"},{10:70,20:73,21:75,22:76,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r56",58:"s74"},{24:"r62",28:"r62",35:"r62",36:"r62",37:"r62",38:"r62",39:"r62",40:"r62",41:"r62",42:"r62",43:"r62",44:"r62",45:"r62",56:"r62",58:"r62"},{24:"r63",28:"r63",35:"r63",36:"r63",37:"r63",38:"r63",39:"r63",40:"r63",41:"r63",42:"r63",43:"r63",44:"r63",45:"r63",56:"r63",58:"r63"},{24:"r64",28:"r64",35:"r64",36:"r64",37:"r64",38:"r64",39:"r64",40:"r64",41:"r64",42:"r64",43:"r64",44:"r64",45:"r64",56:"r64",58:"r64"},{24:"r65",28:"r65",35:"r65",36:"r65",37:"r65",38:"r65",39:"r65",40:"r65",41:"r65",42:"r65",43:"r65",44:"r65",45:"r65",56:"r65",58:"r65"},{23:"r52",24:"r52",25:"r52",26:"r52",27:"r52",28:"r52",29:"r52",30:"r52",31:"r52",32:"r52",33:"r52",34:"r52",35:"r52",36:"r52",37:"r52",38:"r52",39:"r52",40:"r52",41:"r52",42:"r52",43:"r52",44:"r52",45:"r52",46:"r52",47:"r52",48:"r52",49:"r52",50:"r52",51:"r52",52:"r52",53:"r52",54:"r52",55:"r52",57:"r52"},{56:"r57"},{10:70,21:77,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r62",58:"s68"},{56:"r59"},{10:70,20:79,21:75,22:76,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r63",58:"s80"},{10:70,18:78,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{56:"r58"},{56:"r60"},{10:70,21:81,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r62",58:"s68"},{10:70,18:82,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{56:"r61"},{56:"s84"},{23:"r53",24:"r53",25:"r53",26:"r53",27:"r53",28:"r53",29:"r53",30:"r53",31:"r53",32:"r53",33:"r53",34:"r53",35:"r53",36:"r53",37:"r53",38:"r53",39:"r53",40:"r53",41:"r53",42:"r53",43:"r53",44:"r53",45:"r53",46:"r53",47:"r53",48:"r53",49:"r53",50:"r53",51:"r53",52:"r53",53:"r53",54:"r53",55:"r53",57:"r53"},{25:"s12",31:"s86"},{23:"r49",24:"r49",25:"r49",26:"r49",27:"r49",28:"r49",29:"r49",30:"r49",31:"r49",32:"r49",33:"r49",34:"r49",35:"r49",36:"r49",37:"r49",38:"r49",39:"r49",40:"r49",41:"r49",42:"r49",43:"r49",44:"r49",45:"r49",46:"r49",47:"r49",48:"r49",49:"r49",50:"r49",51:"r49",52:"r49",53:"r49",54:"r49",55:"r49",57:"r49"},{25:"s12",31:"s88"},{23:"r50",24:"r50",25:"r50",26:"r50",27:"r50",28:"r50",29:"r50",30:"r50",31:"r50",32:"r50",33:"r50",34:"r50",35:"r50",36:"r50",37:"r50",38:"r50",39:"r50",40:"r50",41:"r50",42:"r50",43:"r50",44:"r50",45:"r50",46:"r50",47:"r50",48:"r50",49:"r50",50:"r50",51:"r50",52:"r50",53:"r50",54:"r50",55:"r50",57:"r50"},{25:"s12",31:"s90"},{23:"r51",24:"r51",25:"r51",26:"r51",27:"r51",28:"r51",29:"r51",30:"r51",31:"r51",32:"r51",33:"r51",34:"r51",35:"r51",36:"r51",37:"r51",38:"r51",39:"r51",40:"r51",41:"r51",42:"r51",43:"r51",44:"r51",45:"r51",46:"r51",47:"r51",48:"r51",49:"r51",50:"r51",51:"r51",52:"r51",53:"r51",54:"r51",55:"r51",57:"r51"}],l=[],v=void 0,b=[[/^#[^\n]+/,function(){}],[/^\s+/,function(){}],[/^-/,function(){return"DASH"}],[/^\//,function(){return"CHAR"}],[/^#/,function(){return"CHAR"}],[/^\|/,function(){return"CHAR"}],[/^\./,function(){return"CHAR"}],[/^\{/,function(){return"CHAR"}],[/^\{\d+\}/,function(){return"RANGE_EXACT"}],[/^\{\d+,\}/,function(){return"RANGE_OPEN"}],[/^\{\d+,\d+\}/,function(){return"RANGE_CLOSED"}],[/^\\k<(([\u0041-\u005a\u0061-\u007a\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e-\u066f\u0671-\u06d3\u06d5\u06e5-\u06e6\u06ee-\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4-\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0-\u0ae1\u0af9\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60-\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e46\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2-\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065-\u1066\u106e-\u1070\u1075-\u1081\u108e\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\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5-\u1cf6\u1cfa\u1d00-\u1dbf\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\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\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\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a-\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\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]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf75\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\ude10-\ude13\ude15-\ude17\ude19-\ude35\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd23\udf00-\udf1c\udf27\udf30-\udf45\udfe0-\udff6]|\ud804[\udc03-\udc37\udc83-\udcaf\udcd0-\udce8\udd03-\udd26\udd44\udd50-\udd72\udd76\udd83-\uddb2\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude2b\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udede\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3d\udf50\udf5d-\udf61]|\ud805[\udc00-\udc34\udc47-\udc4a\udc5f\udc80-\udcaf\udcc4-\udcc5\udcc7\udd80-\uddae\uddd8-\udddb\ude00-\ude2f\ude44\ude80-\udeaa\udeb8\udf00-\udf1a]|\ud806[\udc00-\udc2b\udca0-\udcdf\udcff\udda0-\udda7\uddaa-\uddd0\udde1\udde3\ude00\ude0b-\ude32\ude3a\ude50\ude5c-\ude89\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc2e\udc40\udc72-\udc8f\udd00-\udd06\udd08-\udd09\udd0b-\udd30\udd46\udd60-\udd65\udd67-\udd68\udd6a-\udd89\udd98\udee0-\udef2]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf2f\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf50\udf93-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99]|\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[\udd00-\udd2c\udd37-\udd3d\udd4e\udec0-\udeeb]|\ud83a[\udc00-\udcc4\udd00-\udd43\udd4b]|\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]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\}))(([\u0030-\u0039\u0041-\u005a\u005f\u0061-\u007a\u00aa\u00b5\u00b7\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u05d0-\u05ea\u05ef-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u07fd\u0800-\u082d\u0840-\u085b\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u08d3-\u08e1\u08e3-\u0963\u0966-\u096f\u0971-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09f1\u09fc\u09fe\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\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0af9-\u0aff\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-\u0b6f\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-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c60-\u0c63\u0c66-\u0c6f\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\u0d00-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d54-\u0d57\u0d5f-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18-\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\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\u135d-\u135f\u1369-\u1371\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17d3\u17d7\u17dc-\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1ab0-\u1abd\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1cd0-\u1cd2\u1cd4-\u1cfa\u1d00-\u1df9\u1dfb-\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\u203f-\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua827\ua840-\ua873\ua880-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua8fd-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\ua9e0-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabea\uabec-\uabed\uabf0-\uabf9\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\ufe00-\ufe0f\ufe20-\ufe2f\ufe33-\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\uddfd\ude80-\ude9c\udea0-\uded0\udee0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf7a\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udca0-\udca9\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-\ude35\ude38-\ude3a\ude3f\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee6\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd27\udd30-\udd39\udf00-\udf1c\udf27\udf30-\udf50\udfe0-\udff6]|\ud804[\udc00-\udc46\udc66-\udc6f\udc7f-\udcba\udcd0-\udce8\udcf0-\udcf9\udd00-\udd34\udd36-\udd3f\udd44-\udd46\udd50-\udd73\udd76\udd80-\uddc4\uddc9-\uddcc\uddd0-\uddda\udddc\ude00-\ude11\ude13-\ude37\ude3e\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udeea\udef0-\udef9\udf00-\udf03\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3b-\udf44\udf47-\udf48\udf4b-\udf4d\udf50\udf57\udf5d-\udf63\udf66-\udf6c\udf70-\udf74]|\ud805[\udc00-\udc4a\udc50-\udc59\udc5e-\udc5f\udc80-\udcc5\udcc7\udcd0-\udcd9\udd80-\uddb5\uddb8-\uddc0\uddd8-\udddd\ude00-\ude40\ude44\ude50-\ude59\ude80-\udeb8\udec0-\udec9\udf00-\udf1a\udf1d-\udf2b\udf30-\udf39]|\ud806[\udc00-\udc3a\udca0-\udce9\udcff\udda0-\udda7\uddaa-\uddd7\uddda-\udde1\udde3-\udde4\ude00-\ude3e\ude47\ude50-\ude99\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc36\udc38-\udc40\udc50-\udc59\udc72-\udc8f\udc92-\udca7\udca9-\udcb6\udd00-\udd06\udd08-\udd09\udd0b-\udd36\udd3a\udd3c-\udd3d\udd3f-\udd47\udd50-\udd59\udd60-\udd65\udd67-\udd68\udd6a-\udd8e\udd90-\udd91\udd93-\udd98\udda0-\udda9\udee0-\udef6]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\ude60-\ude69\uded0-\udeed\udef0-\udef4\udf00-\udf36\udf40-\udf43\udf50-\udf59\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf4f-\udf87\udf8f-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99\udc9d-\udc9e]|\ud834[\udd65-\udd69\udd6d-\udd72\udd7b-\udd82\udd85-\udd8b\uddaa-\uddad\ude42-\ude44]|\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\udfce-\udfff]|\ud836[\ude00-\ude36\ude3b-\ude6c\ude75\ude84\ude9b-\ude9f\udea1-\udeaf]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23-\udc24\udc26-\udc2a\udd00-\udd2c\udd30-\udd3d\udd40-\udd49\udd4e\udec0-\udef9]|\ud83a[\udc00-\udcc4\udcd0-\udcd6\udd00-\udd4b\udd50-\udd59]|\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]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d]|\udb40[\udd00-\uddef])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\})|[\u200c\u200d])*>/,function(){return P(d.slice(3,-1),this.getCurrentState()),"NAMED_GROUP_REF"}],[/^\\b/,function(){return"ESC_b"}],[/^\\B/,function(){return"ESC_B"}],[/^\\c[a-zA-Z]/,function(){return"CTRL_CH"}],[/^\\0\d{1,2}/,function(){return"OCT_CODE"}],[/^\\0/,function(){return"DEC_CODE"}],[/^\\\d{1,3}/,function(){return"DEC_CODE"}],[/^\\u[dD][89abAB][0-9a-fA-F]{2}\\u[dD][c-fC-F][0-9a-fA-F]{2}/,function(){return"U_CODE_SURROGATE"}],[/^\\u\{[0-9a-fA-F]{1,}\}/,function(){return"U_CODE"}],[/^\\u[0-9a-fA-F]{4}/,function(){return"U_CODE"}],[/^\\[pP]\{\w+(?:=\w+)?\}/,function(){return"U_PROP_VALUE_EXP"}],[/^\\x[0-9a-fA-F]{2}/,function(){return"HEX_CODE"}],[/^\\[tnrdDsSwWvf]/,function(){return"META_CHAR"}],[/^\\\//,function(){return"ESC_CHAR"}],[/^\\[ #]/,function(){return"ESC_CHAR"}],[/^\\[\^\$\.\*\+\?\(\)\\\[\]\{\}\|\/]/,function(){return"ESC_CHAR"}],[/^\\[^*?+\[()\\|]/,function(){var e=this.getCurrentState();if("u_class"===e&&"\\-"===d)return"ESC_CHAR";if("u"===e||"xu"===e||"u_class"===e)throw new SyntaxError("invalid Unicode escape "+d);return"ESC_CHAR"}],[/^\(/,function(){return"CHAR"}],[/^\)/,function(){return"CHAR"}],[/^\(\?=/,function(){return"POS_LA_ASSERT"}],[/^\(\?!/,function(){return"NEG_LA_ASSERT"}],[/^\(\?<=/,function(){return"POS_LB_ASSERT"}],[/^\(\?<!/,function(){return"NEG_LB_ASSERT"}],[/^\(\?:/,function(){return"NON_CAPTURE_GROUP"}],[/^\(\?<(([\u0041-\u005a\u0061-\u007a\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e-\u066f\u0671-\u06d3\u06d5\u06e5-\u06e6\u06ee-\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4-\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0-\u0ae1\u0af9\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60-\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e46\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2-\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065-\u1066\u106e-\u1070\u1075-\u1081\u108e\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\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5-\u1cf6\u1cfa\u1d00-\u1dbf\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\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\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\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a-\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\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]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf75\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\ude10-\ude13\ude15-\ude17\ude19-\ude35\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd23\udf00-\udf1c\udf27\udf30-\udf45\udfe0-\udff6]|\ud804[\udc03-\udc37\udc83-\udcaf\udcd0-\udce8\udd03-\udd26\udd44\udd50-\udd72\udd76\udd83-\uddb2\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude2b\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udede\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3d\udf50\udf5d-\udf61]|\ud805[\udc00-\udc34\udc47-\udc4a\udc5f\udc80-\udcaf\udcc4-\udcc5\udcc7\udd80-\uddae\uddd8-\udddb\ude00-\ude2f\ude44\ude80-\udeaa\udeb8\udf00-\udf1a]|\ud806[\udc00-\udc2b\udca0-\udcdf\udcff\udda0-\udda7\uddaa-\uddd0\udde1\udde3\ude00\ude0b-\ude32\ude3a\ude50\ude5c-\ude89\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc2e\udc40\udc72-\udc8f\udd00-\udd06\udd08-\udd09\udd0b-\udd30\udd46\udd60-\udd65\udd67-\udd68\udd6a-\udd89\udd98\udee0-\udef2]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf2f\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf50\udf93-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99]|\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[\udd00-\udd2c\udd37-\udd3d\udd4e\udec0-\udeeb]|\ud83a[\udc00-\udcc4\udd00-\udd43\udd4b]|\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]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\}))(([\u0030-\u0039\u0041-\u005a\u005f\u0061-\u007a\u00aa\u00b5\u00b7\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u05d0-\u05ea\u05ef-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u07fd\u0800-\u082d\u0840-\u085b\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u08d3-\u08e1\u08e3-\u0963\u0966-\u096f\u0971-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09f1\u09fc\u09fe\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\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0af9-\u0aff\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-\u0b6f\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-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c60-\u0c63\u0c66-\u0c6f\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\u0d00-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d54-\u0d57\u0d5f-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18-\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\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\u135d-\u135f\u1369-\u1371\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17d3\u17d7\u17dc-\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1ab0-\u1abd\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1cd0-\u1cd2\u1cd4-\u1cfa\u1d00-\u1df9\u1dfb-\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\u203f-\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua827\ua840-\ua873\ua880-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua8fd-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\ua9e0-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabea\uabec-\uabed\uabf0-\uabf9\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\ufe00-\ufe0f\ufe20-\ufe2f\ufe33-\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\uddfd\ude80-\ude9c\udea0-\uded0\udee0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf7a\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udca0-\udca9\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-\ude35\ude38-\ude3a\ude3f\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee6\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd27\udd30-\udd39\udf00-\udf1c\udf27\udf30-\udf50\udfe0-\udff6]|\ud804[\udc00-\udc46\udc66-\udc6f\udc7f-\udcba\udcd0-\udce8\udcf0-\udcf9\udd00-\udd34\udd36-\udd3f\udd44-\udd46\udd50-\udd73\udd76\udd80-\uddc4\uddc9-\uddcc\uddd0-\uddda\udddc\ude00-\ude11\ude13-\ude37\ude3e\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udeea\udef0-\udef9\udf00-\udf03\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3b-\udf44\udf47-\udf48\udf4b-\udf4d\udf50\udf57\udf5d-\udf63\udf66-\udf6c\udf70-\udf74]|\ud805[\udc00-\udc4a\udc50-\udc59\udc5e-\udc5f\udc80-\udcc5\udcc7\udcd0-\udcd9\udd80-\uddb5\uddb8-\uddc0\uddd8-\udddd\ude00-\ude40\ude44\ude50-\ude59\ude80-\udeb8\udec0-\udec9\udf00-\udf1a\udf1d-\udf2b\udf30-\udf39]|\ud806[\udc00-\udc3a\udca0-\udce9\udcff\udda0-\udda7\uddaa-\uddd7\uddda-\udde1\udde3-\udde4\ude00-\ude3e\ude47\ude50-\ude99\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc36\udc38-\udc40\udc50-\udc59\udc72-\udc8f\udc92-\udca7\udca9-\udcb6\udd00-\udd06\udd08-\udd09\udd0b-\udd36\udd3a\udd3c-\udd3d\udd3f-\udd47\udd50-\udd59\udd60-\udd65\udd67-\udd68\udd6a-\udd8e\udd90-\udd91\udd93-\udd98\udda0-\udda9\udee0-\udef6]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\ude60-\ude69\uded0-\udeed\udef0-\udef4\udf00-\udf36\udf40-\udf43\udf50-\udf59\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf4f-\udf87\udf8f-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99\udc9d-\udc9e]|\ud834[\udd65-\udd69\udd6d-\udd72\udd7b-\udd82\udd85-\udd8b\uddaa-\uddad\ude42-\ude44]|\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\udfce-\udfff]|\ud836[\ude00-\ude36\ude3b-\ude6c\ude75\ude84\ude9b-\ude9f\udea1-\udeaf]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23-\udc24\udc26-\udc2a\udd00-\udd2c\udd30-\udd3d\udd40-\udd49\udd4e\udec0-\udef9]|\ud83a[\udc00-\udcc4\udcd0-\udcd6\udd00-\udd4b\udd50-\udd59]|\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]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d]|\udb40[\udd00-\uddef])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\})|[\u200c\u200d])*>/,function(){return P(d=d.slice(3,-1),this.getCurrentState()),"NAMED_CAPTURE_GROUP"}],[/^\(/,function(){return"L_PAREN"}],[/^\)/,function(){return"R_PAREN"}],[/^[*?+[^$]/,function(){return"CHAR"}],[/^\\\]/,function(){return"ESC_CHAR"}],[/^\]/,function(){return this.popState(),"R_BRACKET"}],[/^\^/,function(){return"BOS"}],[/^\$/,function(){return"EOS"}],[/^\*/,function(){return"STAR"}],[/^\?/,function(){return"Q_MARK"}],[/^\+/,function(){return"PLUS"}],[/^\|/,function(){return"BAR"}],[/^\./,function(){return"ANY"}],[/^\//,function(){return"SLASH"}],[/^[^*?+\[()\\|]/,function(){return"CHAR"}],[/^\[\^/,function(){var e=this.getCurrentState();return this.pushState("u"===e||"xu"===e?"u_class":"class"),"NEG_CLASS"}],[/^\[/,function(){var e=this.getCurrentState();return this.pushState("u"===e||"xu"===e?"u_class":"class"),"L_BRACKET"}]],p={INITIAL:[8,9,10,11,12,13,14,15,16,17,20,22,23,24,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],u:[8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],xu:[0,1,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],x:[0,1,8,9,10,11,12,13,14,15,16,17,20,22,23,24,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],u_class:[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],class:[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,20,22,23,24,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51]},h={type:"$",value:""};v={initString:function(e){return this._string=e,this._cursor=0,this._states=["INITIAL"],this._tokensQueue=[],this._currentLine=1,this._currentColumn=0,this._currentLineBeginOffset=0,this._tokenStartOffset=0,this._tokenEndOffset=0,this._tokenStartLine=1,this._tokenEndLine=1,this._tokenStartColumn=0,this._tokenEndColumn=0,this},getStates:function(){return this._states},getCurrentState:function(){return this._states[this._states.length-1]},pushState:function(e){this._states.push(e)},begin:function(e){this.pushState(e)},popState:function(){return this._states.length>1?this._states.pop():this._states[0]},getNextToken:function(){if(this._tokensQueue.length>0)return this.onToken(this._toToken(this._tokensQueue.shift()));if(!this.hasMoreTokens())return this.onToken(h);for(var e=this._string.slice(this._cursor),u=p[this.getCurrentState()],r=0;r<u.length;r++){var t=u[r],a=b[t],s=this._match(e,a[0]);if(""===e&&""===s&&this._cursor++,null!==s){(d=s).length;var i=a[1].call(this);if(!i)return this.getNextToken();if(Array.isArray(i)){var f,o=i.slice(1);i=i[0],o.length>0&&(f=this._tokensQueue).unshift.apply(f,n(o))}return this.onToken(this._toToken(i,d))}}if(this.isEOF())return this._cursor++,h;this.throwUnexpectedToken(e[0],this._currentLine,this._currentColumn)},throwUnexpectedToken:function(e,u,r){var n=this._string.split("\n")[u-1],d="";throw n&&(d="\n\n"+n+"\n"+" ".repeat(r)+"^\n"),new SyntaxError(d+'Unexpected token: "'+e+'" at '+u+":"+r+".")},getCursor:function(){return this._cursor},getCurrentLine:function(){return this._currentLine},getCurrentColumn:function(){return this._currentColumn},_captureLocation:function(e){var u=/\n/g;this._tokenStartOffset=this._cursor,this._tokenStartLine=this._currentLine,this._tokenStartColumn=this._tokenStartOffset-this._currentLineBeginOffset;for(var r=void 0;null!==(r=u.exec(e));)this._currentLine++,this._currentLineBeginOffset=this._tokenStartOffset+r.index+1;this._tokenEndOffset=this._cursor+e.length,this._tokenEndLine=this._currentLine,this._tokenEndColumn=this._currentColumn=this._tokenEndOffset-this._currentLineBeginOffset},_toToken:function(e){return{type:e,value:arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",startOffset:this._tokenStartOffset,endOffset:this._tokenEndOffset,startLine:this._tokenStartLine,endLine:this._tokenEndLine,startColumn:this._tokenStartColumn,endColumn:this._tokenEndColumn}},isEOF:function(){return this._cursor===this._string.length},hasMoreTokens:function(){return this._cursor<=this._string.length},_match:function(e,u){var r=e.match(u);return r?(this._captureLocation(r[0]),this._cursor+=r[0].length,r[0]):null},onToken:function(e){return e}},t.lexer=v,t.tokenizer=v,t.options={captureLocations:!0};var m={setOptions:function(e){return t.options=e,this},getOptions:function(){return t.options},parse:function(e,u){if(!v)throw new Error("Tokenizer instance wasn't specified.");v.initString(e);var r=t.options;u&&(t.options=Object.assign({},t.options,u)),m.onParseBegin(e,v,t.options),l.length=0,l.push(0);var i=v.getNextToken(),b=null;do{i||(t.options=r,L());var p=l[l.length-1],h=o[i.type];c[p].hasOwnProperty(h)||(t.options=r,D(i));var y=c[p][h];if("s"===y[0]){var g=null;t.options.captureLocations&&(g={startOffset:i.startOffset,endOffset:i.endOffset,startLine:i.startLine,endLine:i.endLine,startColumn:i.startColumn,endColumn:i.endColumn}),b=this.onShift(i),l.push({symbol:o[b.type],semanticValue:b.value,loc:g},Number(y.slice(1))),i=v.getNextToken()}else if("r"===y[0]){var C=y.slice(1),B=f[C],_="function"==typeof B[2],x=_?[]:null,A=_&&t.options.captureLocations?[]:null;if(0!==B[1])for(var S=B[1];S-- >0;){l.pop();var w=l.pop();_&&(x.unshift(w.semanticValue),A&&A.unshift(w.loc))}var j={symbol:B[0]};if(_){d=b?b.value:null,b&&b.value.length;var k=null!==A?x.concat(A):x;B[2].apply(B,n(k)),j.semanticValue=a,A&&(j.loc=s)}var E=l[l.length-1],P=B[0];l.push(j,c[E][P])}else if("acc"===y){l.pop();var O=l.pop();return(1!==l.length||0!==l[0]||v.hasMoreTokens())&&(t.options=r,D(i)),O.hasOwnProperty("semanticValue")?(t.options=r,m.onParseEnd(O.semanticValue),O.semanticValue):(m.onParseEnd(),t.options=r,!0)}}while(v.hasMoreTokens()||l.length>1)},setTokenizer:function(e){return v=e,m},getTokenizer:function(){return v},onParseBegin:function(e,u,r){},onParseEnd:function(e){},onShift:function(e){return e}},y=0,g={},C="";function B(e){var u=e.match(/\d+/g).map(Number);if(Number.isFinite(u[1])&&u[1]<u[0])throw new SyntaxError("Numbers out of order in "+e+" quantifier");return u}function _(e,u){if("control"===e.kind||"control"===u.kind||!isNaN(e.codePoint)&&!isNaN(u.codePoint)&&e.codePoint>u.codePoint)throw new SyntaxError("Range "+e.value+"-"+u.value+" out of order in character class")}m.onParseBegin=function(e,u){C=e,y=0,g={};var r=e.lastIndexOf("/"),n=e.slice(r);n.includes("x")&&n.includes("u")?u.pushState("xu"):(n.includes("x")&&u.pushState("x"),n.includes("u")&&u.pushState("u"))},m.onShift=function(e){return"L_PAREN"!==e.type&&"NAMED_CAPTURE_GROUP"!==e.type||(e.value=new String(e.value),e.value.groupNumber=++y),e};var x=r(24876);function A(e,u,r){var n=void 0,d=void 0;switch(u){case"decimal":d=Number(e.slice(1)),n=String.fromCodePoint(d);break;case"oct":d=parseInt(e.slice(1),8),n=String.fromCodePoint(d);break;case"hex":case"unicode":if(e.lastIndexOf("\\u")>0){var t=function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,u){var r=[],n=!0,d=!1,t=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!u||r.length!==u);n=!0);}catch(e){d=!0,t=e}finally{try{!n&&s.return&&s.return()}finally{if(d)throw t}}return r}(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")}(e.split("\\u").slice(1),2),a=t[0],s=t[1];d=1024*((a=parseInt(a,16))-55296)+((s=parseInt(s,16))-56320)+65536,n=String.fromCodePoint(d)}else{var i=e.slice(2).replace("{","");if((d=parseInt(i,16))>1114111)throw new SyntaxError("Bad character escape sequence: "+e);n=String.fromCodePoint(d)}break;case"meta":switch(e){case"\\t":d=(n="\t").codePointAt(0);break;case"\\n":d=(n="\n").codePointAt(0);break;case"\\r":d=(n="\r").codePointAt(0);break;case"\\v":d=(n="\v").codePointAt(0);break;case"\\f":d=(n="\f").codePointAt(0);break;case"\\b":d=(n="\b").codePointAt(0);case"\\0":n="\0",d=0;case".":n=".",d=NaN;break;default:d=NaN}break;case"simple":d=(n=e).codePointAt(0)}return R({type:"Char",value:e,kind:u,symbol:n,codePoint:d},r)}var S="gimsuxy";function w(e){var u=new Set,r=!0,n=!1,d=void 0;try{for(var t,a=e[Symbol.iterator]();!(r=(t=a.next()).done);r=!0){var s=t.value;if(u.has(s)||!S.includes(s))throw new SyntaxError("Invalid flags: "+e);u.add(s)}}catch(e){n=!0,d=e}finally{try{!r&&a.return&&a.return()}finally{if(n)throw d}}return e.split("").sort().join("")}var j=/^\\u[0-9a-fA-F]{4}/,k=/^\\u\{[0-9a-fA-F]{1,}\}/,E=/\\u\{[0-9a-fA-F]{1,}\}/;function P(e,u){if(E.test(e)&&"u"!==u&&"xu"!==u&&"u_class"!==u)throw new SyntaxError('invalid group Unicode name "'+e+'", use `u` flag.');return e}var O=/\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\})/;function T(e){return e.replace(new RegExp(O,"g"),(function(e,u,r,n,d,t,a){return u?String.fromCodePoint(parseInt(u,16),parseInt(r,16)):n?String.fromCodePoint(parseInt(n,16)):d?String.fromCodePoint(parseInt(d,16)):t?String.fromCodePoint(parseInt(t,16)):a?String.fromCodePoint(parseInt(a,16)):e}))}function R(e,u){return t.options.captureLocations&&(e.loc={source:C.slice(u.startOffset,u.endOffset),start:{line:u.startLine,column:u.startColumn,offset:u.startOffset},end:{line:u.endLine,column:u.endColumn,offset:u.endOffset}}),e}function N(e,u){return t.options.captureLocations?{startOffset:e.startOffset,endOffset:u.endOffset,startLine:e.startLine,endLine:u.endLine,startColumn:e.startColumn,endColumn:u.endColumn}:null}function D(e){"$"===e.type&&L(),v.throwUnexpectedToken(e.value,e.startLine,e.startColumn)}function L(){!function(e){throw new SyntaxError("Unexpected end of input.")}()}e.exports=m},37112:function(e,u,r){"use strict";var n=r(42669),d=n.parse.bind(n);n.parse=function(e,u){return d(""+e,u)},n.setOptions({captureLocations:!1}),e.exports=n},24876:function(e){"use strict";var u={General_Category:"gc",Script:"sc",Script_Extensions:"scx"},r=f(u),n={ASCII:"ASCII",ASCII_Hex_Digit:"AHex",Alphabetic:"Alpha",Any:"Any",Assigned:"Assigned",Bidi_Control:"Bidi_C",Bidi_Mirrored:"Bidi_M",Case_Ignorable:"CI",Cased:"Cased",Changes_When_Casefolded:"CWCF",Changes_When_Casemapped:"CWCM",Changes_When_Lowercased:"CWL",Changes_When_NFKC_Casefolded:"CWKCF",Changes_When_Titlecased:"CWT",Changes_When_Uppercased:"CWU",Dash:"Dash",Default_Ignorable_Code_Point:"DI",Deprecated:"Dep",Diacritic:"Dia",Emoji:"Emoji",Emoji_Component:"Emoji_Component",Emoji_Modifier:"Emoji_Modifier",Emoji_Modifier_Base:"Emoji_Modifier_Base",Emoji_Presentation:"Emoji_Presentation",Extended_Pictographic:"Extended_Pictographic",Extender:"Ext",Grapheme_Base:"Gr_Base",Grapheme_Extend:"Gr_Ext",Hex_Digit:"Hex",IDS_Binary_Operator:"IDSB",IDS_Trinary_Operator:"IDST",ID_Continue:"IDC",ID_Start:"IDS",Ideographic:"Ideo",Join_Control:"Join_C",Logical_Order_Exception:"LOE",Lowercase:"Lower",Math:"Math",Noncharacter_Code_Point:"NChar",Pattern_Syntax:"Pat_Syn",Pattern_White_Space:"Pat_WS",Quotation_Mark:"QMark",Radical:"Radical",Regional_Indicator:"RI",Sentence_Terminal:"STerm",Soft_Dotted:"SD",Terminal_Punctuation:"Term",Unified_Ideograph:"UIdeo",Uppercase:"Upper",Variation_Selector:"VS",White_Space:"space",XID_Continue:"XIDC",XID_Start:"XIDS"},d=f(n),t={Cased_Letter:"LC",Close_Punctuation:"Pe",Connector_Punctuation:"Pc",Control:["Cc","cntrl"],Currency_Symbol:"Sc",Dash_Punctuation:"Pd",Decimal_Number:["Nd","digit"],Enclosing_Mark:"Me",Final_Punctuation:"Pf",Format:"Cf",Initial_Punctuation:"Pi",Letter:"L",Letter_Number:"Nl",Line_Separator:"Zl",Lowercase_Letter:"Ll",Mark:["M","Combining_Mark"],Math_Symbol:"Sm",Modifier_Letter:"Lm",Modifier_Symbol:"Sk",Nonspacing_Mark:"Mn",Number:"N",Open_Punctuation:"Ps",Other:"C",Other_Letter:"Lo",Other_Number:"No",Other_Punctuation:"Po",Other_Symbol:"So",Paragraph_Separator:"Zp",Private_Use:"Co",Punctuation:["P","punct"],Separator:"Z",Space_Separator:"Zs",Spacing_Mark:"Mc",Surrogate:"Cs",Symbol:"S",Titlecase_Letter:"Lt",Unassigned:"Cn",Uppercase_Letter:"Lu"},a=f(t),s={Adlam:"Adlm",Ahom:"Ahom",Anatolian_Hieroglyphs:"Hluw",Arabic:"Arab",Armenian:"Armn",Avestan:"Avst",Balinese:"Bali",Bamum:"Bamu",Bassa_Vah:"Bass",Batak:"Batk",Bengali:"Beng",Bhaiksuki:"Bhks",Bopomofo:"Bopo",Brahmi:"Brah",Braille:"Brai",Buginese:"Bugi",Buhid:"Buhd",Canadian_Aboriginal:"Cans",Carian:"Cari",Caucasian_Albanian:"Aghb",Chakma:"Cakm",Cham:"Cham",Cherokee:"Cher",Common:"Zyyy",Coptic:["Copt","Qaac"],Cuneiform:"Xsux",Cypriot:"Cprt",Cyrillic:"Cyrl",Deseret:"Dsrt",Devanagari:"Deva",Dogra:"Dogr",Duployan:"Dupl",Egyptian_Hieroglyphs:"Egyp",Elbasan:"Elba",Ethiopic:"Ethi",Georgian:"Geor",Glagolitic:"Glag",Gothic:"Goth",Grantha:"Gran",Greek:"Grek",Gujarati:"Gujr",Gunjala_Gondi:"Gong",Gurmukhi:"Guru",Han:"Hani",Hangul:"Hang",Hanifi_Rohingya:"Rohg",Hanunoo:"Hano",Hatran:"Hatr",Hebrew:"Hebr",Hiragana:"Hira",Imperial_Aramaic:"Armi",Inherited:["Zinh","Qaai"],Inscriptional_Pahlavi:"Phli",Inscriptional_Parthian:"Prti",Javanese:"Java",Kaithi:"Kthi",Kannada:"Knda",Katakana:"Kana",Kayah_Li:"Kali",Kharoshthi:"Khar",Khmer:"Khmr",Khojki:"Khoj",Khudawadi:"Sind",Lao:"Laoo",Latin:"Latn",Lepcha:"Lepc",Limbu:"Limb",Linear_A:"Lina",Linear_B:"Linb",Lisu:"Lisu",Lycian:"Lyci",Lydian:"Lydi",Mahajani:"Mahj",Makasar:"Maka",Malayalam:"Mlym",Mandaic:"Mand",Manichaean:"Mani",Marchen:"Marc",Medefaidrin:"Medf",Masaram_Gondi:"Gonm",Meetei_Mayek:"Mtei",Mende_Kikakui:"Mend",Meroitic_Cursive:"Merc",Meroitic_Hieroglyphs:"Mero",Miao:"Plrd",Modi:"Modi",Mongolian:"Mong",Mro:"Mroo",Multani:"Mult",Myanmar:"Mymr",Nabataean:"Nbat",New_Tai_Lue:"Talu",Newa:"Newa",Nko:"Nkoo",Nushu:"Nshu",Ogham:"Ogam",Ol_Chiki:"Olck",Old_Hungarian:"Hung",Old_Italic:"Ital",Old_North_Arabian:"Narb",Old_Permic:"Perm",Old_Persian:"Xpeo",Old_Sogdian:"Sogo",Old_South_Arabian:"Sarb",Old_Turkic:"Orkh",Oriya:"Orya",Osage:"Osge",Osmanya:"Osma",Pahawh_Hmong:"Hmng",Palmyrene:"Palm",Pau_Cin_Hau:"Pauc",Phags_Pa:"Phag",Phoenician:"Phnx",Psalter_Pahlavi:"Phlp",Rejang:"Rjng",Runic:"Runr",Samaritan:"Samr",Saurashtra:"Saur",Sharada:"Shrd",Shavian:"Shaw",Siddham:"Sidd",SignWriting:"Sgnw",Sinhala:"Sinh",Sogdian:"Sogd",Sora_Sompeng:"Sora",Soyombo:"Soyo",Sundanese:"Sund",Syloti_Nagri:"Sylo",Syriac:"Syrc",Tagalog:"Tglg",Tagbanwa:"Tagb",Tai_Le:"Tale",Tai_Tham:"Lana",Tai_Viet:"Tavt",Takri:"Takr",Tamil:"Taml",Tangut:"Tang",Telugu:"Telu",Thaana:"Thaa",Thai:"Thai",Tibetan:"Tibt",Tifinagh:"Tfng",Tirhuta:"Tirh",Ugaritic:"Ugar",Vai:"Vaii",Warang_Citi:"Wara",Yi:"Yiii",Zanabazar_Square:"Zanb"},i=f(s);function f(e){var u={};for(var r in e)if(e.hasOwnProperty(r)){var n=e[r];if(Array.isArray(n))for(var d=0;d<n.length;d++)u[n[d]]=r;else u[n]=r}return u}function o(e){return t.hasOwnProperty(e)||a.hasOwnProperty(e)}function c(e){return s.hasOwnProperty(e)||i.hasOwnProperty(e)}e.exports={isAlias:function(e){return r.hasOwnProperty(e)||d.hasOwnProperty(e)},isValidName:function(e){return u.hasOwnProperty(e)||r.hasOwnProperty(e)||n.hasOwnProperty(e)||d.hasOwnProperty(e)},isValidValue:function(e,u){return function(e){return"General_Category"===e||"gc"==e}(e)?o(u):!!function(e){return"Script"===e||"Script_Extensions"===e||"sc"===e||"scx"===e}(e)&&c(u)},isGeneralCategoryValue:o,isScriptCategoryValue:c,isBinaryPropertyName:function(e){return n.hasOwnProperty(e)||d.hasOwnProperty(e)},getCanonicalName:function(e){return r.hasOwnProperty(e)?r[e]:d.hasOwnProperty(e)?d[e]:null},getCanonicalValue:function(e){return a.hasOwnProperty(e)?a[e]:i.hasOwnProperty(e)?i[e]:d.hasOwnProperty(e)?d[e]:null},NON_BINARY_PROP_NAMES_TO_ALIASES:u,NON_BINARY_ALIASES_TO_PROP_NAMES:r,BINARY_PROP_NAMES_TO_ALIASES:n,BINARY_ALIASES_TO_PROP_NAMES:d,GENERAL_CATEGORY_VALUE_TO_ALIASES:t,GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES:a,SCRIPT_VALUE_TO_ALIASES:s,SCRIPT_VALUE_ALIASES_TO_VALUE:i}},51474:function(e,u,r){"use strict";var n=r(78355),d=r(89702),t=r(47393),a=r(37112),s=r(60045),i=r(8785),f=r(22722),o=r(77460).RegExpTree,c={parser:a,fa:f,TransformResult:s.TransformResult,parse:function(e,u){return a.parse(""+e,u)},traverse:function(e,u,r){return i.traverse(e,u,r)},transform:function(e,u){return s.transform(e,u)},generate:function(e){return d.generate(e)},toRegExp:function(e){var u=this.compatTranspile(e);return new RegExp(u.getSource(),u.getFlags())},optimize:function(e,u){var r=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).blacklist;return t.optimize(e,{whitelist:u,blacklist:r})},compatTranspile:function(e,u){return n.transform(e,u)},exec:function(e,u){if("string"==typeof e){var r=this.compatTranspile(e),n=r.getExtra();e=n.namedCapturingGroups?new o(r.toRegExp(),{flags:r.getFlags(),source:r.getSource(),groups:n.namedCapturingGroups}):r.toRegExp()}return e.exec(u)}};e.exports=c},60045:function(e,u,r){"use strict";var n=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),d=r(89702),t=r(37112),a=r(8785),s=function(){function e(u){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._ast=u,this._source=null,this._string=null,this._regexp=null,this._extra=r}return n(e,[{key:"getAST",value:function(){return this._ast}},{key:"setExtra",value:function(e){this._extra=e}},{key:"getExtra",value:function(){return this._extra}},{key:"toRegExp",value:function(){return this._regexp||(this._regexp=new RegExp(this.getSource(),this._ast.flags)),this._regexp}},{key:"getSource",value:function(){return this._source||(this._source=d.generate(this._ast.body)),this._source}},{key:"getFlags",value:function(){return this._ast.flags}},{key:"toString",value:function(){return this._string||(this._string=d.generate(this._ast)),this._string}}]),e}();e.exports={TransformResult:s,transform:function(e,u){var r=e;return e instanceof RegExp&&(e=""+e),"string"==typeof e&&(r=t.parse(e,{captureLocations:!0})),a.traverse(r,u),new s(r)}}},26554:function(e){"use strict";e.exports={disjunctionToList:function e(u){if("Disjunction"!==u.type)throw new TypeError('Expected "Disjunction" node, got "'+u.type+'"');var r=[];return u.left&&"Disjunction"===u.left.type?r.push.apply(r,function(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}(e(u.left)).concat([u.right])):r.push(u.left,u.right),r},listToDisjunction:function(e){return e.reduce((function(e,u){return{type:"Disjunction",left:e,right:u}}))},increaseQuantifierByOne:function(e){"*"===e.kind?e.kind="+":"+"===e.kind?(e.kind="Range",e.from=2,delete e.to):"?"===e.kind?(e.kind="Range",e.from=1,e.to=2):"Range"===e.kind&&(e.from+=1,e.to&&(e.to+=1))}}},8785:function(e,u,r){"use strict";var n=r(27762);e.exports={traverse:function(e,u){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{asNodes:!1};function d(e,u,r,d){var t=n.getForNode(u);return n.getForNode(e,t,r,d)}Array.isArray(u)||(u=[u]),u=u.filter((function(u){return"function"!=typeof u.shouldRun||u.shouldRun(e)})),n.initRegistry(),u.forEach((function(u){"function"==typeof u.init&&u.init(e)})),function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=u.pre,d=u.post,t=u.skipProperty;!function e(u,a,s,i){if(u&&"string"==typeof u.type){var f=void 0;if(r&&(f=r(u,a,s,i)),!1!==f)for(var o in a&&a[s]&&(u=isNaN(i)?a[s]:a[s][i]),u)if(u.hasOwnProperty(o)){if(t?t(o,u):"$"===o[0])continue;var c=u[o];if(Array.isArray(c)){var l=0;for(n.traversingIndexStack.push(l);l<c.length;)e(c[l],u,o,l),l=n.updateTraversingIndex(1);n.traversingIndexStack.pop()}else e(c,u,o)}d&&d(u,a,s,i)}}(e,null)}(e,{pre:function(e,n,t,a){var s=void 0;r.asNodes||(s=d(e,n,t,a));var i=!0,f=!1,o=void 0;try{for(var c,l=u[Symbol.iterator]();!(i=(c=l.next()).done);i=!0){var v=c.value;if("function"==typeof v["*"])if(s){if(!s.isRemoved()&&!1===v["*"](s))return!1}else v["*"](e,n,t,a);var b=void 0;if("function"==typeof v[e.type]?b=v[e.type]:"object"==typeof v[e.type]&&"function"==typeof v[e.type].pre&&(b=v[e.type].pre),b)if(s){if(!s.isRemoved()&&!1===b.call(v,s))return!1}else b.call(v,e,n,t,a)}}catch(e){f=!0,o=e}finally{try{!i&&l.return&&l.return()}finally{if(f)throw o}}},post:function(e,n,t,a){if(e){var s=void 0;r.asNodes||(s=d(e,n,t,a));var i=!0,f=!1,o=void 0;try{for(var c,l=u[Symbol.iterator]();!(i=(c=l.next()).done);i=!0){var v=c.value,b=void 0;if("object"==typeof v[e.type]&&"function"==typeof v[e.type].post&&(b=v[e.type].post),b)if(s){if(!s.isRemoved()&&!1===b.call(v,s))return!1}else b.call(v,e,n,t,a)}}catch(e){f=!0,o=e}finally{try{!i&&l.return&&l.return()}finally{if(f)throw o}}}},skipProperty:function(e){return"loc"===e}})}}},27762:function(e){"use strict";var u=function(){function e(e,u){for(var r=0;r<u.length;r++){var n=u[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(u,r,n){return r&&e(u.prototype,r),n&&e(u,n),u}}(),r="expressions",n="expression",d=function(){function e(u){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this.node=u,this.parentPath=r,this.parent=r?r.node:null,this.property=n,this.index=d}return u(e,[{key:"_enforceProp",value:function(e){if(!this.node.hasOwnProperty(e))throw new Error("Node of type "+this.node.type+" doesn't have \""+e+'" collection.')}},{key:"setChild",value:function(u){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=void 0;return null!=d?(t||(t=r),this._enforceProp(t),this.node[t][d]=u,a=e.getForNode(u,this,t,d)):(t||(t=n),this._enforceProp(t),this.node[t]=u,a=e.getForNode(u,this,t,null)),a}},{key:"appendChild",value:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;u||(u=r),this._enforceProp(u);var n=this.node[u].length;return this.setChild(e,n,u)}},{key:"insertChildAt",value:function(u,n){var d=arguments.length>2&&void 0!==arguments[2]?arguments[2]:r;this._enforceProp(d),this.node[d].splice(n,0,u),n<=e.getTraversingIndex()&&e.updateTraversingIndex(1),this._rebuildIndex(this.node,d)}},{key:"remove",value:function(){if(!this.isRemoved()&&(e.registry.delete(this.node),this.node=null,this.parent)){if(null!==this.index)return this.parent[this.property].splice(this.index,1),this.index<=e.getTraversingIndex()&&e.updateTraversingIndex(-1),this._rebuildIndex(this.parent,this.property),this.index=null,void(this.property=null);delete this.parent[this.property],this.property=null}}},{key:"_rebuildIndex",value:function(u,r){for(var n=e.getForNode(u),d=0;d<u[r].length;d++)e.getForNode(u[r][d],n,r,d).index=d}},{key:"isRemoved",value:function(){return null===this.node}},{key:"replace",value:function(u){return e.registry.delete(this.node),this.node=u,this.parent?(null!==this.index?this.parent[this.property][this.index]=u:this.parent[this.property]=u,e.getForNode(u,this.parentPath,this.property,this.index)):null}},{key:"update",value:function(e){Object.assign(this.node,e)}},{key:"getParent",value:function(){return this.parentPath}},{key:"getChild",value:function(){var u=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.node.expressions?e.getForNode(this.node.expressions[u],this,r,u):this.node.expression&&0==u?e.getForNode(this.node.expression,this,n):null}},{key:"hasEqualSource",value:function(e){return JSON.stringify(this.node,t)===JSON.stringify(e.node,t)}},{key:"jsonEncode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},u=e.format,r=e.useLoc;return JSON.stringify(this.node,r?null:t,u)}},{key:"getPreviousSibling",value:function(){return this.parent&&null!=this.index?e.getForNode(this.parent[this.property][this.index-1],e.getForNode(this.parent),this.property,this.index-1):null}},{key:"getNextSibling",value:function(){return this.parent&&null!=this.index?e.getForNode(this.parent[this.property][this.index+1],e.getForNode(this.parent),this.property,this.index+1):null}}],[{key:"getForNode",value:function(u){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1;if(!u)return null;e.registry.has(u)||e.registry.set(u,new e(u,r,n,-1==d?null:d));var t=e.registry.get(u);return null!==r&&(t.parentPath=r,t.parent=t.parentPath.node),null!==n&&(t.property=n),d>=0&&(t.index=d),t}},{key:"initRegistry",value:function(){e.registry||(e.registry=new Map),e.registry.clear()}},{key:"updateTraversingIndex",value:function(u){return e.traversingIndexStack[e.traversingIndexStack.length-1]+=u}},{key:"getTraversingIndex",value:function(){return e.traversingIndexStack[e.traversingIndexStack.length-1]}}]),e}();function t(e,u){if("loc"!==e)return u}d.initRegistry(),d.traversingIndexStack=[],e.exports=d},60689:function(e){"use strict";e.exports=function e(u){if(null===u||"object"!=typeof u)return u;var r=void 0;for(var n in r=Array.isArray(u)?[]:{},u)r[n]=e(u[n]);return r}},16262:function(e,u,r){"use strict";e.exports=r(51474)},72950:function(){},20879:function(e,u,r){"use strict";r.d(u,{z$:function(){return I}});var n,d=r(31e3),t=r(16262),a=r(54876);function s(e){return"number"==typeof e?e:1===e.length?e[0]:[e[0],e[e.length-1]]}function i(e){const u=Array.isArray(e)?e:e.toString().split(".");if("all"===u[0])return[1/0,0,0];let r=null,n=null;const d=[0,0,0];for(let e=0;e<3;e++)if(r=u[e],void 0!==r){if(n="number"==typeof r?r:parseInt(r,10),isNaN(n))return null;d[e]=n}return d}function f(e,u,r){const[n,d,t]=e,[a,s,i]=u,{ignoreMinor:f,ignorePatch:o,allowHigherVersions:c}=r;if(a===1/0)return!0;const l=!f,v=l&&!o;return c?!(v&&t<i||l&&d<s)&&n>=a:!(v&&t!==i||l&&d!==s)&&n===a}function o(e,u,r=0){const n=e.length;for(let d=r;d<n;d++)if(e[d]!==u[d])return!1;return!0}function c(e){if(null===e||"object"!=typeof e)return e;const u=Array.isArray(e)?[]:{};let r;for(r in e)u[r]=c(e[r]);return u}function l(e){return[].concat(...e)}function v(...e){const u=l(e).filter(Boolean);return 1===u.length?u[0]:{type:"Alternative",expressions:u}}function b(e){return{type:"Char",kind:"simple",value:String(e),codePoint:NaN}}function p(e,u){return{type:"ClassRange",from:e,to:u}}function h(...e){return{type:"CharacterClass",expressions:l(e).filter(Boolean)}}function m(e){return{type:"Group",capturing:!0,expression:e,number:null}}function y(...e){const u=function(...e){const u=l(e).filter(Boolean);if(1===u.length)return u[0];const r={type:"Disjunction",left:null,right:u.pop()};return u.reduceRight(((e,u,r)=>0===r?(e.left=u,e):(e.left={type:"Disjunction",left:null,right:u},e.left)),r),r}(...e);return"Disjunction"===u.type?m(u):u}function g(){return{type:"Char",kind:"meta",value:"\\d",codePoint:NaN}}function C(e={type:"Quantifier",kind:"+",greedy:!0}){const u=function(e,u){return{type:"Repetition",expression:{type:"Char",kind:"meta",value:"\\d",codePoint:NaN},quantifier:u}}(0,e);return u}function B(e){return v(Array.from(String(e),b))}function _(e){if("Group"===e.type&&"Repetition"===e.expression.type){const{expression:u,quantifier:r}=e.expression;return"Char"===u.type&&"\\d"===u.value&&"+"===r.kind&&r.greedy}return!1}function x(e,u){return!(!e||"Char"!==e.type)&&(void 0===u||u instanceof RegExp&&u.test(e.value)||String(u)===e.value)}function A(e){if("CharacterClass"===e.type&&1===e.expressions.length){const[u]=e.expressions;return"ClassRange"===u.type&&x(u.from,/\d/)&&x(u.to,/\d/)}return!1}function S(e){return"RegExp"!==e.type&&"ClassRange"!==e.type&&"Quantifier"!==e.type}function w(e){return"string"==typeof e?t.parse(e.replace(/^([^/])/,"/$1").replace(/([^/])$/,"$1/")):e instanceof RegExp?t.parse(e):e}!function(e){e[e.Major=0]="Major",e[e.Minor=1]="Minor",e[e.Patch=2]="Patch"}(n||(n={}));const j=["RegExp","Disjunction","Alternative","Assertion","Char","CharacterClass","ClassRange","Backreference","Group","Repetition","Quantifier"];function k(e){const{every:u}=e;return u?"function"==typeof u?{"*":u,...e}:j.reduce(((r,n)=>{const d=e[n],t=d?"pre"in d?d.pre:d:null,a=d&&"post"in d?d.post:null;return r[n]={pre(e){return!1===u.pre(e)||!t||t(e)},post(e){return!1===u.post(e)||!a||a(e)}},r}),{}):e}function E(e){return Array.from(e.toString(),Number)}function P(e,u){const r=e+Number(!u);return 0===r?{type:"Char",kind:"meta",value:"\\d",codePoint:NaN}:9===r?b("9"):r>9?null:h(p(b(r),b("9")))}function O(e,u,r){if(u<e)return null;const n=b(e),d=b(u),t="number"==typeof r&&r>0?Array.from({length:r},(()=>b(0))):[];return(t.length?e=>v(t,e):e=>e)(e===u?n:0===e&&9===u?{type:"Char",kind:"meta",value:"\\d",codePoint:NaN}:u-e==1?h(n,d):h(p(n,d)))}function T(e,u,r=0){const n=E(e),d=n.length;if(e<10&&u<10||e===u)return[O(e,u,r-d)];const t=E(u);if(d!==t.length){const n=function(e,u){const r=[];let n=e,d=1;do{d*=10,n<d&&(r.push([n,Math.min(d-1,u)]),n=d)}while(d<=u);return r}(e,u),d=l(n.map((([e,u])=>T(e,u,r))));return d}const a=function(e,u){const r=e.length;if(r!==u.length||e[0]!==u[0])return null;let n=e[0].toString(),d=0,t=0,a="",s="";for(let i=1;i<r;i++)d=e[i],t=u[i],d===t?n+=d:(a+=d,s+=t);return[n,parseInt(a,10),parseInt(s,10)]}(n,t);if(Array.isArray(a)){const[e,u,r]=a,n=T(u,r,d-e.length);return[v(Array.from(e,b),y(n))]}const s=Array.from({length:d-1}),i=O(n[0]+1,t[0]-1);return[...s.map(((e,u)=>{const r=d-u-1,t=Number(u>0);return v(n.map(((e,u)=>u<r?b(e):O(u>r?0:e+t,9))))})),...i?[v(i,Array.from({length:d-1},(()=>({type:"Char",kind:"meta",value:"\\d",codePoint:NaN}))))]:[],...s.map(((e,u)=>{const r=d-u-1,n=Number(u>0);return v(t.map(((e,u)=>u<r?b(e):O(0,u>r?9:e-n))))}))].reduce(((e,u)=>{const r=e[e.length-1];if(r&&"Alternative"===u.type&&"Alternative"===r.type&&u.expressions.length===r.expressions.length){const n=r.expressions.reduceRight(((e,r,n)=>{if(!e)return e;const d=(t=r,a=u.expressions[n],x(t)&&x(a)&&t.value===a.value?a:x(t,/\d/)&&A(a)&&Number(a.expressions[0].from.value)-Number(t.value)==1?{...a,expressions:[{...a.expressions[0],from:t}]}:A(t)&&x(a,/\d/)&&Number(a.value)-Number(t.expressions[0].to.value)==1?{...t,expressions:[{...t.expressions[0],to:a}]}:null);var t,a;return d?(e.unshift(d),e):null}),[]);n&&(u.expressions=n,e.pop())}return e.push(u),e}),[])}function R(e,u=1/0){return e===1/0?C():y(u===1/0?function(e){if(0===e)return[C()];const u=E(e),r=u.length,n=C(function(e,u){return{type:"Quantifier",kind:"Range",from:e,to:void 0,greedy:!0}}(r+1)),d=r-1;if(e/Math.pow(10,d)===u[0])return[v(P(u[0],!0),Array.from({length:d},g)),n];const t=u.reduce(((e,n,d)=>{const t=r-d-1,a=0===d;let s=b("");const i=u.reduce(((e,u,r)=>{if(r<t)e.push(b(u));else if(s)if(r>t)e.push({type:"Char",kind:"meta",value:"\\d",codePoint:NaN});else{if(s=P(u,a),!s)return[];e.push(s)}return e}),[]);return i.length&&e.push(i),e}),[]).map((e=>v(e)));return t.push(n),t}(e):T(e,u))}function N(e,u){const r=w(e),n=Math.min(function(e){const u=w(e);let r=0;return t.traverse(u,{Group(e){_(e.node)&&r++}}),r}(r),u||1/0),d=[];let a=0,s=!1;return t.traverse(r,k({every:{pre({node:e,parent:u}){return e===r||!!S(e)&&(u===r&&(s=!1),a<n)},post({node:e,parent:u}){e!==r&&u===r&&S(e)&&(s||a>0&&a<n)&&d.push(e)}},Group(e){return!(_(e.node)&&a<n&&(s=!0,a++,1))}})),1!==d.length||_(d[0])?d:N(d[0],n)}function D(e,u,r){const{allowHigherVersions:n}=r,d=w(e),a=n&&u.length?[u[0]]:u,s=a.reduce(((e,u)=>Math.max(e,function(e,u){const{ignoreMinor:r,ignorePatch:n,allowZeroSubversions:d}=u;let t=r?1:n?2:3;if(d)for(let u=t-1;u>0&&0===e[u]&&1!==t;u--)t--;return t}(u,r))),1),i=N(d,s),f=y(...a.map((e=>function(e,u){const{ignoreMinor:r,ignorePatch:n,allowHigherVersions:d}=u,t=e[0]===1/0?0:r?1:n?2:3;if(d){const u=[];let r=!0,n=0,d=0;const a=e=>(u,r)=>r>=t?C():(d=Array.isArray(u)?u[0]:u,r<e?B(d):r>e?C():R(d+n));for(let d=t-1;d>=0;d--)r&&!e[d]||(r=!1,u.push(e.map(a(d))),n=1);return u}return[e.map(((e,u)=>u>=t?C():Array.isArray(e)?R(e[0],e[1]):B(e)))]}(e,r).map((e=>function(e,u,r){let n=w(e);const d="number"==typeof r&&r<u.length?u.slice(0,r):u.slice();return t.traverse(n,k({every(){return Boolean(d.length)},Group(e){return!_(e.node)||!d.length||(n===e.node?n=d.shift():e.replace(d.shift()),!1)}})),n}(v(c(i)),e,s))))));return t.traverse(d,k({every(e){return!!i.length&&(e.node===i[0]&&(1===i.length?e.replace(f):e.remove(),i.shift()),!0)}})),d}const L={ignoreMinor:!1,ignorePatch:!0,allowZeroSubversions:!1,allowHigherVersions:!1};function F(e={}){const u={...L,...e};return function(e,u){return e.map((({regex:e,version:r,maxVersion:d,matchedVersions:t,...a})=>{let i=w(e);return r||(i=D(i,function(e){if(e.length<2)return e;const u=e.length+1,r=[];let d=null,t=e[0],a=[t[n.Major]],i=[t[n.Minor]],f=[t[n.Patch]],c=null;for(let l=1;l<u;l++){d=e[l-1],t=e[l]||[];for(let e=n.Major;e<=n.Patch;e++){if((e===c||null===c)&&d[e]+1===t[e]&&o(d,t,e+1)){c=e,e===n.Major?a.push(t[n.Major]):a=t[n.Major],e===n.Minor?i.push(t[n.Minor]):i=t[n.Minor],e===n.Patch?f.push(t[n.Patch]):f=t[n.Patch];break}if(c===e||d[e]!==t[e]){r.push([s(a),s(i),s(f)]),a=[t[n.Major]],i=[t[n.Minor]],f=[t[n.Patch]],c=null;break}}}return r}(t),{...u,allowHigherVersions:!d&&u.allowHigherVersions})),{regex:null,sourceRegex:e,regexAst:i,version:r,maxVersion:d,matchedVersions:t,...a}}))}(function(e,u,r=a.U){const n=[];let d="",t=!1;return r.forEach((r=>{const a=e.get(r.family);if(!a)return;let{version:s,minVersion:i,maxVersion:o}=r;s&&(i=s,o=s);let c=function(e,u,r,n){const d={...n,allowHigherVersions:!0},t=u=>f(u,e,d),a=e=>f(u,e,d),s=e&&u?e=>t(e)&&a(e):e?t:u?a:()=>!0;return r.filter(s)}(i,o,a,u);c.length&&(d===r.family&&t&&(s=void 0,i=void 0,o=void 0,c=a,n.pop()),n.push({...r,version:s,minVersion:i,maxVersion:o,requestVersions:a,matchedVersions:c})),t=!s&&!i&&!o,d=r.family})),n}(function(e){const u=new Map;return e.forEach((({family:e,version:r})=>{const n=u.get(e);if(n){const e=r.join(".");n.every((u=>u.join(".")!==e))&&n.push(r)}else u.set(e,[r])})),u.forEach((e=>{e.sort(((e,u)=>{for(const r in e)if(e[r]!==u[r])return e[r]-u[r];return 0}))})),u}(function(e={}){const{browsers:u,...r}=e;return d(u,r).reduce(((e,u)=>{const[r,n,d]=u.split(/ |-/),t=i(n);return(t?d?function(e,u){let r=0;const n=[];for(let n=2;n>=0;n--)if(e[n]!==u[n]){r=n;break}for(let d=e[r],t=u[r];d<=t;d++)n.push(e.map(((e,u)=>u===r?d:e)));return n}(t,i(d)):[t]:[]).reduce(((e,u)=>(u&&e.push({family:r,version:u}),e)),e)}),[])}(u)),u),u)}function I(e={}){return"string"==typeof(u=function(e){const u=t.optimize(w((r=e,"string"==typeof r?r:r instanceof RegExp?r.toString():t.generate(r)))).getAST();var r;return t.traverse(u,{Group(e){const{parent:u,node:r}=e,{expression:n}=r;r.capturing=!0,("RegExp"===u.type||"Disjunction"!==n.type&&"Repetition"!==u.type||"Disjunction"===n.type&&"Disjunction"===u.type)&&e.replace(e.node.expression)}}),u}({type:"RegExp",body:y(F(e).map((({regexAst:e})=>m(e.body)))),flags:""}))?new RegExp(u):new RegExp(t.generate(u.body),u.flags);var u}},54876:function(e,u,r){"use strict";r.d(u,{U:function(){return n}});const n=[{regex:/IE (\d+)\.(\d+)/,family:"ie",maxVersion:[7,1/0,1/0]},{regex:/Trident\/4\.0/,family:"ie",version:[8,0,0]},{regex:/Trident\/5\.0/,family:"ie",version:[9,0,0]},{regex:/Trident\/6\.0/,family:"ie",version:[10,0,0]},{regex:/Trident\/[78]\.0/,family:"ie",version:[11,0,0]},{regex:/Edge?\/(\d+)(\.(\d+)|)(\.(\d+)|)/,family:"edge"},{regex:/Firefox\/(\d+)\.(\d+)(\.(\d+)|)/,family:"firefox"},{regex:/Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)/,family:"chrome"},{regex:/Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))/,family:"chrome",maxVersion:[70,1/0,1/0]},{regex:/Maci.+ Version\/(\d+)\.(\d+)([.,](\d+)|)( \(\w+\)|)( Mobile\/\w+|) Safari\//,family:"safari"},{regex:/Opera\/9\.80.+Version\/(\d+)\.(\d+)(\.(\d+)|)/,family:"opera",maxVersion:[12,15,0]},{regex:/Chrome.+OPR\/(\d+)\.(\d+)\.(\d+)/,family:"opera",minVersion:[15,0,0]},{regex:/(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\d+)[_.](\d+)([_.](\d+)|)/,family:"ios_saf"},{regex:/[^e] (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\d+)[_.](\d+)([_.](\d+)|)/,family:"ios_saf",version:[7,0,3]},{regex:/Opera Mini/,family:"op_mini"},{regex:/Android Donut/,family:"android",version:[1,2,0]},{regex:/Android Eclair/,family:"android",version:[2,1,0]},{regex:/Android Froyo/,family:"android",version:[2,2,0]},{regex:/Android Gingerbread/,family:"android",version:[2,3,0]},{regex:/Android Honeycomb/,family:"android",version:[3,0,0]},{regex:/Android:?[ /-](\d+)(\.(\d+)|)(\.(\d+)|)/,family:"android"},{regex:/Android:?[ /-](\d+)(\.(\d+)|)(\.(\d+)|);(?! ARM; Trident)/,family:"android",version:[4,0,0]},{regex:/PlayBook.+RIM Tablet OS (\d+)\.(\d+)\.(\d+)/,family:"bb"},{regex:/(Black[bB]erry|BB10).+Version\/(\d+)\.(\d+)\.(\d+)/,family:"bb"},{regex:/Opera\/.+Opera Mobi.+Version\/(\d+)\.(\d+)/,family:"op_mob",maxVersion:[12,16,0]},{regex:/Mobile Safari.+OPR\/(\d+)\.(\d+)\.(\d+)/,family:"op_mob",minVersion:[14,0,0]},{regex:/Android.+Firefox\/(\d+)\.(\d+)(\.(\d+)|)/,family:"and_ff"},{regex:/Android.+Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)/,family:"and_chr"},{regex:/IEMobile[ /](\d+)\.(\d+)/,family:"ie_mob"},{regex:/Android.+(UC? ?Browser|UCWEB|U3)[ /]?(\d+)\.(\d+)\.(\d+)/,family:"and_uc"},{regex:/SamsungBrowser\/(\d+)\.(\d+)/,family:"samsung"},{regex:/Android.+MQQBrowser\/(\d+)(\.(\d+)|)(\.(\d+)|)/,family:"and_qq"},{regex:/baidubrowser[/\s](\d+)(\.(\d+)|)(\.(\d+)|)/,family:"baidu"},{regex:/K[Aa][Ii]OS\/(\d+)\.(\d+)(\.(\d+)|)/,family:"kaios"}]},76052:function(e){"use strict";e.exports=JSON.parse('[{"name":"nodejs","version":"0.2.0","date":"2011-08-26","lts":false,"security":false,"v8":"2.3.8.0"},{"name":"nodejs","version":"0.3.0","date":"2011-08-26","lts":false,"security":false,"v8":"2.5.1.0"},{"name":"nodejs","version":"0.4.0","date":"2011-08-26","lts":false,"security":false,"v8":"3.1.2.0"},{"name":"nodejs","version":"0.5.0","date":"2011-08-26","lts":false,"security":false,"v8":"3.1.8.25"},{"name":"nodejs","version":"0.6.0","date":"2011-11-04","lts":false,"security":false,"v8":"3.6.6.6"},{"name":"nodejs","version":"0.7.0","date":"2012-01-17","lts":false,"security":false,"v8":"3.8.6.0"},{"name":"nodejs","version":"0.8.0","date":"2012-06-22","lts":false,"security":false,"v8":"3.11.10.10"},{"name":"nodejs","version":"0.9.0","date":"2012-07-20","lts":false,"security":false,"v8":"3.11.10.15"},{"name":"nodejs","version":"0.10.0","date":"2013-03-11","lts":false,"security":false,"v8":"3.14.5.8"},{"name":"nodejs","version":"0.11.0","date":"2013-03-28","lts":false,"security":false,"v8":"3.17.13.0"},{"name":"nodejs","version":"0.12.0","date":"2015-02-06","lts":false,"security":false,"v8":"3.28.73.0"},{"name":"nodejs","version":"4.0.0","date":"2015-09-08","lts":false,"security":false,"v8":"4.5.103.30"},{"name":"nodejs","version":"4.1.0","date":"2015-09-17","lts":false,"security":false,"v8":"4.5.103.33"},{"name":"nodejs","version":"4.2.0","date":"2015-10-12","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.3.0","date":"2016-02-09","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.4.0","date":"2016-03-08","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.5.0","date":"2016-08-16","lts":"Argon","security":false,"v8":"4.5.103.37"},{"name":"nodejs","version":"4.6.0","date":"2016-09-27","lts":"Argon","security":true,"v8":"4.5.103.37"},{"name":"nodejs","version":"4.7.0","date":"2016-12-06","lts":"Argon","security":false,"v8":"4.5.103.43"},{"name":"nodejs","version":"4.8.0","date":"2017-02-21","lts":"Argon","security":false,"v8":"4.5.103.45"},{"name":"nodejs","version":"4.9.0","date":"2018-03-28","lts":"Argon","security":true,"v8":"4.5.103.53"},{"name":"nodejs","version":"5.0.0","date":"2015-10-29","lts":false,"security":false,"v8":"4.6.85.28"},{"name":"nodejs","version":"5.1.0","date":"2015-11-17","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.2.0","date":"2015-12-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.3.0","date":"2015-12-15","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.4.0","date":"2016-01-06","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.5.0","date":"2016-01-21","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.6.0","date":"2016-02-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.7.0","date":"2016-02-23","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.8.0","date":"2016-03-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.9.0","date":"2016-03-16","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.10.0","date":"2016-04-01","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.11.0","date":"2016-04-21","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.12.0","date":"2016-06-23","lts":false,"security":false,"v8":"4.6.85.32"},{"name":"nodejs","version":"6.0.0","date":"2016-04-26","lts":false,"security":false,"v8":"5.0.71.35"},{"name":"nodejs","version":"6.1.0","date":"2016-05-05","lts":false,"security":false,"v8":"5.0.71.35"},{"name":"nodejs","version":"6.2.0","date":"2016-05-17","lts":false,"security":false,"v8":"5.0.71.47"},{"name":"nodejs","version":"6.3.0","date":"2016-07-06","lts":false,"security":false,"v8":"5.0.71.52"},{"name":"nodejs","version":"6.4.0","date":"2016-08-12","lts":false,"security":false,"v8":"5.0.71.60"},{"name":"nodejs","version":"6.5.0","date":"2016-08-26","lts":false,"security":false,"v8":"5.1.281.81"},{"name":"nodejs","version":"6.6.0","date":"2016-09-14","lts":false,"security":false,"v8":"5.1.281.83"},{"name":"nodejs","version":"6.7.0","date":"2016-09-27","lts":false,"security":true,"v8":"5.1.281.83"},{"name":"nodejs","version":"6.8.0","date":"2016-10-12","lts":false,"security":false,"v8":"5.1.281.84"},{"name":"nodejs","version":"6.9.0","date":"2016-10-18","lts":"Boron","security":false,"v8":"5.1.281.84"},{"name":"nodejs","version":"6.10.0","date":"2017-02-21","lts":"Boron","security":false,"v8":"5.1.281.93"},{"name":"nodejs","version":"6.11.0","date":"2017-06-06","lts":"Boron","security":false,"v8":"5.1.281.102"},{"name":"nodejs","version":"6.12.0","date":"2017-11-06","lts":"Boron","security":false,"v8":"5.1.281.108"},{"name":"nodejs","version":"6.13.0","date":"2018-02-10","lts":"Boron","security":false,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.14.0","date":"2018-03-28","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.15.0","date":"2018-11-27","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.16.0","date":"2018-12-26","lts":"Boron","security":false,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.17.0","date":"2019-02-28","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"7.0.0","date":"2016-10-25","lts":false,"security":false,"v8":"5.4.500.36"},{"name":"nodejs","version":"7.1.0","date":"2016-11-08","lts":false,"security":false,"v8":"5.4.500.36"},{"name":"nodejs","version":"7.2.0","date":"2016-11-22","lts":false,"security":false,"v8":"5.4.500.43"},{"name":"nodejs","version":"7.3.0","date":"2016-12-20","lts":false,"security":false,"v8":"5.4.500.45"},{"name":"nodejs","version":"7.4.0","date":"2017-01-04","lts":false,"security":false,"v8":"5.4.500.45"},{"name":"nodejs","version":"7.5.0","date":"2017-01-31","lts":false,"security":false,"v8":"5.4.500.48"},{"name":"nodejs","version":"7.6.0","date":"2017-02-21","lts":false,"security":false,"v8":"5.5.372.40"},{"name":"nodejs","version":"7.7.0","date":"2017-02-28","lts":false,"security":false,"v8":"5.5.372.41"},{"name":"nodejs","version":"7.8.0","date":"2017-03-29","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"7.9.0","date":"2017-04-11","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"7.10.0","date":"2017-05-02","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"8.0.0","date":"2017-05-30","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.1.0","date":"2017-06-08","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.2.0","date":"2017-07-19","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.3.0","date":"2017-08-08","lts":false,"security":false,"v8":"6.0.286.52"},{"name":"nodejs","version":"8.4.0","date":"2017-08-15","lts":false,"security":false,"v8":"6.0.286.52"},{"name":"nodejs","version":"8.5.0","date":"2017-09-12","lts":false,"security":false,"v8":"6.0.287.53"},{"name":"nodejs","version":"8.6.0","date":"2017-09-26","lts":false,"security":false,"v8":"6.0.287.53"},{"name":"nodejs","version":"8.7.0","date":"2017-10-11","lts":false,"security":false,"v8":"6.1.534.42"},{"name":"nodejs","version":"8.8.0","date":"2017-10-24","lts":false,"security":false,"v8":"6.1.534.42"},{"name":"nodejs","version":"8.9.0","date":"2017-10-31","lts":"Carbon","security":false,"v8":"6.1.534.46"},{"name":"nodejs","version":"8.10.0","date":"2018-03-06","lts":"Carbon","security":false,"v8":"6.2.414.50"},{"name":"nodejs","version":"8.11.0","date":"2018-03-28","lts":"Carbon","security":true,"v8":"6.2.414.50"},{"name":"nodejs","version":"8.12.0","date":"2018-09-10","lts":"Carbon","security":false,"v8":"6.2.414.66"},{"name":"nodejs","version":"8.13.0","date":"2018-11-20","lts":"Carbon","security":false,"v8":"6.2.414.72"},{"name":"nodejs","version":"8.14.0","date":"2018-11-27","lts":"Carbon","security":true,"v8":"6.2.414.72"},{"name":"nodejs","version":"8.15.0","date":"2018-12-26","lts":"Carbon","security":false,"v8":"6.2.414.75"},{"name":"nodejs","version":"8.16.0","date":"2019-04-16","lts":"Carbon","security":false,"v8":"6.2.414.77"},{"name":"nodejs","version":"8.17.0","date":"2019-12-17","lts":"Carbon","security":true,"v8":"6.2.414.78"},{"name":"nodejs","version":"9.0.0","date":"2017-10-31","lts":false,"security":false,"v8":"6.2.414.32"},{"name":"nodejs","version":"9.1.0","date":"2017-11-07","lts":false,"security":false,"v8":"6.2.414.32"},{"name":"nodejs","version":"9.2.0","date":"2017-11-14","lts":false,"security":false,"v8":"6.2.414.44"},{"name":"nodejs","version":"9.3.0","date":"2017-12-12","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.4.0","date":"2018-01-10","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.5.0","date":"2018-01-31","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.6.0","date":"2018-02-21","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.7.0","date":"2018-03-01","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.8.0","date":"2018-03-07","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.9.0","date":"2018-03-21","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.10.0","date":"2018-03-28","lts":false,"security":true,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.11.0","date":"2018-04-04","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"10.0.0","date":"2018-04-24","lts":false,"security":false,"v8":"6.6.346.24"},{"name":"nodejs","version":"10.1.0","date":"2018-05-08","lts":false,"security":false,"v8":"6.6.346.27"},{"name":"nodejs","version":"10.2.0","date":"2018-05-23","lts":false,"security":false,"v8":"6.6.346.32"},{"name":"nodejs","version":"10.3.0","date":"2018-05-29","lts":false,"security":false,"v8":"6.6.346.32"},{"name":"nodejs","version":"10.4.0","date":"2018-06-06","lts":false,"security":false,"v8":"6.7.288.43"},{"name":"nodejs","version":"10.5.0","date":"2018-06-20","lts":false,"security":false,"v8":"6.7.288.46"},{"name":"nodejs","version":"10.6.0","date":"2018-07-04","lts":false,"security":false,"v8":"6.7.288.46"},{"name":"nodejs","version":"10.7.0","date":"2018-07-18","lts":false,"security":false,"v8":"6.7.288.49"},{"name":"nodejs","version":"10.8.0","date":"2018-08-01","lts":false,"security":false,"v8":"6.7.288.49"},{"name":"nodejs","version":"10.9.0","date":"2018-08-15","lts":false,"security":false,"v8":"6.8.275.24"},{"name":"nodejs","version":"10.10.0","date":"2018-09-06","lts":false,"security":false,"v8":"6.8.275.30"},{"name":"nodejs","version":"10.11.0","date":"2018-09-19","lts":false,"security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.12.0","date":"2018-10-10","lts":false,"security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.13.0","date":"2018-10-30","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.14.0","date":"2018-11-27","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.15.0","date":"2018-12-26","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.16.0","date":"2019-05-28","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.17.0","date":"2019-10-22","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.18.0","date":"2019-12-17","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.19.0","date":"2020-02-05","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.20.0","date":"2020-03-26","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.21.0","date":"2020-06-02","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.22.0","date":"2020-07-21","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.23.0","date":"2020-10-27","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.24.0","date":"2021-02-23","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"11.0.0","date":"2018-10-23","lts":false,"security":false,"v8":"7.0.276.28"},{"name":"nodejs","version":"11.1.0","date":"2018-10-30","lts":false,"security":false,"v8":"7.0.276.32"},{"name":"nodejs","version":"11.2.0","date":"2018-11-15","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.3.0","date":"2018-11-27","lts":false,"security":true,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.4.0","date":"2018-12-07","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.5.0","date":"2018-12-18","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.6.0","date":"2018-12-26","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.7.0","date":"2019-01-17","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.8.0","date":"2019-01-24","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.9.0","date":"2019-01-30","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.10.0","date":"2019-02-14","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.11.0","date":"2019-03-05","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.12.0","date":"2019-03-14","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.13.0","date":"2019-03-28","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.14.0","date":"2019-04-10","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.15.0","date":"2019-04-30","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"12.0.0","date":"2019-04-23","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.1.0","date":"2019-04-29","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.2.0","date":"2019-05-07","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.3.0","date":"2019-05-21","lts":false,"security":false,"v8":"7.4.288.27"},{"name":"nodejs","version":"12.4.0","date":"2019-06-04","lts":false,"security":false,"v8":"7.4.288.27"},{"name":"nodejs","version":"12.5.0","date":"2019-06-26","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.6.0","date":"2019-07-03","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.7.0","date":"2019-07-23","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.8.0","date":"2019-08-06","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.9.0","date":"2019-08-20","lts":false,"security":false,"v8":"7.6.303.29"},{"name":"nodejs","version":"12.10.0","date":"2019-09-04","lts":false,"security":false,"v8":"7.6.303.29"},{"name":"nodejs","version":"12.11.0","date":"2019-09-25","lts":false,"security":false,"v8":"7.7.299.11"},{"name":"nodejs","version":"12.12.0","date":"2019-10-11","lts":false,"security":false,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.13.0","date":"2019-10-21","lts":"Erbium","security":false,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.14.0","date":"2019-12-17","lts":"Erbium","security":true,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.15.0","date":"2020-02-05","lts":"Erbium","security":true,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.16.0","date":"2020-02-11","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.17.0","date":"2020-05-26","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.18.0","date":"2020-06-02","lts":"Erbium","security":true,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.19.0","date":"2020-10-06","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.20.0","date":"2020-11-24","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.21.0","date":"2021-02-23","lts":"Erbium","security":true,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.22.0","date":"2021-03-30","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"13.0.0","date":"2019-10-22","lts":false,"security":false,"v8":"7.8.279.17"},{"name":"nodejs","version":"13.1.0","date":"2019-11-05","lts":false,"security":false,"v8":"7.8.279.17"},{"name":"nodejs","version":"13.2.0","date":"2019-11-21","lts":false,"security":false,"v8":"7.9.317.23"},{"name":"nodejs","version":"13.3.0","date":"2019-12-03","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.4.0","date":"2019-12-17","lts":false,"security":true,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.5.0","date":"2019-12-18","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.6.0","date":"2020-01-07","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.7.0","date":"2020-01-21","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.8.0","date":"2020-02-05","lts":false,"security":true,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.9.0","date":"2020-02-18","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.10.0","date":"2020-03-04","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.11.0","date":"2020-03-12","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.12.0","date":"2020-03-26","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.13.0","date":"2020-04-14","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.14.0","date":"2020-04-29","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"14.0.0","date":"2020-04-21","lts":false,"security":false,"v8":"8.1.307.30"},{"name":"nodejs","version":"14.1.0","date":"2020-04-29","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.2.0","date":"2020-05-05","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.3.0","date":"2020-05-19","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.4.0","date":"2020-06-02","lts":false,"security":true,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.5.0","date":"2020-06-30","lts":false,"security":false,"v8":"8.3.110.9"},{"name":"nodejs","version":"14.6.0","date":"2020-07-20","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.7.0","date":"2020-07-29","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.8.0","date":"2020-08-11","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.9.0","date":"2020-08-27","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.10.0","date":"2020-09-08","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.11.0","date":"2020-09-15","lts":false,"security":true,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.12.0","date":"2020-09-22","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.13.0","date":"2020-09-29","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.14.0","date":"2020-10-15","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.15.0","date":"2020-10-27","lts":"Fermium","security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.16.0","date":"2021-02-23","lts":"Fermium","security":true,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.17.0","date":"2021-05-11","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.18.0","date":"2021-09-28","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.19.0","date":"2022-02-01","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.20.0","date":"2022-07-07","lts":"Fermium","security":true,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.21.0","date":"2022-11-01","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"15.0.0","date":"2020-10-20","lts":false,"security":false,"v8":"8.6.395.16"},{"name":"nodejs","version":"15.1.0","date":"2020-11-04","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.2.0","date":"2020-11-10","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.3.0","date":"2020-11-24","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.4.0","date":"2020-12-09","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.5.0","date":"2020-12-22","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.6.0","date":"2021-01-14","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.7.0","date":"2021-01-25","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.8.0","date":"2021-02-02","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.9.0","date":"2021-02-18","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.10.0","date":"2021-02-23","lts":false,"security":true,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.11.0","date":"2021-03-03","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.12.0","date":"2021-03-17","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.13.0","date":"2021-03-31","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.14.0","date":"2021-04-06","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"16.0.0","date":"2021-04-20","lts":false,"security":false,"v8":"9.0.257.17"},{"name":"nodejs","version":"16.1.0","date":"2021-05-04","lts":false,"security":false,"v8":"9.0.257.24"},{"name":"nodejs","version":"16.2.0","date":"2021-05-19","lts":false,"security":false,"v8":"9.0.257.25"},{"name":"nodejs","version":"16.3.0","date":"2021-06-03","lts":false,"security":false,"v8":"9.0.257.25"},{"name":"nodejs","version":"16.4.0","date":"2021-06-23","lts":false,"security":false,"v8":"9.1.269.36"},{"name":"nodejs","version":"16.5.0","date":"2021-07-14","lts":false,"security":false,"v8":"9.1.269.38"},{"name":"nodejs","version":"16.6.0","date":"2021-07-29","lts":false,"security":true,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.7.0","date":"2021-08-18","lts":false,"security":false,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.8.0","date":"2021-08-25","lts":false,"security":false,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.9.0","date":"2021-09-07","lts":false,"security":false,"v8":"9.3.345.16"},{"name":"nodejs","version":"16.10.0","date":"2021-09-22","lts":false,"security":false,"v8":"9.3.345.19"},{"name":"nodejs","version":"16.11.0","date":"2021-10-08","lts":false,"security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.12.0","date":"2021-10-20","lts":false,"security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.13.0","date":"2021-10-26","lts":"Gallium","security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.14.0","date":"2022-02-08","lts":"Gallium","security":false,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.15.0","date":"2022-04-26","lts":"Gallium","security":false,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.16.0","date":"2022-07-07","lts":"Gallium","security":true,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.17.0","date":"2022-08-16","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.18.0","date":"2022-10-12","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.19.0","date":"2022-12-13","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.20.0","date":"2023-03-28","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"17.0.0","date":"2021-10-19","lts":false,"security":false,"v8":"9.5.172.21"},{"name":"nodejs","version":"17.1.0","date":"2021-11-09","lts":false,"security":false,"v8":"9.5.172.25"},{"name":"nodejs","version":"17.2.0","date":"2021-11-30","lts":false,"security":false,"v8":"9.6.180.14"},{"name":"nodejs","version":"17.3.0","date":"2021-12-17","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.4.0","date":"2022-01-18","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.5.0","date":"2022-02-10","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.6.0","date":"2022-02-22","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.7.0","date":"2022-03-09","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.8.0","date":"2022-03-22","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.9.0","date":"2022-04-07","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"18.0.0","date":"2022-04-18","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.1.0","date":"2022-05-03","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.2.0","date":"2022-05-17","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.3.0","date":"2022-06-02","lts":false,"security":false,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.4.0","date":"2022-06-16","lts":false,"security":false,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.5.0","date":"2022-07-06","lts":false,"security":true,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.6.0","date":"2022-07-13","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.7.0","date":"2022-07-26","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.8.0","date":"2022-08-24","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.9.0","date":"2022-09-07","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.10.0","date":"2022-09-28","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.11.0","date":"2022-10-13","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.12.0","date":"2022-10-25","lts":"Hydrogen","security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.13.0","date":"2023-01-05","lts":"Hydrogen","security":false,"v8":"10.2.154.23"},{"name":"nodejs","version":"18.14.0","date":"2023-02-01","lts":"Hydrogen","security":false,"v8":"10.2.154.23"},{"name":"nodejs","version":"18.15.0","date":"2023-03-05","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.16.0","date":"2023-04-12","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"19.0.0","date":"2022-10-17","lts":false,"security":false,"v8":"10.7.193.13"},{"name":"nodejs","version":"19.1.0","date":"2022-11-14","lts":false,"security":false,"v8":"10.7.193.20"},{"name":"nodejs","version":"19.2.0","date":"2022-11-29","lts":false,"security":false,"v8":"10.8.168.20"},{"name":"nodejs","version":"19.3.0","date":"2022-12-14","lts":false,"security":false,"v8":"10.8.168.21"},{"name":"nodejs","version":"19.4.0","date":"2023-01-05","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.5.0","date":"2023-01-24","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.6.0","date":"2023-02-01","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.7.0","date":"2023-02-21","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.8.0","date":"2023-03-14","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.9.0","date":"2023-04-10","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"20.0.0","date":"2023-04-17","lts":false,"security":false,"v8":"11.3.244.4"},{"name":"nodejs","version":"20.1.0","date":"2023-05-03","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.2.0","date":"2023-05-16","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.3.0","date":"2023-06-08","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.4.0","date":"2023-07-04","lts":false,"security":false,"v8":"11.3.244.8"}]')},78864:function(e){"use strict";e.exports=JSON.parse('{"v0.8":{"start":"2012-06-25","end":"2014-07-31"},"v0.10":{"start":"2013-03-11","end":"2016-10-31"},"v0.12":{"start":"2015-02-06","end":"2016-12-31"},"v4":{"start":"2015-09-08","lts":"2015-10-12","maintenance":"2017-04-01","end":"2018-04-30","codename":"Argon"},"v5":{"start":"2015-10-29","maintenance":"2016-04-30","end":"2016-06-30"},"v6":{"start":"2016-04-26","lts":"2016-10-18","maintenance":"2018-04-30","end":"2019-04-30","codename":"Boron"},"v7":{"start":"2016-10-25","maintenance":"2017-04-30","end":"2017-06-30"},"v8":{"start":"2017-05-30","lts":"2017-10-31","maintenance":"2019-01-01","end":"2019-12-31","codename":"Carbon"},"v9":{"start":"2017-10-01","maintenance":"2018-04-01","end":"2018-06-30"},"v10":{"start":"2018-04-24","lts":"2018-10-30","maintenance":"2020-05-19","end":"2021-04-30","codename":"Dubnium"},"v11":{"start":"2018-10-23","maintenance":"2019-04-22","end":"2019-06-01"},"v12":{"start":"2019-04-23","lts":"2019-10-21","maintenance":"2020-11-30","end":"2022-04-30","codename":"Erbium"},"v13":{"start":"2019-10-22","maintenance":"2020-04-01","end":"2020-06-01"},"v14":{"start":"2020-04-21","lts":"2020-10-27","maintenance":"2021-10-19","end":"2023-04-30","codename":"Fermium"},"v15":{"start":"2020-10-20","maintenance":"2021-04-01","end":"2021-06-01"},"v16":{"start":"2021-04-20","lts":"2021-10-26","maintenance":"2022-10-18","end":"2023-09-11","codename":"Gallium"},"v17":{"start":"2021-10-19","maintenance":"2022-04-01","end":"2022-06-01"},"v18":{"start":"2022-04-19","lts":"2022-10-25","maintenance":"2023-10-18","end":"2025-04-30","codename":"Hydrogen"},"v19":{"start":"2022-10-18","maintenance":"2023-04-01","end":"2023-06-01"},"v20":{"start":"2023-04-18","lts":"2023-10-24","maintenance":"2024-10-22","end":"2026-04-30","codename":""}}')}}]);
+//# sourceMappingURL=7816-7816.js.map?v=3898b987dfee3f7fba52 \ No newline at end of file
diff --git a/dist/7816-7816.js.map b/dist/7816-7816.js.map
index 2d7f816d06e..b5638c7ffd6 100644
--- a/dist/7816-7816.js.map
+++ b/dist/7816-7816.js.map
@@ -1 +1 @@
-{"version":3,"file":"7816-7816.js?v=65431bc18b0fe13cdaff","mappings":";4FAAAA,EAAOC,QAAU,CACf,SACA,YACA,kBACA,WACA,uDCoBgBC,wBAYlB,IAXc,QADIA,GAYOC,EAAAA,EAAAA,QAVhBC,EAAAA,EAAAA,MACLC,OAAO,QACPC,SAEIF,EAAAA,EAAAA,MACLC,OAAO,QACPE,OAAOL,EAAKM,KACZF,0DCVH,KAAeG,EAAAA,EAAAA,YAAW,QACxBC,gBACAC,UACAL,kICCWM,GAA0BC,EAAAA,EAAAA,IAAkB,CAAEC,qBAAqB,EAAMC,SAAUC,MAC/DC,IAAaD,uMCHjCE,EAAoB,6BAC3BC,GAAeC,EAAAA,EAAAA,aAAY,gBAE3BC,EAAoE,SAA9CC,EAAAA,EAAeC,QAAQL,GAMtCM,EAAuB,WACnC,GAAIZ,EAAAA,EAAwBa,KAAKC,UAAUC,WAC1CC,EAAAA,EAAOC,MAAM,kDAKd,GAAIR,EACHO,EAAAA,EAAOC,MAAM,4EAMd,IAAwD,IAApDC,OAAOC,SAASC,SAASC,QAAQd,GAAsB,CAC1D,IAAMe,EAAcJ,OAAOC,SAASI,KAAKC,QAAQN,OAAOC,SAASM,OAAQ,IACnEC,EAAcC,EAAOC,KAAKN,GAAaO,SAAS,UACtDC,QAAQC,UAAU,KAAM,KAAM,GAAFC,OAAKzB,EAAY,kBAAAyB,OAAiBN,IAC9DR,OAAOC,SAASc,QACjB,CACD,yBCvDA,IAAIC,EAAoB,EAAQ,MAEhC,SAASC,IAAQ,CAEjB/C,EAAOC,QAAU,CACf+C,YAAa,WACX,MAAM,IAAIF,EACR,0EAEJ,EAEAG,QAAS,SAAiBC,GACxB,OAAOA,EAAKC,KACd,EAEAC,WAAY,SAAoBF,GAC9B,GAAIA,EAAKG,OACP,MAAM,IAAIP,EACR,6DAGN,EAEAQ,YAAa,WACX,MAAM,IAAIR,EACR,4EAGJ,EAEAS,YAAa,WACX,MAAM,IAAIT,EACR,0EAEJ,EAEAU,YAAa,SAAqBC,EAASC,GACzC,OAAOD,EAAQ,CAAC,4BAA6BC,GAAS,EACxD,EAEAC,YAAaZ,EAEba,WAAYb,EAEZc,WAAYd,EAEZe,YAAaf,EAEbgB,eAAgBhB,EAEhBiB,IAAK,CAAC,qBClDR,SAASlB,EAAkBmB,GACzBC,KAAKC,KAAO,oBACZD,KAAKD,QAAUA,EACfC,KAAKjD,cAAe,EAChBmD,MAAMC,mBACRD,MAAMC,kBAAkBH,KAAMpB,EAElC,CAEAA,EAAkBwB,UAAYF,MAAME,UAEpCtE,EAAOC,QAAU6C,wBCXjB,IAAIyB,EAAa,EAAQ,OACrBC,EAAS,gBACTC,EAAQ,EAAQ,OAChBC,EAAO,EAAQ,OACfC,EAAM,EAAQ,OAEd7B,EAAoB,EAAQ,MAC5B8B,EAAQ,EAAQ,OAChBZ,EAAM,EAAQ,OAGda,EAA0B,KAK9B,SAASC,EAAgBC,EAAUC,GACjC,OAAoD,KAA5CD,EAAW,KAAK9C,QAAQ+C,EAAW,IAC7C,CASA,SAASC,EAAUC,GACjB,OAAOA,EAASC,QAAO,SAAUC,GAC/B,MAA0B,iBAAZA,CAChB,GACF,CAEA,SAASC,EAAkBD,GACzB,IAAIE,EAAeF,EAInB,OAHkC,IAA9BA,EAAQG,MAAM,KAAKC,SACrBF,EAAeF,EAAQG,MAAM,KAAKE,MAAM,GAAI,GAAGC,KAAK,MAE/CJ,CACT,CAEA,SAASK,EAAWxB,GAClB,OAAO,SAAiBiB,GACtB,OAAOjB,EAAO,IAAMiB,CACtB,CACF,CAEA,SAASQ,EAASR,GAChB,OAAOS,SAAST,EAAQG,MAAM,KAAK,GACrC,CAEA,SAASO,EAAiBC,EAAUC,GAClC,GAAwB,IAApBD,EAASP,OAAc,MAAO,GAClC,IAAIS,EAAgBC,EAAKH,EAASI,IAAIP,IAClCQ,EAAUH,EAAcA,EAAcT,OAASQ,GACnD,IAAKI,EACH,OAAOL,EAGT,IADA,IAAIM,EAAW,GACNC,EAAIP,EAASP,OAAS,EAAGc,GAAK,KACjCF,EAAUR,EAASG,EAASO,KADQA,IAExCD,EAASE,QAAQR,EAASO,IAE5B,OAAOD,CACT,CAEA,SAASH,EAAKM,GAEZ,IADA,IAAIC,EAAW,GACNH,EAAI,EAAGA,EAAIE,EAAMhB,OAAQc,KACI,IAAhCG,EAASxE,QAAQuE,EAAMF,KAAYG,EAASC,KAAKF,EAAMF,IAE7D,OAAOG,CACT,CAEA,SAASE,EAAUC,EAAQzC,EAAM0C,GAC/B,IAAK,IAAIP,KAAKO,EACZD,EAAOzC,EAAO,IAAMmC,GAAKO,EAAKP,EAElC,CAEA,SAASQ,EAAeC,EAAM3B,GAE5B,OADAA,EAAU4B,WAAW5B,GACR,MAAT2B,EACK,SAAUE,GACf,OAAOD,WAAWC,GAAK7B,CACzB,EACkB,OAAT2B,EACF,SAAUE,GACf,OAAOD,WAAWC,IAAM7B,CAC1B,EACkB,MAAT2B,EACF,SAAUE,GACf,OAAOD,WAAWC,GAAK7B,CACzB,EAEO,SAAU6B,GACf,OAAOD,WAAWC,IAAM7B,CAC1B,CAEJ,CA6BA,SAAS8B,EAAeC,GACtB,OAAOtB,SAASsB,EAClB,CAEA,SAASC,EAAQC,EAAGC,GAClB,OAAID,EAAIC,GAAW,EACfD,EAAIC,EAAU,EACX,CACT,CAEA,SAASC,EAAcF,EAAGC,GACxB,OACEF,EAAQvB,SAASwB,EAAE,IAAKxB,SAASyB,EAAE,MACnCF,EAAQvB,SAASwB,EAAE,IAAM,KAAMxB,SAASyB,EAAE,IAAM,OAChDF,EAAQvB,SAASwB,EAAE,IAAM,KAAMxB,SAASyB,EAAE,IAAM,KAEpD,CAGA,SAASE,EAAkBC,EAAUC,GAOnC,YALwB,KADxBA,EAAQA,EAAMnC,MAAM,KAAKY,IAAIe,IACZ,KACfQ,EAAM,GAAK,KAKN,OADCD,EAEG,SAAUrC,GAEf,OAAOuC,EADPvC,EAAUA,EAAQG,MAAM,KAAKY,IAAIe,GACEQ,IAAU,CAC/C,EAGO,SAAUtC,GAEf,OAAOuC,EADPvC,EAAUA,EAAQG,MAAM,KAAKY,IAAIe,GACEQ,IAAU,CAC/C,CAEN,CAGA,SAASC,EAAmBvC,EAASsC,GACnC,OAAItC,EAAQ,KAAOsC,EAAM,GAChBtC,EAAQ,GAAKsC,EAAM,IAAM,EAAI,EAErB,MAAbA,EAAM,GACD,EAELtC,EAAQ,KAAOsC,EAAM,GAChBtC,EAAQ,GAAKsC,EAAM,IAAM,EAAI,EAE/B,CACT,CAYA,SAASE,EAAiBf,EAAMzB,GAC9B,IAAIyC,EAXN,SAAwBhB,EAAMzB,GAC5B,OAAwC,IAApCyB,EAAK3B,SAASjD,QAAQmD,GACjBA,IACEnE,EAAa6G,eAAejB,EAAK1C,MAAMiB,IACzCnE,EAAa6G,eAAejB,EAAK1C,MAAMiB,EAIlD,CAGiB2C,CAAelB,EAAMzB,GACpC,OAAIyC,GAEgC,IAAzBhB,EAAK3B,SAASM,QAChBqB,EAAK3B,SAAS,EAIzB,CAEA,SAAS8C,EAAaC,EAAOvE,GAE3B,OADAuE,GAAgB,IACTC,OAAOC,KAAK3D,GAAQ4D,QAAO,SAAU/B,EAAUlC,GACpD,IAAI0C,EAAOwB,EAAOlE,EAAMT,GACxB,IAAKmD,EAAM,OAAOR,EAClB,IAAInB,EAAWgD,OAAOC,KAAKtB,EAAKyB,aAAanD,QAAO,SAAU8B,GAC5D,IAAIsB,EAAO1B,EAAKyB,YAAYrB,GAC5B,OAAgB,OAATsB,GAAiBA,GAAQN,CAClC,IACA,OAAO5B,EAASzD,OAAOsC,EAASiB,IAAIR,EAAWkB,EAAK1C,OACtD,GAAG,GACL,CAEA,SAASqE,EAAU3B,GACjB,MAAO,CACL1C,KAAM0C,EAAK1C,KACXe,SAAU2B,EAAK3B,SACfa,SAAUc,EAAKd,SACfuC,YAAazB,EAAKyB,YAEtB,CAEA,SAASD,EAAOlE,EAAMT,GAGpB,GAFAS,EAAOA,EAAKsE,cACZtE,EAAOlD,EAAayH,QAAQvE,IAASA,EACjCT,EAAQiF,iBAAmB1H,EAAa2H,aAAazE,GAAO,CAC9D,IAAI0E,EAAU5H,EAAa4F,KAAK5F,EAAa2H,aAAazE,IAC1D,GAAa,YAATA,EACF,OAmBwB2E,EAnBIN,EAAUvH,EAAa4F,KAAK1C,IAmBvB4E,EAnB+BF,EAoBpEC,EAAQ/C,SAAWiD,EAAyBF,EAAQ/C,SAAUgD,EAAOhD,UACrE+C,EAAQ5D,SAAW8D,EAAyBF,EAAQ5D,SAAU6D,EAAO7D,UACrE4D,EAAQ/C,SAASkD,SAAQ,SAAUhC,QACFiC,IAA3BJ,EAAQR,YAAYrB,KACtB6B,EAAQR,YAAYrB,GAAK8B,EAAOT,YAAYrB,GAEhD,IACO6B,EAzBH,IAAIK,EAASX,EAAUK,GAEvB,OADAM,EAAOhF,KAAOA,EACPgF,CAEX,CAaF,IAA8BL,EAASC,EAZrC,OAAO9H,EAAa4F,KAAK1C,EAC3B,CAEA,SAAS6E,EAAyBI,EAAiBC,GACjD,IAAIC,EAAkBD,EAAepH,QAAQ4C,GAC7C,OAAOuE,EACJjE,QAAO,SAAUC,GAChB,MAAO,qBAAqB3D,KAAK2D,EACnC,IACCxC,OAAOyG,EAAe5D,MAAM6D,GACjC,CAaA,SAASC,EAAUpF,EAAMT,GACvB,IAAImD,EAAOwB,EAAOlE,EAAMT,GACxB,IAAKmD,EAAM,MAAM,IAAI/D,EAAkB,mBAAqBqB,GAC5D,OAAO0C,CACT,CAaA,SAAS2C,EAAYC,EAAMtF,EAAMuF,EAAWhG,GAC1C,IAAIiG,EAAO,EACX,OAAQxF,GACN,IAAK,UACH,GAAIT,EAAQiF,gBAAiB,OAAOc,EACpC,IAAI1D,EAAW9E,EAAa4F,KAAKkC,OAAOhD,SACxC4D,EAAO5D,EAASP,OAASO,EAAS9D,QAAQ4C,GAC1C,MACF,IAAK,SAEH8E,EAAO/D,EADM3E,EAAa4F,KAAK+C,OAAO7D,SAASN,OAAO,GAAG,IApRtC,GAqR4B,EAC/C,MACF,QACE,OAAOgE,EAEX,OAAIC,GAAaC,EACRF,EAAKhE,OAAO,GAEdgE,EAAKhE,MAAMkE,EAAO,EAAID,EAC/B,CAEA,SAASG,EAAYC,GACnB,MACmB,iBAAVA,IACNA,EAAM7H,QAAQ,MAAQ,GAAK6H,EAAM7H,QAAQ,MAAQ,EAEtD,CAEA,SAASwB,EAAQsG,EAASrG,GACxB,OAAOkB,EAAMoF,EAASD,GAAS3B,QAAO,SAAUxB,EAAQqD,EAAMC,GAC5D,GAAID,EAAKE,KAAiB,IAAVD,EACd,MAAM,IAAIpH,EACR,+DAEEmH,EAAKG,MACL,KAGN,IACI5D,EADOwD,EAAQC,EAAKI,MACPC,OAAOC,KAAKtJ,EAAcyC,EAASuG,GAAM9D,KAAI,SAAUqE,GACtE,IAAIC,EAAQD,EAAEjF,MAAM,KACpB,MAAiB,MAAbkF,EAAM,GACDA,EAAM,GAAK,IAAMpC,EAAOoC,EAAM,GAAI/G,GAASwB,SAAS,GAEpDsF,CAEX,IAEA,GAAqB,QAAjBP,EAAKS,QACP,OAAIT,EAAKE,IACAvD,EAAOzB,QAAO,SAAUqF,GAC7B,OAA6B,IAAtBhE,EAAMvE,QAAQuI,EACvB,IAEO5D,EAAOzB,QAAO,SAAUqF,GAC7B,OAA6B,IAAtBhE,EAAMvE,QAAQuI,EACvB,IAGF,GAAIP,EAAKE,IAAK,CACZ,IAAIhF,EAAS,CAAC,EAId,OAHAqB,EAAMyC,SAAQ,SAAUuB,GACtBrF,EAAOqF,IAAK,CACd,IACO5D,EAAOzB,QAAO,SAAUqF,GAC7B,OAAQrF,EAAOqF,EACjB,GACF,CACA,OAAO5D,EAAOhE,OAAO4D,EAEzB,GAAG,GACL,CAEA,SAASmE,EAAYzH,GAOnB,YANoB,IAATA,IAAsBA,EAAO,CAAC,QAEhB,IAAdA,EAAKwB,OACdxB,EAAKwB,KAAOA,EAAKjB,QAAUiB,EAAKjB,QAAQ,KAAO,KAG1CP,CACT,CAEA,SAAS0H,EAAeb,EAAS7G,GAC3B,MAAO6G,IAGPA,EAFW9I,EAAamC,WAAWF,IAIzBjC,EAAa4J,UAI3B,OAAOd,CACT,CAEA,SAASe,EAAaf,GACpB,GAAyB,iBAAZA,IAAwBgB,MAAMC,QAAQjB,GACjD,MAAM,IAAIjH,EACR,0DAA4DiH,EAAU,IAG5E,CAEA,IAAIkB,EAAQ,CAAC,EAEb,SAAShK,EAAa8I,EAAS7G,GAG7B4H,EADAf,EAAUa,EAAeb,EADzB7G,EAAOyH,EAAYzH,KAInB,IAAIQ,EAAU,CACZwH,sBAAuBhI,EAAKgI,sBAC5BC,gBAAiBjI,EAAKiI,gBACtBxC,gBAAiBzF,EAAKyF,gBACtBjE,KAAMxB,EAAKwB,KACXV,IAAKd,EAAKc,KAGZA,EAAID,eAAe9C,EAAa4F,MAChC,IAAI1D,EAAQa,EAAIf,QAAQC,EAAMjC,EAAa4F,MAC3C,GAAI1D,EAEF,IAAK,IAAIiI,KADT1H,EAAQ2H,YAAc,CAAC,EACHlI,EAClBwD,EAAUjD,EAAQ2H,YAAaD,EAASjI,EAAMiI,IAIlD,IAAIE,EAAWC,KAAKC,UAAU,CAACzB,EAASrG,IACxC,GAAIuH,EAAMK,GAAW,OAAOL,EAAMK,GAElC,IAAI1E,EAASV,EAAKzC,EAAQsG,EAASrG,IAAU+H,MAAK,SAAUC,EAAOC,GAGjE,GAFAD,EAAQA,EAAMnG,MAAM,KACpBoG,EAAQA,EAAMpG,MAAM,KAChBmG,EAAM,KAAOC,EAAM,GAAI,CAIzB,IAAIC,EAAWF,EAAM,GAAGnG,MAAM,KAAK,GAEnC,OAAOgC,EADQoE,EAAM,GAAGpG,MAAM,KAAK,GACLA,MAAM,KAAMqG,EAASrG,MAAM,KAC3D,CACE,OAAO6B,EAAQsE,EAAM,GAAIC,EAAM,GAEnC,IAIA,OAHK3H,EAAIA,IAAI6H,6BACXZ,EAAMK,GAAY1E,GAEbA,CACT,CAmGA,SAASkF,EAAUpI,EAASuG,GAC1B,IAAI8B,EAAU9K,EAAa+K,aAAa7G,QAAO,SAAUmB,GACvD,OAAOxB,EAAgBwB,EAAG2D,EAAK7E,QACjC,IACA,GAAuB,IAAnB2G,EAAQvG,OAAc,CACxB,GAAI9B,EAAQwH,sBACV,MAAO,GAEP,MAAM,IAAIpI,EACR,mBAAqBmH,EAAK7E,QAAU,cAG1C,CACA,MAAO,CAAC,QAAU2G,EAAQA,EAAQvG,OAAS,GAC7C,CAEA,SAASyG,EAAWvI,EAASuG,GAC3B,IAAIiC,EAAOrG,SAASoE,EAAKiC,MACrBC,EAAQtG,SAASoE,EAAKkC,OAAS,MAAQ,EACvCC,EAAMvG,SAASoE,EAAKmC,KAAO,MAC/B,OAAOpE,EAAaqE,KAAKC,IAAIJ,EAAMC,EAAOC,EAAK,EAAG,EAAG,GAAI1I,EAC3D,CAEA,SAAS6I,EAAW7I,EAASuG,GAC3B,IAAIuC,EAAWxF,WAAWiD,EAAKuC,UAC3BC,EAAQxL,EAAawL,MAAMC,OAC/B,GAAIzC,EAAK0C,MACP,GAAI1C,EAAK0C,MAAMC,MAAM,iBAAkB,CACrC,IAAKlJ,EAAQ2H,YACX,MAAM,IAAIvI,EAAkB,4CAE9B2J,EAAQ/I,EAAQ2H,WAClB,KAAO,CACL,IAAIsB,EAEFA,EADwB,IAAtB1C,EAAK0C,MAAMnH,OACLyE,EAAK0C,MAAME,cAEX5C,EAAK0C,MAAMlE,cAErBzE,EAAIV,YAAYrC,EAAawL,MAAOE,EAAO1L,EAAa4F,MACxD4F,EAAQxL,EAAawL,MAAME,EAC7B,CAQF,IANA,IAKIvH,EALAF,EAAWgD,OAAOC,KAAKsE,GAAOhB,MAAK,SAAUpE,EAAGC,GAClD,OAAOmF,EAAMnF,GAAKmF,EAAMpF,EAC1B,IACIyF,EAAY,EACZlG,EAAS,GAEJN,EAAI,EAAGA,EAAIpB,EAASM,SAC3BJ,EAAUF,EAASoB,GACI,IAAnBmG,EAAMrH,MACV0H,GAAaL,EAAMrH,GACnBwB,EAAOF,KAAKtB,KACR0H,GAAaN,IALkBlG,KAOrC,OAAOM,CACT,CA1JA3F,EAAa2D,MAAQ,SAAUmF,EAAS7G,GAItC,OADA4H,EADAf,EAAUa,EAAeb,EADzB7G,EAAOyH,EAAYzH,KAGZ0B,EAAMoF,EAASD,EACxB,EAGA9I,EAAagK,MAAQ,CAAC,EACtBhK,EAAa4F,KAAO,CAAC,EACrB5F,EAAawL,MAAQ,CACnBC,OAAQ,CAAC,EACTK,OAAQ,MAIV9L,EAAa4J,SAAW,CAAC,SAAU,kBAAmB,cAAe,YAGrE5J,EAAayH,QAAU,CACrBsE,GAAI,UACJC,GAAI,UACJC,IAAK,UACLC,SAAU,KACVC,WAAY,KACZC,eAAgB,SAChBC,UAAW,UACXC,YAAa,SACbC,cAAe,UACfC,eAAgB,SAChBC,UAAW,SACXC,UAAW,UAMb1M,EAAa2H,aAAe,CAC1BgF,QAAS,SACTC,OAAQ,UACRC,OAAQ,KACRhF,QAAS,UAIX7H,EAAa6G,eAAiB,CAAC,EAE/B7G,EAAa6C,YAAcE,EAAIF,YAC/B7C,EAAa0C,YAAcK,EAAIL,YAC/B1C,EAAa2C,WAAaI,EAAIJ,WAC9B3C,EAAa4C,WAAaG,EAAIH,WAC9B5C,EAAamC,WAAaY,EAAIZ,WAE9BnC,EAAauL,SAAW,SAAUzL,EAAUoC,GAC1C,IAAI0D,EACJ,QAAqB,IAAV1D,EACT0D,EAAO5F,EAAawL,MAAMC,YACrB,GAAc,aAAVvJ,EAAsB,CAC/B,IAAID,EAAO,CAAC,EACZA,EAAKwB,KAAOA,EAAKjB,QAAUiB,EAAKjB,QAAQ,KAAO,IAC/C,IAAIsK,EAAc/J,EAAIf,QAAQC,GAC9B,IAAK6K,EACH,MAAM,IAAIjL,EAAkB,4CAG9B,IAAK,IAAIsI,KADTvE,EAAO,CAAC,EACYkH,EAClBpH,EAAUE,EAAMuE,EAAS2C,EAAY3C,GAEzC,MAAO,GAAqB,iBAAVjI,EAEdA,EADEA,EAAMqC,OAAS,EACTrC,EAAMsF,cAENtF,EAAM0J,cAEhB7I,EAAIV,YAAYrC,EAAawL,MAAOtJ,EAAOlC,EAAa4F,MACxDA,EAAO5F,EAAawL,MAAMtJ,QAM1B,IAAK,IAAIgB,IAJL,kBAAmBhB,IACrBA,EAAQA,EAAM6K,eAEhBnH,EAAO,CAAC,EACS1D,EACf,IAAK,IAAIiC,KAAWjC,EAAMgB,GACxB0C,EAAK1C,EAAO,IAAMiB,GAAWjC,EAAMgB,GAAMiB,GAK/C,OAAOrE,EAASqH,QAAO,SAAU6F,EAAK3H,GACpC,IAAImG,EAAQ5F,EAAKP,GAIjB,YAHc4C,IAAVuD,IACFA,EAAQ5F,EAAKP,EAAElE,QAAQ,QAAS,QAE3B6L,GAAOxB,GAAS,EACzB,GAAG,EACL,EA6DA,IAAIzC,EAAU,CACZkE,oBAAqB,CACnBC,QAAS,CAAC,YACVC,OAAQ,sCACR9D,OAAQ,SAAU5G,EAASuG,GACzB,OAAO/B,OAAOC,KAAK3D,GAAQ4D,QAAO,SAAU/B,EAAUlC,GACpD,IAAI0C,EAAOwB,EAAOlE,EAAMT,GACxB,IAAKmD,EAAM,OAAOR,EAClB,IAAIoD,EAAO3D,EAAiBe,EAAKd,SAAUkE,EAAK/E,UAGhD,OADAuE,EAAOD,EADPC,EAAOA,EAAKtD,IAAIR,EAAWkB,EAAK1C,OACP0C,EAAK1C,KAAM8F,EAAK/E,SAAUxB,GAC5C2C,EAASzD,OAAO6G,EACzB,GAAG,GACL,GAEF4E,cAAe,CACbF,QAAS,CAAC,YACVC,OAAQ,8BACR9D,OAAQ,SAAU5G,EAASuG,GACzB,OAAO/B,OAAOC,KAAK3D,GAAQ4D,QAAO,SAAU/B,EAAUlC,GACpD,IAAI0C,EAAOwB,EAAOlE,EAAMT,GACxB,IAAKmD,EAAM,OAAOR,EAClB,IAAIoD,EAAO5C,EAAKd,SAASN,OAAOwE,EAAK/E,UAGrC,OADAuE,EAAOD,EADPC,EAAOA,EAAKtD,IAAIR,EAAWkB,EAAK1C,OACP0C,EAAK1C,KAAM8F,EAAK/E,SAAUxB,GAC5C2C,EAASzD,OAAO6G,EACzB,GAAG,GACL,GAEF6E,6BAA8B,CAC5BH,QAAS,CAAC,YACVC,OAAQ,iDACR9D,OAAQ,SAAU5G,EAASuG,GAEzB,OADoBnE,EAAiBoC,OAAOC,KAAKxD,GAAMsF,EAAK/E,UACvCiB,KAAI,SAAUG,GACjC,MAAO,UAAY3B,EAAI2B,EACzB,GACF,GAEFiI,yBAA0B,CACxBJ,QAAS,CAAC,YACVC,OAAQ,6CACR9D,OAAQ,SAAU5G,EAASuG,GACzB,OAAOnE,EAAiB7E,EAAa+K,aAAc/B,EAAK/E,UAAUiB,KAChE,SAAUf,GACR,MAAO,QAAUA,CACnB,GAEJ,GAEFoJ,4BAA6B,CAC3BL,QAAS,CAAC,WAAY,WACtBC,OAAQ,8CACR9D,OAAQ,SAAU5G,EAASuG,GACzB,IAAIpD,EAAO0C,EAAUU,EAAKmB,QAAS1H,GAE/B+F,EADgB3D,EAAiBe,EAAKd,SAAUkE,EAAK/E,UAChCiB,IAAIR,EAAWkB,EAAK1C,OAE7C,OADOqF,EAAYC,EAAM5C,EAAK1C,KAAM8F,EAAK/E,SAAUxB,EAErD,GAEF+K,uBAAwB,CACtBN,QAAS,CAAC,YACVC,OAAQ,yCACR9D,OAAQ,SAAU5G,EAASuG,GACzB,OAAO/B,OAAOC,KAAKxD,GAChBc,OAAOwE,EAAK/E,UACZiB,KAAI,SAAUG,GACb,MAAO,UAAY3B,EAAI2B,EACzB,GACJ,GAEFoI,mBAAoB,CAClBP,QAAS,CAAC,YACVC,OAAQ,qCACR9D,OAAQ,SAAU5G,EAASuG,GACzB,OAAOhJ,EAAa+K,aACjBvG,OAAOwE,EAAK/E,UACZiB,KAAI,SAAUf,GACb,MAAO,QAAUA,CACnB,GACJ,GAEFuJ,sBAAuB,CACrBR,QAAS,CAAC,WAAY,WACtBC,OAAQ,sCACR9D,OAAQ,SAAU5G,EAASuG,GACzB,IAAIpD,EAAO0C,EAAUU,EAAKmB,QAAS1H,GAC/B+F,EAAO5C,EAAKd,SAASN,OAAOwE,EAAK/E,UAAUiB,IAAIR,EAAWkB,EAAK1C,OAEnE,OADOqF,EAAYC,EAAM5C,EAAK1C,KAAM8F,EAAK/E,SAAUxB,EAErD,GAEFkL,oBAAqB,CACnBT,QAAS,GACTC,OAAQ,2BACR9D,OAAQ,SAAU5G,GAChB,OAAOwE,OAAOC,KAAK3D,GAAQ4D,QAAO,SAAU/B,EAAUlC,GACpD,IAAI0C,EAAOwB,EAAOlE,EAAMT,GACxB,IAAKmD,EAAM,OAAOR,EAClB,IAAIoD,EAAO5C,EAAK3B,SAASC,QAAO,SAAU8B,GACxC,OAAqC,IAA9BJ,EAAKd,SAAS9D,QAAQgF,EAC/B,IAEA,OADAwC,EAAOA,EAAKtD,IAAIR,EAAWkB,EAAK1C,OACzBkC,EAASzD,OAAO6G,EACzB,GAAG,GACL,GAEFoF,6BAA8B,CAC5BV,QAAS,GACTC,OAAQ,uCACR9D,OAAQ,WACN,MAAO,EACT,GAEFwE,4BAA6B,CAC3BX,QAAS,CAAC,WACVC,OAAQ,oCACR9D,OAAQ,SAAU5G,EAASuG,GACzB,IAAIpD,EAAO0C,EAAUU,EAAKmB,QAAS1H,GACnC,OAAOmD,EAAK3B,SACTC,QAAO,SAAU8B,GAChB,OAAqC,IAA9BJ,EAAKd,SAAS9D,QAAQgF,EAC/B,IACCd,IAAIR,EAAWkB,EAAK1C,MACzB,GAEF4K,WAAY,CACVZ,QAAS,CAAC,SACVC,OAAQ,gCACR9D,OAAQ,SAAU5G,EAASuG,GACzB,OAAOjC,EAAaqE,KAAK2C,MAnsBpB,cAmsBmC/E,EAAKgF,MAAOvL,EACtD,GAEFwL,QAAS,CACPf,QAAS,CAAC,QACVC,OAAQ,iBACR9D,OAAQ2B,GAEVkD,UAAW,CACThB,QAAS,CAAC,OAAQ,SAClBC,OAAQ,uBACR9D,OAAQ2B,GAEVmD,YAAa,CACXjB,QAAS,CAAC,OAAQ,QAAS,OAC3BC,OAAQ,6BACR9D,OAAQ2B,GAEVoD,WAAY,CACVlB,QAAS,CAAC,OAAQ,cAClBC,OAAQ,sCACR9D,OAAQ,SAAU5G,EAASuG,GACzB,IAAIoF,EAAarI,WAAWiD,EAAKoF,YAC7B5C,EAAQxL,EAAawL,MAAMC,OAC/B,OAAOxE,OAAOC,KAAKsE,GAAOrE,QAAO,SAAUxB,EAAQxB,GAgBjD,MAfkB,MAAd6E,EAAKlD,KACH0F,EAAMrH,GAAWiK,GACnBzI,EAAOF,KAAKtB,GAES,MAAd6E,EAAKlD,KACV0F,EAAMrH,GAAWiK,GACnBzI,EAAOF,KAAKtB,GAES,OAAd6E,EAAKlD,KACV0F,EAAMrH,IAAYiK,GACpBzI,EAAOF,KAAKtB,GAELqH,EAAMrH,IAAYiK,GAC3BzI,EAAOF,KAAKtB,GAEPwB,CACT,GAAG,GACL,GAEF0I,uBAAwB,CACtBnB,QAAS,CAAC,OAAQ,cAClBC,OAAQ,wDACR9D,OAAQ,SAAU5G,EAASuG,GACzB,IAAIoF,EAAarI,WAAWiD,EAAKoF,YACjC,IAAK3L,EAAQ2H,YACX,MAAM,IAAIvI,EAAkB,4CAE9B,IAAI2J,EAAQ/I,EAAQ2H,YACpB,OAAOnD,OAAOC,KAAKsE,GAAOrE,QAAO,SAAUxB,EAAQxB,GACjD,IAAImK,EAAa9C,EAAMrH,GACvB,OAAkB,MAAdmK,IAIc,MAAdtF,EAAKlD,KACHwI,EAAaF,GACfzI,EAAOF,KAAKtB,GAES,MAAd6E,EAAKlD,KACVwI,EAAaF,GACfzI,EAAOF,KAAKtB,GAES,OAAd6E,EAAKlD,KACVwI,GAAcF,GAChBzI,EAAOF,KAAKtB,GAELmK,GAAcF,GACvBzI,EAAOF,KAAKtB,IAhBLwB,CAmBX,GAAG,GACL,GAEF4I,2BAA4B,CAC1BrB,QAAS,CAAC,OAAQ,aAAc,UAChCC,OAAQ,2DACR9D,OAAQ,SAAU5G,EAASuG,GACzB,IAAIoF,EAAarI,WAAWiD,EAAKoF,YAC7BlM,EAAQa,EAAIyL,SAAS/L,EAASuG,EAAK5G,OAAQpC,EAAa4F,MAC5D,GAAI1D,EAEF,IAAK,IAAIiI,KADT1H,EAAQ2H,YAAc,CAAC,EACHlI,EAClBwD,EAAUjD,EAAQ2H,YAAaD,EAASjI,EAAMiI,IAGlD,IAAK1H,EAAQ2H,YACX,MAAM,IAAIvI,EAAkB,4CAE9B,IAAI2J,EAAQ/I,EAAQ2H,YACpB,OAAOnD,OAAOC,KAAKsE,GAAOrE,QAAO,SAAUxB,EAAQxB,GACjD,IAAImK,EAAa9C,EAAMrH,GACvB,OAAkB,MAAdmK,IAIc,MAAdtF,EAAKlD,KACHwI,EAAaF,GACfzI,EAAOF,KAAKtB,GAES,MAAd6E,EAAKlD,KACVwI,EAAaF,GACfzI,EAAOF,KAAKtB,GAES,OAAd6E,EAAKlD,KACVwI,GAAcF,GAChBzI,EAAOF,KAAKtB,GAELmK,GAAcF,GACvBzI,EAAOF,KAAKtB,IAhBLwB,CAmBX,GAAG,GACL,GAEF8I,oBAAqB,CACnBvB,QAAS,CAAC,OAAQ,aAAc,SAChCC,OAAQ,2DACR9D,OAAQ,SAAU5G,EAASuG,GACzB,IAAIoF,EAAarI,WAAWiD,EAAKoF,YAC7B1C,EAAQ1C,EAAK0C,MAEfA,EADmB,IAAjBA,EAAMnH,OACAmH,EAAME,cAENF,EAAMlE,cAEhBzE,EAAIV,YAAYrC,EAAawL,MAAOE,EAAO1L,EAAa4F,MACxD,IAAI4F,EAAQxL,EAAawL,MAAME,GAC/B,OAAOzE,OAAOC,KAAKsE,GAAOrE,QAAO,SAAUxB,EAAQxB,GACjD,IAAImK,EAAa9C,EAAMrH,GACvB,OAAkB,MAAdmK,IAIc,MAAdtF,EAAKlD,KACHwI,EAAaF,GACfzI,EAAOF,KAAKtB,GAES,MAAd6E,EAAKlD,KACVwI,EAAaF,GACfzI,EAAOF,KAAKtB,GAES,OAAd6E,EAAKlD,KACVwI,GAAcF,GAChBzI,EAAOF,KAAKtB,GAELmK,GAAcF,GACvBzI,EAAOF,KAAKtB,IAhBLwB,CAmBX,GAAG,GACL,GAEF+I,MAAO,CACLxB,QAAS,CAAC,YACVC,OAAQ,mCACR9D,OAAQiC,GAEVqD,SAAU,CACRzB,QAAS,CAAC,WAAY,SACtBC,OAAQ,mEACR9D,OAAQiC,GAEVsD,SAAU,CACR1B,QAAS,CAAC,WACVC,OAAQ,wBACR9D,OAAQ,SAAU5G,EAASuG,GACzBjG,EAAIT,YAAYtC,EAAagK,MAAOhB,EAAK6F,SACzC,IAAIC,EAAW9O,EAAagK,MAAMhB,EAAK6F,SACnClJ,EAAS,GACb,IAAK,IAAIzC,KAAQ4L,EAAU,CACzB,IAAIlJ,EAAOwB,EAAOlE,EAAMT,GAEpBsM,EACFtM,EAAQiF,iBACRxE,KAAQlD,EAAa2H,cACrBiB,EAAYkG,EAAS5L,GAAM0C,EAAKd,SAASN,OAAO,GAAG,KACrDoB,EAAK3B,SAAS+D,SAAQ,SAAU7D,GAC9B,IAAI0E,EAAQiG,EAAS5L,GAAMiB,QACb8D,IAAVY,GAAuBkG,IACzBlG,EAAQiG,EAAS9O,EAAa2H,aAAazE,IAAOiB,IAEhDyE,EAAYC,IACdlD,EAAOF,KAAKvC,EAAO,IAAMiB,EAE7B,GACF,CACA,OAAOwB,CACT,GAEFqJ,eAAgB,CACd9B,QAAS,CAAC,OAAQ,MAClBC,OAAQ,wCACR9D,OAAQ,SAAU5G,EAASuG,GACzB,IAAIiG,EAAY7K,EAAkB4E,EAAKzH,MACnC2N,EAAU9K,EAAkB4E,EAAKmG,IACjC5N,EAAOwE,WAAWiD,EAAKzH,MACvB4N,EAAKpJ,WAAWiD,EAAKmG,IACzB,IAAKzL,EAAIuL,GACP,MAAM,IAAIpN,EAAkB,mBAAqBN,EAAO,gBAE1D,IAAKmC,EAAIwL,GACP,MAAM,IAAIrN,EAAkB,mBAAqBsN,EAAK,gBAExD,OAAOlI,OAAOC,KAAKxD,GAChBQ,QAAO,SAAUmB,GAChB,IAAI+J,EAASrJ,WAAWV,GACxB,OAAO+J,GAAU7N,GAAQ6N,GAAUD,CACrC,IACCjK,KAAI,SAAUG,GACb,MAAO,UAAY3B,EAAI2B,EACzB,GACJ,GAEFgK,WAAY,CACVnC,QAAS,CAAC,OAAQ,MAClBC,OAAQ,oCACR9D,OAAQ,SAAU5G,EAASuG,GACzB,OAAOhJ,EAAa+K,aACjB7G,OAAOqC,EAAkB,KAAMyC,EAAKzH,OACpC2C,OAAOqC,EAAkB,KAAMyC,EAAKmG,KACpCjK,KAAI,SAAUc,GACb,MAAO,QAAUA,CACnB,GACJ,GAEFsJ,cAAe,CACbpC,QAAS,CAAC,UAAW,OAAQ,MAC7BC,OAAQ,qCACR9D,OAAQ,SAAU5G,EAASuG,GACzB,IAAIpD,EAAO0C,EAAUU,EAAKmB,QAAS1H,GAC/BlB,EAAOwE,WAAWY,EAAiBf,EAAMoD,EAAKzH,OAASyH,EAAKzH,MAC5D4N,EAAKpJ,WAAWY,EAAiBf,EAAMoD,EAAKmG,KAAOnG,EAAKmG,IAK5D,OAAOvJ,EAAKd,SAASZ,QAJrB,SAAgB8B,GACd,IAAIoJ,EAASrJ,WAAWC,GACxB,OAAOoJ,GAAU7N,GAAQ6N,GAAUD,CACrC,IACoCjK,IAAIR,EAAWkB,EAAK1C,MAC1D,GAEFqM,aAAc,CACZrC,QAAS,CAAC,OAAQ,WAClBC,OAAQ,qCACR9D,OAAQ,SAAU5G,EAASuG,GACzB,IAAI3E,EAAeD,EAAkB4E,EAAK7E,SAC1C,OAAO8C,OAAOC,KAAKxD,GAChBQ,OAAO2B,EAAemD,EAAKlD,KAAMzB,IACjCa,KAAI,SAAUG,GACb,MAAO,UAAY3B,EAAI2B,EACzB,GACJ,GAEFmK,SAAU,CACRtC,QAAS,CAAC,OAAQ,WAClBC,OAAQ,iCACR9D,OAAQ,SAAU5G,EAASuG,GACzB,OAAOhJ,EAAa+K,aACjB7G,QA72BqB4B,EA62BOkD,EAAKlD,KA72BN3B,EA62BY6E,EAAK7E,SA52BnDA,EAAUA,EAAQG,MAAM,KAAKY,IAAIe,IACzB,GAAK9B,EAAQ,IAAM,EAC3BA,EAAQ,GAAKA,EAAQ,IAAM,EACd,MAAT2B,EACK,SAAUE,GAEf,OAAOM,EADPN,EAAIA,EAAE1B,MAAM,KAAKY,IAAIe,GACG9B,GAAW,CACrC,EACkB,OAAT2B,EACF,SAAUE,GAEf,OAAOM,EADPN,EAAIA,EAAE1B,MAAM,KAAKY,IAAIe,GACG9B,IAAY,CACtC,EACkB,MAAT2B,EACF,SAAUE,GAEf,OADAA,EAAIA,EAAE1B,MAAM,KAAKY,IAAIe,GACdK,EAAcnC,EAAS6B,GAAK,CACrC,EAEO,SAAUA,GAEf,OADAA,EAAIA,EAAE1B,MAAM,KAAKY,IAAIe,GACdK,EAAcnC,EAAS6B,IAAM,CACtC,IAu1BKd,KAAI,SAAUc,GACb,MAAO,QAAUA,CACnB,IAh3BR,IAA8BF,EAAM3B,CAi3BhC,GAEFsL,YAAa,CACXvC,QAAS,CAAC,UAAW,OAAQ,WAC7BC,OAAQ,iCACR9D,OAAQ,SAAU5G,EAASuG,GACzB,IAAI7E,EAAU6E,EAAK7E,QACfyB,EAAO0C,EAAUU,EAAKmB,QAAS1H,GAC/BiN,EAAQ1P,EAAa6G,eAAejB,EAAK1C,MAAMiB,GAEnD,OADIuL,IAAOvL,EAAUuL,GACd9J,EAAKd,SACTZ,OAAO2B,EAAemD,EAAKlD,KAAM3B,IACjCe,KAAI,SAAUc,GACb,OAAOJ,EAAK1C,KAAO,IAAM8C,CAC3B,GACJ,GAEF2J,YAAa,CACXzC,QAAS,GACTC,OAAQ,2BACR9D,OAAQ,WACN,MAAO,CAAC,cAAe,cACzB,GAEFuG,eAAgB,CACd1C,QAAS,GACTC,OAAQ,6BACR9D,OAAQ,WACN,MAAO,CAAC,cACV,GAEFwG,iBAAkB,CAChB3C,QAAS,CAAC,WACVC,OAAQ,yBACR9D,OAAQ,SAAU5G,EAASuG,GACzB,IAAI3E,EAAeD,EAAkB4E,EAAK7E,SACtC2D,EAASpE,EAAIW,GACjB,IAAKyD,EACH,MAAM,IAAIjG,EACR,mBAAqBmH,EAAK7E,QAAU,gBAGxC,MAAO,CAAC,UAAY2D,EACtB,GAEFgI,mBAAoB,CAClB5C,QAAS,CAAC,WACVC,OAAQ,kBACR9D,OAAQwB,GAEVkF,mBAAoB,CAClB7C,QAAS,CAAC,WACVC,OAAQ,uBACR9D,OAAQwB,GAEVmF,mBAAoB,CAClB9C,QAAS,CAAC,WACVC,OAAQ,4BACR9D,OAAQwB,GAEVoF,aAAc,CACZ/C,QAAS,GACTC,OAAQ,oBACR9D,OAAQ,SAAU5G,GAChB,MAAO,CAACM,EAAIR,YAAYC,EAASC,GACnC,GAEFyN,gBAAiB,CACfhD,QAAS,GACTC,OAAQ,kCACR9D,OAAQ,SAAU5G,GAChB,IAAIsL,EAAM3C,KAAK2C,MAYf,OAAOvL,EAXOyE,OAAOC,KAAK1D,GACvBU,QAAO,SAAUiM,GAChB,OACEpC,EAAM3C,KAAKzH,MAAMH,EAAM2M,GAAKC,MAC5BrC,EAAM3C,KAAKzH,MAAMH,EAAM2M,GAAKE,SA7gClClM,EA8gCoBgM,EA9gCL3L,MAAM,GAClBxE,EAAa+K,aAAauF,MAAK,SAAUjL,GAC9C,OAAOxB,EAAgBwB,EAAGlB,EAC5B,KAJF,IACMA,CAghCE,IACCe,KAAI,SAAUiL,GACb,MAAO,QAAUA,EAAI3L,MAAM,EAC7B,IACsB/B,EAC1B,GAEF8N,cAAe,CACbrD,QAAS,GACTC,OAAQ,qBACR9D,OAAQ,WACN,MAAO,CAAC,WACV,GAEFmH,cAAe,CACbtD,QAAS,GACTC,OAAQ,qBACR9D,OAAQ,WACN,MAAO,CAAC,WACV,GAEFoH,gBAAiB,CACfvD,QAAS,CAAC,UAAW,WACrBC,OAAQ,yBACR9D,OAAQ,SAAU5G,EAASuG,GACzB,IAAI7E,EAAU6E,EAAK7E,QACf,QAAQ3D,KAAK2D,KAAUA,EAAU,MACrC,IAAIyB,EAAO0C,EAAUU,EAAKmB,QAAS1H,GAC/BiN,EAAQ/I,EAAiBf,EAAMzB,GACnC,GAAIuL,EACFvL,EAAUuL,MACL,CAOL,KADAA,EAAQ/I,EAAiBf,EAJvB8J,GAD4B,IAA1BvL,EAAQnD,QAAQ,KACVmD,EAAU,KAEVA,EAAQhD,QAAQ,OAAQ,MAK3B,IAAIsB,EAAQwH,sBACjB,MAAO,GAEP,MAAM,IAAIpI,EACR,mBAAqBsC,EAAU,OAAS6E,EAAKmB,QAEjD,CAPEhG,EAAUuL,CAQd,CACA,MAAO,CAAC9J,EAAK1C,KAAO,IAAMiB,EAC5B,GAEFuM,oBAAqB,CACnBxD,QAAS,GACTC,OAAQ,yBACR9D,OAAQ,SAAU5G,GAChB,OAAOzC,OAAaiI,EAAWxF,EACjC,GAEFkO,QAAS,CACPzD,QAAS,CAAC,UACVC,OAAQ,kBACR9D,OAAQ,SAAU5G,EAASuG,GACzB,OAAOxG,EAAQO,EAAIhB,YAAYU,EAASuG,EAAK5G,QAASK,EACxD,GAEFmH,SAAU,CACRsD,QAAS,GACTC,OAAQ,cACR9D,OAAQ,SAAU5G,GAChB,OAAOD,EAAQxC,EAAa4J,SAAUnH,EACxC,GAEFmO,KAAM,CACJ1D,QAAS,GACTC,OAAQ,UACR9D,OAAQ,SAAU5G,GAShB,OAAOD,EARI,CACT,aACA,WACA,eACA,WACA,iBACA,aAEmBC,EACvB,GAEFoO,QAAS,CACP3D,QAAS,GACTC,OAAQ,WACR9D,OAAQ,SAAU5G,EAASuG,GACzB,MAAI5B,EAAO4B,EAAKG,MAAO1G,GACf,IAAIZ,EACR,sDAAwDmH,EAAKG,QAt3BjDA,EAy3BKH,EAAKG,MAx3BvB,IAAItH,EACT,0BACEsH,EADF,mEAFJ,IAAsBA,CA23BlB,KAMH,WACC,IAAK,IAAIjG,KAAQK,EAAQ,CACvB,IAAI4G,EAAU5G,EAAOL,GACrBlD,EAAa4F,KAAK1C,GAAQ,CACxBA,KAAMA,EACNe,SAAUD,EAAUT,EAAOL,GAAMe,UACjCa,SAAUd,EAAUT,EAAOL,GAAMe,SAASO,MAAM,GAAI,IACpD6C,YAAa9D,EAAOL,GAAM4N,cAE5BpL,EAAU1F,EAAawL,MAAMC,OAAQvI,EAAMiH,EAAQ4G,cAEnD/Q,EAAa6G,eAAe3D,GAAQ,CAAC,EACrC,IAAK,IAAImC,EAAI,EAAGA,EAAI8E,EAAQlG,SAASM,OAAQc,IAAK,CAChD,IAAI2L,EAAO7G,EAAQlG,SAASoB,GAC5B,GAAK2L,IAEsB,IAAvBA,EAAKhQ,QAAQ,KAEf,IADA,IAAIiQ,EAAWD,EAAK1M,MAAM,KACjBiF,EAAI,EAAGA,EAAI0H,EAAS1M,OAAQgF,IACnCvJ,EAAa6G,eAAe3D,GAAM+N,EAAS1H,IAAMyH,CAGvD,CACF,CAEAhR,EAAa+K,aAAezH,EAAW4B,KAAI,SAAUgM,GACnD,OAAOA,EAAQ/M,OACjB,GACD,CA5BA,GA8BDpF,EAAOC,QAAUgB,qBC3qCjB,IAAImR,EAAa,kBACbC,EAAY,0BAEhB,SAASC,EAAQ9L,GACf,OAAKuE,MAAMC,QAAQxE,GACZA,EAAM4B,QAAO,SAAUf,EAAGC,GAC/B,OAAOD,EAAEzE,OAAO0P,EAAQhL,GAC1B,GAAG,IAH+B,CAACd,EAIrC,CAYA,SAAS+L,EAAWtE,EAAK7D,GACvB,IAAIH,EAAO,CAAEG,MAAOA,GAMpB,IAAK,IAAIjG,KALqB,IAA1BiG,EAAMnI,QAAQ,UAChBgI,EAAKE,KAAM,EACXC,EAAQA,EAAM3E,MAAM,IAGLwI,EAAK,CACpB,IAAI5D,EAAO4D,EAAI9J,GACXyI,EAAQxC,EAAMwC,MAAMvC,EAAK+D,QAC7B,GAAIxB,EAAO,CACT3C,EAAKI,KAAOlG,EACZ,IAAK,IAAImC,EAAI,EAAGA,EAAI+D,EAAK8D,QAAQ3I,OAAQc,IACvC2D,EAAKI,EAAK8D,QAAQ7H,IAAMsG,EAAMtG,EAAI,GAEpC,OAAO2D,CACT,CACF,CAGA,OADAA,EAAKI,KAAO,UACLJ,CACT,CAEA,SAASuI,EAAWvE,EAAKwE,EAAQC,GAC/B,IAAIzI,EACJ,OAnCF,SAAcwI,EAAQE,GACpB,IAAK,IAAIC,EAAI,EAAGC,EAAMJ,EAAOjN,OAAQoN,GAAKC,EAAKD,IAE7C,GAAID,EADSF,EAAOK,QAAQF,EAAGA,GACTA,EAAGC,GACvB,OAAOJ,EAAOhN,MAAM,GAAImN,GAG5B,MAAO,EACT,CA2BSG,CAAKN,GAAQ,SAAUpC,EAAQuC,EAAGC,GACvC,OAAIT,EAAW3Q,KAAK4O,KAClBpG,EAAOsI,EAAWtE,EAAKoC,EAAOzD,MAAMwF,GAAY,KAC3C1H,QAAU,MACfgI,EAAGnM,QAAQ0D,IACJ,GACEoI,EAAU5Q,KAAK4O,KACxBpG,EAAOsI,EAAWtE,EAAKoC,EAAOzD,MAAMyF,GAAW,KAC1C3H,QAAU,KACfgI,EAAGnM,QAAQ0D,IACJ,GACE2I,IAAMC,KACf5I,EAAOsI,EAAWtE,EAAKoC,EAAO2C,SACzBtI,QAAU,KACfgI,EAAGnM,QAAQ0D,IACJ,EAGX,GACF,CAEAjK,EAAOC,QAAU,SAAegO,EAAKlE,GAEnC,OADKgB,MAAMC,QAAQjB,KAAUA,EAAU,CAACA,IACjCuI,EACLvI,EAAQ5D,KAAI,SAAU8M,GACpB,IAAIP,EAAK,GACT,GACEO,EAAQT,EAAWvE,EAAKgF,EAAOP,SACxBO,GACT,OAAOP,CACT,IAEJ,qBC7EA1S,EAAOC,QAAQ,CAACiT,EAAE,CAACA,EAAE,CAACC,EAAE,EAAEC,EAAE,EAAEC,EAAE,SAAUC,EAAE,SAAUJ,EAAE,EAAEK,EAAE,QAASC,GAAG,GAAGD,EAAE,KAAKE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAIC,EAAE,KAAKN,EAAE,CAACI,GAAG,UAAUL,EAAE,UAAUC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWJ,EAAE,WAAWK,EAAE,YAAaA,EAAE,CAACL,EAAE,CAAC,EAAI,QAAQO,EAAE,EAAEE,EAAE,EAAEC,EAAE,EAAEC,EAAE,QAASC,EAAE,EAAEC,EAAE,QAASC,EAAE,QAASC,EAAE,EAAEC,EAAE,QAASC,EAAE,QAASC,EAAE,QAASC,EAAE,QAASC,EAAE,QAASC,EAAE,QAASC,EAAE,QAASC,EAAE,EAAEC,EAAE,QAASC,EAAE,QAAStN,EAAE,EAAEC,EAAE,QAASsN,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE3O,EAAE,QAASkE,EAAE,EAAEoI,EAAE,QAASsC,EAAE,QAASC,EAAE,QAASC,EAAE,EAAEC,EAAE,EAAEC,EAAE,QAASC,EAAE,QAASC,EAAE,QAASvO,EAAE,QAASwO,EAAE,QAAStO,EAAE,QAASuO,EAAE,QAASC,EAAE,QAASjC,EAAE,GAAGH,EAAE,SAASE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAIC,EAAE,OAAON,EAAE,CAAC,EAAI,UAAWK,EAAE,UAAWE,EAAE,WAAWC,EAAE,UAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,UAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,SAAWC,EAAE,UAAWC,EAAE,WAAWtN,EAAE,WAAWC,EAAE,UAAWsN,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAW3O,EAAE,WAAWkE,EAAE,WAAWoI,EAAE,WAAWsC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWvO,EAAE,WAAWwO,EAAE,WAAWtO,EAAE,WAAWuO,EAAE,WAAWC,EAAE,WAAWjC,EAAE,YAAYK,EAAE,CAACN,EAAE,KAAKE,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,OAAOP,EAAE,CAACP,EAAE,CAAC,EAAI,OAAO,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE0C,GAAG,EAAEC,GAAG,EAAEC,EAAE,EAAE3C,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEJ,EAAE,EAAEK,EAAE,QAASE,EAAE,EAAEE,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE+B,EAAE,EAAEC,EAAE,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,QAASC,GAAG,QAASC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,QAASC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,QAASC,GAAG,EAAEC,GAAG,EAAE,KAAK,QAASC,GAAG,EAAE,KAAK,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,QAASC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,QAASC,EAAE,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,QAAS/E,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE,KAAK,EAAEC,EAAE,EAAEC,EAAE,QAASC,EAAE,EAAEC,EAAE,EAAEC,EAAE,QAASC,EAAE,QAASC,EAAE,EAAEC,EAAE,EAAEtN,EAAE,QAASC,EAAE,EAAEsN,EAAE,EAAEC,EAAE,QAASC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE3O,EAAE,EAAEkE,EAAE,EAAEoI,EAAE,EAAEsC,EAAE,QAASC,EAAE,QAASC,EAAE,EAAEC,EAAE,QAASC,EAAE,QAASC,EAAE,QAASC,EAAE,QAASvO,EAAE,QAASwO,EAAE,QAAStO,EAAE,QAASuO,EAAE,QAASC,EAAE,QAASjC,EAAE,QAAS,KAAK,EAAE,KAAK,EAAEuF,GAAG,EAAEC,GAAG,GAAG3F,EAAE,MAAME,EAAE,CAAC,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,IAAIC,EAAE,UAAUN,EAAE,CAAC,EAAI,WAAW,EAAI,WAAW,EAAI,WAAW,EAAI,WAAW,EAAI,WAAW,EAAI,WAAW,EAAI,UAAW,EAAI,WAAW,EAAI,UAAW,EAAI,WAAWwC,GAAG,UAAWC,GAAG,WAAWoD,GAAG,SAAWC,GAAG,UAAWpD,EAAE,UAAW3C,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWJ,EAAE,WAAWK,EAAE,UAAWE,EAAE,WAAWE,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,UAAWC,EAAE,WAAWC,EAAE,WAAW+B,EAAE,UAAWC,EAAE,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,SAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,SAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAW,KAAK,WAAWC,GAAG,UAAW,KAAK,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,SAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,EAAE,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAW/E,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAW,KAAK,UAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWtN,EAAE,WAAWC,EAAE,WAAWsN,EAAE,UAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAW3O,EAAE,WAAWkE,EAAE,UAAWoI,EAAE,WAAWsC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,UAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWvO,EAAE,WAAWwO,EAAE,WAAWtO,EAAE,UAAWuO,EAAE,WAAWC,EAAE,WAAWjC,EAAE,WAAW,KAAK,KAAK,KAAK,OAAOK,EAAE,CAACb,EAAE,CAAC,EAAI,OAAO,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE4C,EAAE,EAAE3C,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEJ,EAAE,EAAEK,EAAE,EAAEE,EAAE,EAAEE,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE+B,EAAE,EAAEC,EAAE,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,QAASC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,QAASC,GAAG,EAAEC,GAAG,QAASC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,EAAEC,GAAG,QAASC,GAAG,QAASC,GAAG,EAAEC,GAAG,QAASC,GAAG,QAASC,GAAG,EAAEC,GAAG,EAAE,KAAK,EAAEC,GAAG,QAAS,KAAK,QAASC,GAAG,EAAEC,GAAG,QAASC,GAAG,EAAEC,GAAG,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,OAAQC,GAAG,QAASC,GAAG,QAASC,EAAE,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,QAAS/E,EAAE,QAASC,EAAE,QAASC,EAAE,QAASC,EAAE,QAASC,EAAE,QAASC,EAAE,QAASC,EAAE,QAASC,EAAE,QAASC,EAAE,QAASC,EAAE,QAASC,EAAE,QAAStN,EAAE,QAASC,EAAE,QAASsN,EAAE,OAAQC,EAAE,QAASC,EAAE,QAASC,EAAE,QAASC,EAAE,QAASC,EAAE,QAAS3O,EAAE,QAASkE,EAAE,QAASoI,EAAE,OAAQsC,EAAE,QAASC,EAAE,QAASC,EAAE,QAASC,EAAE,QAASC,EAAE,QAASC,EAAE,QAASC,EAAE,QAASvO,EAAE,QAAQwO,EAAE,QAAStO,EAAE,QAASuO,EAAE,QAASC,EAAE,OAAOjC,EAAE,QAAS,KAAK,QAAS,KAAK,EAAEyF,GAAG,GAAG5F,EAAE,SAASE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,MAAMC,EAAE,SAASN,EAAE,CAAC,EAAI,WAAW,EAAI,WAAW,EAAI,WAAW,EAAI,WAAW,EAAI,WAAW,EAAI,WAAW,EAAI,WAAW,EAAI,WAAW,EAAI,WAAW,EAAI,WAAW0C,EAAE,WAAW3C,EAAE,WAAWC,EAAE,WAAWC,EAAE,UAAWC,EAAE,WAAWJ,EAAE,WAAWK,EAAE,WAAWE,EAAE,WAAWE,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAW+B,EAAE,SAAWC,EAAE,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,SAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,SAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,SAAW,KAAK,WAAWC,GAAG,WAAW,KAAK,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,UAAWC,GAAG,SAAWC,EAAE,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAW/E,EAAE,UAAWC,EAAE,WAAWC,EAAE,UAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,UAAWtN,EAAE,WAAWC,EAAE,WAAWsN,EAAE,UAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAW3O,EAAE,WAAWkE,EAAE,UAAWoI,EAAE,WAAWsC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,UAAWC,EAAE,SAAWvO,EAAE,WAAWwO,EAAE,UAAWtO,EAAE,WAAWuO,EAAE,WAAWC,EAAE,WAAWjC,EAAE,WAAW,KAAK,KAAK,KAAK,KAAKyF,GAAG,OAAOzF,EAAE,CAACR,EAAE,CAAC,EAAI,EAAE4C,EAAE,EAAE3C,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEJ,EAAE,EAAEK,EAAE,EAAEE,EAAE,EAAEE,EAAE,QAASC,EAAE,OAAQC,EAAE,QAASE,EAAE,QAASqF,GAAG,EAAE,KAAK,EAAEC,GAAG,QAASC,GAAG,EAAEC,GAAG,EAAEC,GAAG,QAAS,KAAK,EAAEC,GAAG,QAASC,GAAG,QAAS,KAAK,QAASC,GAAG,QAASC,GAAG,QAAS,KAAK,QAAS,KAAK,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,OAAQC,GAAG,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,QAAQC,GAAG,QAASC,GAAG,GAAG/G,EAAE,SAASE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,MAAMC,EAAE,SAASN,EAAE,CAAC,EAAI,WAAWgG,GAAG,WAAW,KAAK,WAAWtD,EAAE,WAAWuD,GAAG,SAAWlG,EAAE,WAAWmG,GAAG,QAAWlG,EAAE,QAAWmG,GAAG,WAAWlG,EAAE,WAAWC,EAAE,WAAWkG,GAAG,WAAWtG,EAAE,WAAW,KAAK,WAAWK,EAAE,WAAWkG,GAAG,WAAWhG,EAAE,WAAWiG,GAAG,UAAW/F,EAAE,WAAW,KAAK,UAAWC,EAAE,WAAW+F,GAAG,WAAW9F,EAAE,UAAW+F,GAAG,WAAW,KAAK,WAAW,KAAK,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,KAAKtG,EAAE,KAAKuG,GAAG,OAAOlH,EAAE,CAACF,EAAE,CAAC,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,EAAE,EAAI,QAASI,EAAE,EAAEC,EAAE,QAASE,EAAE,EAAEI,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE+B,EAAE,EAAEC,EAAE,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,QAASC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,QAASC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,EAAE,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAE/E,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE,KAAK,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,QAASC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEtN,EAAE,EAAEC,EAAE,EAAEsN,EAAE,EAAEC,EAAE,EAAEC,EAAE,QAASC,EAAE,QAASC,EAAE,QAASC,EAAE,QAAS3O,EAAE,QAAQkE,EAAE,QAAS+P,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEjB,GAAG,EAAEkB,GAAG,EAAEC,GAAG,EAAElB,GAAG,GAAGnG,EAAE,SAASE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAIC,EAAE,QAAQN,EAAE,CAAC,EAAI,WAAW,EAAI,WAAW,EAAI,WAAW,EAAI,UAAW,EAAI,WAAW,EAAI,WAAW,EAAI,WAAW,EAAI,WAAWE,EAAE,WAAWiH,GAAG,UAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWnH,EAAE,WAAWkG,GAAG,WAAWkB,GAAG,WAAWC,GAAG,WAAWnH,EAAE,WAAWiG,GAAG,WAAW7F,EAAE,WAAWC,EAAE,WAAWC,EAAE,UAAWC,EAAE,UAAW+B,EAAE,WAAWC,EAAE,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,SAAWC,GAAG,UAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,EAAE,SAAWC,GAAG,UAAWC,GAAG,UAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAW/E,EAAE,WAAWC,EAAE,UAAWC,EAAE,UAAW,KAAK,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,UAAWC,EAAE,WAAWtN,EAAE,WAAWC,EAAE,UAAWsN,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,UAAWC,EAAE,WAAWC,EAAE,WAAW3O,EAAE,WAAWkE,EAAE,YAAYuJ,EAAE,CAACT,EAAE,IAAIC,EAAE,IAAIE,EAAE,IAAI8G,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIjB,GAAG,IAAIkB,GAAG,IAAIC,GAAG,IAAIlB,GAAG,MAAMrG,EAAE,CAACH,EAAE,CAACG,EAAE,EAAEU,EAAE,SAAU,KAAK,EAAE8G,GAAG,EAAEC,GAAG,UAAWC,GAAG,UAAWC,GAAG,UAAWC,GAAG,SAAUC,GAAG,UAAWC,GAAG,UAAWC,GAAG,SAAUC,GAAG,UAAWC,GAAG,QAASC,GAAG,SAAUC,GAAG,SAAUC,GAAG,SAAUC,GAAG,QAASC,GAAG,UAAWC,GAAG,UAAWC,GAAG,SAAUC,GAAG,SAAUC,GAAG,OAAQC,GAAG,QAASC,GAAG,QAAS,KAAK,QAAS,KAAK,QAASpC,GAAG,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,QAAQC,GAAG,QAASC,GAAG,QAAQC,GAAG,OAAOC,GAAG,QAAQC,GAAG,UAAW9G,EAAE,SAASE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAIC,EAAE,gBAAgBN,EAAE,CAAC,KAAK,WAAWyH,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAW5H,EAAE,UAAW6H,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAW,KAAK,WAAW,KAAK,UAAWpC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,KAAKtG,EAAE,OAAOT,EAAE,CAACJ,EAAE,CAACgJ,GAAG,SAAU3I,EAAE,IAAIE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,IAAIC,EAAE,aAAaN,EAAE,CAAC8I,GAAG,YAAarI,EAAE,CAACX,EAAE,CAAC2C,GAAG,EAAEC,EAAE,SAAUpC,EAAE,EAAEyI,GAAG,EAAEC,GAAG,UAAWC,GAAG,EAAEC,GAAG,SAAUxB,GAAG,QAAS,KAAK,EAAE,KAAK,SAAUvH,EAAE,SAASE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,GAAG,IAAIC,EAAE,kBAAkBN,EAAE,CAAC+I,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWxG,GAAG,WAAWC,EAAE,UAAWwG,GAAG,UAAWxB,GAAG,UAAW,KAAK,WAAW,KAAK,WAAWpH,EAAE,aAAaoC,EAAE,CAAC5C,EAAE,CAACE,EAAE,EAAEF,EAAE,GAAGK,EAAE,SAASE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAIC,EAAE,qBAAqBN,EAAE,CAACA,EAAE,UAAWF,EAAE,YAAaC,EAAE,CAACD,EAAE,CAACA,EAAE,EAAEK,EAAE,EAAEE,EAAE,EAAEkF,EAAE,EAAEc,GAAG,EAAEkB,GAAG,EAAEjB,GAAG,GAAGnG,EAAE,IAAIE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,GAAG,GAAG,IAAIC,EAAE,eAAeN,EAAE,CAACF,EAAE,WAAWK,EAAE,UAAWkG,GAAG,WAAWkB,GAAG,WAAWlH,EAAE,WAAWiG,GAAG,WAAWf,EAAE,YAAY5E,EAAE,CAAC4E,EAAE,WAAWhF,EAAE,CAACT,EAAE,CAACQ,EAAE,SAASH,EAAE,SAASE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAIC,EAAE,qBAAqBN,EAAE,CAACM,EAAE,aAAaE,EAAE,CAACV,EAAE,CAACQ,EAAE,SAAUH,EAAE,MAAME,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAIC,EAAE,sBAAsBN,EAAE,CAACM,EAAE,aAAaI,EAAE,CAACZ,EAAE,CAACA,EAAE,EAAEK,EAAE,GAAGA,EAAE,KAAKE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAIC,EAAE,YAAYN,EAAE,CAACF,EAAE,WAAWK,EAAE,YAAaS,EAAE,CAACd,EAAE,CAAC2G,GAAG,SAAStG,EAAE,SAASE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,IAAIC,EAAE,yBAAyBN,EAAE,CAACyG,GAAG,YAAY9F,EAAE,CAAC8F,GAAG,WAAW5F,EAAE,CAACf,EAAE,CAAC4C,EAAE,QAASC,EAAE,QAASC,EAAE,QAAQ,KAAK,EAAE,KAAK,EAAE,KAAK,SAAU,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,SAAU,KAAK,EAAE,KAAK,SAAUuG,GAAG,SAAUC,GAAG,SAAUzC,GAAG,SAAU0C,GAAG,SAAUC,GAAG,SAAUC,GAAG,UAAWpJ,EAAE,SAASE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,GAAG,IAAIC,EAAE,mBAAmBN,EAAE,CAAC0C,EAAE,UAAW,KAAK,WAAW,KAAK,UAAW,KAAK,WAAW,KAAK,UAAW,KAAK,WAAW,KAAK,WAAW,KAAK,WAAW,KAAK,WAAW,KAAK,WAAWyG,GAAG,WAAWC,GAAG,UAAWzC,GAAG,UAAW0C,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAW5G,EAAE,WAAWC,EAAE,aAAa9B,EAAE,CAAChB,EAAE,CAAC,KAAK,SAAUK,EAAE,SAASE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,IAAIC,EAAE,aAAaN,EAAE,CAAC,KAAK,aAAae,EAAE,CAACjB,EAAE,CAAC0J,GAAG,GAAGrJ,EAAE,SAASE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,IAAIC,EAAE,gBAAgBN,EAAE,CAACwJ,GAAG,aAAaxI,EAAE,CAAClB,EAAE,CAAC2J,GAAG,QAASC,GAAG,GAAGvJ,EAAE,MAAME,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,GAAG,GAAG,IAAIC,EAAE,gBAAgBN,EAAE,CAACyJ,GAAG,WAAWC,GAAG,+BCAtplB9c,EAAOC,QAAQ,CAAC,EAAI,MAAM,EAAI,IAAI,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAKiT,EAAE,KAAKK,EAAE,KAAKE,EAAE,KAAKM,EAAE,KAAKL,EAAE,MAAMN,EAAE,IAAIC,EAAE,IAAIC,EAAE,IAAIO,EAAE,KAAKiC,EAAE,IAAI3C,EAAE,IAAIQ,EAAE,KAAKC,EAAE,KAAKE,EAAE,KAAKE,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKtN,EAAE,KAAKC,EAAE,KAAKsN,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAK3O,EAAE,KAAKkE,EAAE,MAAMuL,EAAE,KAAKC,EAAE,KAAK2C,EAAE,KAAK/F,EAAE,MAAMsC,EAAE,MAAMC,EAAE,MAAMC,EAAE,MAAMC,EAAE,MAAMC,EAAE,MAAMC,EAAE,MAAMC,EAAE,MAAMvO,EAAE,MAAMwO,EAAE,MAAMtO,EAAE,MAAMuO,EAAE,MAAMC,EAAE,MAAMM,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKE,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKS,GAAG,OAAOC,GAAG,OAAOG,GAAG,OAAOE,GAAG,OAAOlE,GAAG,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,YAAY,KAAK,OAAOiE,GAAG,OAAOE,GAAG,OAAOC,GAAG,OAAOC,GAAG,OAAOC,GAAG,OAAOC,GAAG,OAAOC,GAAG,OAAOM,GAAG,OAAOG,GAAG,UAAUtH,GAAG,MAAMoC,GAAG,IAAIqD,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMG,GAAG,OAAOC,GAAG,OAAOU,GAAG,KAAKC,GAAG,UAAUC,GAAG,YAAYC,GAAG,OAAOC,GAAG,OAAOE,GAAG,OAAOC,GAAG,UAAUE,GAAG,UAAUC,GAAG,UAAUC,GAAG,UAAUC,GAAG,UAAUC,GAAG,UAAUC,GAAG,MAAMC,GAAG,YAAYC,GAAG,OAAOC,GAAG,YAAYC,GAAG,YAAYC,GAAG,YAAYC,GAAG,YAAYC,GAAG,YAAYC,GAAG,OAAOC,GAAG,OAAOC,GAAG,YAAYC,GAAG,YAAYC,GAAG,YAAYC,GAAG,YAAYC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAM,KAAK,MAAM,KAAK,cAAc,KAAK,UAAU,KAAK,UAAU,KAAK,UAAU,KAAK,MAAM,KAAK,MAAM,KAAK,YAAY,KAAK,OAAO,KAAK,OAAOC,GAAG,OAAOC,GAAG,OAAOC,GAAG,OAAOC,GAAG,OAAOC,GAAG,OAAOC,GAAG,QAAQC,GAAG,MAAMC,GAAG,8BCAjxD9c,EAAOC,QAAQ,CAACiT,EAAE,KAAKK,EAAE,OAAOE,EAAE,UAAUM,EAAE,SAASL,EAAE,SAASN,EAAE,QAAQC,EAAE,UAAUC,EAAE,UAAUO,EAAE,UAAUiC,EAAE,KAAK3C,EAAE,SAASQ,EAAE,UAAUC,EAAE,SAASE,EAAE,SAASE,EAAE,SAASC,EAAE,UAAUC,EAAE,SAASC,EAAE,QAAQC,EAAE,6CCElN,MAAMrT,EAAW,iBACXmE,EAAW,yBACX6X,EAAa,EAAQ,OAE3B,SAASC,EAAsBC,GAC7B,OAAO/U,OAAOC,KAAK8U,GAAc7U,QAAO,CAACqE,EAAOrH,KAC9CqH,EAAMvH,EAASE,IAAY6X,EAAa7X,GACjCqH,IACN,CAAC,EACN,CAEAzM,EAAOC,QAAQuE,OAAS0D,OAAOC,KAAK4U,GAAY3U,QAAO,CAACjC,EAAKiL,KAC3D,IAAI6L,EAAeF,EAAW3L,GA+B9B,OA9BAjL,EAAIpF,EAASqQ,IAAQlJ,OAAOC,KAAK8U,GAAc7U,QAAO,CAACvB,EAAMqW,KAC7C,MAAVA,EACFrW,EAAKmL,aAAegL,EAAsBC,EAAaC,IACpC,MAAVA,EACTrW,EAAK3B,SAAW+X,EAAaC,GAAO9U,QAAO,CAACqB,EAAMrE,KAChC,KAAZA,EACFqE,EAAK/C,KAAK,MAEV+C,EAAK/C,KAAKxB,EAASE,IAEdqE,IACN,IACgB,MAAVyT,EACTrW,EAAKsW,kBAAoBH,EAAsBC,EAAaC,IACzC,MAAVA,EACTrW,EAAKuE,QAAU6R,EAAaC,GACT,MAAVA,EACTrW,EAAKkL,aAAe7J,OAAOC,KAAK8U,EAAaC,IAAQ9U,QACnD,CAACgV,EAAMC,KACLD,EAAKlY,EAASmY,IAASJ,EAAaC,GAAOG,GACpCD,IAET,CAAC,GAIHvW,EAAKyW,OAASL,EAAaC,GAEtBrW,IACN,CAAC,GACGV,IACN,CAAC,0BC9CJnG,EAAOC,QAAQsd,gBAAkB,EAAjC,4BCAAvd,EAAOC,QAAQc,SAAW,EAA1B,0BCAAf,EAAOC,QAAU,CAChB,OAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,OAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,MAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,IAAO,KACP,MAAO,KACP,MAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,2CCtHT,IAAIud,EAAmB,EAAQ,MAC3BC,EAAa,EAAQ,OAEzBzd,EAAOC,QAAU,CAOfyd,UAAW,SAAmBtP,GAC5B,IAAIuP,EAAsBC,UAAUpY,OAAS,QAAsB0D,IAAjB0U,UAAU,GAAmBA,UAAU,GAAK,GAE1FC,EAAmBF,EAAoBnY,OAAS,EAAImY,EAAsBzV,OAAOC,KAAKqV,GAEtF5W,OAAS,EAGTkX,EAAQ,CAAC,EAsBb,OApBAD,EAAiB5U,SAAQ,SAAU8U,GAEjC,IAAKP,EAAiBQ,eAAeD,GACnC,MAAM,IAAI3Z,MAAM,6BAA+B2Z,EAA/B,+BAAqF7V,OAAOC,KAAKqV,GAAkB9X,KAAK,OAG1I,IAAIuY,EAAUT,EAAiBO,GAE/BnX,EAAS6W,EAAWC,UAAUtP,EAAQ6P,GACtC7P,EAASxH,EAAOsX,SAGgB,mBAArBD,EAAQE,WACjBL,EAAMC,GAAiBE,EAAQE,WAEnC,IAGAvX,EAAOwX,SAASN,GAETlX,CACT,mCC/BF,IAAIyX,EAAe,WAAc,SAASC,EAAiBC,EAAQC,GAAS,IAAK,IAAIlY,EAAI,EAAGA,EAAIkY,EAAMhZ,OAAQc,IAAK,CAAE,IAAImY,EAAaD,EAAMlY,GAAImY,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAM1W,OAAO2W,eAAeN,EAAQE,EAAWrN,IAAKqN,EAAa,CAAE,CAAE,OAAO,SAAUK,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYT,EAAiBQ,EAAYxa,UAAWya,GAAiBC,GAAaV,EAAiBQ,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAIfG,EAAa,WAef,SAASA,EAAWC,EAAIC,GACtB,IAAIrV,EAAQqV,EAAKrV,MACbsV,EAASD,EAAKC,OACdC,EAASF,EAAKE,QApBtB,SAAyBC,EAAUR,GAAe,KAAMQ,aAAoBR,GAAgB,MAAM,IAAIS,UAAU,oCAAwC,CAsBpJC,CAAgBtb,KAAM+a,GAEtB/a,KAAKub,IAAMP,EACXhb,KAAKwb,QAAUN,EAGflb,KAAK4F,MAAQA,EACb5F,KAAKmb,OAASA,GAAUH,EAAGG,OAC3Bnb,KAAKyb,OAAS7V,EAAM8V,SAAS,KAG7B1b,KAAKwI,OAASwS,EAAGxS,OACjBxI,KAAK2b,WAAaX,EAAGW,WACrB3b,KAAK4b,UAAYZ,EAAGY,UACpB5b,KAAK6b,OAASb,EAAGa,OACjB7b,KAAK8b,QAAUd,EAAGc,OACpB,CA4DA,OArDA3B,EAAaY,EAAY,CAAC,CACxB7N,IAAK,OACL6O,MAAO,SAAcxN,GACnB,OAAOvO,KAAKub,IAAIhe,KAAKgR,EACvB,GAMC,CACDrB,IAAK,UACL6O,MAAO,SAAiBxN,GACtB,OAAOvO,KAAKub,IAAIS,QAAQzN,EAC1B,GAMC,CACDrB,IAAK,WACL6O,MAAO,WAIL,OAHK/b,KAAKic,kBACRjc,KAAKic,gBAAkB,IAAMjc,KAAKmb,OAAS,IAAMnb,KAAK4F,OAEjD5F,KAAKic,eACd,GAMC,CACD/O,IAAK,OACL6O,MAAO,SAAcxN,GACnB,IAAI7L,EAAS1C,KAAKub,IAAIW,KAAK3N,GAE3B,IAAKvO,KAAKwb,UAAY9Y,EACpB,OAAOA,EAKT,IAAK,IAAIyZ,KAFTzZ,EAAOwY,OAAS,CAAC,EAEClb,KAAKwb,QAAS,CAC9B,IAAIY,EAAcpc,KAAKwb,QAAQW,GAC/BzZ,EAAOwY,OAAOiB,GAASzZ,EAAO0Z,EAChC,CAEA,OAAO1Z,CACT,KAGKqY,CACT,CAjGiB,GAmGjBjf,EAAOC,QAAU,CACfgf,WAAYA,mCC9Gdjf,EAAOC,QAAU,CAIfsgB,WAAW,EAGXC,UAAW,SAAmBC,GAG5B,QAFgBA,EAAI3W,MAAM8V,SAAS,OAOnCa,EAAI3W,MAAQ2W,EAAI3W,MAAM1H,QAAQ,IAAK,IAGnC8B,KAAKqc,UAAYE,EAAI3W,MAAM8V,SAAS,MAE7B,EACT,EACAc,KAAM,SAAchc,GAClB,IAAIuF,EAAOvF,EAAKuF,KAGhB,GAAkB,SAAdA,EAAK0W,MAAkC,MAAf1W,EAAKgW,MAAjC,CAIA,IAAIW,EAAU,UACVC,EAAW,IAEX3c,KAAKqc,YACPK,EAAU,cACVC,EAAW,MAGbnc,EAAKtC,QAAQ,CACXiI,KAAM,iBACNyW,YAAa,CAAC,CACZzW,KAAM,aACN7H,KAAM,CACJ6H,KAAM,OACN4V,MAAO,MACPU,KAAM,UACNI,OAAQ,MAEV3Q,GAAI,CACF/F,KAAM,OACN4V,MAAOW,EACPD,KAAM,UACNI,OAAQF,MAxBd,CA4BF,iCCxDF7gB,EAAOC,QAAU,CAKf+gB,YAAa,CAAC,EAKdC,KAAM,WACJ/c,KAAK8c,YAAc,CAAC,CACtB,EAMA7C,SAAU,WACR,OAAOja,KAAK8c,WACd,EACAE,MAAO,SAAexc,GACpB,IAAIuF,EAAOvF,EAAKuF,KAGXA,EAAK9F,OAKVD,KAAK8c,YAAY/W,EAAK9F,MAAQ8F,EAAKjE,cAE5BiE,EAAK9F,YACL8F,EAAKkX,QACd,EACAC,cAAe,SAAuB1c,GACpC,IAAIuF,EAAOvF,EAAKuF,KAGE,SAAdA,EAAK0W,OAIT1W,EAAK0W,KAAO,SACZ1W,EAAKoX,UAAYpX,EAAKjE,cACfiE,EAAKqX,aACd,mCC3CFthB,EAAOC,QAAU,CACfshB,OAAQ,SAAgBpC,GACtB,IAAIlV,EAAOkV,EAAKlV,KAEZA,EAAKH,MAAM8V,SAAS,OACtB3V,EAAKH,MAAQG,EAAKH,MAAM1H,QAAQ,IAAK,IAEzC,sCCdFpC,EAAOC,QAAU,CAEf0f,OAAQ,EAAQ,OAGhB6B,qBAAsB,EAAQ,KAG9BC,MAAO,EAAQ,wCCJjB,SAASC,EAAIzX,GACX,OAAOA,EAAO0X,EAAU1X,EAAKI,MAAMJ,GAAQ,EAC7C,CAKA,IAAI0X,EAAY,CACdJ,OAAQ,SAAgBtX,GACtB,MAAO,IAAMyX,EAAIzX,EAAK2X,MAAQ,IAAM3X,EAAKH,KAC3C,EACA+X,YAAa,SAAqB5X,GAChC,OAAQA,EAAK6W,aAAe,IAAI3a,IAAIub,GAAKhc,KAAK,GAChD,EACAoc,YAAa,SAAqB7X,GAChC,OAAOyX,EAAIzX,EAAK8X,MAAQ,IAAML,EAAIzX,EAAK+X,MACzC,EACAd,MAAO,SAAejX,GACpB,IAAIgY,EAAaP,EAAIzX,EAAKgY,YAE1B,OAAIhY,EAAKiY,UAEHjY,EAAK9F,KACA,OAAS8F,EAAKkX,SAAWlX,EAAK9F,MAAQ,IAAM8d,EAAa,IAG3D,IAAMA,EAAa,IAGrB,MAAQA,EAAa,GAC9B,EACAb,cAAe,SAAuBnX,GACpC,OAAQA,EAAK0W,MACX,IAAK,SACH,MAAO,KAAO1W,EAAKoX,UACrB,IAAK,OACH,MAAO,QAAUpX,EAAKqX,cAAgBrX,EAAKoX,WAAa,IAC1D,QACE,MAAM,IAAI9B,UAAU,+BAAiCtV,EAAK0W,MAEhE,EACAwB,UAAW,SAAmBlY,GAC5B,OAAQA,EAAK0W,MACX,IAAK,IACL,IAAK,IACL,IAAK,MACL,IAAK,MACH,OAAO1W,EAAK0W,KAEd,IAAK,YAED,IAAIyB,EAAYV,EAAIzX,EAAKmY,WAEzB,OAAInY,EAAKoY,SACA,MAAQD,EAAY,IAGtB,MAAQA,EAAY,IAG/B,IAAK,aAED,IAAIE,EAAaZ,EAAIzX,EAAKmY,WAE1B,OAAInY,EAAKoY,SACA,OAASC,EAAa,IAGxB,OAASA,EAAa,IAGjC,QACE,MAAM,IAAI/C,UAAU,2BAA6BtV,EAAK0W,MAE5D,EACA4B,eAAgB,SAAwBtY,GACtC,IAAI6W,EAAc7W,EAAK6W,YAAY3a,IAAIub,GAAKhc,KAAK,IAEjD,OAAIuE,EAAKoY,SACA,KAAOvB,EAAc,IAGvB,IAAMA,EAAc,GAC7B,EACA0B,WAAY,SAAoBvY,GAC9B,OAAOyX,EAAIzX,EAAKzH,MAAQ,IAAMkf,EAAIzX,EAAKmG,GACzC,EACAqS,WAAY,SAAoBxY,GAC9B,MAAO,GAAKyX,EAAIzX,EAAKgY,YAAcP,EAAIzX,EAAKyY,WAC9C,EACAC,WAAY,SAAoB1Y,GAC9B,IAAIyY,OAAa,EACbE,EAAS3Y,EAAK2Y,OAAS,GAAK,IAEhC,OAAQ3Y,EAAK0W,MACX,IAAK,IACL,IAAK,IACL,IAAK,IACH+B,EAAazY,EAAK0W,KAClB,MACF,IAAK,QAGD+B,EADEzY,EAAKzH,OAASyH,EAAKmG,GACR,IAAMnG,EAAKzH,KAAO,IAGvByH,EAAKmG,GAKI,IAAMnG,EAAKzH,KAAO,IAAMyH,EAAKmG,GAAK,IAJpC,IAAMnG,EAAKzH,KAAO,KAMnC,MACF,QACE,MAAM,IAAI+c,UAAU,4BAA8BtV,EAAK0W,MAG3D,MAAO,GAAK+B,EAAaE,CAC3B,EACAlC,KAAM,SAAczW,GAClB,IAAIgW,EAAQhW,EAAKgW,MAEjB,OAAQhW,EAAK0W,MACX,IAAK,SAED,OAAI1W,EAAK4Y,QACA,KAAO5C,EAETA,EAGX,IAAK,MACL,IAAK,UACL,IAAK,MACL,IAAK,UACL,IAAK,UACL,IAAK,OACH,OAAOA,EAET,QACE,MAAM,IAAIV,UAAU,sBAAwBtV,EAAK0W,MAEvD,EACAmC,gBAAiB,SAAyB7Y,GAUxC,MAAO,MATUA,EAAKoY,SAAW,IAAM,KASZ,KANtBpY,EAAK8Y,WAAc9Y,EAAK+Y,OAGhB,GAFA/Y,EAAK9F,KAAO,KAKmB8F,EAAKgW,MAAQ,GAC3D,GAGFjgB,EAAOC,QAAU,CAMfgjB,SAAUvB,mCClKZ,IAAIwB,EAAgb,SAAUC,EAAK7c,GAAK,GAAIyE,MAAMC,QAAQmY,GAAQ,OAAOA,EAAY,GAAIC,OAAOC,YAAYnb,OAAOib,GAAQ,OAAxf,SAAuBA,EAAK7c,GAAK,IAAIgd,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWC,OAAKva,EAAW,IAAM,IAAK,IAAiCwa,EAA7BC,EAAKR,EAAIC,OAAOC,cAAmBE,GAAMG,EAAKC,EAAGC,QAAQC,QAAoBP,EAAK5c,KAAKgd,EAAGzD,QAAY3Z,GAAKgd,EAAK9d,SAAWc,GAA3Did,GAAK,GAAkE,CAAE,MAAOO,GAAON,GAAK,EAAMC,EAAKK,CAAK,CAAE,QAAU,KAAWP,GAAMI,EAAW,QAAGA,EAAW,QAAK,CAAE,QAAU,GAAIH,EAAI,MAAMC,CAAI,CAAE,CAAE,OAAOH,CAAM,CAAuHS,CAAcZ,EAAK7c,GAAa,MAAM,IAAIiZ,UAAU,uDAA2D,EAIjpB,SAASyE,EAAmBb,GAAO,GAAIpY,MAAMC,QAAQmY,GAAM,CAAE,IAAK,IAAI7c,EAAI,EAAG2d,EAAOlZ,MAAMoY,EAAI3d,QAASc,EAAI6c,EAAI3d,OAAQc,IAAO2d,EAAK3d,GAAK6c,EAAI7c,GAAM,OAAO2d,CAAM,CAAS,OAAOlZ,MAAMvI,KAAK2gB,EAAQ,CAElM,IAAIe,EAAuB,KAsT3B,SAASC,EAAQC,EAAIC,GACnB,IAAKA,EACH,OAAO,EAGT,GAAID,EAAG5e,SAAW6e,EAAG7e,OACnB,OAAO,EAGT,IAAK,IAAIc,EAAI,EAAGA,EAAI8d,EAAG5e,OAAQc,IAAK,CAClC,IAAIge,EAAKF,EAAG9d,GACRie,EAAKF,EAAG/d,GAEZ,GAAIge,EAAGE,OAASD,EAAGC,KACjB,OAAO,EAGT,GAAI,GAAG5hB,OAAOohB,EAAmBM,IAAK7Y,OAAO/F,KAAK,OAAS,GAAG9C,OAAOohB,EAAmBO,IAAK9Y,OAAO/F,KAAK,KACvG,OAAO,CAEX,CAEA,OAAO,CACT,CAMA,SAAS+e,EAAcH,EAAIC,EAAIG,EAAOC,GACpC,IAAIC,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkB5b,EAEtB,IACE,IAAK,IAA8C6b,EAA1CC,EAAaL,EAASvB,OAAOC,cAAuBuB,GAA8BG,EAASC,EAAWpB,QAAQC,MAAOe,GAA6B,EAGzJ,IAAKK,EAAYX,EAAIC,EAAIG,EAFZK,EAAO9E,OAGlB,OAAO,CAGb,CAAE,MAAO6D,GACPe,GAAqB,EACrBC,EAAkBhB,CACpB,CAAE,QACA,KACOc,GAA8BI,EAAWE,QAC5CF,EAAWE,QAEf,CAAE,QACA,GAAIL,EACF,MAAMC,CAEV,CACF,CAEA,OAAO,CACT,CAKA,SAASG,EAAYX,EAAIC,EAAIG,EAAO3D,GAClC,IAAKmD,EAAqBI,KAAQJ,EAAqBK,GACrD,OAAO,EAGT,IAAIY,EAAuBT,EAAMJ,GAAIvD,GACjCqE,EAAuBV,EAAMH,GAAIxD,GAGrC,OAAKoE,IAAyBC,GAKvBlB,EAAqBI,GAAIe,IAAIF,IAAyBjB,EAAqBK,GAAIc,IAAID,EAC5F,CAEAplB,EAAOC,QAAU,CACfqlB,SAhYF,SAAkBC,GAChB,IAAIb,EAAQa,EAAIC,qBACZC,EAAYvd,OAAOC,KAAKuc,GACxBC,EAAWY,EAAIG,cACfC,EAAYJ,EAAIK,2BAEpB1B,EAAuB,CAAC,EAExB,IAAI2B,EAAe,IAAIC,IAEvBL,EAAUxc,SAAQ,SAAU8c,GAC1BA,EAAQC,OAAOD,GACGJ,EAAUN,IAAIU,GAG9B7B,EAAqB6B,GAASJ,GAE9BE,EAAaI,IAAIF,GACjB7B,EAAqB6B,GAASF,EAElC,IAMA,IAAI5X,EAAM,CAEV,CAAC4X,EAAcF,GAAWxgB,QAAO,SAAU+gB,GACzC,OAAOA,EAAI1B,KAAO,CACpB,KAEI2B,OAAU,EACVC,OAAW,EAGfD,EAAUlY,EAAIA,EAAIzI,OAAS,GAG3B4gB,EAAWnY,EAAIA,EAAIzI,OAAS,GAwH5B,IApHA,IAAI6gB,EAAQ,WACV,IAvDclD,EAuDVmD,EAAmB,CAAC,EAEpBC,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBvd,EAEtB,IACE,IAAK,IAA6Cwd,EAAzCC,EAAaR,EAAQ/C,OAAOC,cAAuBkD,GAA8BG,EAASC,EAAW/C,QAAQC,MAAO0C,GAA6B,EAAM,CAC9J,IAAIK,EAAOF,EAAOzG,MAGd4G,EAAgB,CAAC,EAEjBC,GApEM3D,EAoEWyD,EApEG7b,MAAMC,QAAQmY,GAAOA,EAAMpY,MAAMvI,KAAK2gB,IAqE1D4D,EAAQD,EAAM,GACdE,EAAOF,EAAMrhB,MAAM,GAEvBohB,EAAcE,GAAS,IAAIjB,IAAI,CAACiB,IAIhC,IAAIE,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBje,EAEtB,IACEke,EAAU,IAAK,IAA0CC,EAAtCC,EAAaN,EAAK5D,OAAOC,cAAuB4D,GAA8BI,EAASC,EAAW1D,QAAQC,MAAOoD,GAA6B,EAAM,CACrK,IAAIlB,EAAQsB,EAAOpH,MACfsH,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBve,EAEtB,IACE,IAAK,IAAgEwe,EAA5DC,EAAazf,OAAOC,KAAK0e,GAAezD,OAAOC,cAAuBkE,GAA8BG,EAASC,EAAW/D,QAAQC,MAAO0D,GAA6B,EAAM,CACjL,IAAIK,EAAeF,EAAOzH,MAI1B,GAAIwE,EAAcsB,EAAO6B,EAAclD,EAAOC,GAAW,CACvDkC,EAAce,GAAc3B,IAAIF,GAChCc,EAAcd,GAASc,EAAce,GACrC,SAASR,CACX,CACF,CAGF,CAAE,MAAOtD,GACP0D,GAAqB,EACrBC,EAAkB3D,CACpB,CAAE,QACA,KACOyD,GAA8BI,EAAWzC,QAC5CyC,EAAWzC,QAEf,CAAE,QACA,GAAIsC,EACF,MAAMC,CAEV,CACF,CAEAZ,EAAcd,GAAS,IAAID,IAAI,CAACC,GAClC,CACF,CAAE,MAAOjC,GACPoD,GAAqB,EACrBC,EAAkBrD,CACpB,CAAE,QACA,KACOmD,GAA8BK,EAAWpC,QAC5CoC,EAAWpC,QAEf,CAAE,QACA,GAAIgC,EACF,MAAMC,CAEV,CACF,CAKAjf,OAAO2f,OAAOvB,EAAkBO,EAClC,CAGF,CAAE,MAAO/C,GACP0C,GAAqB,EACrBC,EAAkB3C,CACpB,CAAE,QACA,KACOyC,GAA8BI,EAAWzB,QAC5CyB,EAAWzB,QAEf,CAAE,QACA,GAAIsB,EACF,MAAMC,CAEV,CACF,CAEAvC,EAAuBoC,EAEvB,IAAIwB,EAAU,IAAIhC,IAAI5d,OAAOC,KAAKme,GAAkBngB,KAAI,SAAU4f,GAChE,OAAOO,EAAiBP,EAC1B,KAEA9X,EAAIvH,KAAK,GAAG9D,OAAOohB,EAAmB8D,KAGtC3B,EAAUlY,EAAIA,EAAIzI,OAAS,GAG3B4gB,EAAWnY,EAAIA,EAAIzI,OAAS,EAC9B,GAEQ2e,EAAQgC,EAASC,IACvBC,IAOF,IAAI0B,EAAU,IAAIC,IACdC,EAAM,EACV9B,EAAQld,SAAQ,SAAUid,GACxB,OAAO6B,EAAQ7B,IAAIA,EAAK+B,IAC1B,IAGA,IAAIC,EAAiB,CAAC,EAElBC,EAA2B,IAAIrC,IAE/BsC,EAAwB,SAA+BlC,EAAK+B,GAC9D,IAAII,GAA4B,EAC5BC,GAAoB,EACpBC,OAAiBrf,EAErB,IACE,IAAK,IAAwCsf,EAApCC,EAAYvC,EAAI9C,OAAOC,cAAsBgF,GAA6BG,EAAQC,EAAU7E,QAAQC,MAAOwE,GAA4B,EAAM,CACpJ,IAAItC,EAAQyC,EAAMvI,MAEd0F,EAAUN,IAAIU,IAChBoC,EAAyBlC,IAAIgC,EAEjC,CACF,CAAE,MAAOnE,GACPwE,GAAoB,EACpBC,EAAiBzE,CACnB,CAAE,QACA,KACOuE,GAA6BI,EAAUvD,QAC1CuD,EAAUvD,QAEd,CAAE,QACA,GAAIoD,EACF,MAAMC,CAEV,CACF,CACF,EAEIG,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkB1f,EAEtB,IACE,IAAK,IAAuD2f,EAAnDC,EAAaf,EAAQgB,UAAU3F,OAAOC,cAAuBqF,GAA8BG,EAASC,EAAWlF,QAAQC,MAAO6E,GAA6B,EAAM,CACxK,IAAIvJ,EAAO0J,EAAO5I,MAEd+I,EAAQ9F,EAAe/D,EAAM,GAE7B+G,EAAM8C,EAAM,GACZC,EAAOD,EAAM,GAEjBd,EAAee,GAAQ,CAAC,EACxB,IAAIC,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBlgB,EAEtB,IACE,IAAK,IAA8CmgB,EAA1CC,EAAa3E,EAASvB,OAAOC,cAAuB6F,GAA8BG,EAASC,EAAW1F,QAAQC,MAAOqF,GAA6B,EAAM,CAC/J,IAAInI,EAASsI,EAAOpJ,MAEpBmI,EAAsBlC,EAAK+C,GAG3B,IAAIM,OAAqB,EACrBC,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBxgB,EAEtB,IACE,IAAK,IAAyCygB,EAArCC,EAAa1D,EAAI9C,OAAOC,cAAuBmG,GAA8BG,EAASC,EAAWhG,QAAQC,MAAO2F,GAA6B,EAAM,CAC1J,IAAIK,EAAgBF,EAAO1J,MAG3B,GADAsJ,EAAqB7E,EAAMmF,GAAe9I,GAExC,KAEJ,CACF,CAAE,MAAO+C,GACP2F,GAAqB,EACrBC,EAAkB5F,CACpB,CAAE,QACA,KACO0F,GAA8BI,EAAW1E,QAC5C0E,EAAW1E,QAEf,CAAE,QACA,GAAIuE,EACF,MAAMC,CAEV,CACF,CAEIH,IACFrB,EAAee,GAAMlI,GAAUgH,EAAQ+B,IAAI5F,EAAqBqF,IAEpE,CACF,CAAE,MAAOzF,GACPqF,GAAqB,EACrBC,EAAkBtF,CACpB,CAAE,QACA,KACOoF,GAA8BI,EAAWpE,QAC5CoE,EAAWpE,QAEf,CAAE,QACA,GAAIiE,EACF,MAAMC,CAEV,CACF,CACF,CAGF,CAAE,MAAOtF,GACP6E,GAAqB,EACrBC,EAAkB9E,CACpB,CAAE,QACA,KACO4E,GAA8BI,EAAW5D,QAC5C4D,EAAW5D,QAEf,CAAE,QACA,GAAIyD,EACF,MAAMC,CAEV,CACF,CAKA,OAHArD,EAAIwE,mBAAmB7B,GACvB3C,EAAIyE,yBAAyB7B,GAEtB5C,CACT,uCChUA,IAAIlH,EAAe,WAAc,SAASC,EAAiBC,EAAQC,GAAS,IAAK,IAAIlY,EAAI,EAAGA,EAAIkY,EAAMhZ,OAAQc,IAAK,CAAE,IAAImY,EAAaD,EAAMlY,GAAImY,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAM1W,OAAO2W,eAAeN,EAAQE,EAAWrN,IAAKqN,EAAa,CAAE,CAAE,OAAO,SAAUK,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYT,EAAiBQ,EAAYxa,UAAWya,GAAiBC,GAAaV,EAAiBQ,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAEnB,SAASkF,EAAmBb,GAAO,GAAIpY,MAAMC,QAAQmY,GAAM,CAAE,IAAK,IAAI7c,EAAI,EAAG2d,EAAOlZ,MAAMoY,EAAI3d,QAASc,EAAI6c,EAAI3d,OAAQc,IAAO2d,EAAK3d,GAAK6c,EAAI7c,GAAM,OAAO2d,CAAM,CAAS,OAAOlZ,MAAMvI,KAAK2gB,EAAQ,CAIlM,IAAI8G,EAAe,EAAQ,OAGvBC,EADW,EAAQ,MACQA,gBAO3BC,EAAM,WACR,SAASA,EAAIC,IAbf,SAAyB9K,EAAUR,GAAe,KAAMQ,aAAoBR,GAAgB,MAAM,IAAIS,UAAU,oCAAwC,CAcpJC,CAAgBtb,KAAMimB,GAEtBjmB,KAAKmmB,KAAOD,CACd,CA4VA,OArVA/L,EAAa8L,EAAK,CAAC,CACjB/Y,IAAK,WACL6O,MAAO,WACL/b,KAAKshB,qBAELthB,KAAKomB,+BAAiCpmB,KAAKqmB,uBAC3CrmB,KAAKsmB,yBAA2BtmB,KAAKumB,iBAErCR,EAAa3E,SAASphB,KACxB,GAMC,CACDkN,IAAK,cACL6O,MAAO,WACL,OAAO/b,KAAKmmB,KAAK3E,aACnB,GAMC,CACDtU,IAAK,2BACL6O,MAAO,WAML,OALK/b,KAAKqmB,wBAERrmB,KAAKshB,qBAGAthB,KAAKqmB,sBACd,GAMC,CACDnZ,IAAK,kCACL6O,MAAO,WAML,OALK/b,KAAKomB,gCAERpmB,KAAKshB,qBAGAthB,KAAKomB,8BACd,GAMC,CACDlZ,IAAK,qBACL6O,MAAO,SAA4ByE,GACjCxgB,KAAKumB,iBAAmB/F,CAC1B,GAMC,CACDtT,IAAK,2BACL6O,MAAO,SAAkCyK,GACvCxmB,KAAKqmB,uBAAyBG,CAChC,GAMC,CACDtZ,IAAK,qBACL6O,MAAO,WACL,IAAI0K,EAAQzmB,KAEZ,GAAIA,KAAKumB,iBACP,OAAOvmB,KAAKumB,iBAId,IAAIG,EAAW1mB,KAAKmmB,KAAK7E,qBACrBqF,EAAY3iB,OAAOC,KAAKyiB,GAE5B1mB,KAAKqmB,uBAAyB,IAAIzE,IA8ClC,IA3CA,IAGIgF,EAAW,CAHEF,EAASC,EAAU,IAAIX,IAKpCvF,EAAWzgB,KAAKwhB,cAChBqF,EAAqB7mB,KAAKmmB,KAAKzE,2BAE/BoF,EAAW,CAAC,EAGZ5C,EAAwB,SAA+B6C,GACzD,IAAI5C,GAA4B,EAC5BC,GAAoB,EACpBC,OAAiBrf,EAErB,IACE,IAAK,IAAuDsf,EAAnDC,EAAYsC,EAAmB3H,OAAOC,cAAsBgF,GAA6BG,EAAQC,EAAU7E,QAAQC,MAAOwE,GAA4B,EAAM,CACnK,IAAI6C,EAAoB1C,EAAMvI,MAI9B,IAA2C,IAAvCgL,EAAOhpB,QAAQipB,GAA2B,CAC5CP,EAAMJ,uBAAuBtE,IAAIgF,EAAOvlB,KAAK,MAC7C,KACF,CACF,CACF,CAAE,MAAOoe,GACPwE,GAAoB,EACpBC,EAAiBzE,CACnB,CAAE,QACA,KACOuE,GAA6BI,EAAUvD,QAC1CuD,EAAUvD,QAEd,CAAE,QACA,GAAIoD,EACF,MAAMC,CAEV,CACF,CACF,EAEOuC,EAAStlB,OAAS,GAAG,CAC1B,IAAIylB,EAASH,EAASK,QAClBC,EAAgBH,EAAOvlB,KAAK,KAChCslB,EAASI,GAAiB,CAAC,EAE3B,IAAI1C,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkB1f,EAEtB,IACE,IAAK,IAA8C2f,EAA1CC,EAAanE,EAASvB,OAAOC,cAAuBqF,GAA8BG,EAASC,EAAWlF,QAAQC,MAAO6E,GAA6B,EAAM,CAC/J,IAAI3H,EAAS8H,EAAO5I,MAEhBoL,EAAW,GAGfjD,EAAsB6C,GAEtB,IAAI1E,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBvd,EAEtB,IACE,IAAK,IAA4Cwd,EAAxCC,EAAasE,EAAO7H,OAAOC,cAAuBkD,GAA8BG,EAASC,EAAW/C,QAAQC,MAAO0C,GAA6B,EAAM,CAC7J,IAEI+E,EAAoBV,EAFZlE,EAAOzG,OAEqBc,GACxC,GAAKuK,EAAL,CAIA,IAAIrE,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBje,EAEtB,IACE,IAAK,IAAuDme,EAAnDC,EAAagE,EAAkBlI,OAAOC,cAAuB4D,GAA8BI,EAASC,EAAW1D,QAAQC,MAAOoD,GAA6B,EAAM,CACxK,IAAIsE,EAAmBlE,EAAOpH,MAEzB2K,EAASW,IAGdF,EAAS3kB,KAAK8kB,MAAMH,EAAUrH,EAAmB4G,EAASW,GAAkBrB,IAC9E,CACF,CAAE,MAAOpG,GACPoD,GAAqB,EACrBC,EAAkBrD,CACpB,CAAE,QACA,KACOmD,GAA8BK,EAAWpC,QAC5CoC,EAAWpC,QAEf,CAAE,QACA,GAAIgC,EACF,MAAMC,CAEV,CACF,CA5BA,CA6BF,CACF,CAAE,MAAOrD,GACP0C,GAAqB,EACrBC,EAAkB3C,CACpB,CAAE,QACA,KACOyC,GAA8BI,EAAWzB,QAC5CyB,EAAWzB,QAEf,CAAE,QACA,GAAIsB,EACF,MAAMC,CAEV,CACF,CAEA,IAAIgF,EAAuB,IAAI3F,IAAIuF,GAC/BK,EAAoB,GAAG9oB,OAAOohB,EAAmByH,IAErD,GAAIC,EAAkBlmB,OAAS,EAAG,CAChC,IAAImmB,EAAiBD,EAAkBhmB,KAAK,KAE5CslB,EAASI,GAAerK,GAAU4K,EAE7BX,EAAShN,eAAe2N,IAC3Bb,EAASvkB,QAAQmlB,EAErB,CACF,CACF,CAAE,MAAO5H,GACP6E,GAAqB,EACrBC,EAAkB9E,CACpB,CAAE,QACA,KACO4E,GAA8BI,EAAW5D,QAC5C4D,EAAW5D,QAEf,CAAE,QACA,GAAIyD,EACF,MAAMC,CAEV,CACF,CACF,CAEA,OAAO1kB,KAAKumB,iBAAmBvmB,KAAK0nB,mBAAmBZ,EACzD,GAOC,CACD5Z,IAAK,qBACL6O,MAAO,SAA4B4L,GACjC,IAAIC,EAAe,CAAC,EAEpB5nB,KAAKsmB,yBAA2BqB,EAChC,IAAIE,EAAkB,CAAC,EAMvB,IAAK,IAAIC,KAJT9jB,OAAOC,KAAK0jB,GAAoB5iB,SAAQ,SAAU+iB,EAAgBC,GAChEH,EAAaE,GAAkBC,EAAY,CAC7C,IAE2BJ,EAAoB,CAC7C,IAAIK,EAAcL,EAAmBG,GACjCG,EAAM,CAAC,EAEX,IAAK,IAAIpL,KAAUmL,EACjBC,EAAIpL,GAAU+K,EAAaI,EAAYnL,IAGzCgL,EAAgBD,EAAaE,IAAmBG,CAClD,CAGAjoB,KAAKomB,+BAAiCpmB,KAAKqmB,uBAC3CrmB,KAAKqmB,uBAAyB,IAAIzE,IAElC,IAAIyB,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBve,EAEtB,IACE,IAAK,IAAyEwe,EAArEC,EAAazjB,KAAKomB,+BAA+BlH,OAAOC,cAAuBkE,GAA8BG,EAASC,EAAW/D,QAAQC,MAAO0D,GAA6B,EAAM,CAC1L,IAAI6E,EAAkB1E,EAAOzH,MAE7B/b,KAAKqmB,uBAAuBtE,IAAI6F,EAAaM,GAC/C,CACF,CAAE,MAAOtI,GACP0D,GAAqB,EACrBC,EAAkB3D,CACpB,CAAE,QACA,KACOyD,GAA8BI,EAAWzC,QAC5CyC,EAAWzC,QAEf,CAAE,QACA,GAAIsC,EACF,MAAMC,CAEV,CACF,CAEA,OAAOsE,CACT,GAOC,CACD3a,IAAK,6BACL6O,MAAO,WAKL,OAJK/b,KAAKsmB,0BAERtmB,KAAKshB,qBAEAthB,KAAKsmB,wBACd,GAMC,CACDpZ,IAAK,UACL6O,MAAO,SAAiBxN,GAKtB,IAJA,IAAIsT,EAAQ,EACRzf,EAAI,EACJoe,EAAQxgB,KAAKshB,qBAEV/S,EAAOnM,IAEZ,KADAyf,EAAQrB,EAAMqB,GAAOtT,EAAOnM,OAE1B,OAAO,EAIX,QAAKpC,KAAK0hB,2BAA2BP,IAAIU,EAK3C,KAGKoE,CACT,CAlWU,GAoWVnqB,EAAOC,QAAUkqB,sCCpXjB,IAAIkC,EAAM,EAAQ,OACdlC,EAAM,EAAQ,OAEdmC,EAAgB,EAAQ,OACxBC,EAAW,EAAQ,MAEvBvsB,EAAOC,QAAU,CAKfosB,IAAKA,EACLlC,IAAKA,EAKLoC,SAAUA,EAUVC,MAAO,SAAepe,GACpB,OAAOke,EAAchsB,MAAM8N,EAC7B,EAWAqe,MAAO,SAAere,GACpB,OAAO,IAAI+b,EAAIjmB,KAAKsoB,MAAMpe,GAC5B,EAMA3M,KAAM,SAAc2M,EAAQqE,GAC1B,OAAOvO,KAAKuoB,MAAMre,GAAQD,QAAQsE,EACpC,sCClDF,IAAI4Z,EAAM,EAAQ,OACdK,EAAW,EAAQ,OAGnBC,EADW,EAAQ,MACAA,QAcvB,SAASC,EAAKhY,GACZ,IAAIiY,EAAU,IAAIH,EACdI,EAAW,IAAIJ,EAAS,CAC1B/G,WAAW,IAGb,OAAO,IAAI0G,EAAIQ,EAAQE,cAAcnY,EAAGkY,GAAWA,EACrD,CAwBA,SAASE,EAAQjG,EAAOkG,GAMtB,OALAlG,EAAMmG,IAAIvH,WAAY,EACtBsH,EAAOC,IAAIvH,WAAY,EAEvBoB,EAAMmG,IAAIH,cAAcJ,EAASM,EAAOE,IAEjC,IAAId,EAAItF,EAAMoG,GAAIF,EAAOC,IAClC,CA8CA,SAASE,EAAOrG,EAAOkG,GACrB,IAAIJ,EAAU,IAAIH,EACdI,EAAW,IAAIJ,EAYnB,OAVAG,EAAQE,cAAcJ,EAAS5F,EAAMoG,IACrCN,EAAQE,cAAcJ,EAASM,EAAOE,IAEtCL,EAASnH,WAAY,EACrBoB,EAAMmG,IAAIvH,WAAY,EACtBsH,EAAOC,IAAIvH,WAAY,EAEvBoB,EAAMmG,IAAIH,cAAcJ,EAASG,GACjCG,EAAOC,IAAIH,cAAcJ,EAASG,GAE3B,IAAIT,EAAIQ,EAASC,EAC1B,CA6FA9sB,EAAOC,QAAU,CACfotB,IApJF,SAAatG,GACX,IAAK,IAAIuG,EAAO1P,UAAUpY,OAAQ+nB,EAAYxiB,MAAMuiB,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IACnGD,EAAUC,EAAO,GAAK5P,UAAU4P,GAGlC,IAAInF,GAA4B,EAC5BC,GAAoB,EACpBC,OAAiBrf,EAErB,IACE,IAAK,IAA8Csf,EAA1CC,EAAY8E,EAAUnK,OAAOC,cAAsBgF,GAA6BG,EAAQC,EAAU7E,QAAQC,MAAOwE,GAA4B,EAGpJtB,EAAQiG,EAAQjG,EAFDyB,EAAMvI,MAIzB,CAAE,MAAO6D,GACPwE,GAAoB,EACpBC,EAAiBzE,CACnB,CAAE,QACA,KACOuE,GAA6BI,EAAUvD,QAC1CuD,EAAUvD,QAEd,CAAE,QACA,GAAIoD,EACF,MAAMC,CAEV,CACF,CAEA,OAAOxB,CACT,EAsHE6F,KAAMA,EACN9X,EAhLF,WACE,OAAO8X,EAAKD,EACd,EA+KEc,GA1FF,SAAY1G,GACV,IAAK,IAAI2G,EAAQ9P,UAAUpY,OAAQ+nB,EAAYxiB,MAAM2iB,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACzGJ,EAAUI,EAAQ,GAAK/P,UAAU+P,GAGnC,IAAIjF,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkB1f,EAEtB,IACE,IAAK,IAA+C2f,EAA3CC,EAAayE,EAAUnK,OAAOC,cAAuBqF,GAA8BG,EAASC,EAAWlF,QAAQC,MAAO6E,GAA6B,EAG1J3B,EAAQqG,EAAOrG,EAFA8B,EAAO5I,MAI1B,CAAE,MAAO6D,GACP6E,GAAqB,EACrBC,EAAkB9E,CACpB,CAAE,QACA,KACO4E,GAA8BI,EAAW5D,QAC5C4D,EAAW5D,QAEf,CAAE,QACA,GAAIyD,EACF,MAAMC,CAEV,CACF,CAEA,OAAO7B,CACT,EA4DE6G,IA7BF,SAAaC,GAGX,OAFAA,EAASV,GAAGJ,cAAcJ,EAASkB,EAASX,KAC5CW,EAASX,IAAIH,cAAcJ,EAASkB,EAASV,IACtCU,CACT,EA0BEC,YAnDF,SAAqBD,GACnB,IAAIhB,EAAU,IAAIH,EACdI,EAAW,IAAIJ,EAAS,CAC1B/G,WAAW,IAWb,OAPAkH,EAAQE,cAAcJ,EAASkB,EAASV,IACxCN,EAAQE,cAAcJ,EAASG,GAE/Be,EAASX,IAAIvH,WAAY,EACzBkI,EAASX,IAAIH,cAAcJ,EAASG,GACpCA,EAASC,cAAcJ,EAASkB,EAASV,IAElC,IAAId,EAAIQ,EAASC,EAC1B,EAqCEiB,QArBF,SAAiBF,GAEf,OADAA,EAASX,IAAIH,cAAcJ,EAASkB,EAASV,IACtCU,CACT,EAmBEG,YAbF,SAAqBH,GAEnB,OADAA,EAASV,GAAGJ,cAAcJ,EAASkB,EAASX,KACrCW,CACT,uCC9MA,IAAII,EAAS,EAAQ,OAEjBC,EAAW,EAAQ,MACnBb,EAAMa,EAASb,IACfT,EAAOsB,EAAStB,KAChBa,EAAKS,EAAST,GACdG,EAAMM,EAASN,IACfG,EAAUG,EAASH,QACnBC,EAAcE,EAASF,YAO3B,SAAStM,EAAIzX,GACX,GAAIA,IAAS0X,EAAU1X,EAAKI,MAC1B,MAAM,IAAIjG,MAAM6F,EAAKI,KAAO,6CAG9B,OAAOJ,EAAO0X,EAAU1X,EAAKI,MAAMJ,GAAQ,EAC7C,CAKA,IAAI0X,EAAY,CACdJ,OAAQ,SAAgBtX,GACtB,GAAmB,KAAfA,EAAKH,MACP,MAAM,IAAI1F,MAAM,yCAGlB,OAAOsd,EAAIzX,EAAK2X,KAClB,EACAC,YAAa,SAAqB5X,GAChC,IAAIsjB,GAAatjB,EAAK6W,aAAe,IAAI3a,IAAIub,GAC7C,OAAO2L,EAAI7B,WAAMtiB,EAtCrB,SAA4Bia,GAAO,GAAIpY,MAAMC,QAAQmY,GAAM,CAAE,IAAK,IAAI7c,EAAI,EAAG2d,EAAOlZ,MAAMoY,EAAI3d,QAASc,EAAI6c,EAAI3d,OAAQc,IAAO2d,EAAK3d,GAAK6c,EAAI7c,GAAM,OAAO2d,CAAM,CAAS,OAAOlZ,MAAMvI,KAAK2gB,EAAQ,CAsClKa,CAAmBuJ,GACjD,EACAzL,YAAa,SAAqB7X,GAChC,OAAOwjB,EAAG/L,EAAIzX,EAAK8X,MAAOL,EAAIzX,EAAK+X,OACrC,EACAS,WAAY,SAAoBxY,GAC9B,OAAQA,EAAKyY,WAAW/B,MACtB,IAAK,IACH,OAAOiN,EAAIlM,EAAIzX,EAAKgY,aACtB,IAAK,IACH,OAAO8L,EAAQrM,EAAIzX,EAAKgY,aAC1B,IAAK,IACH,OAAO+L,EAAYtM,EAAIzX,EAAKgY,aAC9B,QACE,MAAM,IAAI7d,MAAM,wBAA0B6F,EAAKyY,WAAW/B,KAAO,KAEvE,EACAD,KAAM,SAAczW,GAClB,GAAkB,WAAdA,EAAK0W,KACP,MAAM,IAAIvc,MAAM,iDAGlB,OAAOwoB,EAAK3iB,EAAKgW,MACnB,EACAiB,MAAO,SAAejX,GACpB,OAAOyX,EAAIzX,EAAKgY,WAClB,GAGFjiB,EAAOC,QAAU,CAIfK,MAAO,SAAe8N,GACpB,IAAIqS,EAAMrS,EAYV,OAVIA,aAAkBmT,SACpBnT,EAAS,GAAKA,GAGM,iBAAXA,IACTqS,EAAMwN,EAAOrpB,MAAMwJ,EAAQ,CACzB+f,kBAAkB,KAIfzM,EAAIjB,EACb,uCCrFF,IAAIpC,EAAe,WAAc,SAASC,EAAiBC,EAAQC,GAAS,IAAK,IAAIlY,EAAI,EAAGA,EAAIkY,EAAMhZ,OAAQc,IAAK,CAAE,IAAImY,EAAaD,EAAMlY,GAAImY,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAM1W,OAAO2W,eAAeN,EAAQE,EAAWrN,IAAKqN,EAAa,CAAE,CAAE,OAAO,SAAUK,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYT,EAAiBQ,EAAYxa,UAAWya,GAAiBC,GAAaV,EAAiBQ,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAQfsP,EAAQ,EAAQ,OAGhBzB,EADW,EAAQ,MACAA,QAUnBD,EAAW,SAAU2B,GAGvB,SAAS3B,IAGP,OAzBJ,SAAyBpN,EAAUR,GAAe,KAAMQ,aAAoBR,GAAgB,MAAM,IAAIS,UAAU,oCAAwC,CAuBpJC,CAAgBtb,KAAMwoB,GArB1B,SAAoC4B,EAAM/jB,GAAQ,IAAK+jB,EAAQ,MAAM,IAAIC,eAAe,6DAAgE,OAAOhkB,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B+jB,EAAP/jB,CAAa,CAuBpOikB,CAA2BtqB,MAAOwoB,EAAS+B,WAAavmB,OAAOwmB,eAAehC,IAAWlB,MAAMtnB,KAAM0Z,WAC9G,CAqLA,OA3MF,SAAmB+Q,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIrP,UAAU,kEAAoEqP,GAAeD,EAASrqB,UAAY4D,OAAO2mB,OAAOD,GAAcA,EAAWtqB,UAAW,CAAEwqB,YAAa,CAAE7O,MAAO0O,EAAUjQ,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAeiQ,IAAY1mB,OAAO6mB,eAAiB7mB,OAAO6mB,eAAeJ,EAAUC,GAAcD,EAASF,UAAYG,EAAY,CAgB3eI,CAAUtC,EAAU2B,GAQpBhQ,EAAaqO,EAAU,CAAC,CACtBtb,IAAK,UAYL6O,MAAO,SAAiBxN,GACtB,IAAIwc,EAAUrR,UAAUpY,OAAS,QAAsB0D,IAAjB0U,UAAU,GAAmBA,UAAU,GAAK,IAAIkI,IAGtF,GAAImJ,EAAQ5J,IAAInhB,MACd,OAAO,EAMT,GAHA+qB,EAAQhJ,IAAI/hB,MAGU,IAAlBuO,EAAOjN,OAAc,CAEvB,GAAItB,KAAKyhB,UACP,OAAO,EAKT,IAAI0C,GAA4B,EAC5BC,GAAoB,EACpBC,OAAiBrf,EAErB,IACE,IAAK,IAAyEsf,EAArEC,EAAYvkB,KAAKgrB,uBAAuBvC,GAASvJ,OAAOC,cAAsBgF,GAA6BG,EAAQC,EAAU7E,QAAQC,MAAOwE,GAA4B,EAG/K,GAFgBG,EAAMvI,MAER9R,QAAQ,GAAI8gB,GACxB,OAAO,CAGb,CAAE,MAAOnL,GACPwE,GAAoB,EACpBC,EAAiBzE,CACnB,CAAE,QACA,KACOuE,GAA6BI,EAAUvD,QAC1CuD,EAAUvD,QAEd,CAAE,QACA,GAAIoD,EACF,MAAMC,CAEV,CACF,CAEA,OAAO,CACT,CAGA,IAAIxH,EAAStO,EAAO,GAChBuU,EAAOvU,EAAOhN,MAAM,GAEpB0pB,EAAoBjrB,KAAKgrB,uBAAuBnO,GAChD2H,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkB1f,EAEtB,IACE,IAAK,IAAuD2f,EAAnDC,EAAaqG,EAAkB/L,OAAOC,cAAuBqF,GAA8BG,EAASC,EAAWlF,QAAQC,MAAO6E,GAA6B,EAGlK,GAFiBG,EAAO5I,MAET9R,QAAQ6Y,GACrB,OAAO,CAMb,CAAE,MAAOlD,GACP6E,GAAqB,EACrBC,EAAkB9E,CACpB,CAAE,QACA,KACO4E,GAA8BI,EAAW5D,QAC5C4D,EAAW5D,QAEf,CAAE,QACA,GAAIyD,EACF,MAAMC,CAEV,CACF,CAEA,IAAIrC,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBvd,EAEtB,IACE,IAAK,IAA0Ewd,EAAtEC,EAAaziB,KAAKgrB,uBAAuBvC,GAASvJ,OAAOC,cAAuBkD,GAA8BG,EAASC,EAAW/C,QAAQC,MAAO0C,GAA6B,EAGrL,GAFkBG,EAAOzG,MAET9R,QAAQsE,EAAQwc,GAC9B,OAAO,CAGb,CAAE,MAAOnL,GACP0C,GAAqB,EACrBC,EAAkB3C,CACpB,CAAE,QACA,KACOyC,GAA8BI,EAAWzB,QAC5CyB,EAAWzB,QAEf,CAAE,QACA,GAAIsB,EACF,MAAMC,CAEV,CACF,CAEA,OAAO,CACT,GAOC,CACDrV,IAAK,oBACL6O,MAAO,WACL,IAAImP,EAASlrB,KAwCb,OAtCKA,KAAKmrB,iBACR,WACE,IAAIC,EAAqBF,EAAOF,uBAAuBvC,GACnD4C,EAAUH,EAAOC,gBAAkB,IAAIvJ,IAC3CyJ,EAAQtJ,IAAImJ,GACZ,IAAInI,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBje,EAEtB,IACE,IAAK,IAAwDme,EAApDC,EAAagI,EAAmBlM,OAAOC,cAAuB4D,GAA8BI,EAASC,EAAW1D,QAAQC,MAAOoD,GAA6B,EAAM,CACzK,IAAIuI,EAAYnI,EAAOpH,MAElBsP,EAAQlK,IAAImK,KACfD,EAAQtJ,IAAIuJ,GACMA,EAAUC,oBAChBxmB,SAAQ,SAAU8c,GAC5B,OAAOwJ,EAAQtJ,IAAIF,EACrB,IAEJ,CACF,CAAE,MAAOjC,GACPoD,GAAqB,EACrBC,EAAkBrD,CACpB,CAAE,QACA,KACOmD,GAA8BK,EAAWpC,QAC5CoC,EAAWpC,QAEf,CAAE,QACA,GAAIgC,EACF,MAAMC,CAEV,CACF,CACD,CAlCD,GAqCKjjB,KAAKmrB,eACd,KAGK3C,CACT,CA7Le,CA6Lb0B,GAEFpuB,EAAOC,QAAUysB,sCCpNjB,IAAIxJ,EAAgb,SAAUC,EAAK7c,GAAK,GAAIyE,MAAMC,QAAQmY,GAAQ,OAAOA,EAAY,GAAIC,OAAOC,YAAYnb,OAAOib,GAAQ,OAAxf,SAAuBA,EAAK7c,GAAK,IAAIgd,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWC,OAAKva,EAAW,IAAM,IAAK,IAAiCwa,EAA7BC,EAAKR,EAAIC,OAAOC,cAAmBE,GAAMG,EAAKC,EAAGC,QAAQC,QAAoBP,EAAK5c,KAAKgd,EAAGzD,QAAY3Z,GAAKgd,EAAK9d,SAAWc,GAA3Did,GAAK,GAAkE,CAAE,MAAOO,GAAON,GAAK,EAAMC,EAAKK,CAAK,CAAE,QAAU,KAAWP,GAAMI,EAAW,QAAGA,EAAW,QAAK,CAAE,QAAU,GAAIH,EAAI,MAAMC,CAAI,CAAE,CAAE,OAAOH,CAAM,CAAuHS,CAAcZ,EAAK7c,GAAa,MAAM,IAAIiZ,UAAU,uDAA2D,EAE7oBlB,EAAe,WAAc,SAASC,EAAiBC,EAAQC,GAAS,IAAK,IAAIlY,EAAI,EAAGA,EAAIkY,EAAMhZ,OAAQc,IAAK,CAAE,IAAImY,EAAaD,EAAMlY,GAAImY,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAM1W,OAAO2W,eAAeN,EAAQE,EAAWrN,IAAKqN,EAAa,CAAE,CAAE,OAAO,SAAUK,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYT,EAAiBQ,EAAYxa,UAAWya,GAAiBC,GAAaV,EAAiBQ,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAMfoP,EAAW,EAAQ,MACnBvB,EAAUuB,EAASvB,QACnBzC,EAAkBgE,EAAShE,gBAe3BmC,EAAM,WACR,SAASA,EAAIQ,EAASC,IApBxB,SAAyBxN,EAAUR,GAAe,KAAMQ,aAAoBR,GAAgB,MAAM,IAAIS,UAAU,oCAAwC,CAqBpJC,CAAgBtb,KAAMmoB,GAEtBnoB,KAAKipB,GAAKN,EACV3oB,KAAKgpB,IAAMJ,CACb,CAgMA,OAzLAzO,EAAagO,EAAK,CAAC,CACjBjb,IAAK,UACL6O,MAAO,SAAiBxN,GACtB,OAAOvO,KAAKipB,GAAGhf,QAAQsE,EACzB,GAMC,CACDrB,IAAK,cACL6O,MAAO,WACL,IAAK/b,KAAKwrB,UAAW,CACnBxrB,KAAKwrB,UAAY,IAAI5J,IACrB,IAAIpB,EAAQxgB,KAAKshB,qBACjB,IAAK,IAAIO,KAASrB,EAAO,CACvB,IAAIiL,EAAcjL,EAAMqB,GACxB,IAAK,IAAIhF,KAAU4O,EACb5O,IAAWmJ,GACbhmB,KAAKwrB,UAAUzJ,IAAIlF,EAGzB,CACF,CACA,OAAO7c,KAAKwrB,SACd,GAMC,CACDte,IAAK,qBACL6O,MAAO,WAKL,OAJK/b,KAAK0rB,kBAER1rB,KAAKshB,qBAEAthB,KAAK0rB,gBACd,GAMC,CACDxe,IAAK,2BACL6O,MAAO,WACL,IAAK/b,KAAKqmB,uBAAwB,CAChCrmB,KAAKqmB,uBAAyB,IAAIzE,IAClC,IAAIuC,GAA4B,EAC5BC,GAAoB,EACpBC,OAAiBrf,EAErB,IACE,IAAK,IAA8Dsf,EAA1DC,EAAYvkB,KAAK2rB,qBAAqBzM,OAAOC,cAAsBgF,GAA6BG,EAAQC,EAAU7E,QAAQC,MAAOwE,GAA4B,EAAM,CAC1K,IAAIyH,EAAiBtH,EAAMvI,MAE3B/b,KAAKqmB,uBAAuBtE,IAAI6J,EAAe9pB,OACjD,CACF,CAAE,MAAO8d,GACPwE,GAAoB,EACpBC,EAAiBzE,CACnB,CAAE,QACA,KACOuE,GAA6BI,EAAUvD,QAC1CuD,EAAUvD,QAEd,CAAE,QACA,GAAIoD,EACF,MAAMC,CAEV,CACF,CACF,CACA,OAAOrkB,KAAKqmB,sBACd,GAMC,CACDnZ,IAAK,qBACL6O,MAAO,WACL,IAAI0K,EAAQzmB,KAEZ,IAAKA,KAAKumB,iBAAkB,CAC1BvmB,KAAKumB,iBAAmB,CAAC,EACzBvmB,KAAK0rB,iBAAmB,IAAI9J,IAE5B,IAAImJ,EAAU,IAAInJ,IACdiK,EAAU,IAAIjK,KAED,SAASkK,EAAWjK,GACnC,IAAIkJ,EAAQ5J,IAAIU,GAAhB,CAIAkJ,EAAQhJ,IAAIF,GACZA,EAAM/f,OAASipB,EAAQzK,KACvBmG,EAAMF,iBAAiB1E,EAAM/f,QAAU,CAAC,EAEpC+f,EAAMJ,WACRgF,EAAMiF,iBAAiB3J,IAAIF,GAG7B,IAAI4J,EAAc5J,EAAMkK,iBAEpBvH,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkB1f,EAEtB,IACE,IAAK,IAAiD2f,EAA7CC,EAAa6G,EAAYvM,OAAOC,cAAuBqF,GAA8BG,EAASC,EAAWlF,QAAQC,MAAO6E,GAA6B,EAAM,CAClK,IAAIvJ,EAAO0J,EAAO5I,MAEd+I,EAAQ9F,EAAe/D,EAAM,GAE7B4B,EAASiI,EAAM,GACfmG,EAAoBnG,EAAM,GAE1BkH,EAAgB,GACpBH,EAAQ9J,IAAIlF,GACZ,IAAIwF,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBvd,EAEtB,IACE,IAAK,IAAuDwd,EAAnDC,EAAawI,EAAkB/L,OAAOC,cAAuBkD,GAA8BG,EAASC,EAAW/C,QAAQC,MAAO0C,GAA6B,EAAM,CACxK,IAAIiJ,EAAY9I,EAAOzG,MAEvB+P,EAAWR,GACXU,EAAcxpB,KAAK8oB,EAAUxpB,OAC/B,CACF,CAAE,MAAO8d,GACP0C,GAAqB,EACrBC,EAAkB3C,CACpB,CAAE,QACA,KACOyC,GAA8BI,EAAWzB,QAC5CyB,EAAWzB,QAEf,CAAE,QACA,GAAIsB,EACF,MAAMC,CAEV,CACF,CAEAkE,EAAMF,iBAAiB1E,EAAM/f,QAAQ+a,GAAUmP,CACjD,CACF,CAAE,MAAOpM,GACP6E,GAAqB,EACrBC,EAAkB9E,CACpB,CAAE,QACA,KACO4E,GAA8BI,EAAW5D,QAC5C4D,EAAW5D,QAEf,CAAE,QACA,GAAIyD,EACF,MAAMC,CAEV,CACF,CApEA,CAqEF,CAGAoH,CAAW9rB,KAAKipB,IAGhB8B,EAAQhmB,SAAQ,SAAU8c,UACjB4E,EAAMF,iBAAiB1E,EAAM/f,QAAQ2mB,GAC5ChC,EAAMF,iBAAiB1E,EAAM/f,QAAQkkB,GAAmB,GAAGtnB,OAjNrE,SAA4BugB,GAAO,GAAIpY,MAAMC,QAAQmY,GAAM,CAAE,IAAK,IAAI7c,EAAI,EAAG2d,EAAOlZ,MAAMoY,EAAI3d,QAASc,EAAI6c,EAAI3d,OAAQc,IAAO2d,EAAK3d,GAAK6c,EAAI7c,GAAM,OAAO2d,CAAM,CAAS,OAAOlZ,MAAMvI,KAAK2gB,EAAQ,CAiNtHa,CAAmB+B,EAAM0J,sBAAsBtpB,KAAI,SAAUmP,GAC7H,OAAOA,EAAEtP,MACX,GACF,GACF,CAEA,OAAO9B,KAAKumB,gBACd,KAGK4B,CACT,CAvMU,GAyMVrsB,EAAOC,QAAUosB,iCCvNjBrsB,EAAOC,QAAU,CACf0sB,QARY,IASZzC,gBAJoByC,sCCFtB,IAAItO,EAAe,WAAc,SAASC,EAAiBC,EAAQC,GAAS,IAAK,IAAIlY,EAAI,EAAGA,EAAIkY,EAAMhZ,OAAQc,IAAK,CAAE,IAAImY,EAAaD,EAAMlY,GAAImY,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAM1W,OAAO2W,eAAeN,EAAQE,EAAWrN,IAAKqN,EAAa,CAAE,CAAE,OAAO,SAAUK,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYT,EAAiBQ,EAAYxa,UAAWya,GAAiBC,GAAaV,EAAiBQ,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAIfsP,EAAQ,WACV,SAASA,IACP,IACI+B,GADOvS,UAAUpY,OAAS,QAAsB0D,IAAjB0U,UAAU,GAAmBA,UAAU,GAAK,CAAC,GACtD+H,UACtBA,OAA+Bzc,IAAnBinB,GAAuCA,GAN3D,SAAyB7Q,EAAUR,GAAe,KAAMQ,aAAoBR,GAAgB,MAAM,IAAIS,UAAU,oCAAwC,CAQpJC,CAAgBtb,KAAMkqB,GAKtBlqB,KAAKksB,aAAe,IAAIpI,IAKxB9jB,KAAKyhB,UAAYA,CACnB,CA0CA,OAnCAtH,EAAa+P,EAAO,CAAC,CACnBhd,IAAK,iBACL6O,MAAO,WACL,OAAO/b,KAAKksB,YACd,GAMC,CACDhf,IAAK,gBACL6O,MAAO,SAAuBc,EAAQsP,GAEpC,OADAnsB,KAAKgrB,uBAAuBnO,GAAQkF,IAAIoK,GACjCnsB,IACT,GAMC,CACDkN,IAAK,yBACL6O,MAAO,SAAgCc,GACrC,IAAI4O,EAAczrB,KAAKksB,aAAatG,IAAI/I,GAOxC,OALK4O,IACHA,EAAc,IAAI7J,IAClB5hB,KAAKksB,aAAalK,IAAInF,EAAQ4O,IAGzBA,CACT,KAGKvB,CACT,CA5DY,GA8DZpuB,EAAOC,QAAUmuB,sCCzEjB,IAAIkC,EAAQ,EAAQ,OAChBrC,EAAS,EAAQ,OACjBvQ,EAAY,EAAQ,OACpB6S,EAAyB,EAAQ,OAErCvwB,EAAOC,QAAU,CAiBfuwB,SAAU,SAAkBpiB,GAC1B,IAAI+Q,EAAOvB,UAAUpY,OAAS,QAAsB0D,IAAjB0U,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC5E6S,EAAiBtR,EAAKuR,UACtBA,OAA+BxnB,IAAnBunB,EAA+B,GAAKA,EAChDE,EAAiBxR,EAAKyR,UACtBA,OAA+B1nB,IAAnBynB,EAA+B,GAAKA,EAIhD9S,GAFgB6S,EAAUlrB,OAAS,EAAIkrB,EAAY3lB,MAAMvI,KAAK+tB,EAAuBpoB,SAEpDhD,QAAO,SAAUuY,GACpD,OAAQkT,EAAUhR,SAASlC,EAC7B,IAEI+C,EAAMrS,EACNA,aAAkBmT,SACpBnT,EAAS,GAAKA,GAGM,iBAAXA,IACTqS,EAAMwN,EAAOrpB,MAAMwJ,IAGrB,IAAIxH,EAAS,IAAI8W,EAAUmT,gBAAgBpQ,GACvCqQ,OAAmB,EAEvB,GAIEA,EAAmBlqB,EAAOnE,WAC1Bge,EAAM6P,EAAM1pB,EAAOsX,UAEnBL,EAAiB5U,SAAQ,SAAU8U,GACjC,IAAKwS,EAAuBlL,IAAItH,GAC9B,MAAM,IAAI3Z,MAAM,mCAAqC2Z,EAArC,+BAA2FhT,MAAMvI,KAAK+tB,EAAuBpoB,QAAQzC,KAAK,OAG5J,IAAIqrB,EAAcR,EAAuBzG,IAAI/L,GAIzCiT,EAAYtT,EAAUA,UAAU+C,EAAKsQ,GAErCC,EAAUvuB,aAAemE,EAAOnE,aAC9BuuB,EAAUvuB,WAAW+C,QAAUoB,EAAOnE,WAAW+C,OACnDoB,EAASoqB,EAKTvQ,EAAM6P,EAAM1pB,EAAOsX,UAGzB,UAIOtX,EAAOnE,aAAequB,GAE/B,OAAOlqB,CACT,mCClFF,IAAIqqB,EAAa,IAAIC,YAAY,GAC7BC,EAAa,IAAID,YAAY,GAMjClxB,EAAOC,QAAU,CACfmxB,eAAgB,KAChB7Q,WAAW,EACXU,KAAM,SAAcR,GAClBvc,KAAKktB,eAAiB,IAAItL,IAC1B5hB,KAAKqc,UAAYE,EAAI3W,MAAM8V,SAAS,IACtC,EACAY,UAAW,SAAmBC,GAC5B,OAAOA,EAAI3W,MAAM8V,SAAS,IAC5B,EACAc,KAAM,SAAchc,GAClB,IAAIuF,EAAOvF,EAAKuF,KACZonB,EAAS3sB,EAAK2sB,OAElB,IAAIC,MAAMrnB,EAAKsnB,aAMVrtB,KAAKqc,aAAatW,EAAKsnB,WAAa,OAAzC,CAIA,GAAoB,eAAhBF,EAAOhnB,KAAuB,CAKhC,KAAKnG,KAAKktB,eAAe/L,IAAIgM,KAeXG,EAfsCH,EAgBxD7uB,EAAOgvB,EAAWhvB,KAClB4N,EAAKohB,EAAWphB,GAGb5N,EAAK+uB,WAAaN,GAAczuB,EAAK+uB,WAAaJ,GAAc/gB,EAAGmhB,WAAaN,GAAc7gB,EAAGmhB,WAAaJ,IAnB/G,OAEFjtB,KAAKktB,eAAenL,IAAIoL,EAC1B,CAWJ,IAAwBG,EAClBhvB,EACA4N,EAXEqhB,EAAQxnB,EAAK8W,OAAOtY,cACpBgpB,IAAUxnB,EAAK8W,SACjB9W,EAAKgW,MAeX,SAA8Bc,EAAQ9W,GACpC,IAAIsnB,EAAYxQ,EAAOmQ,YAAY,GACnC,GAAkB,YAAdjnB,EAAK0W,KACP,MAAO,KAAO4Q,EAEhB,GAAkB,QAAdtnB,EAAK0W,KACP,MAAO,MAAQ4Q,EAAU9uB,SAAS,GAEpC,GAAkB,QAAdwH,EAAK0W,KACP,MAAO,MAAQ4Q,EAAU9uB,SAAS,IAEpC,GAAkB,YAAdwH,EAAK0W,KAAoB,CAC3B,GAAI1W,EAAKynB,gBAAiB,CACxB,IAAIC,EAuBV,SAAuCJ,GACrC,IACIK,GAASL,EAAY,OAAW,KAAQ,MAC5C,MAAO,CACLM,MAHSC,KAAKC,OAAOR,EAAY,OAAW,MAAS,OAG1C9uB,SAAS,IACpBmvB,MAAOA,EAAMnvB,SAAS,IAE1B,CA9BkCuvB,CAA8BT,GACtDM,EAAOF,EAAsBE,KAC7BD,EAAQD,EAAsBC,MAElC,MAAO,MAAQ,IAAIK,OAAO,EAAIJ,EAAKrsB,QAAUqsB,EAAO,MAAQ,IAAII,OAAO,EAAIL,EAAMpsB,QAAUosB,CAC7F,CAAO,GAAI3nB,EAAKgW,MAAML,SAAS,KAC7B,MAAO,OAAS2R,EAAU9uB,SAAS,IAAM,IAEzC,IAAIyvB,EAAOX,EAAU9uB,SAAS,IAC9B,MAAO,MAAQ,IAAIwvB,OAAO,EAAIC,EAAK1sB,QAAU0sB,CAEjD,CAEA,OAAOnR,CACT,CA1CmBoR,CAAqBV,EAAOxnB,GACzCA,EAAK8W,OAAS0Q,EACdxnB,EAAKsnB,UAAYE,EAAMP,YAAY,GAjBrC,CAmBF,mCCMF,SAASkB,EAAc/qB,EAAGC,GACxB,IAAI+qB,EAASC,EAAajrB,GACtBkrB,EAASD,EAAahrB,GAE1B,GAAI+qB,IAAWE,EAAQ,CAGrB,GAAe,eAAXlrB,EAAEgD,MAAoC,eAAX/C,EAAE+C,KAC/B,OAAQ,EAEV,GAAe,eAAX/C,EAAE+C,MAAoC,eAAXhD,EAAEgD,KAC/B,OAAO,EAET,GAAe,eAAXhD,EAAEgD,MAAoC,eAAX/C,EAAE+C,KAC/B,OAAOioB,EAAajrB,EAAE+I,IAAMkiB,EAAahrB,EAAE8I,IAE7C,GAAIoiB,EAAOnrB,IAAMmrB,EAAOlrB,IAAMmrB,EAAUprB,IAAMorB,EAAUnrB,GACtD,OAAOD,EAAE4Y,MAAQ3Y,EAAE2Y,OAAS,EAAI,CAEpC,CACA,OAAOoS,EAASE,CAClB,CAMA,SAASD,EAAarQ,GACpB,MAAwB,SAApBA,EAAW5X,KACY,MAArB4X,EAAWhC,OAGS,YAApBgC,EAAWtB,KAFN+R,IAKe,SAApBzQ,EAAWtB,MAAmB2Q,MAAMrP,EAAWsP,YACzC,EAEHtP,EAAWsP,UAGbtP,EAAWzf,KAAK+uB,SACzB,CAQA,SAASiB,EAAOvQ,GACd,IAAIhC,EAAQrC,UAAUpY,OAAS,QAAsB0D,IAAjB0U,UAAU,GAAmBA,UAAU,GAAK,KAEhF,MAA2B,SAApBqE,EAAW5X,MAAuC,SAApB4X,EAAWtB,OAAoBV,EAAQgC,EAAWhC,QAAUA,EAAQ,aAAaxe,KAAKwgB,EAAWhC,OACxI,CAMA,SAASwS,EAAUxQ,GACjB,MAA2B,SAApBA,EAAW5X,MAAuC,YAApB4X,EAAWtB,IAClD,CAQA,SAASgS,EAAY1Q,EAAY2Q,EAAOC,GACtC,IAAK,IAAIvsB,EAAI,EAAGA,EAAIssB,EAAMptB,OAAQc,IAChC,GAAIwsB,EAAW7Q,EAAY2Q,EAAMtsB,GAAIusB,GACnC,OAAO,EAGX,OAAO,CACT,CAQA,SAASC,EAAW7Q,EAAY8Q,EAAMF,GACpC,MAAwB,eAApB5Q,EAAW5X,KACNyoB,EAAW7Q,EAAWzf,KAAMuwB,EAAMF,IAAeC,EAAW7Q,EAAW7R,GAAI2iB,EAAMF,KAK7E,QAATE,IAAmBP,EAAOvQ,EAAY,SAAUuQ,EAAOvQ,EAAY,WAI1D,QAAT8Q,IAAmBP,EAAOvQ,EAAY,SAAUuQ,EAAOvQ,EAAY,WAI1D,QAAT8Q,IAAkBP,EAAOvQ,EAAY,WAI5B,QAAT8Q,IAAkBP,EAAOvQ,EAAY,SAIjB,SAApBA,EAAW5X,OAAmBinB,MAAMrP,EAAWsP,aAItC,QAATwB,EACKC,EAAY/Q,GAER,QAAT8Q,GACMC,EAAY/Q,GAET,QAAT8Q,EACKE,EAAYhR,GAER,QAAT8Q,GACME,EAAYhR,GAET,QAAT8Q,EACKG,EAAYjR,EAAY4Q,GAEpB,QAATE,IACMG,EAAYjR,EAAY4Q,GAGpC,CAMA,SAASG,EAAY/Q,GACnB,OAAgC,IAAzBA,EAAWsP,WACO,KAAzBtP,EAAWsP,WACc,KAAzBtP,EAAWsP,WACc,KAAzBtP,EAAWsP,WACc,KAAzBtP,EAAWsP,WACc,KAAzBtP,EAAWsP,WACc,MAAzBtP,EAAWsP,WACc,OAAzBtP,EAAWsP,WACXtP,EAAWsP,WAAa,MAAUtP,EAAWsP,WAAa,MACjC,OAAzBtP,EAAWsP,WACc,OAAzBtP,EAAWsP,WACc,OAAzBtP,EAAWsP,WACc,OAAzBtP,EAAWsP,WACc,QAAzBtP,EAAWsP,WACc,QAAzBtP,EAAWsP,SACb,CAMA,SAAS0B,EAAYhR,GACnB,OAAOA,EAAWsP,WAAa,IAAQtP,EAAWsP,WAAa,EACjE,CAOA,SAAS2B,EAAYjR,EAAY4Q,GAC/B,OAAOI,EAAYhR,IAAeA,EAAWsP,WAAa,IAAQtP,EAAWsP,WAAa,IAC1FtP,EAAWsP,WAAa,IAAQtP,EAAWsP,WAAa,KACnC,MAArBtP,EAAWhC,OAAiB4S,IAAwC,MAAzB5Q,EAAWsP,WAAiD,OAAzBtP,EAAWsP,UAC3F,CAOA,SAAS4B,EAAgClR,EAAYuP,GACnD,GAAIA,GAAkC,eAApBA,EAAWnnB,KAAuB,CAClD,GAAI+oB,EAAiBnR,EAAYuP,GAG/B,OAAO,EACF,GAEP6B,EAAkBpR,IAAeuP,EAAWphB,GAAGmhB,YAActP,EAAWsP,UAAY,EAGlF,OADAC,EAAWphB,GAAK6R,GACT,EACF,GAAwB,eAApBA,EAAW5X,MAAyB4X,EAAWzf,KAAK+uB,WAAaC,EAAWphB,GAAGmhB,UAAY,GAAKtP,EAAW7R,GAAGmhB,WAAaC,EAAWhvB,KAAK+uB,UAAY,EAUhK,OANItP,EAAWzf,KAAK+uB,UAAYC,EAAWhvB,KAAK+uB,YAC9CC,EAAWhvB,KAAOyf,EAAWzf,MAE3Byf,EAAW7R,GAAGmhB,UAAYC,EAAWphB,GAAGmhB,YAC1CC,EAAWphB,GAAK6R,EAAW7R,KAEtB,CAEX,CACA,OAAO,CACT,CAOA,SAASkjB,EAAgCrR,EAAYuP,GACnD,SAAIA,GAAkC,eAApBA,EAAWnnB,OAM3BgpB,EAAkBpR,IAAeuP,EAAWhvB,KAAK+uB,YAActP,EAAWsP,UAAY,IACpFC,EAAWhvB,KAAOyf,EACX,GAKb,CAOA,SAASmR,EAAiBnR,EAAYuP,GACpC,OAAwB,SAApBvP,EAAW5X,OAAmBinB,MAAMrP,EAAWsP,cAG3B,eAApBtP,EAAW5X,KACN+oB,EAAiBnR,EAAWzf,KAAMgvB,IAAe4B,EAAiBnR,EAAW7R,GAAIohB,GAEnFvP,EAAWsP,WAAaC,EAAWhvB,KAAK+uB,WAAatP,EAAWsP,WAAaC,EAAWphB,GAAGmhB,UACpG,CAQA,SAASgC,EAA+BtR,EAAY/X,EAAO4W,GAEzD,IAAKuS,EAAkBpR,GACrB,OAAO,EAGT,IADA,IAAIuR,EAAgB,EACbtpB,EAAQ,GAAG,CAChB,IAAIupB,EAAoB3S,EAAY5W,GAChCwpB,EAAqB5S,EAAY5W,EAAQ,GAC7C,IAAImpB,EAAkBK,IAAuBA,EAAmBnC,YAAckC,EAAkBlC,UAAY,EAI1G,MAHAiC,IACAtpB,GAIJ,CAEA,OAAIspB,EAAgB,GAClB1S,EAAY5W,GAAS,CACnBG,KAAM,aACN7H,KAAMse,EAAY5W,GAClBkG,GAAI6R,GAECuR,GAEF,CACT,CAEA,SAASH,EAAkBpR,GACzB,OAAOA,GAAkC,SAApBA,EAAW5X,OAAoBinB,MAAMrP,EAAWsP,aAAe2B,EAAYjR,GAAY,IAA8B,YAApBA,EAAWtB,MAA0C,QAApBsB,EAAWtB,MAAsC,QAApBsB,EAAWtB,MAAsC,YAApBsB,EAAWtB,KAC9N,CApUA3gB,EAAOC,QAAU,CACf0zB,aAAa,EACb1S,KAAM,SAAcR,GAClBvc,KAAKyvB,YAAclT,EAAI3W,MAAM8V,SAAS,MAAQa,EAAI3W,MAAM8V,SAAS,IACnE,EACA2C,eAAgB,SAAwB7d,GACtC,IAEIoc,EAFOpc,EAAKuF,KAEO6W,YAEnB8R,EAAQ,GAEZ9R,EAAY7X,SAAQ,SAAUgZ,GACxBuQ,EAAOvQ,IACT2Q,EAAMlsB,KAAKub,EAAWhC,MAE1B,IAEAa,EAAYrV,KAAK2mB,GAEjB,IAAK,IAAI9rB,EAAI,EAAGA,EAAIwa,EAAYtb,OAAQc,IAAK,CAC3C,IAAI2b,EAAanB,EAAYxa,GAC7B,GAAIqsB,EAAY1Q,EAAY2Q,EAAO1uB,KAAKyvB,cAAgBR,EAAgClR,EAAYnB,EAAYxa,EAAI,KAAOgtB,EAAgCrR,EAAYnB,EAAYxa,EAAI,IACrLwa,EAAY8S,OAAOttB,EAAG,GACtBA,QACK,CACL,IAAIktB,EAAgBD,EAA+BtR,EAAY3b,EAAGwa,GAClEA,EAAY8S,OAAOttB,EAAIktB,EAAgB,EAAGA,GAC1CltB,GAAKktB,CACP,CACF,CACF,mCChCFxzB,EAAOC,QAAU,CACfuiB,WAAY,SAAoB9d,GAC9B,IAAIuF,EAAOvF,EAAKuF,KAGZA,EAAKzH,KAAK+uB,YAActnB,EAAKmG,GAAGmhB,UAElC7sB,EAAKtC,QAAQ6H,EAAKzH,MACTyH,EAAKzH,KAAK+uB,YAActnB,EAAKmG,GAAGmhB,UAAY,IAErD7sB,EAAKmvB,YAAYC,cAAc7pB,EAAKmG,GAAI1L,EAAKwF,MAAQ,GACrDxF,EAAKtC,QAAQ6H,EAAKzH,MAEtB,mCCjBFxC,EAAOC,QAAU,CACfsiB,eAAgB,SAAwB7d,GAKtC,IAJA,IAAIuF,EAAOvF,EAAKuF,KAEZ8pB,EAAU,CAAC,EAENztB,EAAI,EAAGA,EAAI2D,EAAK6W,YAAYtb,OAAQc,IAAK,CAChD,IAAI0tB,EAAYtvB,EAAKuvB,SAAS3tB,GAC1B+Y,EAAS2U,EAAUE,aAEnBH,EAAQ/V,eAAeqB,KACzB2U,EAAUG,SAIV7tB,KAGFytB,EAAQ1U,IAAU,CACpB,CACF,mCCnBF,SAAS2E,EAAmBb,GAAO,GAAIpY,MAAMC,QAAQmY,GAAM,CAAE,IAAK,IAAI7c,EAAI,EAAG2d,EAAOlZ,MAAMoY,EAAI3d,QAASc,EAAI6c,EAAI3d,OAAQc,IAAO2d,EAAK3d,GAAK6c,EAAI7c,GAAM,OAAO2d,CAAM,CAAS,OAAOlZ,MAAMvI,KAAK2gB,EAAQ,CAElMnjB,EAAOC,QAAU,CACfm0B,WAAW,EACX7T,WAAW,EACXU,KAAM,SAAcR,GAClBvc,KAAKkwB,UAAY3T,EAAI3W,MAAM8V,SAAS,KACpC1b,KAAKqc,UAAYE,EAAI3W,MAAM8V,SAAS,IACtC,EACA2C,eAAgB,SAAwB7d,IAe1C,SAA6BA,GAChBA,EAAKuF,KAGX6W,YAAY7X,SAAQ,SAAUgZ,EAAY3b,IAgIjD,SAA2B2D,GACzB,MAAqB,eAAdA,EAAKI,MAA6C,MAApBJ,EAAKzH,KAAKyd,OAAmC,MAAlBhW,EAAKmG,GAAG6P,KAC1E,EAjIQoU,CAAkBpS,IACpBvd,EAAKuvB,SAAS3tB,GAAGlE,QAAQ,CACvBiI,KAAM,OACN4V,MAAO,MACPU,KAAM,QAGZ,GACF,CA1BI2T,CAAoB5vB,GAiCxB,SAA2BA,EAAM6vB,EAAUC,GACzC,IAAIvqB,EAAOvF,EAAKuF,KAGZwqB,EAAa,KACbC,EAAgB,KAChBC,EAAgB,KAChBC,EAAiB,KACjBC,EAAY,KACZC,EAAY,KAEhB7qB,EAAK6W,YAAY7X,SAAQ,SAAUgZ,EAAY3b,GAEzCyuB,EAAW9S,EAAY,OACzBwS,EAAa/vB,EAAKuvB,SAAS3tB,GAgHjC,SAA0B2D,GACxB,MAAqB,eAAdA,EAAKI,MAA6C,MAApBJ,EAAKzH,KAAKyd,OAAmC,MAAlBhW,EAAKmG,GAAG6P,KAC1E,CA9Ga+U,CAAiB/S,GACtByS,EAAgBhwB,EAAKuvB,SAAS3tB,GA+GtC,SAA0B2D,GACxB,MAAqB,eAAdA,EAAKI,MAA6C,MAApBJ,EAAKzH,KAAKyd,OAAmC,MAAlBhW,EAAKmG,GAAG6P,KAC1E,CA7GegV,CAAiBhT,GACtB0S,EAAgBjwB,EAAKuvB,SAAS3tB,GA8GxC,SAAsB2D,GACpB,MAAqB,SAAdA,EAAKI,MAAkC,MAAfJ,EAAKgW,OAA+B,WAAdhW,EAAK0W,IAC5D,CA5GiBuU,CAAajT,GAClB2S,EAAiBlwB,EAAKuvB,SAAS3tB,GACtBiuB,GAAYC,GAAYW,EAAYlT,EAAY,KACzD4S,EAAYnwB,EAAKuvB,SAAS3tB,GACjBiuB,GAAYC,GAAYW,EAAYlT,EAAY,QACzD6S,EAAYpwB,EAAKuvB,SAAS3tB,GAEpC,IAGImuB,IAAeC,GAAiBC,GAAiBJ,IAAaG,GAAiBC,KAAmBC,KAAoBJ,IAAaD,GAAYM,GAAaC,KAE9JL,EAAWryB,QAAQ,CACjBiI,KAAM,OACN4V,MAAO,MACPU,KAAM,SAIJ+T,GACFA,EAAcP,SAEZQ,GACFA,EAAcR,SAEhBS,EAAeT,SACXU,GACFA,EAAUV,SAERW,GACFA,EAAUX,SAGhB,CA3FIiB,CAAkB1wB,EAAMR,KAAKkwB,UAAWlwB,KAAKqc,WA8GjD,SAAiC7b,GAC/B,IAAIuF,EAAOvF,EAAKuF,KAGhB,KAAIA,EAAK6W,YAAYtb,OAAS6vB,EAAqB7vB,SAAW6vB,EAAqBC,OAAM,SAAU7zB,GACjG,OAAOwI,EAAK6W,YAAYvP,MAAK,SAAU0Q,GACrC,OAAOxgB,EAAKwgB,EACd,GACF,IAJA,CAWA,IAAIsT,EAAQtrB,EAAK6W,YAAY/N,MAAK,SAAUkP,GAC1C,OAAO8S,EAAW9S,EAAY,MAChC,IACAsT,EAAMtV,MAAQ,MACdsV,EAAMxU,YAAS7X,EACfqsB,EAAMhE,UAAYiE,IAGlBvrB,EAAK6W,YAAY3a,KAAI,SAAU8b,EAAY3b,GACzC,OAAO+uB,EAAqB9jB,MAAK,SAAU9P,GACzC,OAAOA,EAAKwgB,EACd,IAAKvd,EAAKuvB,SAAS3tB,QAAK4C,CAC1B,IAAG/D,OAAOswB,SAASxsB,SAAQ,SAAUvE,GACnC,OAAOA,EAAKyvB,QACd,GAnBA,CAoBF,CAzIIuB,CAAwBhxB,EAC1B,GA4FF,IAAI2wB,EAAuB,CAAC,SAAUprB,GACpC,OAAO0rB,EAAO1rB,EAAM,IACtB,GAAGrH,OAAOohB,EAAmB,CAAC,MAAO,MAAO,MAAO,MAAO,OAAO7d,KAAI,SAAUymB,GAC7E,OAAO,SAAU3iB,GACf,OAAO8qB,EAAW9qB,EAAM2iB,EAC1B,CACF,KAAK5I,EAAmB,CAAC,IAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,MAAQ,OAAQ7d,KAAI,SAAUorB,GACrG,OAAO,SAAUtnB,GACf,OAAOkrB,EAAYlrB,EAAMsnB,EAC3B,CACF,KAAK,CAAC,SAAUtnB,GACd,MAAqB,eAAdA,EAAKI,MAAyB8qB,EAAYlrB,EAAKzH,KAAM,OAAW2yB,EAAYlrB,EAAKmG,GAAI,KAC9F,IAsCA,SAASulB,EAAO1rB,EAAMgW,GACpB,IAAIU,EAAO/C,UAAUpY,OAAS,QAAsB0D,IAAjB0U,UAAU,GAAmBA,UAAU,GAAK,SAE/E,MAAqB,SAAd3T,EAAKI,MAAmBJ,EAAKgW,QAAUA,GAAShW,EAAK0W,OAASA,CACvE,CAEA,SAASoU,EAAW9qB,EAAMgW,GACxB,OAAO0V,EAAO1rB,EAAMgW,EAAO,OAC7B,CAcA,SAASkV,EAAYlrB,EAAMsnB,GACzB,MAAqB,SAAdtnB,EAAKI,MAAiC,YAAdJ,EAAK0W,MAAsB1W,EAAKsnB,YAAcA,CAC/E,iCCtGA,SAASqE,EAAa3V,GACpB,MAAQ,iBAAiBxe,KAAKwe,EAEhC,CAnFAjgB,EAAOC,QAAU,CACfsiB,eAAgB,SAAwB7d,GACtC,IAAIuF,EAAOvF,EAAKuF,KAGhB,GAAgC,IAA5BA,EAAK6W,YAAYtb,QA8CzB,SAAgCd,GAC9B,IAAI2sB,EAAS3sB,EAAK2sB,OACdnnB,EAAQxF,EAAKwF,MAGjB,GAAoB,gBAAhBmnB,EAAOhnB,KACT,OAAO,EAGT,IAAIwrB,EAAexE,EAAOvQ,YAAY5W,EAAQ,GAC9C,OAAoB,MAAhB2rB,IAKsB,kBAAtBA,EAAaxrB,MAAkD,WAAtBwrB,EAAalV,QAKhC,SAAtBkV,EAAaxrB,MAAyC,YAAtBwrB,EAAalV,KAKnD,CAvE0CmV,CAAuBpxB,IA6BjE,SAA2BuF,GACzB,MAAqB,SAAdA,EAAKI,MAGG,QAAfJ,EAAKgW,KACP,CAlC2E8V,CAAkB9rB,EAAK6W,YAAY,IAA1G,CAIA,IAAIkV,EAAqB/rB,EAAK6W,YAAY,GACtCb,EAAQ+V,EAAmB/V,MAC3BU,EAAOqV,EAAmBrV,KAC1BkC,EAAUmT,EAAmBnT,QAGjC,GAAI5Y,EAAKoY,SAAU,CAGjB,IAuBN,SAAgBpC,GACd,MAAQ,eAAexe,KAAKwe,EAE9B,CA1BWuS,CAAOvS,GACV,OAGFA,EAwBN,SAAwBA,GACtB,MAAQ,QAAQxe,KAAKwe,GAASA,EAAMpT,cAAgBoT,EAAMxX,aAE5D,CA3BcwtB,CAAehW,EACzB,CAEAvb,EAAKtC,QAAQ,CACXiI,KAAM,OACN4V,MAAOA,EACPU,KAAMA,EACNkC,QAASA,GAAW+S,EAAa3V,IAtBnC,CAwBF,mCCtCF,IAAIgR,EAAa,IAAIC,YAAY,GAC7BC,EAAa,IAAID,YAAY,GAC7BgF,EAAa,IAAIhF,YAAY,GAC7BiF,EAAa,IAAIjF,YAAY,GAC7BkF,EAAa,IAAIlF,YAAY,GAC7BmF,EAAa,IAAInF,YAAY,GAOjClxB,EAAOC,QAAU,CACfygB,KAAM,SAAchc,GAClB,IAqCmB8sB,EACjBhvB,EACA4N,EAvCEnG,EAAOvF,EAAKuF,KACZonB,EAAS3sB,EAAK2sB,OAElB,IAAIC,MAAMrnB,EAAKsnB,YAA4B,WAAdtnB,EAAK0W,OAId,eAAhB0Q,EAAOhnB,OA+BT7H,GADiBgvB,EA7BEH,GA8BD7uB,KAClB4N,EAAKohB,EAAWphB,GAEb5N,EAAK+uB,WAAa6E,GAAc5zB,EAAK+uB,WAAa8E,GAAcjmB,EAAGmhB,WAAa6E,GAAchmB,EAAGmhB,WAAa8E,GAAc7zB,EAAK+uB,WAAaN,GAAczuB,EAAK+uB,WAAaJ,GAAc/gB,EAAGmhB,WAAaN,GAAc7gB,EAAGmhB,WAAaJ,GAAc3uB,EAAK+uB,WAAa2E,GAAc1zB,EAAK+uB,WAAa4E,GAAc/lB,EAAGmhB,WAAa2E,GAAc9lB,EAAGmhB,WAAa4E,MASjV5E,EArCAtnB,EAAKsnB,YAsCb,IAAQA,GAAa,IAtCvC,CAqCJ,IAA8BA,EAjCtBxQ,EAASuV,OAAOC,cAActsB,EAAKsnB,WACnCiF,EAAU,CACZnsB,KAAM,OACNsW,KAAM,SACNV,MAAOc,EACPA,OAAQA,EACRwQ,UAAWtnB,EAAKsnB,YA+BtB,SAAqBxQ,EAAQ0V,GAC3B,MAAmB,eAAfA,GAA8C,mBAAfA,EACzB,WAAWh1B,KAAKsf,GAIlB,oBAAoBtf,KAAKsf,EAEnC,EArCQ2V,CAAY3V,EAAQsQ,EAAOhnB,QAC7BmsB,EAAQ3T,SAAU,GAEpBne,EAAKtC,QAAQo0B,EAbb,CAcF,mCC+BF,SAASG,EAAeC,EAAYvF,EAAQwF,GAI1C,IAHA,IAAIvwB,EAAIswB,EACJE,GAAeD,EAAMvwB,GAAK,EAAIA,EAAI+qB,EAAOvQ,YAAYtb,SAAW6rB,EAAOvQ,YAAYxa,GAEhFwwB,GAAoC,SAArBA,EAAYzsB,MAAwC,WAArBysB,EAAYnW,OAAsBmW,EAAYjU,SAAW,KAAKphB,KAAKq1B,EAAY7W,QAClI4W,EAAMvwB,IAAMA,IACZwwB,GAAeD,EAAMvwB,GAAK,EAAIA,EAAI+qB,EAAOvQ,YAAYtb,SAAW6rB,EAAOvQ,YAAYxa,GAGrF,OAAOwrB,KAAKiF,IAAIH,EAAatwB,EAC/B,CAEA,SAAS0wB,EAAa/sB,EAAMgW,GAC1B,OAAOhW,GAAsB,SAAdA,EAAKI,MAAiC,WAAdJ,EAAK0W,OAAsB1W,EAAK4Y,SAAW5Y,EAAKgW,QAAUA,CACnG,CAhFAjgB,EAAOC,QAAU,CACfg3B,WAAW,EACXhW,KAAM,SAAcR,GAClBvc,KAAK+yB,UAAYxW,EAAI3W,MAAM8V,SAAS,IACtC,EACAc,KAAM,SAAchc,GAClB,IAAIuF,EAAOvF,EAAKuF,KAGXA,EAAK4Y,SAUd,SAAwBne,EAAMwyB,GAC5B,IAAIjX,EAAQvb,EAAKuF,KAAKgW,MAClB/V,EAAQxF,EAAKwF,MACbmnB,EAAS3sB,EAAK2sB,OAIlB,MAAoB,mBAAhBA,EAAOhnB,MAA6C,eAAhBgnB,EAAOhnB,MAuBjD,SAAyB4V,EAAO/V,EAAOmnB,EAAQ6F,GAC7C,MAAc,MAAVjX,EAgCN,SAA0C/V,EAAOmnB,GAE/C,GAAa,MAATnnB,EACF,OAAO,EAGT,IAAIitB,EAAqBR,EAAezsB,EAAQ,EAAGmnB,GAC/C/qB,EAAI4D,EAAQitB,EAAqB,EACjCC,EAAkB9wB,EAAI+qB,EAAOvQ,YAAYtb,QAAU6rB,EAAOvQ,YAAYxa,GAE1E,GAAI6wB,EAAoB,CAEtB,GAAIH,EAAaI,EAAiB,KAChC,OAAO,EAGT,GAAIJ,EAAaI,EAAiB,KAMhC,OAAOJ,EAHPI,GADA9wB,EAAIA,GADJ6wB,EAAqBR,EAAerwB,EAAI,EAAG+qB,IACd,GACPA,EAAOvQ,YAAYtb,QAAU6rB,EAAOvQ,YAAYxa,GAGjC,IAEzC,CACA,OAAO,CACT,CAzDW+wB,CAAiCntB,EAAOmnB,GAGnC,MAAVpR,EAwDN,SAA0C/V,EAAOmnB,GAE/C,GAAa,MAATnnB,EACF,OAAO,EAGT,IAAIotB,EAAqBX,EAAezsB,EAAQ,EAAGmnB,GAAQ,GACvD/qB,EAAI4D,EAAQotB,EAAqB,EACjCC,EAAsBjxB,GAAK,GAAK+qB,EAAOvQ,YAAYxa,GAGvD,SAAIgxB,IAAsBN,EAAaO,EAAqB,SAIxDP,EAAaO,EAAqB,OAGpCA,GADAjxB,EAAIA,GADJgxB,EAAqBX,EAAerwB,EAAI,EAAG+qB,GAAQ,IACtB,GACHA,EAAOvQ,YAAYtb,QAAU6rB,EAAOvQ,YAAYxa,GAGnEgxB,GAAsBN,EAAaO,EAAqB,KAGnE,CA/EWC,CAAiCttB,EAAOmnB,MAG7C6F,IAAY,OAAOz1B,KAAKwe,KAIpB,kBAAkBxe,KAAKwe,EAEjC,CArCYwX,CAAgBxX,EAAO/V,EAAOmnB,EAAQ6F,IASlD,SAA8BjX,EAAO/V,EAAOmnB,GAC1C,MAAc,MAAVpR,EAEe,IAAV/V,IAAgBmnB,EAAOhP,SAElB,MAAVpC,GAII,SAASxe,KAAKwe,EAExB,CAjBUyX,CAAqBzX,EAAO/V,EAAOmnB,EAC7C,CAlBQsG,CAAejzB,EAAMR,KAAK+yB,mBACrBhtB,EAAK4Y,OAEhB,mCClBF7iB,EAAOC,QAAU,CACfugB,UAAW,SAAmBC,GAC5B,OAAOA,EAAI3W,MAAM8V,SAAS,IAC5B,EACAc,KAAM,SAAchc,GAClB,IAAIuF,EAAOvF,EAAKuF,KAEE,YAAdA,EAAK0W,MAAuB1W,EAAKynB,kBAAmBJ,MAAMrnB,EAAKsnB,aAGnEtnB,EAAKgW,MAAQ,OAAShW,EAAKsnB,UAAU9uB,SAAS,IAAM,WAC7CwH,EAAKynB,gBACd,uCClBF,SAAS1N,EAAmBb,GAAO,GAAIpY,MAAMC,QAAQmY,GAAM,CAAE,IAAK,IAAI7c,EAAI,EAAG2d,EAAOlZ,MAAMoY,EAAI3d,QAASc,EAAI6c,EAAI3d,OAAQc,IAAO2d,EAAK3d,GAAK6c,EAAI7c,GAAM,OAAO2d,CAAM,CAAS,OAAOlZ,MAAMvI,KAAK2gB,EAAQ,CAElM,IAAIyU,EAAW,EAAQ,OAGnBC,EADW,EAAQ,OACgBA,wBAyCvC,SAASC,EAA4BC,EAAaC,EAAO9tB,GAOvD,IANA,IAAID,EAAO8tB,EAAY9tB,KAGnBguB,EAAoBnG,KAAKoG,KAAKhuB,EAAQ,GACtC5D,EAAI,EAEDA,EAAI2xB,GAAmB,CAC5B,IAAIrB,EAAa1sB,EAAQ,EAAI5D,EAAI,EAC7B0b,OAAQ,EACRD,OAAO,EAiBX,GAfU,IAANzb,GACF0b,EAAQgW,EACRjW,EAAOgW,EAAY9D,SAAS2C,KAE5B5U,EAAQ4V,EAASO,WAAW,CAC1B9tB,KAAM,cACNyW,YAAa,GAAGle,OAAOohB,EAAmB/Z,EAAK6W,YAAYrb,MAAMyE,EAAQ5D,EAAG4D,IAAS,CAAC8tB,EAAM/tB,SAG9F8X,EAAO6V,EAASO,WAAW,CACzB9tB,KAAM,cACNyW,YAAa,GAAGle,OAAOohB,EAAmB/Z,EAAK6W,YAAYrb,MAAMmxB,EAAY1sB,EAAQ5D,QAIrF0b,EAAMoW,eAAerW,GAAO,CAC9B,IAAK,IAAIvX,EAAI,EAAGA,EAAI,EAAIlE,EAAI,EAAGkE,IAC7ButB,EAAY9D,SAAS2C,GAAYzC,SAkBnC,OAfA6D,EAAM51B,QAAQ,CACZiI,KAAM,aACN4X,WAAkB,IAAN3b,GAA+B,eAApB0b,EAAM/X,KAAKI,KAAwB2X,EAAM/X,KAAO,CACrEI,KAAM,QACN6X,WAAW,EACXD,WAAYD,EAAM/X,MAEpByY,WAAY,CACVrY,KAAM,aACNsW,KAAM,QACNne,KAAM,EACN4N,GAAI,EACJwS,QAAQ,KAGLgU,CACT,CAEAtwB,GACF,CAEA,OAAO4D,CACT,CAGA,SAASmuB,EAA8BN,EAAaC,EAAO9tB,GAKzD,IAJA,IAAID,EAAO8tB,EAAY9tB,KAGnB3D,EAAI,EACDA,EAAI4D,GAAO,CAChB,IAAIouB,EAAgBP,EAAY9D,SAAS3tB,GAEzC,GAAgC,eAA5BgyB,EAAcruB,KAAKI,MAAyBiuB,EAAcruB,KAAKyY,WAAWE,OAAQ,CACpF,IAAIb,EAAOuW,EAAcrE,WACrBjS,OAAQ,EAkBZ,GAhBuB,UAAnBD,EAAK9X,KAAKI,MAAqB0X,EAAK9X,KAAKiY,YAC3CH,EAAOA,EAAKkS,YAGV3tB,EAAI,IAAM4D,EAEY,WADxB8X,EAAQgW,GACE/tB,KAAKI,MAAqB2X,EAAM/X,KAAKiY,YAC7CF,EAAQA,EAAMiS,YAGhBjS,EAAQ4V,EAASO,WAAW,CAC1B9tB,KAAM,cACNyW,YAAa,GAAGle,OAAOohB,EAAmB/Z,EAAK6W,YAAYrb,MAAMa,EAAI,EAAG4D,EAAQ,OAIhF6X,EAAKqW,eAAepW,GAAQ,CAC9B,IAAK,IAAIxX,EAAIlE,EAAGkE,EAAIN,EAAOM,IACzButB,EAAY9D,SAAS3tB,EAAI,GAAG6tB,SAK9B,OAFA0D,EAAwBS,EAAcruB,KAAKyY,YAEpCpc,CACT,CACF,CAEAA,GACF,CACA,OAAO4D,CACT,CAGA,SAASquB,EAA8BR,EAAaC,EAAO9tB,GACzD,IAAID,EAAO8tB,EAAY9tB,KAGvB,GAAwB,eAApB+tB,EAAM/tB,KAAKI,MAAyB2tB,EAAM/tB,KAAKyY,WAAWE,OAAQ,CACpE,IAAIZ,EAAQgW,EAAM/D,WACdlS,OAAO,EAEa,UAApBC,EAAM/X,KAAKI,MAAqB2X,EAAM/X,KAAKiY,YAC7CF,EAAQA,EAAMiS,YAGhB,IAAIuE,OAAc,EAelB,GAdwB,gBAApBxW,EAAM/X,KAAKI,MACbmuB,EAAcxW,EAAM/X,KAAK6W,YAAYtb,OACrCuc,EAAO6V,EAASO,WAAW,CACzB9tB,KAAM,cACNyW,YAAa,GAAGle,OAAOohB,EAAmB/Z,EAAK6W,YAAYrb,MAAMyE,EAAQsuB,EAAatuB,SAGxFsuB,EAAc,EAES,WADvBzW,EAAOgW,EAAY9D,SAAS/pB,EAAQ,IAC3BD,KAAKI,MAAqB0X,EAAK9X,KAAKiY,YAC3CH,EAAOA,EAAKkS,aAIZlS,EAAKqW,eAAepW,GAAQ,CAC9B,IAAK,IAAIxX,EAAIN,EAAQsuB,EAAahuB,EAAIN,EAAOM,IAC3CutB,EAAY9D,SAAS/pB,EAAQsuB,GAAarE,SAK5C,OAFA0D,EAAwBG,EAAM/tB,KAAKyY,YAE5BxY,EAAQsuB,CACjB,CACF,CACA,OAAOtuB,CACT,CA3KAlK,EAAOC,QAAU,CACf4hB,YAAa,SAAqBnd,GAMhC,IALA,IAAIuF,EAAOvF,EAAKuF,KAIZC,EAAQ,EACLA,EAAQD,EAAK6W,YAAYtb,QAAQ,CACtC,IAAIwyB,EAAQtzB,EAAKuvB,SAAS/pB,GAG1B,IAFAA,EAAQ4nB,KAAKjf,IAAI,EAAGilB,EAA4BpzB,EAAMszB,EAAO9tB,MAEhDD,EAAK6W,YAAYtb,OAC5B,MAMF,GAHAwyB,EAAQtzB,EAAKuvB,SAAS/pB,IACtBA,EAAQ4nB,KAAKjf,IAAI,EAAGwlB,EAA8B3zB,EAAMszB,EAAO9tB,MAElDD,EAAK6W,YAAYtb,OAC5B,MAGFwyB,EAAQtzB,EAAKuvB,SAAS/pB,GACtBA,EAAQ4nB,KAAKjf,IAAI,EAAG0lB,EAA8B7zB,EAAMszB,EAAO9tB,IAE/DA,GACF,CACF,uCC1CF,IAAI0tB,EAAW,EAAQ,OAEnB1J,EAAW,EAAQ,OACnBuK,EAAoBvK,EAASuK,kBAC7BC,EAAoBxK,EAASwK,kBASjC14B,EAAOC,QAAU,CACf6hB,YAAa,SAAqBpd,GAChC,IAAIuF,EAAOvF,EAAKuF,KAIZ0uB,EAAiB,CAAC,EAElBluB,EAAQguB,EAAkBxuB,GAAM9E,QAAO,SAAUyzB,GACnD,IAAIC,EAAUD,EAAOhB,EAASO,WAAWS,GAAM1E,aAAe,OAG9D,OAAIyE,EAAe3a,eAAe6a,KAIlCF,EAAeE,GAAWD,GACnB,EACT,IAGAl0B,EAAKtC,QAAQs2B,EAAkBjuB,GACjC,mCC1BFzK,EAAOC,QAAU,CACf6hB,YAAa,SAAqBpd,GAChC,IAAIuF,EAAOvF,EAAKuF,KACZonB,EAAS3sB,EAAK2sB,OAGlB,GAAKyH,EAASzH,EAAOhnB,MAArB,CAIA,IAAI0uB,EAAU,IAAI/Q,IAElB,GAAKgR,EAAc/uB,EAAM8uB,IAAaA,EAAQvU,KAA9C,CAIA,IAAIyU,EAAiB,CACnB5uB,KAAM,iBACNyW,YAAa/V,MAAMvI,KAAKu2B,EAAQ5wB,QAAQsD,OAAOtF,KAAI,SAAUiL,GAC3D,OAAO2nB,EAAQjP,IAAI1Y,EACrB,KAGF0nB,EAASzH,EAAOhnB,MAAM3F,EAAKmvB,YAAaoF,EATxC,CANA,CAgBF,GAGF,IAAIH,EAAW,CACbvX,OAAQ,SAAgB7c,EAAMu0B,GACjBv0B,EAAKuF,KAGX2X,KAAOqX,CACd,EACA/X,MAAO,SAAexc,EAAMu0B,GAC1B,IAAIhvB,EAAOvF,EAAKuF,KAGZA,EAAKiY,UACPjY,EAAKgY,WAAagX,EAElBv0B,EAAKtC,QAAQ62B,EAEjB,GAGF,SAASD,EAAc/W,EAAY8W,GACjC,IAAK9W,EAEH,OAAO,EAGT,IAAI5X,EAAO4X,EAAW5X,KAGtB,GAAa,gBAATA,EAAwB,CAC1B,IAAI0X,EAAOE,EAAWF,KAClBC,EAAQC,EAAWD,MAGvB,OAAOgX,EAAcjX,EAAMgX,IAAYC,EAAchX,EAAO+W,EAC9D,CAAO,GAAa,SAAT1uB,EAAiB,CAC1B,GAAwB,SAApB4X,EAAWtB,MAAyC,MAAtBsB,EAAWlB,OAC3C,OAAO,EAGT,IAAId,EAAQgC,EAAWhC,MAKvB,OAFA8Y,EAAQ7S,IAAIjG,EAAOgC,IAEZ,CACT,CAAO,MAAa,mBAAT5X,IAA8B4X,EAAWI,UAC3CJ,EAAWnB,YAAYwU,OAAM,SAAUrT,GAC5C,OAAO+W,EAAc/W,EAAY8W,EACnC,GAIJ,sCCxFA/4B,EAAOC,QAAU,IAAI+nB,IAAI,CAEzB,CAAC,mCAAoC,EAAQ,QAG7C,CAAC,uBAAwB,EAAQ,QAGjC,CAAC,wCAAyC,EAAQ,QAGlD,CAAC,4BAA6B,EAAQ,QAGtC,CAAC,mBAAoB,EAAQ,QAG7B,CAAC,0BAA2B,EAAQ,QAGpC,CAAC,8BAA+B,EAAQ,QAGxC,CAAC,kBAAmB,EAAQ,QAG5B,CAAC,wBAAyB,EAAQ,OAGlC,CAAC,qBAAsB,EAAQ,QAG/B,CAAC,4BAA6B,EAAQ,QAGtC,CAAC,8BAA+B,EAAQ,QAGxC,CAAC,8BAA+B,EAAQ,QAGxC,CAAC,mBAAoB,EAAQ,QAG7B,CAAC,UAAW,EAAQ,QAGpB,CAAC,2BAA4B,EAAQ,0CClCrChoB,EAAOC,QAAU,CACf0iB,WAAY,SAAoBje,GAIZ,UAHPA,EAAKuF,KAGP0W,OAeb,SAAyBjc,GACvB,IAAIuF,EAAOvF,EAAKuF,KAGE,IAAdA,EAAKzH,MAAcyH,EAAKmG,KAI5BnG,EAAK0W,KAAO,WACL1W,EAAKzH,KACd,CApBI02B,CAAgBx0B,GAsBpB,SAAwBA,GACtB,IAAIuF,EAAOvF,EAAKuF,KAGE,IAAdA,EAAKzH,MAAcyH,EAAKmG,KAI5BnG,EAAK0W,KAAO,WACL1W,EAAKzH,KACd,CA7BI22B,CAAez0B,GA+BnB,SAAyBA,GACvB,IAAIuF,EAAOvF,EAAKuF,KAGE,IAAdA,EAAKzH,MAA0B,IAAZyH,EAAKmG,IAI5B1L,EAAK00B,WAAWh3B,QAAQsC,EAAK00B,WAAWnvB,KAAKgY,WAC/C,CArCIoX,CAAgB30B,GAClB,uCC9BF,IACImzB,EADW,EAAQ,OACgBA,wBAmFvC,SAASyB,EAAkB5W,GACzB,OAAOA,EAAWE,SAA+B,MAApBF,EAAW/B,MAAoC,MAApB+B,EAAW/B,MAAoC,UAApB+B,EAAW/B,OAAqB+B,EAAWtS,GAChI,CAEA,SAASmpB,EAAc7W,GACrB,IAAIlgB,OAAO,EACP4N,OAAK,EAcT,MAbwB,MAApBsS,EAAW/B,KACbne,EAAO,EACsB,MAApBkgB,EAAW/B,KACpBne,EAAO,EACsB,MAApBkgB,EAAW/B,MACpBne,EAAO,EACP4N,EAAK,IAEL5N,EAAOkgB,EAAWlgB,KACdkgB,EAAWtS,KACbA,EAAKsS,EAAWtS,KAGb,CAAE5N,KAAMA,EAAM4N,GAAIA,EAC3B,CA7FApQ,EAAOC,QAAU,CACfwiB,WAAY,SAAoB/d,GAC9B,IAAIuF,EAAOvF,EAAKuF,KAIhB,GAAoB,gBAHPvF,EAAK2sB,OAGPhnB,MAA2B3F,EAAKwF,MAA3C,CAIA,IAAIsvB,EAAkB90B,EAAK+0B,qBAE3B,GAAKD,EAIL,GAAkC,eAA9BA,EAAgBvvB,KAAKI,KAAuB,CAC9C,IAAKmvB,EAAgBvF,WAAWmE,eAAe1zB,EAAKuvB,YAClD,OAGF,IAAIyF,EAAiBH,EAAcC,EAAgBvvB,KAAKyY,YACpDiX,EAAsBD,EAAel3B,KACrCo3B,EAAoBF,EAAetpB,GAEnCypB,EAAkBN,EAActvB,EAAKyY,YACrCoX,EAAWD,EAAgBr3B,KAC3Bu3B,EAASF,EAAgBzpB,GAM7B,GAAIopB,EAAgBvvB,KAAKyY,WAAWE,SAAW3Y,EAAKyY,WAAWE,SAAW0W,EAAkBE,EAAgBvvB,KAAKyY,cAAgB4W,EAAkBrvB,EAAKyY,YACtJ,OAeFzY,EAAKyY,WAAW/B,KAAO,QACvB1W,EAAKyY,WAAWlgB,KAAOm3B,EAAsBG,EACzCF,GAAqBG,EACvB9vB,EAAKyY,WAAWtS,GAAKwpB,EAAoBG,SAElC9vB,EAAKyY,WAAWtS,IAErBkpB,EAAkBE,EAAgBvvB,KAAKyY,aAAe4W,EAAkBrvB,EAAKyY,eAC/EzY,EAAKyY,WAAWE,QAAS,GAG3B4W,EAAgBrF,QAClB,KAAO,CACL,IAAKqF,EAAgBpB,eAAe1zB,EAAKuvB,YACvC,OAGF4D,EAAwB5tB,EAAKyY,YAC7B8W,EAAgBrF,QAClB,CA5DA,CA6DF,mCC1EFn0B,EAAOC,QAAU,CACfihB,MAAO,SAAexc,GACpB,IAAIuF,EAAOvF,EAAKuF,KACZonB,EAAS3sB,EAAK2sB,OAEd2C,EAAYtvB,EAAKuvB,WAEjBhqB,EAAKiY,WAAa8R,IAIF,eAAhB3C,EAAOhnB,KAET3F,EAAKmvB,YAAYzxB,QAAQ6H,GACA,WAAhBonB,EAAOhnB,MAEhB3F,EAAKyvB,SAET,mCCnBF,SAASnQ,EAAmBb,GAAO,GAAIpY,MAAMC,QAAQmY,GAAM,CAAE,IAAK,IAAI7c,EAAI,EAAG2d,EAAOlZ,MAAMoY,EAAI3d,QAASc,EAAI6c,EAAI3d,OAAQc,IAAO2d,EAAK3d,GAAK6c,EAAI7c,GAAM,OAAO2d,CAAM,CAAS,OAAOlZ,MAAMvI,KAAK2gB,EAAQ,CAElMnjB,EAAOC,QAAU,CACfihB,MAAO,SAAexc,GACpB,IAAIuF,EAAOvF,EAAKuF,KACZonB,EAAS3sB,EAAK2sB,OAEd2C,EAAYtvB,EAAKuvB,WAErB,IAAIhqB,EAAKiY,WAAc8R,GAsC3B,SAAgCtvB,GAC9B,IAAI2sB,EAAS3sB,EAAK2sB,OACdnnB,EAAQxF,EAAKwF,MAGjB,GAAoB,gBAAhBmnB,EAAOhnB,KACT,OAAO,EAGT,IAAIwrB,EAAexE,EAAOvQ,YAAY5W,EAAQ,GAC9C,OAAoB,MAAhB2rB,IAKsB,kBAAtBA,EAAaxrB,MAAkD,WAAtBwrB,EAAalV,QAKhC,SAAtBkV,EAAaxrB,MAAyC,YAAtBwrB,EAAalV,KAKnD,CA1DSmV,CAAuBpxB,MAMA,gBAAxBsvB,EAAU/pB,KAAKI,MAA0C,WAAhBgnB,EAAOhnB,MAOhC,eAAhBgnB,EAAOhnB,MAAiD,SAAxB2pB,EAAU/pB,KAAKI,MAA2C,mBAAxB2pB,EAAU/pB,KAAKI,MAIrF,GAA4B,gBAAxB2pB,EAAU/pB,KAAKI,KAAwB,CACzC,IAAI+uB,EAAa10B,EAAKmvB,YACO,gBAAzBuF,EAAWnvB,KAAKI,MAGlB+uB,EAAWh3B,QAAQ,CACjBiI,KAAM,cACNyW,YAAa,GAAGle,OAAOohB,EAAmBqN,EAAOvQ,YAAYrb,MAAM,EAAGf,EAAKwF,QAAS8Z,EAAmBgQ,EAAU/pB,KAAK6W,aAAckD,EAAmBqN,EAAOvQ,YAAYrb,MAAMf,EAAKwF,MAAQ,MAGnM,MACExF,EAAKtC,QAAQ4xB,EAAU/pB,KAE3B,uCChCF,SAAS+Z,EAAmBb,GAAO,GAAIpY,MAAMC,QAAQmY,GAAM,CAAE,IAAK,IAAI7c,EAAI,EAAG2d,EAAOlZ,MAAMoY,EAAI3d,QAASc,EAAI6c,EAAI3d,OAAQc,IAAO2d,EAAK3d,GAAK6c,EAAI7c,GAAM,OAAO2d,CAAM,CAAS,OAAOlZ,MAAMvI,KAAK2gB,EAAQ,CAElM,IAAI6W,OAAS,EAUTC,EAAK,CAAC,EAKNC,OAAK,EAKLC,OAAQ,EAEZ,SAASC,EAAM9oB,EAAOD,GACpB,OAAK4oB,EAAGI,QAAQlM,iBAKX7c,GAAUD,EAIR,CACLipB,YAAahpB,EAAMgpB,YACnBC,UAAWlpB,EAAIkpB,UACfC,UAAWlpB,EAAMkpB,UACjBC,QAASppB,EAAIopB,QACbC,YAAappB,EAAMopB,YACnBC,UAAWtpB,EAAIspB,WATRrpB,GAASD,EALT,IAgBX,CAEA,IAKIupB,EAAc,CAAC,EAAE,EAAG,EAAG,SAAUC,EAAIC,GACvCX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAKW,CACnC,GAAI,CAAC,EAAG,EAAG,SAAUA,EAAIE,EAAIC,EAAIC,EAAIH,EAAOI,EAAOC,EAAOC,GACxDjB,EAAQC,EAAMU,EAAOM,GACrBlB,EAAKmB,EAAK,CACRhxB,KAAM,SACNuX,KAAMmZ,EACNjxB,MAAOwxB,EAAWL,IACjBM,EAAIT,EAAOM,GAASD,GACzB,GAAI,CAAC,EAAG,EAAG,SAAUN,EAAIC,GACvBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAKW,CACnC,GAAI,CAAC,EAAG,EAAG,WACTV,EAAQ,KAAKD,EAAK,EACpB,GAAI,CAAC,EAAG,EAAG,SAAUW,EAAIC,GACvBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAKW,CACnC,GAAI,CAAC,EAAG,EAAG,SAAUA,EAAIE,EAAID,EAAOI,GAClCf,EAAQC,EAAMU,EAAOI,GAAOhB,EAAKW,EAAKE,CACxC,GAAI,CAAC,EAAG,EAAG,SAAUF,EAAIC,GACvBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAKW,CACnC,GAAI,CAAC,EAAG,EAAG,SAAUA,EAAIC,GACvBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAKW,CACnC,GAAI,CAAC,EAAG,EAAG,SAAUA,EAAIE,EAAIC,EAAIF,EAAOI,EAAOC,GAC7ChB,EAAQC,EAAMU,EAAOK,GAErB,IAAIK,EAAO,KAEPN,IACFM,EAAOD,EAAIT,GAASI,EAAOC,GAASD,IAGtChB,EAAKmB,EAAK,CACRhxB,KAAM,cACN0X,KAAM8Y,EACN7Y,MAAOgZ,GACNQ,EACL,GAAI,CAAC,EAAG,EAAG,SAAUX,EAAIC,GACvBX,EAAQC,EAAMU,EAAOA,GAOnBZ,EANgB,IAAdW,EAAGr1B,OAKW,IAAdq1B,EAAGr1B,OACA61B,EAAKR,EAAG,GAAIV,GAEZkB,EAAK,CACRhxB,KAAM,cACNyW,YAAa+Z,GACZV,GAVE,IAYT,GAAI,CAAC,EAAG,EAAG,WACTA,EAAQ,KAAKD,EAAK,EACpB,GAAI,CAAC,EAAG,EAAG,SAAUW,EAAIE,EAAID,EAAOI,GAClCf,EAAQC,EAAMU,EAAOI,GAAOhB,EAAKW,EAAGj4B,OAAOm4B,EAC7C,GAAI,CAAC,EAAG,EAAG,SAAUF,EAAIC,GACvBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAKmB,EAAKnzB,OAAO2f,OAAO,CAAExd,KAAM,aAAewwB,GAAKV,EAClF,GAAI,CAAC,EAAG,EAAG,SAAUU,EAAIE,EAAID,EAAOI,GAClCf,EAAQC,EAAMU,EAAOI,GACrBhB,EAAKW,EAEDE,IACFb,EAAKmB,EAAK,CACRhxB,KAAM,aACN4X,WAAY4Y,EACZnY,WAAYqY,GACXZ,GAEP,GAAI,CAAC,EAAG,EAAG,SAAUU,EAAIC,GACvBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAK,CAAEvZ,KAAM,IAC3C,GAAI,CAAC,EAAG,EAAG,SAAUka,EAAIC,GACvBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAK,CAAEvZ,KAAM,IAC3C,GAAI,CAAC,EAAG,EAAG,SAAUka,EAAIC,GACvBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAK,CAAEvZ,KAAM,MAC3C,GAAI,CAAC,EAAG,EAAG,SAAUka,EAAIC,GACvBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAK,CAAEvZ,KAAM,MAC3C,GAAI,CAAC,EAAG,EAAG,SAAUka,EAAIE,EAAIC,EAAIF,EAAOI,EAAOC,GAC7ChB,EAAQC,EAAMU,EAAOK,GACrBjB,EAAK,CACHvZ,KAAM,YACNyB,UAAW2Y,EAEf,GAAI,CAAC,EAAG,EAAG,SAAUF,EAAIE,EAAIC,EAAIF,EAAOI,EAAOC,GAC7ChB,EAAQC,EAAMU,EAAOK,GACrBjB,EAAK,CACHvZ,KAAM,YACN0B,UAAU,EACVD,UAAW2Y,EAEf,GAAI,CAAC,EAAG,EAAG,SAAUF,EAAIE,EAAIC,EAAIF,EAAOI,EAAOC,GAC7ChB,EAAQC,EAAMU,EAAOK,GACrBjB,EAAK,CACHvZ,KAAM,aACNyB,UAAW2Y,EAEf,GAAI,CAAC,EAAG,EAAG,SAAUF,EAAIE,EAAIC,EAAIF,EAAOI,EAAOC,GAC7ChB,EAAQC,EAAMU,EAAOK,GACrBjB,EAAK,CACHvZ,KAAM,aACN0B,UAAU,EACVD,UAAW2Y,EAEf,GAAI,CAAC,EAAG,EAAG,SAAUF,EAAIC,GACvBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAKW,CACnC,GAAI,CAAC,EAAG,EAAG,SAAUA,EAAIC,GACvBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAKW,CACnC,GAAI,CAAC,EAAG,EAAG,SAAUA,EAAIC,GACvBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAKW,CACnC,GAAI,CAAC,GAAI,EAAG,SAAUA,EAAIC,GACxBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAKxZ,EAAKma,EAAI,SAAUV,EACtD,GAAI,CAAC,GAAI,EAAG,SAAUU,EAAIC,GACxBX,EAAQC,EAAMU,EAAOA,IAAOZ,EAAKxZ,EAAKma,EAAGp1B,MAAM,GAAI,SAAU00B,IAAUtX,SAAU,CACnF,GAAI,CAAC,GAAI,EAAG,SAAUgY,EAAIC,GACxBX,EAAQC,EAAMU,EAAOA,IAAOZ,EAAKxZ,EAAKma,EAAI,UAAWV,IAAUzI,iBAAkB,CACnF,GAAI,CAAC,GAAI,EAAG,SAAUmJ,EAAIC,GACxBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAKxZ,EAAKma,EAAI,UAAWV,EACvD,GAAI,CAAC,GAAI,EAAG,SAAUU,EAAIC,GACxBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAsxB9B,SAAyBnuB,EAASwvB,GAChC,IAAIlZ,EAA0B,MAAftW,EAAQ,GACnB0vB,EAAe1vB,EAAQ9J,QAAQ,KAE/BkC,EAAO4H,EAAQtG,MAAM,GAAqB,IAAlBg2B,EAAsBA,GAAgB,GAC9Dxb,OAAQ,EAGRyb,GAAgC,IAAlBD,GAAuBE,EAAkBC,uBAAuBz3B,GAG9E03B,GAAqC,IAAlBJ,GAAuBE,EAAkBG,qBAAqB33B,GAErF,GAAIu3B,EACFzb,EAAQ9b,EACRA,EAAO,wBACF,GAAI03B,EACT5b,EAAQ9b,MACH,CACL,IAAKw3B,EAAkBI,YAAY53B,GACjC,MAAM,IAAI63B,YAAY,kCAAoC73B,EAAO,KAKnE,GAFA8b,EAAQlU,EAAQtG,MAAMg2B,EAAe,GAAI,IAEpCE,EAAkBM,aAAa93B,EAAM8b,GACxC,MAAM,IAAI+b,YAAY,WAAa73B,EAAO,4BAA8B8b,EAAQ,IAEpF,CAEA,OAAOob,EAAK,CACVhxB,KAAM,kBACNlG,KAAMA,EACN8b,MAAOA,EACPoC,SAAUA,EACVU,UAAW2Y,EACX1Y,OAAQ6Y,EACRK,cAAeP,EAAkBQ,iBAAiBh4B,IAASA,EAC3Di4B,eAAgBT,EAAkBU,kBAAkBpc,IAAUA,GAC7Dsb,EACL,CA9zBmCzY,CAAgB+X,EAAIV,EACvD,GAAI,CAAC,GAAI,EAAG,SAAUU,EAAIC,GACxBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAKxZ,EAAKma,EAAI,UAAWV,EACvD,GAAI,CAAC,GAAI,EAAG,SAAUU,EAAIC,GACxBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAKxZ,EAAKma,EAAI,MAAOV,EACnD,GAAI,CAAC,GAAI,EAAG,SAAUU,EAAIC,GACxBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAKxZ,EAAKma,EAAI,MAAOV,EACnD,GAAI,CAAC,GAAI,EAAG,SAAUU,EAAIC,GAg9B1B,IAA2BwB,EAAMC,EAC3Blb,EAh9BJ8Y,EAAQC,EAAMU,EAAOA,GA+8BIwB,EA/8B0BzB,EA+8BpB0B,EA/8BwBpC,EAg9BnD9Y,EAAY2E,OAAOsW,EAAK72B,MAAM,IAh9BNy0B,EAk9BxB7Y,EAAY,GAAKA,GAAamb,EACzBnB,EAAK,CACVhxB,KAAM,gBACNsW,KAAM,SACN3a,OAAQqb,EACRA,UAAWA,GACVkb,GAGE7b,EAAK4b,EAAM,UAAWC,EA19B/B,GAAI,CAAC,GAAI,EAAG,SAAU1B,EAAIC,GACxBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAKxZ,EAAKma,EAAI,OAAQV,EACpD,GAAI,CAAC,GAAI,EAAG,SAAUU,EAAIC,GACxBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAKxZ,EAAKma,EAAI,OAAQV,EACpD,GAAI,CAAC,GAAI,EAAG,SAAUU,EAAIC,GACxBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAgiC9B,SAA8BoC,EAAMC,GAClC,IAAIjb,EAAegb,EAAK72B,MAAM,GAAI,GAC9B4b,EAAYob,EAAuBnb,GAEvC,GAAIob,EAAY1e,eAAeqD,GAC7B,OAAOga,EAAK,CACVhxB,KAAM,gBACNsW,KAAM,OACN3a,OAAQ02B,EAAYrb,GACpBA,UAAWA,EACXC,aAAcA,GACbib,GAML,IAAIjC,EAAc,KACdE,EAAY,KACZC,EAAU,KACVC,EAAc,KAEd6B,IACFjC,EAAciC,EAAQjC,YACtBE,EAAY+B,EAAQ/B,UACpBC,EAAU8B,EAAQ9B,QAClBC,EAAc6B,EAAQ7B,aAGxB,IAAIiC,EAAS,WACTpB,OAAM,EAENqB,EAAQ,CAEZlc,EAAK4b,EAAK72B,MAAM,EAAG,GAAI,SAAU60B,EAAc,CAC7CE,UAAWA,EACXC,QAASA,EACTC,YAAaA,EACbJ,YAAaA,EACbC,UAAWD,GAAe,EAC1BK,UAAWD,GAAe,GACxB,OAQJ,IALAkC,EAAM,GAAG/Z,SAAU,EAGnByZ,EAAOA,EAAK72B,MAAM,GAEX62B,EAAK92B,OAAS,GAAG,CACtB,IAAIuG,EAAU,MAGTA,EAAUuwB,EAAK1vB,MAAMiwB,MAAe9wB,EAAUuwB,EAAK1vB,MAAMkwB,KACxDxC,IACFiB,EAAM,CACJf,UAAWA,EACXC,QAASA,EACTC,YAAaA,EACbJ,YAAaA,EACbC,UAAWD,GAAevuB,EAAQ,GAAGvG,OACrCm1B,UAAWD,GAAe3uB,EAAQ,GAAGvG,SAGzCo3B,EAAMl2B,KAAKga,EAAK3U,EAAQ,GAAI,UAAWwvB,IACvCe,EAAOA,EAAK72B,MAAMsG,EAAQ,GAAGvG,UAItBuG,EAAUuwB,EAAK1vB,MAAM+vB,MACtBrC,IACFiB,EAAM,CACJf,UAAWA,EACXC,QAASA,EACTC,YAAaA,EACbJ,YAAaA,EACbC,YAAaD,EACbK,YAAaD,IAGjBkC,EAAMl2B,KAAKga,EAAK3U,EAAQ,GAAI,SAAUwvB,IACtCe,EAAOA,EAAK72B,MAAM,GAExB,CAEA,OAAOm3B,CACT,CAtnCmCG,CAAqBlC,EAAIC,EAC5D,GAAI,CAAC,GAAI,EAAG,SAAUD,EAAIC,GACxBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAKW,CACnC,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,EAAG,SAAUA,EAAIC,GACjCX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAKW,CACnC,GAAI,CAAC,GAAI,EAAG,SAAUA,EAAIE,EAAID,EAAOI,GACnCf,EAAQC,EAAMU,EAAOI,GACrBL,EAAGjY,QAAS,EACZsX,EAAKW,CACP,GAAI,CAAC,GAAI,EAAG,SAAUA,EAAIC,GACxBX,EAAQC,EAAMU,EAAOA,GACrBZ,EAAKmB,EAAK,CACRhxB,KAAM,aACNsW,KAAMka,EACNjY,QAAQ,GACPuX,EACL,GAAI,CAAC,GAAI,EAAG,SAAUU,EAAIC,GACxBX,EAAQC,EAAMU,EAAOA,GACrBZ,EAAKmB,EAAK,CACRhxB,KAAM,aACNsW,KAAMka,EACNjY,QAAQ,GACPuX,EACL,GAAI,CAAC,GAAI,EAAG,SAAUU,EAAIC,GACxBX,EAAQC,EAAMU,EAAOA,GACrBZ,EAAKmB,EAAK,CACRhxB,KAAM,aACNsW,KAAMka,EACNjY,QAAQ,GACPuX,EACL,GAAI,CAAC,GAAI,EAAG,SAAUU,EAAIC,GACxBX,EAAQC,EAAMU,EAAOA,GACrB,IAAIpzB,EAAQs1B,EAASnC,GACrBX,EAAKmB,EAAK,CACRhxB,KAAM,aACNsW,KAAM,QACNne,KAAMkF,EAAM,GACZ0I,GAAI1I,EAAM,GACVkb,QAAQ,GACPuX,EACL,GAAI,CAAC,GAAI,EAAG,SAAUU,EAAIC,GACxBX,EAAQC,EAAMU,EAAOA,GACrBZ,EAAKmB,EAAK,CACRhxB,KAAM,aACNsW,KAAM,QACNne,KAAMw6B,EAASnC,GAAI,GACnBjY,QAAQ,GACPuX,EACL,GAAI,CAAC,GAAI,EAAG,SAAUU,EAAIC,GACxBX,EAAQC,EAAMU,EAAOA,GACrB,IAAIpzB,EAAQs1B,EAASnC,GACrBX,EAAKmB,EAAK,CACRhxB,KAAM,aACNsW,KAAM,QACNne,KAAMkF,EAAM,GACZ0I,GAAI1I,EAAM,GACVkb,QAAQ,GACPuX,EACL,GAAI,CAAC,GAAI,EAAG,SAAUU,EAAIC,GACxBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAKW,CACnC,GAAI,CAAC,GAAI,EAAG,SAAUA,EAAIC,GACxBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAKW,CACnC,GAAI,CAAC,GAAI,EAAG,SAAUA,EAAIE,EAAIC,EAAIF,EAAOI,EAAOC,GAC9ChB,EAAQC,EAAMU,EAAOK,GACrB,IAAIha,EAAUmV,OAAOuE,GACjB12B,EAAOs4B,EAAuBtb,GAClC,IAAK8Y,EAAGI,QAAQ4C,0BAA4BP,EAAY1e,eAAe7Z,GACrE,MAAM,IAAI63B,YAAY,iCAAmC73B,EAAO,MAGlEu4B,EAAYv4B,GAAQ02B,EAAGva,YAEvB4Z,EAAKmB,EAAK,CACRhxB,KAAM,QACN6X,WAAW,EACX/d,KAAMA,EACNgd,QAASA,EACTnb,OAAQ60B,EAAGva,YACX2B,WAAY8Y,GACXZ,EACL,GAAI,CAAC,GAAI,EAAG,SAAUU,EAAIE,EAAIC,EAAIF,EAAOI,EAAOC,GAC9ChB,EAAQC,EAAMU,EAAOK,GACrBjB,EAAKmB,EAAK,CACRhxB,KAAM,QACN6X,WAAW,EACXlc,OAAQ60B,EAAGva,YACX2B,WAAY8Y,GACXZ,EACL,GAAI,CAAC,GAAI,EAAG,SAAUU,EAAIE,EAAIC,EAAIF,EAAOI,EAAOC,GAC9ChB,EAAQC,EAAMU,EAAOK,GACrBjB,EAAKmB,EAAK,CACRhxB,KAAM,QACN6X,WAAW,EACXD,WAAY8Y,GACXZ,EACL,GAAI,CAAC,GAAI,EAAG,SAAUU,EAAIE,EAAIC,EAAIF,EAAOI,EAAOC,GAC9ChB,EAAQC,EAAMU,EAAOK,GACrBjB,EAAKmB,EAAK,CACRhxB,KAAM,iBACNgY,UAAU,EACVvB,YAAaia,GACZZ,EACL,GAAI,CAAC,GAAI,EAAG,SAAUU,EAAIE,EAAIC,EAAIF,EAAOI,EAAOC,GAC9ChB,EAAQC,EAAMU,EAAOK,GACrBjB,EAAKmB,EAAK,CACRhxB,KAAM,iBACNyW,YAAaia,GACZZ,EACL,GAAI,CAAC,GAAI,EAAG,WACVA,EAAQ,KAAKD,EAAK,EACpB,GAAI,CAAC,GAAI,EAAG,SAAUW,EAAIC,GACxBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAKW,CACnC,GAAI,CAAC,GAAI,EAAG,SAAUA,EAAIC,GACxBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAK,CAACW,EACpC,GAAI,CAAC,GAAI,EAAG,SAAUA,EAAIE,EAAID,EAAOI,GACnCf,EAAQC,EAAMU,EAAOI,GAAOhB,EAAK,CAACW,GAAIj4B,OAAOm4B,EAC/C,GAAI,CAAC,GAAI,EAAG,SAAUF,EAAIE,EAAIC,EAAIC,EAAIH,EAAOI,EAAOC,EAAOC,GACzDjB,EAAQC,EAAMU,EAAOM,GACrB8B,EAAgBrC,EAAIG,GAEpBd,EAAK,CAACmB,EAAK,CACThxB,KAAM,aACN7H,KAAMq4B,EACNzqB,GAAI4qB,GACHO,EAAIT,EAAOK,KAEVF,IACFf,EAAKA,EAAGt3B,OAAOq4B,GAEnB,GAAI,CAAC,GAAI,EAAG,SAAUJ,EAAIC,GACxBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAKW,CACnC,GAAI,CAAC,GAAI,EAAG,SAAUA,EAAIE,EAAID,EAAOI,GACnCf,EAAQC,EAAMU,EAAOI,GAAOhB,EAAK,CAACW,GAAIj4B,OAAOm4B,EAC/C,GAAI,CAAC,GAAI,EAAG,SAAUF,EAAIE,EAAIC,EAAIC,EAAIH,EAAOI,EAAOC,EAAOC,GACzDjB,EAAQC,EAAMU,EAAOM,GACrB8B,EAAgBrC,EAAIG,GAEpBd,EAAK,CAACmB,EAAK,CACThxB,KAAM,aACN7H,KAAMq4B,EACNzqB,GAAI4qB,GACHO,EAAIT,EAAOK,KAEVF,IACFf,EAAKA,EAAGt3B,OAAOq4B,GAEnB,GAAI,CAAC,GAAI,EAAG,SAAUJ,EAAIC,GACxBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAKxZ,EAAKma,EAAI,SAAUV,EACtD,GAAI,CAAC,GAAI,EAAG,SAAUU,EAAIC,GACxBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAKW,CACnC,GAAI,CAAC,GAAI,EAAG,SAAUA,EAAIC,GACxBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAKW,CACnC,GAAI,CAAC,GAAI,EAAG,SAAUA,EAAIC,GACxBX,EAAQC,EAAMU,EAAOA,GAAOZ,EAAKxZ,EAAKma,EAAI,OAAQV,EACpD,IAKIgD,EAAS,CAAE,MAAS,KAAM,KAAQ,KAAM,IAAO,KAAM,IAAO,KAAM,IAAO,KAAM,MAAS,KAAM,MAAS,KAAM,cAAiB,KAAM,QAAW,KAAM,cAAiB,KAAM,cAAiB,KAAM,cAAiB,KAAM,SAAY,KAAM,iBAAoB,KAAM,OAAU,KAAM,iBAAoB,KAAM,QAAW,KAAM,SAAY,KAAM,SAAY,KAAM,SAAY,KAAM,UAAa,KAAM,IAAO,KAAM,gBAAmB,KAAM,OAAU,KAAM,KAAQ,KAAM,KAAQ,KAAM,YAAe,KAAM,WAAc,KAAM,aAAgB,KAAM,oBAAuB,KAAM,QAAW,KAAM,kBAAqB,KAAM,UAAa,KAAM,UAAa,KAAM,UAAa,KAAM,KAAQ,KAAM,EAAK,MAKhrBzY,EAAQ,CAAC,CAAE,EAAK,EAAG,GAAM,MAAQ,CAAE,GAAM,OAAS,CAAE,EAAK,EAAG,EAAK,EAAG,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,OAAS,CAAE,GAAM,KAAM,GAAM,KAAM,GAAM,MAAQ,CAAE,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,KAAM,GAAM,MAAO,GAAM,KAAM,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,KAAM,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAQ,CAAE,GAAM,MAAQ,CAAE,GAAM,MAAO,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,MAAQ,CAAE,EAAK,GAAI,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,KAAM,GAAM,KAAM,GAAM,MAAQ,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,M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","sources":["webpack:///nextcloud/node_modules/@nextcloud/browserslist-config/browserlist.config.js","webpack:///nextcloud/core/src/logger.js","webpack:///nextcloud/core/src/services/BrowserStorageService.js","webpack:///nextcloud/core/src/services/BrowsersListService.js","webpack:///nextcloud/core/src/utils/RedirectUnsupportedBrowsers.js","webpack:///nextcloud/node_modules/browserslist/browser.js","webpack:///nextcloud/node_modules/browserslist/error.js","webpack:///nextcloud/node_modules/browserslist/index.js","webpack:///nextcloud/node_modules/browserslist/parse.js","webpack:///nextcloud/node_modules/caniuse-lite/data/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browsers.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browsers.js","webpack:///nextcloud/node_modules/electron-to-chromium/versions.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/runtime/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/generator/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa-minimizer.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-from-regexp.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-case-insensitive-lowercase-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-to-chars-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-meta-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-single-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-code-to-simple-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-escape-unescape-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-surrogate-pair-to-single-unicode-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/combine-repeating-patterns-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/disjunction-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/group-single-chars-to-char-class.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifier-range-to-symbol-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifiers-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/remove-empty-group-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/ungroup-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/generated/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js","webpack:///nextcloud/node_modules/regexp-tree/dist/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/utils.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/node-path.js","webpack:///nextcloud/node_modules/regexp-tree/dist/utils/clone.js","webpack:///nextcloud/node_modules/regexp-tree/index.js","webpack:///nextcloud/node_modules/browserslist-useragent-regexp/dist/index.js","webpack:///nextcloud/node_modules/ua-regexes-lite/index.js"],"sourcesContent":["module.exports = [\n '>0.25%',\n 'not ie 11',\n 'not op_mini all',\n 'not dead',\n 'Firefox ESR',\n];\n","/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nconst getLogger = user => {\n\tif (user === null) {\n\t\treturn getLoggerBuilder()\n\t\t\t.setApp('core')\n\t\t\t.build()\n\t}\n\treturn getLoggerBuilder()\n\t\t.setApp('core')\n\t\t.setUid(user.uid)\n\t\t.build()\n}\n\nexport default getLogger(getCurrentUser())\n","/**\n * @copyright 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { getBuilder } from '@nextcloud/browser-storage'\n\nexport default getBuilder('core')\n\t.clearOnLogout()\n\t.persist()\n\t.build()\n","/**\n * @copyright 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { getUserAgentRegex } from 'browserslist-useragent-regexp'\n// eslint-disable-next-line n/no-extraneous-import\nimport browserslist from 'browserslist'\nimport browserslistConfig from '@nextcloud/browserslist-config'\n\n// Generate a regex that matches user agents to detect incompatible browsers\nexport const supportedBrowsersRegExp = getUserAgentRegex({ allowHigherVersions: true, browsers: browserslistConfig })\nexport const supportedBrowsers = browserslist(browserslistConfig)\n","/**\n * @copyright 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport { supportedBrowsersRegExp } from '../services/BrowsersListService.js'\nimport browserStorage from '../services/BrowserStorageService.js'\nimport logger from '../logger.js'\n\nexport const browserStorageKey = 'unsupported-browser-ignore'\nconst redirectPath = generateUrl('/unsupported')\n\nconst isBrowserOverridden = browserStorage.getItem(browserStorageKey) === 'true'\n\n/**\n * Test the current browser user agent against our official browserslist config\n * and redirect if unsupported\n */\nexport const testSupportedBrowser = function() {\n\tif (supportedBrowsersRegExp.test(navigator.userAgent)) {\n\t\tlogger.debug('this browser is officially supported ! 🚀')\n\t\treturn\n\t}\n\n\t// If incompatible BUT ignored, let's keep going\n\tif (isBrowserOverridden) {\n\t\tlogger.debug('this browser is NOT supported but has been manually overridden ! ⚠️')\n\t\treturn\n\t}\n\n\t// If incompatible, NOT overridden AND NOT already on the warning page,\n\t// redirect to the unsupported warning page\n\tif (window.location.pathname.indexOf(redirectPath) === -1) {\n\t\tconst redirectUrl = window.location.href.replace(window.location.origin, '')\n\t\tconst base64Param = Buffer.from(redirectUrl).toString('base64')\n\t\thistory.pushState(null, null, `${redirectPath}?redirect_url=${base64Param}`)\n\t\twindow.location.reload()\n\t}\n}\n","var BrowserslistError = require('./error')\n\nfunction noop() {}\n\nmodule.exports = {\n loadQueries: function loadQueries() {\n throw new BrowserslistError(\n 'Sharable configs are not supported in client-side build of Browserslist'\n )\n },\n\n getStat: function getStat(opts) {\n return opts.stats\n },\n\n loadConfig: function loadConfig(opts) {\n if (opts.config) {\n throw new BrowserslistError(\n 'Browserslist config are not supported in client-side build'\n )\n }\n },\n\n loadCountry: function loadCountry() {\n throw new BrowserslistError(\n 'Country statistics are not supported ' +\n 'in client-side build of Browserslist'\n )\n },\n\n loadFeature: function loadFeature() {\n throw new BrowserslistError(\n 'Supports queries are not available in client-side build of Browserslist'\n )\n },\n\n currentNode: function currentNode(resolve, context) {\n return resolve(['maintained node versions'], context)[0]\n },\n\n parseConfig: noop,\n\n readConfig: noop,\n\n findConfig: noop,\n\n clearCaches: noop,\n\n oldDataWarning: noop,\n\n env: {}\n}\n","function BrowserslistError(message) {\n this.name = 'BrowserslistError'\n this.message = message\n this.browserslist = true\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, BrowserslistError)\n }\n}\n\nBrowserslistError.prototype = Error.prototype\n\nmodule.exports = BrowserslistError\n","var jsReleases = require('node-releases/data/processed/envs.json')\nvar agents = require('caniuse-lite/dist/unpacker/agents').agents\nvar jsEOL = require('node-releases/data/release-schedule/release-schedule.json')\nvar path = require('path')\nvar e2c = require('electron-to-chromium/versions')\n\nvar BrowserslistError = require('./error')\nvar parse = require('./parse')\nvar env = require('./node') // Will load browser.js in webpack\n\nvar YEAR = 365.259641 * 24 * 60 * 60 * 1000\nvar ANDROID_EVERGREEN_FIRST = '37'\nvar OP_MOB_BLINK_FIRST = 14\n\n// Helpers\n\nfunction isVersionsMatch(versionA, versionB) {\n return (versionA + '.').indexOf(versionB + '.') === 0\n}\n\nfunction isEolReleased(name) {\n var version = name.slice(1)\n return browserslist.nodeVersions.some(function (i) {\n return isVersionsMatch(i, version)\n })\n}\n\nfunction normalize(versions) {\n return versions.filter(function (version) {\n return typeof version === 'string'\n })\n}\n\nfunction normalizeElectron(version) {\n var versionToUse = version\n if (version.split('.').length === 3) {\n versionToUse = version.split('.').slice(0, -1).join('.')\n }\n return versionToUse\n}\n\nfunction nameMapper(name) {\n return function mapName(version) {\n return name + ' ' + version\n }\n}\n\nfunction getMajor(version) {\n return parseInt(version.split('.')[0])\n}\n\nfunction getMajorVersions(released, number) {\n if (released.length === 0) return []\n var majorVersions = uniq(released.map(getMajor))\n var minimum = majorVersions[majorVersions.length - number]\n if (!minimum) {\n return released\n }\n var selected = []\n for (var i = released.length - 1; i >= 0; i--) {\n if (minimum > getMajor(released[i])) break\n selected.unshift(released[i])\n }\n return selected\n}\n\nfunction uniq(array) {\n var filtered = []\n for (var i = 0; i < array.length; i++) {\n if (filtered.indexOf(array[i]) === -1) filtered.push(array[i])\n }\n return filtered\n}\n\nfunction fillUsage(result, name, data) {\n for (var i in data) {\n result[name + ' ' + i] = data[i]\n }\n}\n\nfunction generateFilter(sign, version) {\n version = parseFloat(version)\n if (sign === '>') {\n return function (v) {\n return parseFloat(v) > version\n }\n } else if (sign === '>=') {\n return function (v) {\n return parseFloat(v) >= version\n }\n } else if (sign === '<') {\n return function (v) {\n return parseFloat(v) < version\n }\n } else {\n return function (v) {\n return parseFloat(v) <= version\n }\n }\n}\n\nfunction generateSemverFilter(sign, version) {\n version = version.split('.').map(parseSimpleInt)\n version[1] = version[1] || 0\n version[2] = version[2] || 0\n if (sign === '>') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) > 0\n }\n } else if (sign === '>=') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) >= 0\n }\n } else if (sign === '<') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) > 0\n }\n } else {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) >= 0\n }\n }\n}\n\nfunction parseSimpleInt(x) {\n return parseInt(x)\n}\n\nfunction compare(a, b) {\n if (a < b) return -1\n if (a > b) return +1\n return 0\n}\n\nfunction compareSemver(a, b) {\n return (\n compare(parseInt(a[0]), parseInt(b[0])) ||\n compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) ||\n compare(parseInt(a[2] || '0'), parseInt(b[2] || '0'))\n )\n}\n\n// this follows the npm-like semver behavior\nfunction semverFilterLoose(operator, range) {\n range = range.split('.').map(parseSimpleInt)\n if (typeof range[1] === 'undefined') {\n range[1] = 'x'\n }\n // ignore any patch version because we only return minor versions\n // range[2] = 'x'\n switch (operator) {\n case '<=':\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) <= 0\n }\n case '>=':\n default:\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) >= 0\n }\n }\n}\n\n// this follows the npm-like semver behavior\nfunction compareSemverLoose(version, range) {\n if (version[0] !== range[0]) {\n return version[0] < range[0] ? -1 : +1\n }\n if (range[1] === 'x') {\n return 0\n }\n if (version[1] !== range[1]) {\n return version[1] < range[1] ? -1 : +1\n }\n return 0\n}\n\nfunction resolveVersion(data, version) {\n if (data.versions.indexOf(version) !== -1) {\n return version\n } else if (browserslist.versionAliases[data.name][version]) {\n return browserslist.versionAliases[data.name][version]\n } else {\n return false\n }\n}\n\nfunction normalizeVersion(data, version) {\n var resolved = resolveVersion(data, version)\n if (resolved) {\n return resolved\n } else if (data.versions.length === 1) {\n return data.versions[0]\n } else {\n return false\n }\n}\n\nfunction filterByYear(since, context) {\n since = since / 1000\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var versions = Object.keys(data.releaseDate).filter(function (v) {\n var date = data.releaseDate[v]\n return date !== null && date >= since\n })\n return selected.concat(versions.map(nameMapper(data.name)))\n }, [])\n}\n\nfunction cloneData(data) {\n return {\n name: data.name,\n versions: data.versions,\n released: data.released,\n releaseDate: data.releaseDate\n }\n}\n\nfunction byName(name, context) {\n name = name.toLowerCase()\n name = browserslist.aliases[name] || name\n if (context.mobileToDesktop && browserslist.desktopNames[name]) {\n var desktop = browserslist.data[browserslist.desktopNames[name]]\n if (name === 'android') {\n return normalizeAndroidData(cloneData(browserslist.data[name]), desktop)\n } else {\n var cloned = cloneData(desktop)\n cloned.name = name\n return cloned\n }\n }\n return browserslist.data[name]\n}\n\nfunction normalizeAndroidVersions(androidVersions, chromeVersions) {\n var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST)\n return androidVersions\n .filter(function (version) {\n return /^(?:[2-4]\\.|[34]$)/.test(version)\n })\n .concat(chromeVersions.slice(iFirstEvergreen))\n}\n\nfunction normalizeAndroidData(android, chrome) {\n android.released = normalizeAndroidVersions(android.released, chrome.released)\n android.versions = normalizeAndroidVersions(android.versions, chrome.versions)\n android.released.forEach(function (v) {\n if (android.releaseDate[v] === undefined) {\n android.releaseDate[v] = chrome.releaseDate[v]\n }\n })\n return android\n}\n\nfunction checkName(name, context) {\n var data = byName(name, context)\n if (!data) throw new BrowserslistError('Unknown browser ' + name)\n return data\n}\n\nfunction unknownQuery(query) {\n return new BrowserslistError(\n 'Unknown browser query `' +\n query +\n '`. ' +\n 'Maybe you are using old Browserslist or made typo in query.'\n )\n}\n\n// Adjusts last X versions queries for some mobile browsers,\n// where caniuse data jumps from a legacy version to the latest\nfunction filterJumps(list, name, nVersions, context) {\n var jump = 1\n switch (name) {\n case 'android':\n if (context.mobileToDesktop) return list\n var released = browserslist.data.chrome.released\n jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST)\n break\n case 'op_mob':\n var latest = browserslist.data.op_mob.released.slice(-1)[0]\n jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1\n break\n default:\n return list\n }\n if (nVersions <= jump) {\n return list.slice(-1)\n }\n return list.slice(jump - 1 - nVersions)\n}\n\nfunction isSupported(flags) {\n return (\n typeof flags === 'string' &&\n (flags.indexOf('y') >= 0 || flags.indexOf('a') >= 0)\n )\n}\n\nfunction resolve(queries, context) {\n return parse(QUERIES, queries).reduce(function (result, node, index) {\n if (node.not && index === 0) {\n throw new BrowserslistError(\n 'Write any browsers query (for instance, `defaults`) ' +\n 'before `' +\n node.query +\n '`'\n )\n }\n var type = QUERIES[node.type]\n var array = type.select.call(browserslist, context, node).map(function (j) {\n var parts = j.split(' ')\n if (parts[1] === '0') {\n return parts[0] + ' ' + byName(parts[0], context).versions[0]\n } else {\n return j\n }\n })\n\n if (node.compose === 'and') {\n if (node.not) {\n return result.filter(function (j) {\n return array.indexOf(j) === -1\n })\n } else {\n return result.filter(function (j) {\n return array.indexOf(j) !== -1\n })\n }\n } else {\n if (node.not) {\n var filter = {}\n array.forEach(function (j) {\n filter[j] = true\n })\n return result.filter(function (j) {\n return !filter[j]\n })\n }\n return result.concat(array)\n }\n }, [])\n}\n\nfunction prepareOpts(opts) {\n if (typeof opts === 'undefined') opts = {}\n\n if (typeof opts.path === 'undefined') {\n opts.path = path.resolve ? path.resolve('.') : '.'\n }\n\n return opts\n}\n\nfunction prepareQueries(queries, opts) {\n if (typeof queries === 'undefined' || queries === null) {\n var config = browserslist.loadConfig(opts)\n if (config) {\n queries = config\n } else {\n queries = browserslist.defaults\n }\n }\n\n return queries\n}\n\nfunction checkQueries(queries) {\n if (!(typeof queries === 'string' || Array.isArray(queries))) {\n throw new BrowserslistError(\n 'Browser queries must be an array or string. Got ' + typeof queries + '.'\n )\n }\n}\n\nvar cache = {}\n\nfunction browserslist(queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n\n var context = {\n ignoreUnknownVersions: opts.ignoreUnknownVersions,\n dangerousExtend: opts.dangerousExtend,\n mobileToDesktop: opts.mobileToDesktop,\n path: opts.path,\n env: opts.env\n }\n\n env.oldDataWarning(browserslist.data)\n var stats = env.getStat(opts, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n\n var cacheKey = JSON.stringify([queries, context])\n if (cache[cacheKey]) return cache[cacheKey]\n\n var result = uniq(resolve(queries, context)).sort(function (name1, name2) {\n name1 = name1.split(' ')\n name2 = name2.split(' ')\n if (name1[0] === name2[0]) {\n // assumptions on caniuse data\n // 1) version ranges never overlaps\n // 2) if version is not a range, it never contains `-`\n var version1 = name1[1].split('-')[0]\n var version2 = name2[1].split('-')[0]\n return compareSemver(version2.split('.'), version1.split('.'))\n } else {\n return compare(name1[0], name2[0])\n }\n })\n if (!env.env.BROWSERSLIST_DISABLE_CACHE) {\n cache[cacheKey] = result\n }\n return result\n}\n\nbrowserslist.parse = function (queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n return parse(QUERIES, queries)\n}\n\n// Will be filled by Can I Use data below\nbrowserslist.cache = {}\nbrowserslist.data = {}\nbrowserslist.usage = {\n global: {},\n custom: null\n}\n\n// Default browsers query\nbrowserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead']\n\n// Browser names aliases\nbrowserslist.aliases = {\n fx: 'firefox',\n ff: 'firefox',\n ios: 'ios_saf',\n explorer: 'ie',\n blackberry: 'bb',\n explorermobile: 'ie_mob',\n operamini: 'op_mini',\n operamobile: 'op_mob',\n chromeandroid: 'and_chr',\n firefoxandroid: 'and_ff',\n ucandroid: 'and_uc',\n qqandroid: 'and_qq'\n}\n\n// Can I Use only provides a few versions for some browsers (e.g. and_chr).\n// Fallback to a similar browser for unknown versions\n// Note op_mob is not included as its chromium versions are not in sync with Opera desktop\nbrowserslist.desktopNames = {\n and_chr: 'chrome',\n and_ff: 'firefox',\n ie_mob: 'ie',\n android: 'chrome' // has extra processing logic\n}\n\n// Aliases to work with joined versions like `ios_saf 7.0-7.1`\nbrowserslist.versionAliases = {}\n\nbrowserslist.clearCaches = env.clearCaches\nbrowserslist.parseConfig = env.parseConfig\nbrowserslist.readConfig = env.readConfig\nbrowserslist.findConfig = env.findConfig\nbrowserslist.loadConfig = env.loadConfig\n\nbrowserslist.coverage = function (browsers, stats) {\n var data\n if (typeof stats === 'undefined') {\n data = browserslist.usage.global\n } else if (stats === 'my stats') {\n var opts = {}\n opts.path = path.resolve ? path.resolve('.') : '.'\n var customStats = env.getStat(opts)\n if (!customStats) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n data = {}\n for (var browser in customStats) {\n fillUsage(data, browser, customStats[browser])\n }\n } else if (typeof stats === 'string') {\n if (stats.length > 2) {\n stats = stats.toLowerCase()\n } else {\n stats = stats.toUpperCase()\n }\n env.loadCountry(browserslist.usage, stats, browserslist.data)\n data = browserslist.usage[stats]\n } else {\n if ('dataByBrowser' in stats) {\n stats = stats.dataByBrowser\n }\n data = {}\n for (var name in stats) {\n for (var version in stats[name]) {\n data[name + ' ' + version] = stats[name][version]\n }\n }\n }\n\n return browsers.reduce(function (all, i) {\n var usage = data[i]\n if (usage === undefined) {\n usage = data[i.replace(/ \\S+$/, ' 0')]\n }\n return all + (usage || 0)\n }, 0)\n}\n\nfunction nodeQuery(context, node) {\n var matched = browserslist.nodeVersions.filter(function (i) {\n return isVersionsMatch(i, node.version)\n })\n if (matched.length === 0) {\n if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of Node.js'\n )\n }\n }\n return ['node ' + matched[matched.length - 1]]\n}\n\nfunction sinceQuery(context, node) {\n var year = parseInt(node.year)\n var month = parseInt(node.month || '01') - 1\n var day = parseInt(node.day || '01')\n return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context)\n}\n\nfunction coverQuery(context, node) {\n var coverage = parseFloat(node.coverage)\n var usage = browserslist.usage.global\n if (node.place) {\n if (node.place.match(/^my\\s+stats$/i)) {\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n usage = context.customUsage\n } else {\n var place\n if (node.place.length === 2) {\n place = node.place.toUpperCase()\n } else {\n place = node.place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n usage = browserslist.usage[place]\n }\n }\n var versions = Object.keys(usage).sort(function (a, b) {\n return usage[b] - usage[a]\n })\n var coveraged = 0\n var result = []\n var version\n for (var i = 0; i < versions.length; i++) {\n version = versions[i]\n if (usage[version] === 0) break\n coveraged += usage[version]\n result.push(version)\n if (coveraged >= coverage) break\n }\n return result\n}\n\nvar QUERIES = {\n last_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = getMajorVersions(data.released, node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.released.slice(-node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_electron_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var validVersions = getMajorVersions(Object.keys(e2c), node.versions)\n return validVersions.map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return getMajorVersions(browserslist.nodeVersions, node.versions).map(\n function (version) {\n return 'node ' + version\n }\n )\n }\n },\n last_browser_major_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var validVersions = getMajorVersions(data.released, node.versions)\n var list = validVersions.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n last_electron_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(e2c)\n .slice(-node.versions)\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+versions?$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .slice(-node.versions)\n .map(function (version) {\n return 'node ' + version\n })\n }\n },\n last_browser_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var list = data.released.slice(-node.versions).map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n unreleased_versions: {\n matches: [],\n regexp: /^unreleased\\s+versions$/i,\n select: function (context) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.versions.filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n list = list.map(nameMapper(data.name))\n return selected.concat(list)\n }, [])\n }\n },\n unreleased_electron_versions: {\n matches: [],\n regexp: /^unreleased\\s+electron\\s+versions?$/i,\n select: function () {\n return []\n }\n },\n unreleased_browser_versions: {\n matches: ['browser'],\n regexp: /^unreleased\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n return data.versions\n .filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n .map(nameMapper(data.name))\n }\n },\n last_years: {\n matches: ['years'],\n regexp: /^last\\s+(\\d*.?\\d+)\\s+years?$/i,\n select: function (context, node) {\n return filterByYear(Date.now() - YEAR * node.years, context)\n }\n },\n since_y: {\n matches: ['year'],\n regexp: /^since (\\d+)$/i,\n select: sinceQuery\n },\n since_y_m: {\n matches: ['year', 'month'],\n regexp: /^since (\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n since_y_m_d: {\n matches: ['year', 'month', 'day'],\n regexp: /^since (\\d+)-(\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n popularity: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var usage = browserslist.usage.global\n return Object.keys(usage).reduce(function (result, version) {\n if (node.sign === '>') {\n if (usage[version] > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (usage[version] < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (usage[version] <= popularity) {\n result.push(version)\n }\n } else if (usage[version] >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_my_stats: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+my\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_config_stats: {\n matches: ['sign', 'popularity', 'config'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(\\S+)\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var stats = env.loadStat(context, node.config, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_place: {\n matches: ['sign', 'popularity', 'place'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+((alt-)?\\w\\w)$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var place = node.place\n if (place.length === 2) {\n place = place.toUpperCase()\n } else {\n place = place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n var usage = browserslist.usage[place]\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n cover: {\n matches: ['coverage'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%$/i,\n select: coverQuery\n },\n cover_in: {\n matches: ['coverage', 'place'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(my\\s+stats|(alt-)?\\w\\w)$/i,\n select: coverQuery\n },\n supports: {\n matches: ['feature'],\n regexp: /^supports\\s+([\\w-]+)$/,\n select: function (context, node) {\n env.loadFeature(browserslist.cache, node.feature)\n var features = browserslist.cache[node.feature]\n var result = []\n for (var name in features) {\n var data = byName(name, context)\n // Only check desktop when latest released mobile has support\n var checkDesktop =\n context.mobileToDesktop &&\n name in browserslist.desktopNames &&\n isSupported(features[name][data.released.slice(-1)[0]])\n data.versions.forEach(function (version) {\n var flags = features[name][version]\n if (flags === undefined && checkDesktop) {\n flags = features[browserslist.desktopNames[name]][version]\n }\n if (isSupported(flags)) {\n result.push(name + ' ' + version)\n }\n })\n }\n return result\n }\n },\n electron_range: {\n matches: ['from', 'to'],\n regexp: /^electron\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var fromToUse = normalizeElectron(node.from)\n var toToUse = normalizeElectron(node.to)\n var from = parseFloat(node.from)\n var to = parseFloat(node.to)\n if (!e2c[fromToUse]) {\n throw new BrowserslistError('Unknown version ' + from + ' of electron')\n }\n if (!e2c[toToUse]) {\n throw new BrowserslistError('Unknown version ' + to + ' of electron')\n }\n return Object.keys(e2c)\n .filter(function (i) {\n var parsed = parseFloat(i)\n return parsed >= from && parsed <= to\n })\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_range: {\n matches: ['from', 'to'],\n regexp: /^node\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(semverFilterLoose('>=', node.from))\n .filter(semverFilterLoose('<=', node.to))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_range: {\n matches: ['browser', 'from', 'to'],\n regexp: /^(\\w+)\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var from = parseFloat(normalizeVersion(data, node.from) || node.from)\n var to = parseFloat(normalizeVersion(data, node.to) || node.to)\n function filter(v) {\n var parsed = parseFloat(v)\n return parsed >= from && parsed <= to\n }\n return data.released.filter(filter).map(nameMapper(data.name))\n }\n },\n electron_ray: {\n matches: ['sign', 'version'],\n regexp: /^electron\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n return Object.keys(e2c)\n .filter(generateFilter(node.sign, versionToUse))\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_ray: {\n matches: ['sign', 'version'],\n regexp: /^node\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(generateSemverFilter(node.sign, node.version))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_ray: {\n matches: ['browser', 'sign', 'version'],\n regexp: /^(\\w+)\\s*(>=?|<=?)\\s*([\\d.]+)$/,\n select: function (context, node) {\n var version = node.version\n var data = checkName(node.browser, context)\n var alias = browserslist.versionAliases[data.name][version]\n if (alias) version = alias\n return data.released\n .filter(generateFilter(node.sign, version))\n .map(function (v) {\n return data.name + ' ' + v\n })\n }\n },\n firefox_esr: {\n matches: [],\n regexp: /^(firefox|ff|fx)\\s+esr$/i,\n select: function () {\n return ['firefox 102', 'firefox 115']\n }\n },\n opera_mini_all: {\n matches: [],\n regexp: /(operamini|op_mini)\\s+all/i,\n select: function () {\n return ['op_mini all']\n }\n },\n electron_version: {\n matches: ['version'],\n regexp: /^electron\\s+([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n var chrome = e2c[versionToUse]\n if (!chrome) {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of electron'\n )\n }\n return ['chrome ' + chrome]\n }\n },\n node_major_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+)$/i,\n select: nodeQuery\n },\n node_minor_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n node_patch_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n current_node: {\n matches: [],\n regexp: /^current\\s+node$/i,\n select: function (context) {\n return [env.currentNode(resolve, context)]\n }\n },\n maintained_node: {\n matches: [],\n regexp: /^maintained\\s+node\\s+versions$/i,\n select: function (context) {\n var now = Date.now()\n var queries = Object.keys(jsEOL)\n .filter(function (key) {\n return (\n now < Date.parse(jsEOL[key].end) &&\n now > Date.parse(jsEOL[key].start) &&\n isEolReleased(key)\n )\n })\n .map(function (key) {\n return 'node ' + key.slice(1)\n })\n return resolve(queries, context)\n }\n },\n phantomjs_1_9: {\n matches: [],\n regexp: /^phantomjs\\s+1.9$/i,\n select: function () {\n return ['safari 5']\n }\n },\n phantomjs_2_1: {\n matches: [],\n regexp: /^phantomjs\\s+2.1$/i,\n select: function () {\n return ['safari 6']\n }\n },\n browser_version: {\n matches: ['browser', 'version'],\n regexp: /^(\\w+)\\s+(tp|[\\d.]+)$/i,\n select: function (context, node) {\n var version = node.version\n if (/^tp$/i.test(version)) version = 'TP'\n var data = checkName(node.browser, context)\n var alias = normalizeVersion(data, version)\n if (alias) {\n version = alias\n } else {\n if (version.indexOf('.') === -1) {\n alias = version + '.0'\n } else {\n alias = version.replace(/\\.0$/, '')\n }\n alias = normalizeVersion(data, alias)\n if (alias) {\n version = alias\n } else if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + version + ' of ' + node.browser\n )\n }\n }\n return [data.name + ' ' + version]\n }\n },\n browserslist_config: {\n matches: [],\n regexp: /^browserslist config$/i,\n select: function (context) {\n return browserslist(undefined, context)\n }\n },\n extends: {\n matches: ['config'],\n regexp: /^extends (.+)$/i,\n select: function (context, node) {\n return resolve(env.loadQueries(context, node.config), context)\n }\n },\n defaults: {\n matches: [],\n regexp: /^defaults$/i,\n select: function (context) {\n return resolve(browserslist.defaults, context)\n }\n },\n dead: {\n matches: [],\n regexp: /^dead$/i,\n select: function (context) {\n var dead = [\n 'Baidu >= 0',\n 'ie <= 11',\n 'ie_mob <= 11',\n 'bb <= 10',\n 'op_mob <= 12.1',\n 'samsung 4'\n ]\n return resolve(dead, context)\n }\n },\n unknown: {\n matches: [],\n regexp: /^(\\w+)$/i,\n select: function (context, node) {\n if (byName(node.query, context)) {\n throw new BrowserslistError(\n 'Specify versions in Browserslist query for browser ' + node.query\n )\n } else {\n throw unknownQuery(node.query)\n }\n }\n }\n}\n\n// Get and convert Can I Use data\n\n;(function () {\n for (var name in agents) {\n var browser = agents[name]\n browserslist.data[name] = {\n name: name,\n versions: normalize(agents[name].versions),\n released: normalize(agents[name].versions.slice(0, -3)),\n releaseDate: agents[name].release_date\n }\n fillUsage(browserslist.usage.global, name, browser.usage_global)\n\n browserslist.versionAliases[name] = {}\n for (var i = 0; i < browser.versions.length; i++) {\n var full = browser.versions[i]\n if (!full) continue\n\n if (full.indexOf('-') !== -1) {\n var interval = full.split('-')\n for (var j = 0; j < interval.length; j++) {\n browserslist.versionAliases[name][interval[j]] = full\n }\n }\n }\n }\n\n browserslist.nodeVersions = jsReleases.map(function (release) {\n return release.version\n })\n})()\n\nmodule.exports = browserslist\n","var AND_REGEXP = /^\\s+and\\s+(.*)/i\nvar OR_REGEXP = /^(?:,\\s*|\\s+or\\s+)(.*)/i\n\nfunction flatten(array) {\n if (!Array.isArray(array)) return [array]\n return array.reduce(function (a, b) {\n return a.concat(flatten(b))\n }, [])\n}\n\nfunction find(string, predicate) {\n for (var n = 1, max = string.length; n <= max; n++) {\n var parsed = string.substr(-n, n)\n if (predicate(parsed, n, max)) {\n return string.slice(0, -n)\n }\n }\n return ''\n}\n\nfunction matchQuery(all, query) {\n var node = { query: query }\n if (query.indexOf('not ') === 0) {\n node.not = true\n query = query.slice(4)\n }\n\n for (var name in all) {\n var type = all[name]\n var match = query.match(type.regexp)\n if (match) {\n node.type = name\n for (var i = 0; i < type.matches.length; i++) {\n node[type.matches[i]] = match[i + 1]\n }\n return node\n }\n }\n\n node.type = 'unknown'\n return node\n}\n\nfunction matchBlock(all, string, qs) {\n var node\n return find(string, function (parsed, n, max) {\n if (AND_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(AND_REGEXP)[1])\n node.compose = 'and'\n qs.unshift(node)\n return true\n } else if (OR_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(OR_REGEXP)[1])\n node.compose = 'or'\n qs.unshift(node)\n return true\n } else if (n === max) {\n node = matchQuery(all, parsed.trim())\n node.compose = 'or'\n qs.unshift(node)\n return true\n }\n return false\n })\n}\n\nmodule.exports = function parse(all, queries) {\n if (!Array.isArray(queries)) queries = [queries]\n return flatten(\n queries.map(function (block) {\n var qs = []\n do {\n block = matchBlock(all, block, qs)\n } while (block)\n return qs\n })\n )\n}\n","module.exports={A:{A:{K:0,F:0,G:0.0326854,H:0.0435805,A:0,B:0.392224,JC:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"JC\",\"K\",\"F\",\"G\",\"H\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE\",F:{JC:962323200,K:998870400,F:1161129600,G:1237420800,H:1300060800,A:1346716800,B:1381968000}},B:{A:{\"0\":3.56904,C:0,L:0,M:0,I:0.004259,N:0,D:0.004259,O:0.012777,P:0,Q:0.004259,R:0.004259,S:0.004259,T:0.008518,U:0.004259,V:0.004259,W:0.004259,X:0,Y:0.004259,Z:0.004259,a:0,b:0.012777,c:0,d:0,e:0,f:0,g:0,h:0,i:0.008518,j:0,n:0.008518,o:0.008518,p:0.004259,q:0,r:0,s:0.004259,t:0.008518,u:0.012777,v:0.076662,w:0.021295,x:0.029813,y:0.579224,z:0.745325,E:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"C\",\"L\",\"M\",\"I\",\"N\",\"D\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"E\",\"\",\"\",\"\"],E:\"Edge\",F:{\"0\":1685664000,C:1438128000,L:1447286400,M:1470096000,I:1491868800,N:1508198400,D:1525046400,O:1542067200,P:1579046400,Q:1581033600,R:1586736000,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:1611360000,Y:1614816000,Z:1618358400,a:1622073600,b:1626912000,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,n:1651190400,o:1653955200,p:1655942400,q:1659657600,r:1661990400,s:1664755200,t:1666915200,u:1670198400,v:1673481600,w:1675900800,x:1678665600,y:1680825600,z:1683158400,E:1689897600},D:{C:\"ms\",L:\"ms\",M:\"ms\",I:\"ms\",N:\"ms\",D:\"ms\",O:\"ms\"}},C:{A:{\"0\":1.2564,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,KC:0,zB:0,J:0,K:0,F:0,G:0,H:0,A:0,B:0.008518,C:0,L:0,M:0,I:0,N:0,D:0,O:0,k:0,l:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0.012777,PB:0.004259,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0.051108,YB:0,ZB:0,aB:0,bB:0.004259,cB:0,dB:0,\"0B\":0.004259,eB:0,\"1B\":0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0.004259,mB:0,nB:0,oB:0,pB:0.008518,m:0,qB:0,rB:0,sB:0,tB:0,uB:0.051108,P:0,Q:0,R:0,\"2B\":0,S:0,T:0.017036,U:0,V:0,W:0.008518,X:0.004259,Y:0,Z:0,a:0.012777,b:0,c:0,d:0.004259,e:0,f:0,g:0,h:0,i:0,j:0,n:0,o:0.110734,p:0.012777,q:0,r:0.008518,s:0.004259,t:0.008518,u:0.012777,v:0.012777,w:0.012777,x:0.025554,y:0.055367,z:0.660145,E:0.012777,\"3B\":0,\"4B\":0,LC:0,MC:0},B:\"moz\",C:[\"KC\",\"zB\",\"LC\",\"MC\",\"J\",\"1\",\"K\",\"F\",\"G\",\"H\",\"A\",\"B\",\"C\",\"L\",\"M\",\"I\",\"N\",\"D\",\"O\",\"2\",\"k\",\"l\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"0B\",\"eB\",\"1B\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"m\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"P\",\"Q\",\"R\",\"2B\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"E\",\"3B\",\"4B\",\"\"],E:\"Firefox\",F:{\"0\":1686009600,\"1\":1308614400,\"2\":1357603200,\"3\":1368489600,\"4\":1372118400,\"5\":1375747200,\"6\":1379376000,\"7\":1386633600,\"8\":1391472000,\"9\":1395100800,KC:1161648000,zB:1213660800,LC:1246320000,MC:1264032000,J:1300752000,K:1313452800,F:1317081600,G:1317081600,H:1320710400,A:1324339200,B:1327968000,C:1331596800,L:1335225600,M:1338854400,I:1342483200,N:1346112000,D:1349740800,O:1353628800,k:1361232000,l:1364860800,AB:1398729600,BB:1402358400,CB:1405987200,DB:1409616000,EB:1413244800,FB:1417392000,GB:1421107200,HB:1424736000,IB:1428278400,JB:1431475200,KB:1435881600,LB:1439251200,MB:1442880000,NB:1446508800,OB:1450137600,PB:1453852800,QB:1457395200,RB:1461628800,SB:1465257600,TB:1470096000,UB:1474329600,VB:1479168000,WB:1485216000,XB:1488844800,YB:1492560000,ZB:1497312000,aB:1502150400,bB:1506556800,cB:1510617600,dB:1516665600,\"0B\":1520985600,eB:1525824000,\"1B\":1529971200,fB:1536105600,gB:1540252800,hB:1544486400,iB:1548720000,jB:1552953600,kB:1558396800,lB:1562630400,mB:1567468800,nB:1571788800,oB:1575331200,pB:1578355200,m:1581379200,qB:1583798400,rB:1586304000,sB:1588636800,tB:1591056000,uB:1593475200,P:1595894400,Q:1598313600,R:1600732800,\"2B\":1603152000,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392000,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536000,n:1653955200,o:1656374400,p:1658793600,q:1661212800,r:1663632000,s:1666051200,t:1668470400,u:1670889600,v:1673913600,w:1676332800,x:1678752000,y:1681171200,z:1683590400,E:1688428800,\"3B\":null,\"4B\":null}},D:{A:{\"0\":14.553,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,J:0,K:0,F:0,G:0,H:0,A:0,B:0,C:0,L:0,M:0,I:0,N:0,D:0,O:0,k:0,l:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0.008518,GB:0,HB:0,IB:0,JB:0.017036,KB:0,LB:0.012777,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0.008518,TB:0.017036,UB:0.038331,VB:0.008518,WB:0,XB:0.004259,YB:0.008518,ZB:0,aB:0.004259,bB:0.051108,cB:0,dB:0,\"0B\":0,eB:0.017036,\"1B\":0.012777,fB:0,gB:0.004259,hB:0,iB:0.012777,jB:0.029813,kB:0.008518,lB:0.025554,mB:0.051108,nB:0.04259,oB:0.017036,pB:0.025554,m:0.012777,qB:0.059626,rB:0.059626,sB:0.093698,tB:0.025554,uB:0.038331,P:0.200173,Q:0.051108,R:0.051108,S:0.110734,T:0.029813,U:0.089439,V:0.072403,W:0.089439,X:0.046849,Y:0.038331,Z:0.055367,a:0.089439,b:0.038331,c:0.17036,d:0.034072,e:0.021295,f:0.025554,g:0.025554,h:0.063885,i:0.055367,j:0.046849,n:0.04259,o:0.051108,p:0.268317,q:0.063885,r:0.076662,s:0.051108,t:0.059626,u:0.149065,v:1.96766,w:0.123511,x:0.455713,y:0.630332,z:3.9268,E:0.021295,\"3B\":0.021295,\"4B\":0,NC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"J\",\"1\",\"K\",\"F\",\"G\",\"H\",\"A\",\"B\",\"C\",\"L\",\"M\",\"I\",\"N\",\"D\",\"O\",\"2\",\"k\",\"l\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"0B\",\"eB\",\"1B\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"m\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"E\",\"3B\",\"4B\",\"NC\"],E:\"Chrome\",F:{\"0\":1685404800,\"1\":1274745600,\"2\":1332892800,\"3\":1343692800,\"4\":1348531200,\"5\":1352246400,\"6\":1357862400,\"7\":1361404800,\"8\":1364428800,\"9\":1369094400,J:1264377600,K:1283385600,F:1287619200,G:1291248000,H:1296777600,A:1299542400,B:1303862400,C:1307404800,L:1312243200,M:1316131200,I:1316131200,N:1319500800,D:1323734400,O:1328659200,k:1337040000,l:1340668800,AB:1374105600,BB:1376956800,CB:1384214400,DB:1389657600,EB:1392940800,FB:1397001600,GB:1400544000,HB:1405468800,IB:1409011200,JB:1412640000,KB:1416268800,LB:1421798400,MB:1425513600,NB:1429401600,OB:1432080000,PB:1437523200,QB:1441152000,RB:1444780800,SB:1449014400,TB:1453248000,UB:1456963200,VB:1460592000,WB:1464134400,XB:1469059200,YB:1472601600,ZB:1476230400,aB:1480550400,bB:1485302400,cB:1489017600,dB:1492560000,\"0B\":1496707200,eB:1500940800,\"1B\":1504569600,fB:1508198400,gB:1512518400,hB:1516752000,iB:1520294400,jB:1523923200,kB:1527552000,lB:1532390400,mB:1536019200,nB:1539648000,oB:1543968000,pB:1548720000,m:1552348800,qB:1555977600,rB:1559606400,sB:1564444800,tB:1568073600,uB:1571702400,P:1575936000,Q:1580860800,R:1586304000,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272000,a:1621987200,b:1626739200,c:1630368000,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512000,n:1650931200,o:1653350400,p:1655769600,q:1659398400,r:1661817600,s:1664236800,t:1666656000,u:1669680000,v:1673308800,w:1675728000,x:1678147200,y:1680566400,z:1682985600,E:1689724800,\"3B\":null,\"4B\":null,NC:null}},E:{A:{\"1\":0,J:0,K:0,F:0,G:0,H:0,A:0,B:0,C:0,L:0.025554,M:0.12777,I:0.029813,D:0.008518,OC:0,\"5B\":0,PC:0.008518,QC:0,RC:0,SC:0.102216,\"6B\":0,vB:0.008518,wB:0.038331,\"7B\":0.166101,TC:0.332202,UC:0.055367,\"8B\":0.046849,\"9B\":0.106475,xB:0.191655,AC:0.779397,yB:0.080921,BC:0.25554,CC:0.289612,DC:0.706994,EC:0.498303,FC:2.00599,GC:0.021295,VC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"OC\",\"5B\",\"J\",\"1\",\"PC\",\"K\",\"QC\",\"F\",\"RC\",\"G\",\"H\",\"SC\",\"A\",\"6B\",\"B\",\"vB\",\"C\",\"wB\",\"L\",\"7B\",\"M\",\"TC\",\"I\",\"UC\",\"8B\",\"9B\",\"xB\",\"AC\",\"yB\",\"BC\",\"CC\",\"DC\",\"EC\",\"FC\",\"GC\",\"D\",\"VC\"],E:\"Safari\",F:{\"1\":1275868800,OC:1205798400,\"5B\":1226534400,J:1244419200,PC:1311120000,K:1343174400,QC:1382400000,F:1382400000,RC:1410998400,G:1413417600,H:1443657600,SC:1458518400,A:1474329600,\"6B\":1490572800,B:1505779200,vB:1522281600,C:1537142400,wB:1553472000,L:1568851200,\"7B\":1585008000,M:1600214400,TC:1619395200,I:1632096000,UC:1635292800,\"8B\":1639353600,\"9B\":1647216000,xB:1652745600,AC:1658275200,yB:1662940800,BC:1666569600,CC:1670889600,DC:1674432000,EC:1679875200,FC:1684368000,GC:null,D:null,VC:null}},F:{A:{\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0.008518,H:0,B:0.038331,C:0,I:0,N:0,D:0,O:0,k:0,l:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0.004259,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0.017036,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,m:0,qB:0,rB:0,sB:0,tB:0,uB:0,P:0,Q:0,R:0,\"2B\":0,S:0,T:0,U:0.004259,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0,c:0,d:0,e:0.059626,f:0.012777,g:0.021295,h:0.664404,i:1.29048,j:0.012777,WC:0,XC:0,YC:0,ZC:0,vB:0,HC:0,aC:0,wB:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"H\",\"WC\",\"XC\",\"YC\",\"ZC\",\"B\",\"vB\",\"HC\",\"aC\",\"C\",\"wB\",\"I\",\"N\",\"D\",\"O\",\"2\",\"k\",\"l\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"m\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"P\",\"Q\",\"R\",\"2B\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"\",\"\",\"\"],E:\"Opera\",F:{\"2\":1390867200,\"3\":1401753600,\"4\":1405987200,\"5\":1409616000,\"6\":1413331200,\"7\":1417132800,\"8\":1422316800,\"9\":1425945600,H:1150761600,WC:1223424000,XC:1251763200,YC:1267488000,ZC:1277942400,B:1292457600,vB:1302566400,HC:1309219200,aC:1323129600,C:1323129600,wB:1352073600,I:1372723200,N:1377561600,D:1381104000,O:1386288000,k:1393891200,l:1399334400,AB:1430179200,BB:1433808000,CB:1438646400,DB:1442448000,EB:1445904000,FB:1449100800,GB:1454371200,HB:1457308800,IB:1462320000,JB:1465344000,KB:1470096000,LB:1474329600,MB:1477267200,NB:1481587200,OB:1486425600,PB:1490054400,QB:1494374400,RB:1498003200,SB:1502236800,TB:1506470400,UB:1510099200,VB:1515024000,WB:1517961600,XB:1521676800,YB:1525910400,ZB:1530144000,aB:1534982400,bB:1537833600,cB:1543363200,dB:1548201600,eB:1554768000,fB:1561593600,gB:1566259200,hB:1570406400,iB:1573689600,jB:1578441600,kB:1583971200,lB:1587513600,mB:1592956800,nB:1595894400,oB:1600128000,pB:1603238400,m:1613520000,qB:1612224000,rB:1616544000,sB:1619568000,tB:1623715200,uB:1627948800,P:1631577600,Q:1633392000,R:1635984000,\"2B\":1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152000,Z:1660780800,a:1663113600,b:1668816000,c:1668643200,d:1671062400,e:1675209600,f:1677024000,g:1679529600,h:1681948800,i:1684195200,j:1687219200},D:{H:\"o\",B:\"o\",C:\"o\",WC:\"o\",XC:\"o\",YC:\"o\",ZC:\"o\",vB:\"o\",HC:\"o\",aC:\"o\",wB:\"o\"}},G:{A:{G:0,D:0.0227641,\"5B\":0,bC:0,IC:0.00303522,cC:0.00303522,dC:0.00455283,eC:0.0121409,fC:0.00455283,gC:0.00910566,hC:0.0440107,iC:0.00455283,jC:0.062222,kC:0.0303522,lC:0.0197289,mC:0.0166937,nC:0.321733,oC:0.00910566,pC:0.00910566,qC:0.0227641,rC:0.0773981,sC:0.20336,tC:0.374849,uC:0.119891,\"8B\":0.141138,\"9B\":0.160867,xB:0.239782,AC:0.582762,yB:0.648019,BC:1.23837,CC:0.661678,DC:1.56617,EC:1.0259,FC:6.55152,GC:0.0637396},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"5B\",\"bC\",\"IC\",\"cC\",\"dC\",\"eC\",\"G\",\"fC\",\"gC\",\"hC\",\"iC\",\"jC\",\"kC\",\"lC\",\"mC\",\"nC\",\"oC\",\"pC\",\"qC\",\"rC\",\"sC\",\"tC\",\"uC\",\"8B\",\"9B\",\"xB\",\"AC\",\"yB\",\"BC\",\"CC\",\"DC\",\"EC\",\"FC\",\"GC\",\"D\",\"\"],E:\"Safari on iOS\",F:{\"5B\":1270252800,bC:1283904000,IC:1299628800,cC:1331078400,dC:1359331200,eC:1394409600,G:1410912000,fC:1413763200,gC:1442361600,hC:1458518400,iC:1473724800,jC:1490572800,kC:1505779200,lC:1522281600,mC:1537142400,nC:1553472000,oC:1568851200,pC:1572220800,qC:1580169600,rC:1585008000,sC:1600214400,tC:1619395200,uC:1632096000,\"8B\":1639353600,\"9B\":1647216000,xB:1652659200,AC:1658275200,yB:1662940800,BC:1666569600,CC:1670889600,DC:1674432000,EC:1679875200,FC:1684368000,GC:null,D:null}},H:{A:{vC:0.956597},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"vC\",\"\",\"\",\"\"],E:\"Opera Mini\",F:{vC:1426464000}},I:{A:{zB:0,J:0.0252848,E:0,wC:0,xC:0.00842828,yC:0,zC:0.0168566,IC:0.092711,\"0C\":0,\"1C\":0.252848},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"wC\",\"xC\",\"yC\",\"zB\",\"J\",\"zC\",\"IC\",\"0C\",\"1C\",\"E\",\"\",\"\",\"\"],E:\"Android Browser\",F:{wC:1256515200,xC:1274313600,yC:1291593600,zB:1298332800,J:1318896000,zC:1341792000,IC:1374624000,\"0C\":1386547200,\"1C\":1401667200,E:1690243200}},J:{A:{F:0,A:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"F\",\"A\",\"\",\"\",\"\"],E:\"Blackberry Browser\",F:{F:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,m:0,vB:0,HC:0,wB:0},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"vB\",\"HC\",\"C\",\"wB\",\"m\",\"\",\"\",\"\"],E:\"Opera Mobile\",F:{A:1287100800,B:1300752000,vB:1314835200,HC:1318291200,C:1330300800,wB:1349740800,m:1673827200},D:{m:\"webkit\"}},L:{A:{E:38.2012},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"E\",\"\",\"\",\"\"],E:\"Chrome for Android\",F:{E:1690243200}},M:{A:{E:0.281309},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"E\",\"\",\"\",\"\"],E:\"Firefox for Android\",F:{E:1688428800}},N:{A:{A:0,B:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE Mobile\",F:{A:1340150400,B:1353456000}},O:{A:{xB:1.04486},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"xB\",\"\",\"\",\"\"],E:\"UC Browser for Android\",F:{xB:1687132800},D:{xB:\"webkit\"}},P:{A:{J:0.156242,k:0.229156,l:1.74991,\"2C\":0,\"3C\":0,\"4C\":0.0520808,\"5C\":0,\"6C\":0,\"6B\":0,\"7C\":0.0208323,\"8C\":0,\"9C\":0.0208323,AD:0.0208323,BD:0.0104162,yB:0.0416646,CD:0.0416646,DD:0.0416646,ED:0.0833293},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"J\",\"2C\",\"3C\",\"4C\",\"5C\",\"6C\",\"6B\",\"7C\",\"8C\",\"9C\",\"AD\",\"BD\",\"yB\",\"CD\",\"DD\",\"ED\",\"k\",\"l\",\"\",\"\",\"\"],E:\"Samsung Internet\",F:{J:1461024000,\"2C\":1481846400,\"3C\":1509408000,\"4C\":1528329600,\"5C\":1546128000,\"6C\":1554163200,\"6B\":1567900800,\"7C\":1582588800,\"8C\":1593475200,\"9C\":1605657600,AD:1618531200,BD:1629072000,yB:1640736000,CD:1651708800,DD:1659657600,ED:1667260800,k:1677369600,l:1684454400}},Q:{A:{\"7B\":0.155007},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"7B\",\"\",\"\",\"\"],E:\"QQ Browser\",F:{\"7B\":1663718400}},R:{A:{FD:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"FD\",\"\",\"\",\"\"],E:\"Baidu Browser\",F:{FD:1663027200}},S:{A:{GD:0.103338,HD:0},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"GD\",\"HD\",\"\",\"\",\"\"],E:\"KaiOS Browser\",F:{GD:1527811200,HD:1631664000}}};\n","module.exports={\"0\":\"114\",\"1\":\"5\",\"2\":\"19\",\"3\":\"22\",\"4\":\"23\",\"5\":\"24\",\"6\":\"25\",\"7\":\"26\",\"8\":\"27\",\"9\":\"28\",A:\"10\",B:\"11\",C:\"12\",D:\"17\",E:\"115\",F:\"7\",G:\"8\",H:\"9\",I:\"15\",J:\"4\",K:\"6\",L:\"13\",M:\"14\",N:\"16\",O:\"18\",P:\"79\",Q:\"80\",R:\"81\",S:\"83\",T:\"84\",U:\"85\",V:\"86\",W:\"87\",X:\"88\",Y:\"89\",Z:\"90\",a:\"91\",b:\"92\",c:\"93\",d:\"94\",e:\"95\",f:\"96\",g:\"97\",h:\"98\",i:\"99\",j:\"100\",k:\"20\",l:\"21\",m:\"73\",n:\"101\",o:\"102\",p:\"103\",q:\"104\",r:\"105\",s:\"106\",t:\"107\",u:\"108\",v:\"109\",w:\"110\",x:\"111\",y:\"112\",z:\"113\",AB:\"29\",BB:\"30\",CB:\"31\",DB:\"32\",EB:\"33\",FB:\"34\",GB:\"35\",HB:\"36\",IB:\"37\",JB:\"38\",KB:\"39\",LB:\"40\",MB:\"41\",NB:\"42\",OB:\"43\",PB:\"44\",QB:\"45\",RB:\"46\",SB:\"47\",TB:\"48\",UB:\"49\",VB:\"50\",WB:\"51\",XB:\"52\",YB:\"53\",ZB:\"54\",aB:\"55\",bB:\"56\",cB:\"57\",dB:\"58\",eB:\"60\",fB:\"62\",gB:\"63\",hB:\"64\",iB:\"65\",jB:\"66\",kB:\"67\",lB:\"68\",mB:\"69\",nB:\"70\",oB:\"71\",pB:\"72\",qB:\"74\",rB:\"75\",sB:\"76\",tB:\"77\",uB:\"78\",vB:\"11.1\",wB:\"12.1\",xB:\"15.5\",yB:\"16.0\",zB:\"3\",\"0B\":\"59\",\"1B\":\"61\",\"2B\":\"82\",\"3B\":\"116\",\"4B\":\"117\",\"5B\":\"3.2\",\"6B\":\"10.1\",\"7B\":\"13.1\",\"8B\":\"15.2-15.3\",\"9B\":\"15.4\",AC:\"15.6\",BC:\"16.1\",CC:\"16.2\",DC:\"16.3\",EC:\"16.4\",FC:\"16.5\",GC:\"16.6\",HC:\"11.5\",IC:\"4.2-4.3\",JC:\"5.5\",KC:\"2\",LC:\"3.5\",MC:\"3.6\",NC:\"118\",OC:\"3.1\",PC:\"5.1\",QC:\"6.1\",RC:\"7.1\",SC:\"9.1\",TC:\"14.1\",UC:\"15.1\",VC:\"TP\",WC:\"9.5-9.6\",XC:\"10.0-10.1\",YC:\"10.5\",ZC:\"10.6\",aC:\"11.6\",bC:\"4.0-4.1\",cC:\"5.0-5.1\",dC:\"6.0-6.1\",eC:\"7.0-7.1\",fC:\"8.1-8.4\",gC:\"9.0-9.2\",hC:\"9.3\",iC:\"10.0-10.2\",jC:\"10.3\",kC:\"11.0-11.2\",lC:\"11.3-11.4\",mC:\"12.0-12.1\",nC:\"12.2-12.5\",oC:\"13.0-13.1\",pC:\"13.2\",qC:\"13.3\",rC:\"13.4-13.7\",sC:\"14.0-14.4\",tC:\"14.5-14.8\",uC:\"15.0-15.1\",vC:\"all\",wC:\"2.1\",xC:\"2.2\",yC:\"2.3\",zC:\"4.1\",\"0C\":\"4.4\",\"1C\":\"4.4.3-4.4.4\",\"2C\":\"5.0-5.4\",\"3C\":\"6.2-6.4\",\"4C\":\"7.2-7.4\",\"5C\":\"8.2\",\"6C\":\"9.2\",\"7C\":\"11.1-11.2\",\"8C\":\"12.0\",\"9C\":\"13.0\",AD:\"14.0\",BD:\"15.0\",CD:\"17.0\",DD:\"18.0\",ED:\"19.0\",FD:\"13.18\",GD:\"2.5\",HD:\"3.0-3.1\"};\n","module.exports={A:\"ie\",B:\"edge\",C:\"firefox\",D:\"chrome\",E:\"safari\",F:\"opera\",G:\"ios_saf\",H:\"op_mini\",I:\"android\",J:\"bb\",K:\"op_mob\",L:\"and_chr\",M:\"and_ff\",N:\"ie_mob\",O:\"and_uc\",P:\"samsung\",Q:\"and_qq\",R:\"baidu\",S:\"kaios\"};\n","'use strict'\n\nconst browsers = require('./browsers').browsers\nconst versions = require('./browserVersions').browserVersions\nconst agentsData = require('../../data/agents')\n\nfunction unpackBrowserVersions(versionsData) {\n return Object.keys(versionsData).reduce((usage, version) => {\n usage[versions[version]] = versionsData[version]\n return usage\n }, {})\n}\n\nmodule.exports.agents = Object.keys(agentsData).reduce((map, key) => {\n let versionsData = agentsData[key]\n map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => {\n if (entry === 'A') {\n data.usage_global = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'C') {\n data.versions = versionsData[entry].reduce((list, version) => {\n if (version === '') {\n list.push(null)\n } else {\n list.push(versions[version])\n }\n return list\n }, [])\n } else if (entry === 'D') {\n data.prefix_exceptions = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'E') {\n data.browser = versionsData[entry]\n } else if (entry === 'F') {\n data.release_date = Object.keys(versionsData[entry]).reduce(\n (map2, key2) => {\n map2[versions[key2]] = versionsData[entry][key2]\n return map2\n },\n {}\n )\n } else {\n // entry is B\n data.prefix = versionsData[entry]\n }\n return data\n }, {})\n return map\n}, {})\n","module.exports.browserVersions = require('../../data/browserVersions')\n","module.exports.browsers = require('../../data/browsers')\n","module.exports = {\n\t\"0.20\": \"39\",\n\t\"0.21\": \"41\",\n\t\"0.22\": \"41\",\n\t\"0.23\": \"41\",\n\t\"0.24\": \"41\",\n\t\"0.25\": \"42\",\n\t\"0.26\": \"42\",\n\t\"0.27\": \"43\",\n\t\"0.28\": \"43\",\n\t\"0.29\": \"43\",\n\t\"0.30\": \"44\",\n\t\"0.31\": \"45\",\n\t\"0.32\": \"45\",\n\t\"0.33\": \"45\",\n\t\"0.34\": \"45\",\n\t\"0.35\": \"45\",\n\t\"0.36\": \"47\",\n\t\"0.37\": \"49\",\n\t\"1.0\": \"49\",\n\t\"1.1\": \"50\",\n\t\"1.2\": \"51\",\n\t\"1.3\": \"52\",\n\t\"1.4\": \"53\",\n\t\"1.5\": \"54\",\n\t\"1.6\": \"56\",\n\t\"1.7\": \"58\",\n\t\"1.8\": \"59\",\n\t\"2.0\": \"61\",\n\t\"2.1\": \"61\",\n\t\"3.0\": \"66\",\n\t\"3.1\": \"66\",\n\t\"4.0\": \"69\",\n\t\"4.1\": \"69\",\n\t\"4.2\": \"69\",\n\t\"5.0\": \"73\",\n\t\"6.0\": \"76\",\n\t\"6.1\": \"76\",\n\t\"7.0\": \"78\",\n\t\"7.1\": \"78\",\n\t\"7.2\": \"78\",\n\t\"7.3\": \"78\",\n\t\"8.0\": \"80\",\n\t\"8.1\": \"80\",\n\t\"8.2\": \"80\",\n\t\"8.3\": \"80\",\n\t\"8.4\": \"80\",\n\t\"8.5\": \"80\",\n\t\"9.0\": \"83\",\n\t\"9.1\": \"83\",\n\t\"9.2\": \"83\",\n\t\"9.3\": \"83\",\n\t\"9.4\": \"83\",\n\t\"10.0\": \"85\",\n\t\"10.1\": \"85\",\n\t\"10.2\": \"85\",\n\t\"10.3\": \"85\",\n\t\"10.4\": \"85\",\n\t\"11.0\": \"87\",\n\t\"11.1\": \"87\",\n\t\"11.2\": \"87\",\n\t\"11.3\": \"87\",\n\t\"11.4\": \"87\",\n\t\"11.5\": \"87\",\n\t\"12.0\": \"89\",\n\t\"12.1\": \"89\",\n\t\"12.2\": \"89\",\n\t\"13.0\": \"91\",\n\t\"13.1\": \"91\",\n\t\"13.2\": \"91\",\n\t\"13.3\": \"91\",\n\t\"13.4\": \"91\",\n\t\"13.5\": \"91\",\n\t\"13.6\": \"91\",\n\t\"14.0\": \"93\",\n\t\"14.1\": \"93\",\n\t\"14.2\": \"93\",\n\t\"15.0\": \"94\",\n\t\"15.1\": \"94\",\n\t\"15.2\": \"94\",\n\t\"15.3\": \"94\",\n\t\"15.4\": \"94\",\n\t\"15.5\": \"94\",\n\t\"16.0\": \"96\",\n\t\"16.1\": \"96\",\n\t\"16.2\": \"96\",\n\t\"17.0\": \"98\",\n\t\"17.1\": \"98\",\n\t\"17.2\": \"98\",\n\t\"17.3\": \"98\",\n\t\"17.4\": \"98\",\n\t\"18.0\": \"100\",\n\t\"18.1\": \"100\",\n\t\"18.2\": \"100\",\n\t\"18.3\": \"100\",\n\t\"19.0\": \"102\",\n\t\"19.1\": \"102\",\n\t\"20.0\": \"104\",\n\t\"20.1\": \"104\",\n\t\"20.2\": \"104\",\n\t\"20.3\": \"104\",\n\t\"21.0\": \"106\",\n\t\"21.1\": \"106\",\n\t\"21.2\": \"106\",\n\t\"21.3\": \"106\",\n\t\"21.4\": \"106\",\n\t\"22.0\": \"108\",\n\t\"22.1\": \"108\",\n\t\"22.2\": \"108\",\n\t\"22.3\": \"108\",\n\t\"23.0\": \"110\",\n\t\"23.1\": \"110\",\n\t\"23.2\": \"110\",\n\t\"23.3\": \"110\",\n\t\"24.0\": \"112\",\n\t\"24.1\": \"112\",\n\t\"24.2\": \"112\",\n\t\"24.3\": \"112\",\n\t\"24.4\": \"112\",\n\t\"24.5\": \"112\",\n\t\"24.6\": \"112\",\n\t\"25.0\": \"114\",\n\t\"25.1\": \"114\",\n\t\"25.2\": \"114\",\n\t\"25.3\": \"114\",\n\t\"26.0\": \"116\"\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar compatTransforms = require('./transforms');\nvar _transform = require('../transform');\n\nmodule.exports = {\n /**\n * Translates a regexp in new syntax to equivalent regexp in old syntax.\n *\n * @param string|RegExp|AST - regexp\n * @param Array transformsWhitelist - names of the transforms to apply\n */\n transform: function transform(regexp) {\n var transformsWhitelist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var transformToApply = transformsWhitelist.length > 0 ? transformsWhitelist : Object.keys(compatTransforms);\n\n var result = void 0;\n\n // Collect extra data per transform.\n var extra = {};\n\n transformToApply.forEach(function (transformName) {\n\n if (!compatTransforms.hasOwnProperty(transformName)) {\n throw new Error('Unknown compat-transform: ' + transformName + '. ' + 'Available transforms are: ' + Object.keys(compatTransforms).join(', '));\n }\n\n var handler = compatTransforms[transformName];\n\n result = _transform.transform(regexp, handler);\n regexp = result.getAST();\n\n // Collect `extra` transform result.\n if (typeof handler.getExtra === 'function') {\n extra[transformName] = handler.getExtra();\n }\n });\n\n // Set the final extras for all transforms.\n result.setExtra(extra);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * The `RegExpTree` class provides runtime support for `compat-transpiler`\n * module from `regexp-tree`.\n *\n * E.g. it tracks names of the capturing groups, in order to access the\n * names on the matched result.\n *\n * It's a thin-wrapper on top of original regexp.\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar RegExpTree = function () {\n /**\n * Initializes a `RegExpTree` instance.\n *\n * @param RegExp - a regular expression\n *\n * @param Object state:\n *\n * An extra state which may store any related to transformation\n * data, for example, names of the groups.\n *\n * - flags - original flags\n * - groups - names of the groups, and their indices\n * - source - original source\n */\n function RegExpTree(re, _ref) {\n var flags = _ref.flags,\n groups = _ref.groups,\n source = _ref.source;\n\n _classCallCheck(this, RegExpTree);\n\n this._re = re;\n this._groups = groups;\n\n // Original props.\n this.flags = flags;\n this.source = source || re.source;\n this.dotAll = flags.includes('s');\n\n // Inherited directly from `re`.\n this.global = re.global;\n this.ignoreCase = re.ignoreCase;\n this.multiline = re.multiline;\n this.sticky = re.sticky;\n this.unicode = re.unicode;\n }\n\n /**\n * Facade wrapper for RegExp `test` method.\n */\n\n\n _createClass(RegExpTree, [{\n key: 'test',\n value: function test(string) {\n return this._re.test(string);\n }\n\n /**\n * Facade wrapper for RegExp `compile` method.\n */\n\n }, {\n key: 'compile',\n value: function compile(string) {\n return this._re.compile(string);\n }\n\n /**\n * Facade wrapper for RegExp `toString` method.\n */\n\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._toStringResult) {\n this._toStringResult = '/' + this.source + '/' + this.flags;\n }\n return this._toStringResult;\n }\n\n /**\n * Facade wrapper for RegExp `exec` method.\n */\n\n }, {\n key: 'exec',\n value: function exec(string) {\n var result = this._re.exec(string);\n\n if (!this._groups || !result) {\n return result;\n }\n\n result.groups = {};\n\n for (var group in this._groups) {\n var groupNumber = this._groups[group];\n result.groups[group] = result[groupNumber];\n }\n\n return result;\n }\n }]);\n\n return RegExpTree;\n}();\n\nmodule.exports = {\n RegExpTree: RegExpTree\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/./s` to `/[\\0-\\uFFFF]/`.\n */\n\nmodule.exports = {\n\n // Whether `u` flag present. In which case we transform to\n // \\u{10FFFF} instead of \\uFFFF.\n _hasUFlag: false,\n\n // Only run this plugin if we have `s` flag.\n shouldRun: function shouldRun(ast) {\n var shouldRun = ast.flags.includes('s');\n\n if (!shouldRun) {\n return false;\n }\n\n // Strip the `s` flag.\n ast.flags = ast.flags.replace('s', '');\n\n // Whether we have also `u`.\n this._hasUFlag = ast.flags.includes('u');\n\n return true;\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (node.kind !== 'meta' || node.value !== '.') {\n return;\n }\n\n var toValue = '\\\\uFFFF';\n var toSymbol = '\\uFFFF';\n\n if (this._hasUFlag) {\n toValue = '\\\\u{10FFFF}';\n toSymbol = '\\uDBFF\\uDFFF';\n }\n\n path.replace({\n type: 'CharacterClass',\n expressions: [{\n type: 'ClassRange',\n from: {\n type: 'Char',\n value: '\\\\0',\n kind: 'decimal',\n symbol: '\\0'\n },\n to: {\n type: 'Char',\n value: toValue,\n kind: 'unicode',\n symbol: toSymbol\n }\n }]\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/(?<name>a)\\k<name>/` to `/(a)\\1/`.\n */\n\nmodule.exports = {\n // To track the names of the groups, and return them\n // in the transform result state.\n //\n // A map from name to number: {foo: 2, bar: 4}\n _groupNames: {},\n\n /**\n * Initialises the trasnform.\n */\n init: function init() {\n this._groupNames = {};\n },\n\n\n /**\n * Returns extra state, which eventually is returned to\n */\n getExtra: function getExtra() {\n return this._groupNames;\n },\n Group: function Group(path) {\n var node = path.node;\n\n\n if (!node.name) {\n return;\n }\n\n // Record group name.\n this._groupNames[node.name] = node.number;\n\n delete node.name;\n delete node.nameRaw;\n },\n Backreference: function Backreference(path) {\n var node = path.node;\n\n\n if (node.kind !== 'name') {\n return;\n }\n\n node.kind = 'number';\n node.reference = node.number;\n delete node.referenceRaw;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove `x` flag `/foo/x` to `/foo/`.\n *\n * Note: other features of `x` flags (whitespace, comments) are\n * already removed at parsing stage.\n */\n\nmodule.exports = {\n RegExp: function RegExp(_ref) {\n var node = _ref.node;\n\n if (node.flags.includes('x')) {\n node.flags = node.flags.replace('x', '');\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = {\n // \"dotAll\" `s` flag\n dotAll: require('./compat-dotall-s-transform'),\n\n // Named capturing groups.\n namedCapturingGroups: require('./compat-named-capturing-groups-transform'),\n\n // `x` flag\n xFlag: require('./compat-x-flag-transform')\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\nfunction gen(node) {\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n return '/' + gen(node.body) + '/' + node.flags;\n },\n Alternative: function Alternative(node) {\n return (node.expressions || []).map(gen).join('');\n },\n Disjunction: function Disjunction(node) {\n return gen(node.left) + '|' + gen(node.right);\n },\n Group: function Group(node) {\n var expression = gen(node.expression);\n\n if (node.capturing) {\n // A named group.\n if (node.name) {\n return '(?<' + (node.nameRaw || node.name) + '>' + expression + ')';\n }\n\n return '(' + expression + ')';\n }\n\n return '(?:' + expression + ')';\n },\n Backreference: function Backreference(node) {\n switch (node.kind) {\n case 'number':\n return '\\\\' + node.reference;\n case 'name':\n return '\\\\k<' + (node.referenceRaw || node.reference) + '>';\n default:\n throw new TypeError('Unknown Backreference kind: ' + node.kind);\n }\n },\n Assertion: function Assertion(node) {\n switch (node.kind) {\n case '^':\n case '$':\n case '\\\\b':\n case '\\\\B':\n return node.kind;\n\n case 'Lookahead':\n {\n var assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?!' + assertion + ')';\n }\n\n return '(?=' + assertion + ')';\n }\n\n case 'Lookbehind':\n {\n var _assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?<!' + _assertion + ')';\n }\n\n return '(?<=' + _assertion + ')';\n }\n\n default:\n throw new TypeError('Unknown Assertion kind: ' + node.kind);\n }\n },\n CharacterClass: function CharacterClass(node) {\n var expressions = node.expressions.map(gen).join('');\n\n if (node.negative) {\n return '[^' + expressions + ']';\n }\n\n return '[' + expressions + ']';\n },\n ClassRange: function ClassRange(node) {\n return gen(node.from) + '-' + gen(node.to);\n },\n Repetition: function Repetition(node) {\n return '' + gen(node.expression) + gen(node.quantifier);\n },\n Quantifier: function Quantifier(node) {\n var quantifier = void 0;\n var greedy = node.greedy ? '' : '?';\n\n switch (node.kind) {\n case '+':\n case '?':\n case '*':\n quantifier = node.kind;\n break;\n case 'Range':\n // Exact: {1}\n if (node.from === node.to) {\n quantifier = '{' + node.from + '}';\n }\n // Open: {1,}\n else if (!node.to) {\n quantifier = '{' + node.from + ',}';\n }\n // Closed: {1,3}\n else {\n quantifier = '{' + node.from + ',' + node.to + '}';\n }\n break;\n default:\n throw new TypeError('Unknown Quantifier kind: ' + node.kind);\n }\n\n return '' + quantifier + greedy;\n },\n Char: function Char(node) {\n var value = node.value;\n\n switch (node.kind) {\n case 'simple':\n {\n if (node.escaped) {\n return '\\\\' + value;\n }\n return value;\n }\n\n case 'hex':\n case 'unicode':\n case 'oct':\n case 'decimal':\n case 'control':\n case 'meta':\n return value;\n\n default:\n throw new TypeError('Unknown Char kind: ' + node.kind);\n }\n },\n UnicodeProperty: function UnicodeProperty(node) {\n var escapeChar = node.negative ? 'P' : 'p';\n var namePart = void 0;\n\n if (!node.shorthand && !node.binary) {\n namePart = node.name + '=';\n } else {\n namePart = '';\n }\n\n return '\\\\' + escapeChar + '{' + namePart + node.value + '}';\n }\n};\n\nmodule.exports = {\n /**\n * Generates a regexp string from an AST.\n *\n * @param Object ast - an AST node\n */\n generate: gen\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n// DFA minization.\n\n/**\n * Map from state to current set it goes.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar currentTransitionMap = null;\n\n/**\n * Takes a DFA, and returns a minimized version of it\n * compressing some states to groups (using standard, 0-, 1-,\n * 2-, ... N-equivalence algorithm).\n */\nfunction minimize(dfa) {\n var table = dfa.getTransitionTable();\n var allStates = Object.keys(table);\n var alphabet = dfa.getAlphabet();\n var accepting = dfa.getAcceptingStateNumbers();\n\n currentTransitionMap = {};\n\n var nonAccepting = new Set();\n\n allStates.forEach(function (state) {\n state = Number(state);\n var isAccepting = accepting.has(state);\n\n if (isAccepting) {\n currentTransitionMap[state] = accepting;\n } else {\n nonAccepting.add(state);\n currentTransitionMap[state] = nonAccepting;\n }\n });\n\n // ---------------------------------------------------------------------------\n // Step 1: build equivalent sets.\n\n // All [1..N] equivalent sets.\n var all = [\n // 0-equivalent sets.\n [nonAccepting, accepting].filter(function (set) {\n return set.size > 0;\n })];\n\n var current = void 0;\n var previous = void 0;\n\n // Top of the stack is the current list of sets to analyze.\n current = all[all.length - 1];\n\n // Previous set (to check whether we need to stop).\n previous = all[all.length - 2];\n\n // Until we'll not have the same N and N-1 equivalent rows.\n\n var _loop = function _loop() {\n var newTransitionMap = {};\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = current[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _set = _step3.value;\n\n // Handled states for this set.\n var handledStates = {};\n\n var _set2 = _toArray(_set),\n first = _set2[0],\n rest = _set2.slice(1);\n\n handledStates[first] = new Set([first]);\n\n // Have to compare each from the rest states with\n // the already handled states, and see if they are equivalent.\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n restSets: for (var _iterator4 = rest[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var state = _step4.value;\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = Object.keys(handledStates)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var handledState = _step5.value;\n\n // This and some previously handled state are equivalent --\n // just append this state to the same set.\n if (areEquivalent(state, handledState, table, alphabet)) {\n handledStates[handledState].add(state);\n handledStates[state] = handledStates[handledState];\n continue restSets;\n }\n }\n // Else, this state is not equivalent to any of the\n // handled states -- allocate a new set for it.\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n handledStates[state] = new Set([state]);\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n\n // Add these handled states to all states map.\n\n\n Object.assign(newTransitionMap, handledStates);\n }\n\n // Update current transition map for the handled row.\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n currentTransitionMap = newTransitionMap;\n\n var newSets = new Set(Object.keys(newTransitionMap).map(function (state) {\n return newTransitionMap[state];\n }));\n\n all.push([].concat(_toConsumableArray(newSets)));\n\n // Top of the stack is the current.\n current = all[all.length - 1];\n\n // Previous set.\n previous = all[all.length - 2];\n };\n\n while (!sameRow(current, previous)) {\n _loop();\n }\n\n // ---------------------------------------------------------------------------\n // Step 2: build minimized table from the equivalent sets.\n\n // Remap state numbers from sets to index-based.\n var remaped = new Map();\n var idx = 1;\n current.forEach(function (set) {\n return remaped.set(set, idx++);\n });\n\n // Build the minimized table from the calculated equivalent sets.\n var minimizedTable = {};\n\n var minimizedAcceptingStates = new Set();\n\n var updateAcceptingStates = function updateAcceptingStates(set, idx) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = set[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var state = _step.value;\n\n if (accepting.has(state)) {\n minimizedAcceptingStates.add(idx);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = remaped.entries()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var set = _ref2[0];\n var _idx = _ref2[1];\n\n minimizedTable[_idx] = {};\n var _iteratorNormalCompletion6 = true;\n var _didIteratorError6 = false;\n var _iteratorError6 = undefined;\n\n try {\n for (var _iterator6 = alphabet[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var symbol = _step6.value;\n\n updateAcceptingStates(set, _idx);\n\n // Determine original transition for this symbol from the set.\n var originalTransition = void 0;\n var _iteratorNormalCompletion7 = true;\n var _didIteratorError7 = false;\n var _iteratorError7 = undefined;\n\n try {\n for (var _iterator7 = set[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n var originalState = _step7.value;\n\n originalTransition = table[originalState][symbol];\n if (originalTransition) {\n break;\n }\n }\n } catch (err) {\n _didIteratorError7 = true;\n _iteratorError7 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion7 && _iterator7.return) {\n _iterator7.return();\n }\n } finally {\n if (_didIteratorError7) {\n throw _iteratorError7;\n }\n }\n }\n\n if (originalTransition) {\n minimizedTable[_idx][symbol] = remaped.get(currentTransitionMap[originalTransition]);\n }\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n }\n\n // Update the table, and accepting states on the original DFA.\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n dfa.setTransitionTable(minimizedTable);\n dfa.setAcceptingStateNumbers(minimizedAcceptingStates);\n\n return dfa;\n}\n\nfunction sameRow(r1, r2) {\n if (!r2) {\n return false;\n }\n\n if (r1.length !== r2.length) {\n return false;\n }\n\n for (var i = 0; i < r1.length; i++) {\n var s1 = r1[i];\n var s2 = r2[i];\n\n if (s1.size !== s2.size) {\n return false;\n }\n\n if ([].concat(_toConsumableArray(s1)).sort().join(',') !== [].concat(_toConsumableArray(s2)).sort().join(',')) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether two states are N-equivalent, i.e. whether they go\n * to the same set on a symbol.\n */\nfunction areEquivalent(s1, s2, table, alphabet) {\n var _iteratorNormalCompletion8 = true;\n var _didIteratorError8 = false;\n var _iteratorError8 = undefined;\n\n try {\n for (var _iterator8 = alphabet[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {\n var symbol = _step8.value;\n\n if (!goToSameSet(s1, s2, table, symbol)) {\n return false;\n }\n }\n } catch (err) {\n _didIteratorError8 = true;\n _iteratorError8 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion8 && _iterator8.return) {\n _iterator8.return();\n }\n } finally {\n if (_didIteratorError8) {\n throw _iteratorError8;\n }\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether states go to the same set.\n */\nfunction goToSameSet(s1, s2, table, symbol) {\n if (!currentTransitionMap[s1] || !currentTransitionMap[s2]) {\n return false;\n }\n\n var originalTransitionS1 = table[s1][symbol];\n var originalTransitionS2 = table[s2][symbol];\n\n // If no actual transition on this symbol, treat it as positive.\n if (!originalTransitionS1 && !originalTransitionS2) {\n return true;\n }\n\n // Otherwise, check if they are in the same sets.\n return currentTransitionMap[s1].has(originalTransitionS1) && currentTransitionMap[s2].has(originalTransitionS2);\n}\n\nmodule.exports = {\n minimize: minimize\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DFAMinimizer = require('./dfa-minimizer');\n\nvar _require = require('../special-symbols'),\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * DFA is build by converting from NFA (subset construction).\n */\n\n\nvar DFA = function () {\n function DFA(nfa) {\n _classCallCheck(this, DFA);\n\n this._nfa = nfa;\n }\n\n /**\n * Minimizes DFA.\n */\n\n\n _createClass(DFA, [{\n key: 'minimize',\n value: function minimize() {\n this.getTransitionTable();\n\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._originalTransitionTable = this._transitionTable;\n\n DFAMinimizer.minimize(this);\n }\n\n /**\n * Returns alphabet for this DFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n return this._nfa.getAlphabet();\n }\n\n /**\n * Returns accepting states.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._acceptingStateNumbers;\n }\n\n /**\n * Returns original accepting states.\n */\n\n }, {\n key: 'getOriginaAcceptingStateNumbers',\n value: function getOriginaAcceptingStateNumbers() {\n if (!this._originalAcceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._originalAcceptingStateNumbers;\n }\n\n /**\n * Sets transition table.\n */\n\n }, {\n key: 'setTransitionTable',\n value: function setTransitionTable(table) {\n this._transitionTable = table;\n }\n\n /**\n * Sets accepting states.\n */\n\n }, {\n key: 'setAcceptingStateNumbers',\n value: function setAcceptingStateNumbers(stateNumbers) {\n this._acceptingStateNumbers = stateNumbers;\n }\n\n /**\n * DFA transition table is built from NFA table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (this._transitionTable) {\n return this._transitionTable;\n }\n\n // Calculate from NFA transition table.\n var nfaTable = this._nfa.getTransitionTable();\n var nfaStates = Object.keys(nfaTable);\n\n this._acceptingStateNumbers = new Set();\n\n // Start state of DFA is E(S[nfa])\n var startState = nfaTable[nfaStates[0]][EPSILON_CLOSURE];\n\n // Init the worklist (states which should be in the DFA).\n var worklist = [startState];\n\n var alphabet = this.getAlphabet();\n var nfaAcceptingStates = this._nfa.getAcceptingStateNumbers();\n\n var dfaTable = {};\n\n // Determine whether the combined DFA state is accepting.\n var updateAcceptingStates = function updateAcceptingStates(states) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = nfaAcceptingStates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nfaAcceptingState = _step.value;\n\n // If any of the states from NFA is accepting, DFA's\n // state is accepting as well.\n if (states.indexOf(nfaAcceptingState) !== -1) {\n _this._acceptingStateNumbers.add(states.join(','));\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n while (worklist.length > 0) {\n var states = worklist.shift();\n var dfaStateLabel = states.join(',');\n dfaTable[dfaStateLabel] = {};\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = alphabet[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var symbol = _step2.value;\n\n var onSymbol = [];\n\n // Determine whether the combined state is accepting.\n updateAcceptingStates(states);\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = states[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var state = _step3.value;\n\n var nfaStatesOnSymbol = nfaTable[state][symbol];\n if (!nfaStatesOnSymbol) {\n continue;\n }\n\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = nfaStatesOnSymbol[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nfaStateOnSymbol = _step4.value;\n\n if (!nfaTable[nfaStateOnSymbol]) {\n continue;\n }\n onSymbol.push.apply(onSymbol, _toConsumableArray(nfaTable[nfaStateOnSymbol][EPSILON_CLOSURE]));\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n var dfaStatesOnSymbolSet = new Set(onSymbol);\n var dfaStatesOnSymbol = [].concat(_toConsumableArray(dfaStatesOnSymbolSet));\n\n if (dfaStatesOnSymbol.length > 0) {\n var dfaOnSymbolStr = dfaStatesOnSymbol.join(',');\n\n dfaTable[dfaStateLabel][symbol] = dfaOnSymbolStr;\n\n if (!dfaTable.hasOwnProperty(dfaOnSymbolStr)) {\n worklist.unshift(dfaStatesOnSymbol);\n }\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n\n return this._transitionTable = this._remapStateNumbers(dfaTable);\n }\n\n /**\n * Remaps state numbers in the resulting table:\n * combined states '1,2,3' -> 1, '3,4' -> 2, etc.\n */\n\n }, {\n key: '_remapStateNumbers',\n value: function _remapStateNumbers(calculatedDFATable) {\n var newStatesMap = {};\n\n this._originalTransitionTable = calculatedDFATable;\n var transitionTable = {};\n\n Object.keys(calculatedDFATable).forEach(function (originalNumber, newNumber) {\n newStatesMap[originalNumber] = newNumber + 1;\n });\n\n for (var originalNumber in calculatedDFATable) {\n var originalRow = calculatedDFATable[originalNumber];\n var row = {};\n\n for (var symbol in originalRow) {\n row[symbol] = newStatesMap[originalRow[symbol]];\n }\n\n transitionTable[newStatesMap[originalNumber]] = row;\n }\n\n // Remap accepting states.\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._acceptingStateNumbers = new Set();\n\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = this._originalAcceptingStateNumbers[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var _originalNumber = _step5.value;\n\n this._acceptingStateNumbers.add(newStatesMap[_originalNumber]);\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n return transitionTable;\n }\n\n /**\n * Returns original DFA table, where state numbers\n * are combined numbers from NFA.\n */\n\n }, {\n key: 'getOriginalTransitionTable',\n value: function getOriginalTransitionTable() {\n if (!this._originalTransitionTable) {\n // Original table is determined during table construction.\n this.getTransitionTable();\n }\n return this._originalTransitionTable;\n }\n\n /**\n * Checks whether this DFA accepts a string.\n */\n\n }, {\n key: 'matches',\n value: function matches(string) {\n var state = 1;\n var i = 0;\n var table = this.getTransitionTable();\n\n while (string[i]) {\n state = table[state][string[i++]];\n if (!state) {\n return false;\n }\n }\n\n if (!this.getAcceptingStateNumbers().has(state)) {\n return false;\n }\n\n return true;\n }\n }]);\n\n return DFA;\n}();\n\nmodule.exports = DFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NFA = require('./nfa/nfa');\nvar DFA = require('./dfa/dfa');\n\nvar nfaFromRegExp = require('./nfa/nfa-from-regexp');\nvar builders = require('./nfa/builders');\n\nmodule.exports = {\n\n /**\n * Export NFA and DFA classes.\n */\n NFA: NFA,\n DFA: DFA,\n\n /**\n * Expose builders.\n */\n builders: builders,\n\n /**\n * Builds an NFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toNFA: function toNFA(regexp) {\n return nfaFromRegExp.build(regexp);\n },\n\n\n /**\n * Builds DFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toDFA: function toDFA(regexp) {\n return new DFA(this.toNFA(regexp));\n },\n\n\n /**\n * Returns true if regexp accepts the string.\n */\n test: function test(regexp, string) {\n return this.toDFA(regexp).matches(string);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NFA = require('./nfa');\nvar NFAState = require('./nfa-state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n// -----------------------------------------------------------------------------\n// Char NFA fragment: `c`\n\n/**\n * Char factory.\n *\n * Creates an NFA fragment for a single char.\n *\n * [in] --c--> [out]\n */\n\n\nfunction char(c) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n return new NFA(inState.addTransition(c, outState), outState);\n}\n\n// -----------------------------------------------------------------------------\n// Epsilon NFA fragment\n\n/**\n * Epsilon factory.\n *\n * Creates an NFA fragment for ε (recognizes an empty string).\n *\n * [in] --ε--> [out]\n */\nfunction e() {\n return char(EPSILON);\n}\n\n// -----------------------------------------------------------------------------\n// Alteration NFA fragment: `abc`\n\n/**\n * Creates a connection between two NFA fragments on epsilon transition.\n *\n * [in-a] --a--> [out-a] --ε--> [in-b] --b--> [out-b]\n */\nfunction altPair(first, second) {\n first.out.accepting = false;\n second.out.accepting = true;\n\n first.out.addTransition(EPSILON, second.in);\n\n return new NFA(first.in, second.out);\n}\n\n/**\n * Alteration factory.\n *\n * Creates a alteration NFA for (at least) two NFA-fragments.\n */\nfunction alt(first) {\n for (var _len = arguments.length, fragments = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n fragments[_key - 1] = arguments[_key];\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = fragments[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var fragment = _step.value;\n\n first = altPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Disjunction NFA fragment: `a|b`\n\n/**\n * Creates a disjunction choice between two fragments.\n */\nfunction orPair(first, second) {\n var inState = new NFAState();\n var outState = new NFAState();\n\n inState.addTransition(EPSILON, first.in);\n inState.addTransition(EPSILON, second.in);\n\n outState.accepting = true;\n first.out.accepting = false;\n second.out.accepting = false;\n\n first.out.addTransition(EPSILON, outState);\n second.out.addTransition(EPSILON, outState);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Disjunction factory.\n *\n * Creates a disjunction NFA for (at least) two NFA-fragments.\n */\nfunction or(first) {\n for (var _len2 = arguments.length, fragments = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n fragments[_key2 - 1] = arguments[_key2];\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = fragments[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var fragment = _step2.value;\n\n first = orPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Kleene-closure\n\n/**\n * Kleene star/closure.\n *\n * a*\n */\nfunction repExplicit(fragment) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n // 0 or more.\n inState.addTransition(EPSILON, fragment.in);\n inState.addTransition(EPSILON, outState);\n\n fragment.out.accepting = false;\n fragment.out.addTransition(EPSILON, outState);\n outState.addTransition(EPSILON, fragment.in);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Optimized Kleene-star: just adds ε-transitions from\n * input to the output, and back.\n */\nfunction rep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized Plus: just adds ε-transitions from\n * the output to the input.\n */\nfunction plusRep(fragment) {\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized ? repetition: just adds ε-transitions from\n * the input to the output.\n */\nfunction questionRep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n return fragment;\n}\n\nmodule.exports = {\n alt: alt,\n char: char,\n e: e,\n or: or,\n rep: rep,\n repExplicit: repExplicit,\n plusRep: plusRep,\n questionRep: questionRep\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar parser = require('../../../parser');\n\nvar _require = require('./builders'),\n alt = _require.alt,\n char = _require.char,\n or = _require.or,\n rep = _require.rep,\n plusRep = _require.plusRep,\n questionRep = _require.questionRep;\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\n\nfunction gen(node) {\n if (node && !generator[node.type]) {\n throw new Error(node.type + ' is not supported in NFA/DFA interpreter.');\n }\n\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n if (node.flags !== '') {\n throw new Error('NFA/DFA: Flags are not supported yet.');\n }\n\n return gen(node.body);\n },\n Alternative: function Alternative(node) {\n var fragments = (node.expressions || []).map(gen);\n return alt.apply(undefined, _toConsumableArray(fragments));\n },\n Disjunction: function Disjunction(node) {\n return or(gen(node.left), gen(node.right));\n },\n Repetition: function Repetition(node) {\n switch (node.quantifier.kind) {\n case '*':\n return rep(gen(node.expression));\n case '+':\n return plusRep(gen(node.expression));\n case '?':\n return questionRep(gen(node.expression));\n default:\n throw new Error('Unknown repeatition: ' + node.quantifier.kind + '.');\n }\n },\n Char: function Char(node) {\n if (node.kind !== 'simple') {\n throw new Error('NFA/DFA: Only simple chars are supported yet.');\n }\n\n return char(node.value);\n },\n Group: function Group(node) {\n return gen(node.expression);\n }\n};\n\nmodule.exports = {\n /**\n * Builds an NFA from the passed regexp.\n */\n build: function build(regexp) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n return gen(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar State = require('../state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n/**\n * NFA state.\n *\n * Allows nondeterministic transitions to several states on the\n * same symbol, and also epsilon-transitions.\n */\n\n\nvar NFAState = function (_State) {\n _inherits(NFAState, _State);\n\n function NFAState() {\n _classCallCheck(this, NFAState);\n\n return _possibleConstructorReturn(this, (NFAState.__proto__ || Object.getPrototypeOf(NFAState)).apply(this, arguments));\n }\n\n _createClass(NFAState, [{\n key: 'matches',\n\n\n /**\n * Whether this state matches a string.\n *\n * We maintain set of visited epsilon-states to avoid infinite loops\n * when an epsilon-transition goes eventually to itself.\n *\n * NOTE: this function is rather \"educational\", since we use DFA for strings\n * matching. DFA is built on top of NFA, and uses fast transition table.\n */\n value: function matches(string) {\n var visited = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n\n // An epsilon-state has been visited, stop to avoid infinite loop.\n if (visited.has(this)) {\n return false;\n }\n\n visited.add(this);\n\n // No symbols left..\n if (string.length === 0) {\n // .. and we're in the accepting state.\n if (this.accepting) {\n return true;\n }\n\n // Check if we can reach any accepting state from\n // on the epsilon transitions.\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nextState = _step.value;\n\n if (nextState.matches('', visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return false;\n }\n\n // Else, we get some symbols.\n var symbol = string[0];\n var rest = string.slice(1);\n\n var symbolTransitions = this.getTransitionsOnSymbol(symbol);\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = symbolTransitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _nextState = _step2.value;\n\n if (_nextState.matches(rest)) {\n return true;\n }\n }\n\n // If we couldn't match on symbol, check still epsilon-transitions\n // without consuming the symbol (i.e. continue from `string`, not `rest`).\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _nextState2 = _step3.value;\n\n if (_nextState2.matches(string, visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return false;\n }\n\n /**\n * Returns an ε-closure for this state:\n * self + all states following ε-transitions.\n */\n\n }, {\n key: 'getEpsilonClosure',\n value: function getEpsilonClosure() {\n var _this2 = this;\n\n if (!this._epsilonClosure) {\n (function () {\n var epsilonTransitions = _this2.getTransitionsOnSymbol(EPSILON);\n var closure = _this2._epsilonClosure = new Set();\n closure.add(_this2);\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = epsilonTransitions[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nextState = _step4.value;\n\n if (!closure.has(nextState)) {\n closure.add(nextState);\n var nextClosure = nextState.getEpsilonClosure();\n nextClosure.forEach(function (state) {\n return closure.add(state);\n });\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n })();\n }\n\n return this._epsilonClosure;\n }\n }]);\n\n return NFAState;\n}(State);\n\nmodule.exports = NFAState;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON,\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * NFA fragment.\n *\n * NFA sub-fragments can be combined to a larger NFAs building\n * the resulting machine. Combining the fragments is done by patching\n * edges of the in- and out-states.\n *\n * 2-states implementation, `in`, and `out`. Eventually all transitions\n * go to the same `out`, which can further be connected via ε-transition\n * with other fragment.\n */\n\n\nvar NFA = function () {\n function NFA(inState, outState) {\n _classCallCheck(this, NFA);\n\n this.in = inState;\n this.out = outState;\n }\n\n /**\n * Tries to recognize a string based on this NFA fragment.\n */\n\n\n _createClass(NFA, [{\n key: 'matches',\n value: function matches(string) {\n return this.in.matches(string);\n }\n\n /**\n * Returns an alphabet for this NFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n if (!this._alphabet) {\n this._alphabet = new Set();\n var table = this.getTransitionTable();\n for (var state in table) {\n var transitions = table[state];\n for (var symbol in transitions) {\n if (symbol !== EPSILON_CLOSURE) {\n this._alphabet.add(symbol);\n }\n }\n }\n }\n return this._alphabet;\n }\n\n /**\n * Returns set of accepting states.\n */\n\n }, {\n key: 'getAcceptingStates',\n value: function getAcceptingStates() {\n if (!this._acceptingStates) {\n // States are determined during table construction.\n this.getTransitionTable();\n }\n return this._acceptingStates;\n }\n\n /**\n * Returns accepting state numbers.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n this._acceptingStateNumbers = new Set();\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getAcceptingStates()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var acceptingState = _step.value;\n\n this._acceptingStateNumbers.add(acceptingState.number);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n return this._acceptingStateNumbers;\n }\n\n /**\n * Builds and returns transition table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (!this._transitionTable) {\n this._transitionTable = {};\n this._acceptingStates = new Set();\n\n var visited = new Set();\n var symbols = new Set();\n\n var visitState = function visitState(state) {\n if (visited.has(state)) {\n return;\n }\n\n visited.add(state);\n state.number = visited.size;\n _this._transitionTable[state.number] = {};\n\n if (state.accepting) {\n _this._acceptingStates.add(state);\n }\n\n var transitions = state.getTransitions();\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = transitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var symbol = _ref2[0];\n var symbolTransitions = _ref2[1];\n\n var combinedState = [];\n symbols.add(symbol);\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = symbolTransitions[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var nextState = _step3.value;\n\n visitState(nextState);\n combinedState.push(nextState.number);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n _this._transitionTable[state.number][symbol] = combinedState;\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n };\n\n // Traverse the graph starting from the `in`.\n visitState(this.in);\n\n // Append epsilon-closure column.\n visited.forEach(function (state) {\n delete _this._transitionTable[state.number][EPSILON];\n _this._transitionTable[state.number][EPSILON_CLOSURE] = [].concat(_toConsumableArray(state.getEpsilonClosure())).map(function (s) {\n return s.number;\n });\n });\n }\n\n return this._transitionTable;\n }\n }]);\n\n return NFA;\n}();\n\nmodule.exports = NFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Epsilon, the empty string.\n */\n\nvar EPSILON = 'ε';\n\n/**\n * Epsilon-closure.\n */\nvar EPSILON_CLOSURE = EPSILON + '*';\n\nmodule.exports = {\n EPSILON: EPSILON,\n EPSILON_CLOSURE: EPSILON_CLOSURE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A generic FA State class (base for NFA and DFA).\n *\n * Maintains the transition map, and the flag whether\n * the state is accepting.\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar State = function () {\n function State() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$accepting = _ref.accepting,\n accepting = _ref$accepting === undefined ? false : _ref$accepting;\n\n _classCallCheck(this, State);\n\n /**\n * Outgoing transitions to other states.\n */\n this._transitions = new Map();\n\n /**\n * Whether the state is accepting.\n */\n this.accepting = accepting;\n }\n\n /**\n * Returns transitions for this state.\n */\n\n\n _createClass(State, [{\n key: 'getTransitions',\n value: function getTransitions() {\n return this._transitions;\n }\n\n /**\n * Creates a transition on symbol.\n */\n\n }, {\n key: 'addTransition',\n value: function addTransition(symbol, toState) {\n this.getTransitionsOnSymbol(symbol).add(toState);\n return this;\n }\n\n /**\n * Returns transitions set on symbol.\n */\n\n }, {\n key: 'getTransitionsOnSymbol',\n value: function getTransitionsOnSymbol(symbol) {\n var transitions = this._transitions.get(symbol);\n\n if (!transitions) {\n transitions = new Set();\n this._transitions.set(symbol, transitions);\n }\n\n return transitions;\n }\n }]);\n\n return State;\n}();\n\nmodule.exports = State;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar clone = require('../utils/clone');\nvar parser = require('../parser');\nvar transform = require('../transform');\nvar optimizationTransforms = require('./transforms');\n\nmodule.exports = {\n /**\n * Optimizer transforms a regular expression into an optimized version,\n * replacing some sub-expressions with their idiomatic patterns.\n *\n * @param string | RegExp | AST - a regexp to optimize.\n *\n * @return TransformResult - an optimized regexp.\n *\n * Example:\n *\n * /[a-zA-Z_0-9][a-zA-Z_0-9]*\\e{1,}/\n *\n * Optimized to:\n *\n * /\\w+e+/\n */\n optimize: function optimize(regexp) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$whitelist = _ref.whitelist,\n whitelist = _ref$whitelist === undefined ? [] : _ref$whitelist,\n _ref$blacklist = _ref.blacklist,\n blacklist = _ref$blacklist === undefined ? [] : _ref$blacklist;\n\n var transformsRaw = whitelist.length > 0 ? whitelist : Array.from(optimizationTransforms.keys());\n\n var transformToApply = transformsRaw.filter(function (transform) {\n return !blacklist.includes(transform);\n });\n\n var ast = regexp;\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp);\n }\n\n var result = new transform.TransformResult(ast);\n var prevResultString = void 0;\n\n do {\n // Get a copy of the current state here so\n // we can compare it with the state at the\n // end of the loop.\n prevResultString = result.toString();\n ast = clone(result.getAST());\n\n transformToApply.forEach(function (transformName) {\n if (!optimizationTransforms.has(transformName)) {\n throw new Error('Unknown optimization-transform: ' + transformName + '. ' + 'Available transforms are: ' + Array.from(optimizationTransforms.keys()).join(', '));\n }\n\n var transformer = optimizationTransforms.get(transformName);\n\n // Don't override result just yet since we\n // might want to rollback the transform\n var newResult = transform.transform(ast, transformer);\n\n if (newResult.toString() !== result.toString()) {\n if (newResult.toString().length <= result.toString().length) {\n result = newResult;\n } else {\n // Result has changed but is not shorter:\n // restore ast to its previous state.\n\n ast = clone(result.getAST());\n }\n }\n });\n\n // Keep running the optimizer until it stops\n // making any change to the regexp.\n } while (result.toString() !== prevResultString);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\n/**\n * Transforms case-insensitive regexp to lowercase\n *\n * /AaBbÏ/i -> /aabbï/i\n */\nmodule.exports = {\n _AZClassRanges: null,\n _hasUFlag: false,\n init: function init(ast) {\n this._AZClassRanges = new Set();\n this._hasUFlag = ast.flags.includes('u');\n },\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('i');\n },\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint)) {\n return;\n }\n\n // Engine support for case-insensitive matching without the u flag\n // for characters above \\u1000 does not seem reliable.\n if (!this._hasUFlag && node.codePoint >= 0x1000) {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n // The only class ranges we handle must be inside A-Z.\n // After the `from` char is processed, the isAZClassRange test\n // will be false, so we use a Set to keep track of parents and\n // process the `to` char.\n if (!this._AZClassRanges.has(parent) && !isAZClassRange(parent)) {\n return;\n }\n this._AZClassRanges.add(parent);\n }\n\n var lower = node.symbol.toLowerCase();\n if (lower !== node.symbol) {\n node.value = displaySymbolAsValue(lower, node);\n node.symbol = lower;\n node.codePoint = lower.codePointAt(0);\n }\n }\n};\n\nfunction isAZClassRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n // A-Z\n\n return from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP;\n}\n\nfunction displaySymbolAsValue(symbol, node) {\n var codePoint = symbol.codePointAt(0);\n if (node.kind === 'decimal') {\n return '\\\\' + codePoint;\n }\n if (node.kind === 'oct') {\n return '\\\\0' + codePoint.toString(8);\n }\n if (node.kind === 'hex') {\n return '\\\\x' + codePoint.toString(16);\n }\n if (node.kind === 'unicode') {\n if (node.isSurrogatePair) {\n var _getSurrogatePairFrom = getSurrogatePairFromCodePoint(codePoint),\n lead = _getSurrogatePairFrom.lead,\n trail = _getSurrogatePairFrom.trail;\n\n return '\\\\u' + '0'.repeat(4 - lead.length) + lead + '\\\\u' + '0'.repeat(4 - trail.length) + trail;\n } else if (node.value.includes('{')) {\n return '\\\\u{' + codePoint.toString(16) + '}';\n } else {\n var code = codePoint.toString(16);\n return '\\\\u' + '0'.repeat(4 - code.length) + code;\n }\n }\n // simple\n return symbol;\n}\n\n/**\n * Converts a code point to a surrogate pair.\n * Conversion algorithm is taken from The Unicode Standard 3.0 Section 3.7\n * (https://www.unicode.org/versions/Unicode3.0.0/ch03.pdf)\n * @param {number} codePoint - Between 0x10000 and 0x10ffff\n * @returns {{lead: string, trail: string}}\n */\nfunction getSurrogatePairFromCodePoint(codePoint) {\n var lead = Math.floor((codePoint - 0x10000) / 0x400) + 0xd800;\n var trail = (codePoint - 0x10000) % 0x400 + 0xdc00;\n return {\n lead: lead.toString(16),\n trail: trail.toString(16)\n };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to merge class ranges.\n *\n * [a-ec] -> [a-e]\n * [a-ec-e] -> [a-e]\n * [\\w\\da-f] -> [\\w]\n * [abcdef] -> [a-f]\n */\n\nmodule.exports = {\n _hasIUFlags: false,\n init: function init(ast) {\n this._hasIUFlags = ast.flags.includes('i') && ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var expressions = node.expressions;\n\n var metas = [];\n // Extract metas\n expressions.forEach(function (expression) {\n if (isMeta(expression)) {\n metas.push(expression.value);\n }\n });\n\n expressions.sort(sortCharClass);\n\n for (var i = 0; i < expressions.length; i++) {\n var expression = expressions[i];\n if (fitsInMetas(expression, metas, this._hasIUFlags) || combinesWithPrecedingClassRange(expression, expressions[i - 1]) || combinesWithFollowingClassRange(expression, expressions[i + 1])) {\n expressions.splice(i, 1);\n i--;\n } else {\n var nbMergedChars = charCombinesWithPrecedingChars(expression, i, expressions);\n expressions.splice(i - nbMergedChars + 1, nbMergedChars);\n i -= nbMergedChars;\n }\n }\n }\n};\n\n/**\n * Sorts expressions in char class in the following order:\n * - meta chars, ordered alphabetically by value\n * - chars (except `control` kind) and class ranges, ordered alphabetically (`from` char is used for class ranges)\n * - if ambiguous, class range comes before char\n * - if ambiguous between two class ranges, orders alphabetically by `to` char\n * - control chars, ordered alphabetically by value\n * @param {Object} a - Left Char or ClassRange node\n * @param {Object} b - Right Char or ClassRange node\n * @returns {number}\n */\nfunction sortCharClass(a, b) {\n var aValue = getSortValue(a);\n var bValue = getSortValue(b);\n\n if (aValue === bValue) {\n // We want ClassRange before Char\n // [bb-d] -> [b-db]\n if (a.type === 'ClassRange' && b.type !== 'ClassRange') {\n return -1;\n }\n if (b.type === 'ClassRange' && a.type !== 'ClassRange') {\n return 1;\n }\n if (a.type === 'ClassRange' && b.type === 'ClassRange') {\n return getSortValue(a.to) - getSortValue(b.to);\n }\n if (isMeta(a) && isMeta(b) || isControl(a) && isControl(b)) {\n return a.value < b.value ? -1 : 1;\n }\n }\n return aValue - bValue;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {number}\n */\nfunction getSortValue(expression) {\n if (expression.type === 'Char') {\n if (expression.value === '-') {\n return Infinity;\n }\n if (expression.kind === 'control') {\n return Infinity;\n }\n if (expression.kind === 'meta' && isNaN(expression.codePoint)) {\n return -1;\n }\n return expression.codePoint;\n }\n // ClassRange\n return expression.from.codePoint;\n}\n\n/**\n * Checks if a node is a meta char from the set \\d\\w\\s\\D\\W\\S\n * @param {Object} expression - Char or ClassRange node\n * @param {?string} value\n * @returns {boolean}\n */\nfunction isMeta(expression) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n return expression.type === 'Char' && expression.kind === 'meta' && (value ? expression.value === value : /^\\\\[dws]$/i.test(expression.value));\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {boolean}\n */\nfunction isControl(expression) {\n return expression.type === 'Char' && expression.kind === 'control';\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string[]} metas - Array of meta chars, e.g. [\"\\\\w\", \"\\\\s\"]\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetas(expression, metas, hasIUFlags) {\n for (var i = 0; i < metas.length; i++) {\n if (fitsInMeta(expression, metas[i], hasIUFlags)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string} meta - e.g. \"\\\\w\"\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMeta(expression, meta, hasIUFlags) {\n if (expression.type === 'ClassRange') {\n return fitsInMeta(expression.from, meta, hasIUFlags) && fitsInMeta(expression.to, meta, hasIUFlags);\n }\n\n // Special cases:\n // \\S contains \\w and \\d\n if (meta === '\\\\S' && (isMeta(expression, '\\\\w') || isMeta(expression, '\\\\d'))) {\n return true;\n }\n // \\D contains \\W and \\s\n if (meta === '\\\\D' && (isMeta(expression, '\\\\W') || isMeta(expression, '\\\\s'))) {\n return true;\n }\n // \\w contains \\d\n if (meta === '\\\\w' && isMeta(expression, '\\\\d')) {\n return true;\n }\n // \\W contains \\s\n if (meta === '\\\\W' && isMeta(expression, '\\\\s')) {\n return true;\n }\n\n if (expression.type !== 'Char' || isNaN(expression.codePoint)) {\n return false;\n }\n\n if (meta === '\\\\s') {\n return fitsInMetaS(expression);\n }\n if (meta === '\\\\S') {\n return !fitsInMetaS(expression);\n }\n if (meta === '\\\\d') {\n return fitsInMetaD(expression);\n }\n if (meta === '\\\\D') {\n return !fitsInMetaD(expression);\n }\n if (meta === '\\\\w') {\n return fitsInMetaW(expression, hasIUFlags);\n }\n if (meta === '\\\\W') {\n return !fitsInMetaW(expression, hasIUFlags);\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaS(expression) {\n return expression.codePoint === 0x0009 || // \\t\n expression.codePoint === 0x000a || // \\n\n expression.codePoint === 0x000b || // \\v\n expression.codePoint === 0x000c || // \\f\n expression.codePoint === 0x000d || // \\r\n expression.codePoint === 0x0020 || // space\n expression.codePoint === 0x00a0 || // nbsp\n expression.codePoint === 0x1680 || // part of Zs\n expression.codePoint >= 0x2000 && expression.codePoint <= 0x200a || // part of Zs\n expression.codePoint === 0x2028 || // line separator\n expression.codePoint === 0x2029 || // paragraph separator\n expression.codePoint === 0x202f || // part of Zs\n expression.codePoint === 0x205f || // part of Zs\n expression.codePoint === 0x3000 || // part of Zs\n expression.codePoint === 0xfeff; // zwnbsp\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaD(expression) {\n return expression.codePoint >= 0x30 && expression.codePoint <= 0x39; // 0-9\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetaW(expression, hasIUFlags) {\n return fitsInMetaD(expression) || expression.codePoint >= 0x41 && expression.codePoint <= 0x5a || // A-Z\n expression.codePoint >= 0x61 && expression.codePoint <= 0x7a || // a-z\n expression.value === '_' || hasIUFlags && (expression.codePoint === 0x017f || expression.codePoint === 0x212a);\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithPrecedingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n if (fitsInClassRange(expression, classRange)) {\n // [a-gc] -> [a-g]\n // [a-gc-e] -> [a-g]\n return true;\n } else if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.to.codePoint === expression.codePoint - 1) {\n // [a-de] -> [a-e]\n classRange.to = expression;\n return true;\n } else if (expression.type === 'ClassRange' && expression.from.codePoint <= classRange.to.codePoint + 1 && expression.to.codePoint >= classRange.from.codePoint - 1) {\n // [a-db-f] -> [a-f]\n // [b-fa-d] -> [a-f]\n // [a-cd-f] -> [a-f]\n if (expression.from.codePoint < classRange.from.codePoint) {\n classRange.from = expression.from;\n }\n if (expression.to.codePoint > classRange.to.codePoint) {\n classRange.to = expression.to;\n }\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithFollowingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n // Considering the elements were ordered alphabetically,\n // there is only one case to handle\n // [ab-e] -> [a-e]\n if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.from.codePoint === expression.codePoint + 1) {\n classRange.from = expression;\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - ClassRange node\n * @returns {boolean}\n */\nfunction fitsInClassRange(expression, classRange) {\n if (expression.type === 'Char' && isNaN(expression.codePoint)) {\n return false;\n }\n if (expression.type === 'ClassRange') {\n return fitsInClassRange(expression.from, classRange) && fitsInClassRange(expression.to, classRange);\n }\n return expression.codePoint >= classRange.from.codePoint && expression.codePoint <= classRange.to.codePoint;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Number} index\n * @param {Object[]} expressions - expressions in CharClass\n * @returns {number} - Number of characters combined with expression\n */\nfunction charCombinesWithPrecedingChars(expression, index, expressions) {\n // We only want \\w chars or char codes to keep readability\n if (!isMetaWCharOrCode(expression)) {\n return 0;\n }\n var nbMergedChars = 0;\n while (index > 0) {\n var currentExpression = expressions[index];\n var precedingExpresion = expressions[index - 1];\n if (isMetaWCharOrCode(precedingExpresion) && precedingExpresion.codePoint === currentExpression.codePoint - 1) {\n nbMergedChars++;\n index--;\n } else {\n break;\n }\n }\n\n if (nbMergedChars > 1) {\n expressions[index] = {\n type: 'ClassRange',\n from: expressions[index],\n to: expression\n };\n return nbMergedChars;\n }\n return 0;\n}\n\nfunction isMetaWCharOrCode(expression) {\n return expression && expression.type === 'Char' && !isNaN(expression.codePoint) && (fitsInMetaW(expression, false) || expression.kind === 'unicode' || expression.kind === 'hex' || expression.kind === 'oct' || expression.kind === 'decimal');\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to simplify character classes\n * spanning only one or two chars.\n *\n * [a-a] -> [a]\n * [a-b] -> [ab]\n */\n\nmodule.exports = {\n ClassRange: function ClassRange(path) {\n var node = path.node;\n\n\n if (node.from.codePoint === node.to.codePoint) {\n\n path.replace(node.from);\n } else if (node.from.codePoint === node.to.codePoint - 1) {\n\n path.getParent().insertChildAt(node.to, path.index + 1);\n path.replace(node.from);\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove duplicates from character classes.\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var sources = {};\n\n for (var i = 0; i < node.expressions.length; i++) {\n var childPath = path.getChild(i);\n var source = childPath.jsonEncode();\n\n if (sources.hasOwnProperty(source)) {\n childPath.remove();\n\n // Since we remove the current node.\n // TODO: make it simpler for users with a method.\n i--;\n }\n\n sources[source] = true;\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace standard character classes with\n * their meta symbols equivalents.\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n _hasIFlag: false,\n _hasUFlag: false,\n init: function init(ast) {\n this._hasIFlag = ast.flags.includes('i');\n this._hasUFlag = ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n // [0-9] -> \\d\n rewriteNumberRanges(path);\n\n // [a-zA-Z_0-9] -> \\w\n rewriteWordRanges(path, this._hasIFlag, this._hasUFlag);\n\n // [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s\n rewriteWhitespaceRanges(path);\n }\n};\n\n/**\n * Rewrites number ranges: [0-9] -> \\d\n */\nfunction rewriteNumberRanges(path) {\n var node = path.node;\n\n\n node.expressions.forEach(function (expression, i) {\n if (isFullNumberRange(expression)) {\n path.getChild(i).replace({\n type: 'Char',\n value: '\\\\d',\n kind: 'meta'\n });\n }\n });\n}\n\n/**\n * Rewrites word ranges: [a-zA-Z_0-9] -> \\w\n * Thus, the ranges may go in any order, and other symbols/ranges\n * are kept untouched, e.g. [a-z_\\dA-Z$] -> [\\w$]\n */\nfunction rewriteWordRanges(path, hasIFlag, hasUFlag) {\n var node = path.node;\n\n\n var numberPath = null;\n var lowerCasePath = null;\n var upperCasePath = null;\n var underscorePath = null;\n var u017fPath = null;\n var u212aPath = null;\n\n node.expressions.forEach(function (expression, i) {\n // \\d\n if (isMetaChar(expression, '\\\\d')) {\n numberPath = path.getChild(i);\n }\n\n // a-z\n else if (isLowerCaseRange(expression)) {\n lowerCasePath = path.getChild(i);\n }\n\n // A-Z\n else if (isUpperCaseRange(expression)) {\n upperCasePath = path.getChild(i);\n }\n\n // _\n else if (isUnderscore(expression)) {\n underscorePath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x017f)) {\n u017fPath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x212a)) {\n u212aPath = path.getChild(i);\n }\n });\n\n // If we found the whole pattern, replace it.\n if (numberPath && (lowerCasePath && upperCasePath || hasIFlag && (lowerCasePath || upperCasePath)) && underscorePath && (!hasUFlag || !hasIFlag || u017fPath && u212aPath)) {\n // Put \\w in place of \\d.\n numberPath.replace({\n type: 'Char',\n value: '\\\\w',\n kind: 'meta'\n });\n\n // Other paths are removed.\n if (lowerCasePath) {\n lowerCasePath.remove();\n }\n if (upperCasePath) {\n upperCasePath.remove();\n }\n underscorePath.remove();\n if (u017fPath) {\n u017fPath.remove();\n }\n if (u212aPath) {\n u212aPath.remove();\n }\n }\n}\n\n/**\n * Rewrites whitespace ranges: [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s.\n */\nvar whitespaceRangeTests = [function (node) {\n return isChar(node, ' ');\n}].concat(_toConsumableArray(['\\\\f', '\\\\n', '\\\\r', '\\\\t', '\\\\v'].map(function (char) {\n return function (node) {\n return isMetaChar(node, char);\n };\n})), _toConsumableArray([0x00a0, 0x1680, 0x2028, 0x2029, 0x202f, 0x205f, 0x3000, 0xfeff].map(function (codePoint) {\n return function (node) {\n return isCodePoint(node, codePoint);\n };\n})), [function (node) {\n return node.type === 'ClassRange' && isCodePoint(node.from, 0x2000) && isCodePoint(node.to, 0x200a);\n}]);\n\nfunction rewriteWhitespaceRanges(path) {\n var node = path.node;\n\n\n if (node.expressions.length < whitespaceRangeTests.length || !whitespaceRangeTests.every(function (test) {\n return node.expressions.some(function (expression) {\n return test(expression);\n });\n })) {\n return;\n }\n\n // If we found the whole pattern, replace it.\n\n // Put \\s in place of \\n.\n var nNode = node.expressions.find(function (expression) {\n return isMetaChar(expression, '\\\\n');\n });\n nNode.value = '\\\\s';\n nNode.symbol = undefined;\n nNode.codePoint = NaN;\n\n // Other paths are removed.\n node.expressions.map(function (expression, i) {\n return whitespaceRangeTests.some(function (test) {\n return test(expression);\n }) ? path.getChild(i) : undefined;\n }).filter(Boolean).forEach(function (path) {\n return path.remove();\n });\n}\n\nfunction isFullNumberRange(node) {\n return node.type === 'ClassRange' && node.from.value === '0' && node.to.value === '9';\n}\n\nfunction isChar(node, value) {\n var kind = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'simple';\n\n return node.type === 'Char' && node.value === value && node.kind === kind;\n}\n\nfunction isMetaChar(node, value) {\n return isChar(node, value, 'meta');\n}\n\nfunction isLowerCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'a' && node.to.value === 'z';\n}\n\nfunction isUpperCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'A' && node.to.value === 'Z';\n}\n\nfunction isUnderscore(node) {\n return node.type === 'Char' && node.value === '_' && node.kind === 'simple';\n}\n\nfunction isCodePoint(node, codePoint) {\n return node.type === 'Char' && node.kind === 'unicode' && node.codePoint === codePoint;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char character classes with\n * just that character.\n *\n * [\\d] -> \\d, [^\\w] -> \\W\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n\n if (node.expressions.length !== 1 || !hasAppropriateSiblings(path) || !isAppropriateChar(node.expressions[0])) {\n return;\n }\n\n var _node$expressions$ = node.expressions[0],\n value = _node$expressions$.value,\n kind = _node$expressions$.kind,\n escaped = _node$expressions$.escaped;\n\n\n if (node.negative) {\n // For negative can extract only meta chars like [^\\w] -> \\W\n // cannot do for [^a] -> a (wrong).\n if (!isMeta(value)) {\n return;\n }\n\n value = getInverseMeta(value);\n }\n\n path.replace({\n type: 'Char',\n value: value,\n kind: kind,\n escaped: escaped || shouldEscape(value)\n });\n }\n};\n\nfunction isAppropriateChar(node) {\n return node.type === 'Char' &&\n // We don't extract [\\b] (backspace) since \\b has different\n // semantics (word boundary).\n node.value !== '\\\\b';\n}\n\nfunction isMeta(value) {\n return (/^\\\\[dwsDWS]$/.test(value)\n );\n}\n\nfunction getInverseMeta(value) {\n return (/[dws]/.test(value) ? value.toUpperCase() : value.toLowerCase()\n );\n}\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1[0] to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2[0] to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}\n\n// Note: \\{ and \\} are always preserved to avoid `a[{]2[}]` turning\n// into `a{2}`.\nfunction shouldEscape(value) {\n return (/[*[()+?$./{}|]/.test(value)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\nvar LOWER_A_CP = 'a'.codePointAt(0);\nvar LOWER_Z_CP = 'z'.codePointAt(0);\nvar DIGIT_0_CP = '0'.codePointAt(0);\nvar DIGIT_9_CP = '9'.codePointAt(0);\n\n/**\n * A regexp-tree plugin to transform coded chars into simple chars.\n *\n * \\u0061 -> a\n */\nmodule.exports = {\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint) || node.kind === 'simple') {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n if (!isSimpleRange(parent)) {\n return;\n }\n }\n\n if (!isPrintableASCIIChar(node.codePoint)) {\n return;\n }\n\n var symbol = String.fromCodePoint(node.codePoint);\n var newChar = {\n type: 'Char',\n kind: 'simple',\n value: symbol,\n symbol: symbol,\n codePoint: node.codePoint\n };\n if (needsEscape(symbol, parent.type)) {\n newChar.escaped = true;\n }\n path.replace(newChar);\n }\n};\n\n/**\n * Checks if a range is included either in 0-9, a-z or A-Z\n * @param classRange\n * @returns {boolean}\n */\nfunction isSimpleRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n\n return from.codePoint >= DIGIT_0_CP && from.codePoint <= DIGIT_9_CP && to.codePoint >= DIGIT_0_CP && to.codePoint <= DIGIT_9_CP || from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP || from.codePoint >= LOWER_A_CP && from.codePoint <= LOWER_Z_CP && to.codePoint >= LOWER_A_CP && to.codePoint <= LOWER_Z_CP;\n}\n\n/**\n * Checks if a code point in the range of printable ASCII chars\n * (DEL char excluded)\n * @param codePoint\n * @returns {boolean}\n */\nfunction isPrintableASCIIChar(codePoint) {\n return codePoint >= 0x20 && codePoint <= 0x7e;\n}\n\nfunction needsEscape(symbol, parentType) {\n if (parentType === 'ClassRange' || parentType === 'CharacterClass') {\n return (/[\\]\\\\^-]/.test(symbol)\n );\n }\n\n return (/[*[()+?^$./\\\\|{}]/.test(symbol)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary escape.\n *\n * \\e -> e\n *\n * [\\(] -> [(]\n */\n\nmodule.exports = {\n _hasXFlag: false,\n init: function init(ast) {\n this._hasXFlag = ast.flags.includes('x');\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (!node.escaped) {\n return;\n }\n\n if (shouldUnescape(path, this._hasXFlag)) {\n delete node.escaped;\n }\n }\n};\n\nfunction shouldUnescape(path, hasXFlag) {\n var value = path.node.value,\n index = path.index,\n parent = path.parent;\n\n // In char class (, etc are allowed.\n\n if (parent.type !== 'CharacterClass' && parent.type !== 'ClassRange') {\n return !preservesEscape(value, index, parent, hasXFlag);\n }\n\n return !preservesInCharClass(value, index, parent);\n}\n\n/**\n * \\], \\\\, \\^, \\-\n */\nfunction preservesInCharClass(value, index, parent) {\n if (value === '^') {\n // Avoid [\\^a] turning into [^a]\n return index === 0 && !parent.negative;\n }\n if (value === '-') {\n // Avoid [a\\-z] turning into [a-z]\n return true;\n }\n return (/[\\]\\\\]/.test(value)\n );\n}\n\nfunction preservesEscape(value, index, parent, hasXFlag) {\n if (value === '{') {\n return preservesOpeningCurlyBraceEscape(index, parent);\n }\n\n if (value === '}') {\n return preservesClosingCurlyBraceEscape(index, parent);\n }\n\n if (hasXFlag && /[ #]/.test(value)) {\n return true;\n }\n\n return (/[*[()+?^$./\\\\|]/.test(value)\n );\n}\n\nfunction consumeNumbers(startIndex, parent, rtl) {\n var i = startIndex;\n var siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n\n while (siblingNode && siblingNode.type === 'Char' && siblingNode.kind === 'simple' && !siblingNode.escaped && /\\d/.test(siblingNode.value)) {\n rtl ? i-- : i++;\n siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n }\n\n return Math.abs(startIndex - i);\n}\n\nfunction isSimpleChar(node, value) {\n return node && node.type === 'Char' && node.kind === 'simple' && !node.escaped && node.value === value;\n}\n\nfunction preservesOpeningCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbFollowingNumbers = consumeNumbers(index + 1, parent);\n var i = index + nbFollowingNumbers + 1;\n var nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n if (nbFollowingNumbers) {\n // Avoid \\{3} turning into {3}\n if (isSimpleChar(nextSiblingNode, '}')) {\n return true;\n }\n\n if (isSimpleChar(nextSiblingNode, ',')) {\n nbFollowingNumbers = consumeNumbers(i + 1, parent);\n i = i + nbFollowingNumbers + 1;\n nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid \\{3,} turning into {3,}\n return isSimpleChar(nextSiblingNode, '}');\n }\n }\n return false;\n}\n\nfunction preservesClosingCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbPrecedingNumbers = consumeNumbers(index - 1, parent, true);\n var i = index - nbPrecedingNumbers - 1;\n var previousSiblingNode = i >= 0 && parent.expressions[i];\n\n // Avoid {3\\} turning into {3}\n if (nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{')) {\n return true;\n }\n\n if (isSimpleChar(previousSiblingNode, ',')) {\n nbPrecedingNumbers = consumeNumbers(i - 1, parent, true);\n i = i - nbPrecedingNumbers - 1;\n previousSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid {3,\\} turning into {3,}\n return nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{');\n }\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to transform surrogate pairs into single unicode code point\n *\n * \\ud83d\\ude80 -> \\u{1f680}\n */\n\nmodule.exports = {\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('u');\n },\n Char: function Char(path) {\n var node = path.node;\n\n if (node.kind !== 'unicode' || !node.isSurrogatePair || isNaN(node.codePoint)) {\n return;\n }\n node.value = '\\\\u{' + node.codePoint.toString(16) + '}';\n delete node.isSurrogatePair;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to combine repeating patterns.\n *\n * /^abcabcabc/ -> /^abc{3}/\n * /^(?:abc){2}abc/ -> /^(?:abc){3}/\n * /^abc(?:abc){2}/ -> /^(?:abc){3}/\n */\n\nmodule.exports = {\n Alternative: function Alternative(path) {\n var node = path.node;\n\n // We can skip the first child\n\n var index = 1;\n while (index < node.expressions.length) {\n var child = path.getChild(index);\n index = Math.max(1, combineRepeatingPatternLeft(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineWithPreviousRepetition(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineRepetitionWithPrevious(path, child, index));\n\n index++;\n }\n }\n};\n\n// abcabc -> (?:abc){2}\nfunction combineRepeatingPatternLeft(alternative, child, index) {\n var node = alternative.node;\n\n\n var nbPossibleLengths = Math.ceil(index / 2);\n var i = 0;\n\n while (i < nbPossibleLengths) {\n var startIndex = index - 2 * i - 1;\n var right = void 0,\n left = void 0;\n\n if (i === 0) {\n right = child;\n left = alternative.getChild(startIndex);\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - i, index)), [child.node])\n });\n\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(startIndex, index - i)))\n });\n }\n\n if (right.hasEqualSource(left)) {\n for (var j = 0; j < 2 * i + 1; j++) {\n alternative.getChild(startIndex).remove();\n }\n\n child.replace({\n type: 'Repetition',\n expression: i === 0 && right.node.type !== 'Repetition' ? right.node : {\n type: 'Group',\n capturing: false,\n expression: right.node\n },\n quantifier: {\n type: 'Quantifier',\n kind: 'Range',\n from: 2,\n to: 2,\n greedy: true\n }\n });\n return startIndex;\n }\n\n i++;\n }\n\n return index;\n}\n\n// (?:abc){2}abc -> (?:abc){3}\nfunction combineWithPreviousRepetition(alternative, child, index) {\n var node = alternative.node;\n\n\n var i = 0;\n while (i < index) {\n var previousChild = alternative.getChild(i);\n\n if (previousChild.node.type === 'Repetition' && previousChild.node.quantifier.greedy) {\n var left = previousChild.getChild();\n var right = void 0;\n\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n\n if (i + 1 === index) {\n right = child;\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(i + 1, index + 1)))\n });\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = i; j < index; j++) {\n alternative.getChild(i + 1).remove();\n }\n\n increaseQuantifierByOne(previousChild.node.quantifier);\n\n return i;\n }\n }\n\n i++;\n }\n return index;\n}\n\n// abc(?:abc){2} -> (?:abc){3}\nfunction combineRepetitionWithPrevious(alternative, child, index) {\n var node = alternative.node;\n\n\n if (child.node.type === 'Repetition' && child.node.quantifier.greedy) {\n var right = child.getChild();\n var left = void 0;\n\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n\n var rightLength = void 0;\n if (right.node.type === 'Alternative') {\n rightLength = right.node.expressions.length;\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - rightLength, index)))\n });\n } else {\n rightLength = 1;\n left = alternative.getChild(index - 1);\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = index - rightLength; j < index; j++) {\n alternative.getChild(index - rightLength).remove();\n }\n\n increaseQuantifierByOne(child.node.quantifier);\n\n return index - rightLength;\n }\n }\n return index;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n disjunctionToList = _require.disjunctionToList,\n listToDisjunction = _require.listToDisjunction;\n\n/**\n * Removes duplicates from a disjunction sequence:\n *\n * /(ab|bc|ab)+(xy|xy)+/ -> /(ab|bc)+(xy)+/\n */\n\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node;\n\n // Make unique nodes.\n\n var uniqueNodesMap = {};\n\n var parts = disjunctionToList(node).filter(function (part) {\n var encoded = part ? NodePath.getForNode(part).jsonEncode() : 'null';\n\n // Already recorded this part, filter out.\n if (uniqueNodesMap.hasOwnProperty(encoded)) {\n return false;\n }\n\n uniqueNodesMap[encoded] = part;\n return true;\n });\n\n // Replace with the optimized disjunction.\n path.replace(listToDisjunction(parts));\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char group disjunction to char group\n *\n * a|b|c -> [abc]\n * [12]|3|4 -> [1234]\n * (a|b|c) -> ([abc])\n * (?:a|b|c) -> [abc]\n */\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (!handlers[parent.type]) {\n return;\n }\n\n var charset = new Map();\n\n if (!shouldProcess(node, charset) || !charset.size) {\n return;\n }\n\n var characterClass = {\n type: 'CharacterClass',\n expressions: Array.from(charset.keys()).sort().map(function (key) {\n return charset.get(key);\n })\n };\n\n handlers[parent.type](path.getParent(), characterClass);\n }\n};\n\nvar handlers = {\n RegExp: function RegExp(path, characterClass) {\n var node = path.node;\n\n\n node.body = characterClass;\n },\n Group: function Group(path, characterClass) {\n var node = path.node;\n\n\n if (node.capturing) {\n node.expression = characterClass;\n } else {\n path.replace(characterClass);\n }\n }\n};\n\nfunction shouldProcess(expression, charset) {\n if (!expression) {\n // Abort on empty disjunction part\n return false;\n }\n\n var type = expression.type;\n\n\n if (type === 'Disjunction') {\n var left = expression.left,\n right = expression.right;\n\n\n return shouldProcess(left, charset) && shouldProcess(right, charset);\n } else if (type === 'Char') {\n if (expression.kind === 'meta' && expression.symbol === '.') {\n return false;\n }\n\n var value = expression.value;\n\n\n charset.set(value, expression);\n\n return true;\n } else if (type === 'CharacterClass' && !expression.negative) {\n return expression.expressions.every(function (expression) {\n return shouldProcess(expression, charset);\n });\n }\n\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = new Map([\n// \\ud83d\\ude80 -> \\u{1f680}\n['charSurrogatePairToSingleUnicode', require('./char-surrogate-pair-to-single-unicode-transform')],\n\n// \\u0061 -> a\n['charCodeToSimpleChar', require('./char-code-to-simple-char-transform')],\n\n// /Aa/i -> /aa/i\n['charCaseInsensitiveLowerCaseTransform', require('./char-case-insensitive-lowercase-transform')],\n\n// [\\d\\d] -> [\\d]\n['charClassRemoveDuplicates', require('./char-class-remove-duplicates-transform')],\n\n// a{1,2}a{2,3} -> a{3,5}\n['quantifiersMerge', require('./quantifiers-merge-transform')],\n\n// a{1,} -> a+, a{3,3} -> a{3}, a{1} -> a\n['quantifierRangeToSymbol', require('./quantifier-range-to-symbol-transform')],\n\n// [a-a] -> [a], [a-b] -> [ab]\n['charClassClassrangesToChars', require('./char-class-classranges-to-chars-transform')],\n\n// [0-9] -> [\\d]\n['charClassToMeta', require('./char-class-to-meta-transform')],\n\n// [\\d] -> \\d, [^\\w] -> \\W\n['charClassToSingleChar', require('./char-class-to-single-char-transform')],\n\n// \\e -> e\n['charEscapeUnescape', require('./char-escape-unescape-transform')],\n\n// [a-de-f] -> [a-f]\n['charClassClassrangesMerge', require('./char-class-classranges-merge-transform')],\n\n// (ab|ab) -> (ab)\n['disjunctionRemoveDuplicates', require('./disjunction-remove-duplicates-transform')],\n\n// (a|b|c) -> [abc]\n['groupSingleCharsToCharClass', require('./group-single-chars-to-char-class')],\n\n// (?:)a -> a\n['removeEmptyGroup', require('./remove-empty-group-transform')],\n\n// (?:a) -> a\n['ungroup', require('./ungroup-transform')],\n\n// abcabcabc -> (?:abc){3}\n['combineRepeatingPatterns', require('./combine-repeating-patterns-transform')]]);","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace different range-based quantifiers\n * with their symbol equivalents.\n *\n * a{0,} -> a*\n * a{1,} -> a+\n * a{1} -> a\n *\n * NOTE: the following is automatically handled in the generator:\n *\n * a{3,3} -> a{3}\n */\n\nmodule.exports = {\n Quantifier: function Quantifier(path) {\n var node = path.node;\n\n\n if (node.kind !== 'Range') {\n return;\n }\n\n // a{0,} -> a*\n rewriteOpenZero(path);\n\n // a{1,} -> a+\n rewriteOpenOne(path);\n\n // a{1} -> a\n rewriteExactOne(path);\n }\n};\n\nfunction rewriteOpenZero(path) {\n var node = path.node;\n\n\n if (node.from !== 0 || node.to) {\n return;\n }\n\n node.kind = '*';\n delete node.from;\n}\n\nfunction rewriteOpenOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to) {\n return;\n }\n\n node.kind = '+';\n delete node.from;\n}\n\nfunction rewriteExactOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to !== 1) {\n return;\n }\n\n path.parentPath.replace(path.parentPath.node.expression);\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to merge quantifiers\n *\n * a+a+ -> a{2,}\n * a{2}a{3} -> a{5}\n * a{1,2}a{2,3} -> a{3,5}\n */\n\n\nmodule.exports = {\n Repetition: function Repetition(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (parent.type !== 'Alternative' || !path.index) {\n return;\n }\n\n var previousSibling = path.getPreviousSibling();\n\n if (!previousSibling) {\n return;\n }\n\n if (previousSibling.node.type === 'Repetition') {\n if (!previousSibling.getChild().hasEqualSource(path.getChild())) {\n return;\n }\n\n var _extractFromTo = extractFromTo(previousSibling.node.quantifier),\n previousSiblingFrom = _extractFromTo.from,\n previousSiblingTo = _extractFromTo.to;\n\n var _extractFromTo2 = extractFromTo(node.quantifier),\n nodeFrom = _extractFromTo2.from,\n nodeTo = _extractFromTo2.to;\n\n // It's does not seem reliable to merge quantifiers with different greediness\n // when none of both is a greedy open range\n\n\n if (previousSibling.node.quantifier.greedy !== node.quantifier.greedy && !isGreedyOpenRange(previousSibling.node.quantifier) && !isGreedyOpenRange(node.quantifier)) {\n return;\n }\n\n // a*a* -> a*\n // a*a+ -> a+\n // a+a+ -> a{2,}\n // a{2}a{4} -> a{6}\n // a{1,2}a{2,3} -> a{3,5}\n // a{1,}a{2,} -> a{3,}\n // a+a{2,} -> a{3,}\n\n // a??a{2,} -> a{2,}\n // a*?a{2,} -> a{2,}\n // a+?a{2,} -> a{3,}\n\n node.quantifier.kind = 'Range';\n node.quantifier.from = previousSiblingFrom + nodeFrom;\n if (previousSiblingTo && nodeTo) {\n node.quantifier.to = previousSiblingTo + nodeTo;\n } else {\n delete node.quantifier.to;\n }\n if (isGreedyOpenRange(previousSibling.node.quantifier) || isGreedyOpenRange(node.quantifier)) {\n node.quantifier.greedy = true;\n }\n\n previousSibling.remove();\n } else {\n if (!previousSibling.hasEqualSource(path.getChild())) {\n return;\n }\n\n increaseQuantifierByOne(node.quantifier);\n previousSibling.remove();\n }\n }\n};\n\nfunction isGreedyOpenRange(quantifier) {\n return quantifier.greedy && (quantifier.kind === '+' || quantifier.kind === '*' || quantifier.kind === 'Range' && !quantifier.to);\n}\n\nfunction extractFromTo(quantifier) {\n var from = void 0,\n to = void 0;\n if (quantifier.kind === '*') {\n from = 0;\n } else if (quantifier.kind === '+') {\n from = 1;\n } else if (quantifier.kind === '?') {\n from = 0;\n to = 1;\n } else {\n from = quantifier.from;\n if (quantifier.to) {\n to = quantifier.to;\n }\n }\n return { from: from, to: to };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove non-capturing empty groups.\n *\n * /(?:)a/ -> /a/\n * /a|(?:)/ -> /a|/\n */\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || childPath) {\n return;\n }\n\n if (parent.type === 'Repetition') {\n\n path.getParent().replace(node);\n } else if (parent.type !== 'RegExp') {\n\n path.remove();\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary groups.\n *\n * /(?:a)/ -> /a/\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || !childPath) {\n return;\n }\n\n // Don't optimize \\1(?:0) to \\10\n if (!hasAppropriateSiblings(path)) {\n return;\n }\n\n // Don't optimize /a(?:b|c)/ to /ab|c/\n // but /(?:b|c)/ to /b|c/ is ok\n if (childPath.node.type === 'Disjunction' && parent.type !== 'RegExp') {\n return;\n }\n\n // Don't optimize /(?:ab)+/ to /ab+/\n // but /(?:a)+/ to /a+/ is ok\n // and /(?:[a-d])+/ to /[a-d]+/ is ok too\n if (parent.type === 'Repetition' && childPath.node.type !== 'Char' && childPath.node.type !== 'CharacterClass') {\n return;\n }\n\n if (childPath.node.type === 'Alternative') {\n var parentPath = path.getParent();\n if (parentPath.node.type === 'Alternative') {\n // /abc(?:def)ghi/ When (?:def) is ungrouped its content must be merged with parent alternative\n\n parentPath.replace({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(parent.expressions.slice(0, path.index)), _toConsumableArray(childPath.node.expressions), _toConsumableArray(parent.expressions.slice(path.index + 1)))\n });\n }\n } else {\n path.replace(childPath.node);\n }\n }\n};\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1(?:0) to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2(?:0) to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}","/**\n * LR parser generated by the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * npm install -g syntax-cli\n *\n * syntax-cli --help\n *\n * To regenerate run:\n *\n * syntax-cli \\\n * --grammar ~/path-to-grammar-file \\\n * --mode <parsing-mode> \\\n * --output ~/path-to-output-parser-file.js\n */\n\n'use strict';\n\n/**\n * Matched token text.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar yytext = void 0;\n\n/**\n * Length of the matched token text.\n */\nvar yyleng = void 0;\n\n/**\n * Storage object.\n */\nvar yy = {};\n\n/**\n * Result of semantic action.\n */\nvar __ = void 0;\n\n/**\n * Result location object.\n */\nvar __loc = void 0;\n\nfunction yyloc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n // Epsilon doesn't produce location.\n if (!start || !end) {\n return start || end;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nvar EOF = '$';\n\n/**\n * List of productions (generated by Syntax tool).\n */\nvar productions = [[-1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [0, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n __ = Node({\n type: 'RegExp',\n body: _2,\n flags: checkFlags(_4)\n }, loc(_1loc, _4loc || _3loc));\n}], [1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [1, 0, function () {\n __loc = null;__ = '';\n}], [2, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [2, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1 + _2;\n}], [3, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n // Location for empty disjunction: /|/\n var _loc = null;\n\n if (_2loc) {\n _loc = loc(_1loc || _2loc, _3loc || _2loc);\n };\n\n __ = Node({\n type: 'Disjunction',\n left: _1,\n right: _3\n }, _loc);\n}], [5, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n if (_1.length === 0) {\n __ = null;\n return;\n }\n\n if (_1.length === 1) {\n __ = Node(_1[0], __loc);\n } else {\n __ = Node({\n type: 'Alternative',\n expressions: _1\n }, __loc);\n }\n}], [6, 0, function () {\n __loc = null;__ = [];\n}], [6, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1.concat(_2);\n}], [7, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Node(Object.assign({ type: 'Assertion' }, _1), __loc);\n}], [7, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n __ = _1;\n\n if (_2) {\n __ = Node({\n type: 'Repetition',\n expression: _1,\n quantifier: _2\n }, __loc);\n }\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '^' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '$' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\b' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\B' };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n negative: true,\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n negative: true,\n assertion: _2\n };\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1.slice(1), 'simple', __loc);__.escaped = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);__.isSurrogatePair = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = UnicodeProperty(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'control', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'hex', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'oct', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = GroupRefOrDecChar(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = NamedGroupRefOrChars(_1, _1loc);\n}], [11, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [11, 0], [12, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [12, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n _1.greedy = false;\n __ = _1;\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: getRange(_1)[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[1],\n greedy: true\n }, __loc);\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n var nameRaw = String(_1);\n var name = decodeUnicodeGroupName(nameRaw);\n if (!yy.options.allowGroupNameDuplicates && namedGroups.hasOwnProperty(name)) {\n throw new SyntaxError('Duplicate of the named group \"' + name + '\".');\n }\n\n namedGroups[name] = _1.groupNumber;\n\n __ = Node({\n type: 'Group',\n capturing: true,\n name: name,\n nameRaw: nameRaw,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: true,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [16, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: false,\n expression: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n negative: true,\n expressions: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n expressions: _2\n }, __loc);\n}], [18, 0, function () {\n __loc = null;__ = [];\n}], [18, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [19, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = [_1];\n}], [19, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [19, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [20, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [20, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [20, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}]];\n\n/**\n * Encoded tokens map.\n */\nvar tokens = { \"SLASH\": \"23\", \"CHAR\": \"24\", \"BAR\": \"25\", \"BOS\": \"26\", \"EOS\": \"27\", \"ESC_b\": \"28\", \"ESC_B\": \"29\", \"POS_LA_ASSERT\": \"30\", \"R_PAREN\": \"31\", \"NEG_LA_ASSERT\": \"32\", \"POS_LB_ASSERT\": \"33\", \"NEG_LB_ASSERT\": \"34\", \"ESC_CHAR\": \"35\", \"U_CODE_SURROGATE\": \"36\", \"U_CODE\": \"37\", \"U_PROP_VALUE_EXP\": \"38\", \"CTRL_CH\": \"39\", \"HEX_CODE\": \"40\", \"OCT_CODE\": \"41\", \"DEC_CODE\": \"42\", \"META_CHAR\": \"43\", \"ANY\": \"44\", \"NAMED_GROUP_REF\": \"45\", \"Q_MARK\": \"46\", \"STAR\": \"47\", \"PLUS\": \"48\", \"RANGE_EXACT\": \"49\", \"RANGE_OPEN\": \"50\", \"RANGE_CLOSED\": \"51\", \"NAMED_CAPTURE_GROUP\": \"52\", \"L_PAREN\": \"53\", \"NON_CAPTURE_GROUP\": \"54\", \"NEG_CLASS\": \"55\", \"R_BRACKET\": \"56\", \"L_BRACKET\": \"57\", \"DASH\": \"58\", \"$\": \"59\" };\n\n/**\n * Parsing table (generated by Syntax tool).\n */\nvar table = [{ \"0\": 1, \"23\": \"s2\" }, { \"59\": \"acc\" }, { \"3\": 3, \"4\": 4, \"5\": 5, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"s7\" }, { \"23\": \"r6\", \"25\": \"s12\" }, { \"23\": \"r7\", \"25\": \"r7\", \"31\": \"r7\" }, { \"7\": 14, \"8\": 15, \"9\": 16, \"10\": 25, \"14\": 27, \"15\": 42, \"16\": 43, \"17\": 26, \"23\": \"r9\", \"24\": \"s28\", \"25\": \"r9\", \"26\": \"s17\", \"27\": \"s18\", \"28\": \"s19\", \"29\": \"s20\", \"30\": \"s21\", \"31\": \"r9\", \"32\": \"s22\", \"33\": \"s23\", \"34\": \"s24\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"52\": \"s44\", \"53\": \"s45\", \"54\": \"s46\", \"55\": \"s40\", \"57\": \"s41\" }, { \"1\": 8, \"2\": 9, \"24\": \"s10\", \"59\": \"r3\" }, { \"59\": \"r1\" }, { \"24\": \"s11\", \"59\": \"r2\" }, { \"24\": \"r4\", \"59\": \"r4\" }, { \"24\": \"r5\", \"59\": \"r5\" }, { \"5\": 13, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r8\", \"25\": \"r8\", \"31\": \"r8\" }, { \"23\": \"r11\", \"24\": \"r11\", \"25\": \"r11\", \"26\": \"r11\", \"27\": \"r11\", \"28\": \"r11\", \"29\": \"r11\", \"30\": \"r11\", \"31\": \"r11\", \"32\": \"r11\", \"33\": \"r11\", \"34\": \"r11\", \"35\": \"r11\", \"36\": \"r11\", \"37\": \"r11\", \"38\": \"r11\", \"39\": \"r11\", \"40\": \"r11\", \"41\": \"r11\", \"42\": \"r11\", \"43\": \"r11\", \"44\": \"r11\", \"45\": \"r11\", \"52\": \"r11\", \"53\": \"r11\", \"54\": \"r11\", \"55\": \"r11\", \"57\": \"r11\" }, { \"23\": \"r12\", \"24\": \"r12\", \"25\": \"r12\", \"26\": \"r12\", \"27\": \"r12\", \"28\": \"r12\", \"29\": \"r12\", \"30\": \"r12\", \"31\": \"r12\", \"32\": \"r12\", \"33\": \"r12\", \"34\": \"r12\", \"35\": \"r12\", \"36\": \"r12\", \"37\": \"r12\", \"38\": \"r12\", \"39\": \"r12\", \"40\": \"r12\", \"41\": \"r12\", \"42\": \"r12\", \"43\": \"r12\", \"44\": \"r12\", \"45\": \"r12\", \"52\": \"r12\", \"53\": \"r12\", \"54\": \"r12\", \"55\": \"r12\", \"57\": \"r12\" }, { \"11\": 47, \"12\": 48, \"13\": 49, \"23\": \"r38\", \"24\": \"r38\", \"25\": \"r38\", \"26\": \"r38\", \"27\": \"r38\", \"28\": \"r38\", \"29\": \"r38\", \"30\": \"r38\", \"31\": \"r38\", \"32\": \"r38\", \"33\": \"r38\", \"34\": \"r38\", \"35\": \"r38\", \"36\": \"r38\", \"37\": \"r38\", \"38\": \"r38\", \"39\": \"r38\", \"40\": \"r38\", \"41\": \"r38\", \"42\": \"r38\", \"43\": \"r38\", \"44\": \"r38\", \"45\": \"r38\", \"46\": \"s52\", \"47\": \"s50\", \"48\": \"s51\", \"49\": \"s53\", \"50\": \"s54\", \"51\": \"s55\", \"52\": \"r38\", \"53\": \"r38\", \"54\": \"r38\", \"55\": \"r38\", \"57\": \"r38\" }, { \"23\": \"r14\", \"24\": \"r14\", \"25\": \"r14\", \"26\": \"r14\", \"27\": \"r14\", \"28\": \"r14\", \"29\": \"r14\", \"30\": \"r14\", \"31\": \"r14\", \"32\": \"r14\", \"33\": \"r14\", \"34\": \"r14\", \"35\": \"r14\", \"36\": \"r14\", \"37\": \"r14\", \"38\": \"r14\", \"39\": \"r14\", \"40\": \"r14\", \"41\": \"r14\", \"42\": \"r14\", \"43\": \"r14\", \"44\": \"r14\", \"45\": \"r14\", \"52\": \"r14\", \"53\": \"r14\", \"54\": \"r14\", \"55\": \"r14\", \"57\": \"r14\" }, { \"23\": \"r15\", \"24\": \"r15\", \"25\": \"r15\", \"26\": \"r15\", \"27\": \"r15\", \"28\": \"r15\", \"29\": \"r15\", \"30\": \"r15\", \"31\": \"r15\", \"32\": \"r15\", \"33\": \"r15\", \"34\": \"r15\", \"35\": \"r15\", \"36\": \"r15\", \"37\": \"r15\", \"38\": \"r15\", \"39\": \"r15\", \"40\": \"r15\", \"41\": \"r15\", \"42\": \"r15\", \"43\": \"r15\", \"44\": \"r15\", \"45\": \"r15\", \"52\": \"r15\", \"53\": \"r15\", \"54\": \"r15\", \"55\": \"r15\", \"57\": \"r15\" }, { \"23\": \"r16\", \"24\": \"r16\", \"25\": \"r16\", \"26\": \"r16\", \"27\": \"r16\", \"28\": \"r16\", \"29\": \"r16\", \"30\": \"r16\", \"31\": \"r16\", \"32\": \"r16\", \"33\": \"r16\", \"34\": \"r16\", \"35\": \"r16\", \"36\": \"r16\", \"37\": \"r16\", \"38\": \"r16\", \"39\": \"r16\", \"40\": \"r16\", \"41\": \"r16\", \"42\": \"r16\", \"43\": \"r16\", \"44\": \"r16\", \"45\": \"r16\", \"52\": \"r16\", \"53\": \"r16\", \"54\": \"r16\", \"55\": \"r16\", \"57\": \"r16\" }, { \"23\": \"r17\", \"24\": \"r17\", \"25\": \"r17\", \"26\": \"r17\", \"27\": \"r17\", \"28\": \"r17\", \"29\": \"r17\", \"30\": \"r17\", \"31\": \"r17\", \"32\": \"r17\", \"33\": \"r17\", \"34\": \"r17\", \"35\": \"r17\", \"36\": \"r17\", \"37\": \"r17\", \"38\": \"r17\", \"39\": \"r17\", \"40\": \"r17\", \"41\": \"r17\", \"42\": \"r17\", \"43\": \"r17\", \"44\": \"r17\", \"45\": \"r17\", \"52\": \"r17\", \"53\": \"r17\", \"54\": \"r17\", \"55\": \"r17\", \"57\": \"r17\" }, { \"4\": 57, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 59, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 61, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 63, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r22\", \"24\": \"r22\", \"25\": \"r22\", \"26\": \"r22\", \"27\": \"r22\", \"28\": \"r22\", \"29\": \"r22\", \"30\": \"r22\", \"31\": \"r22\", \"32\": \"r22\", \"33\": \"r22\", \"34\": \"r22\", \"35\": \"r22\", \"36\": \"r22\", \"37\": \"r22\", \"38\": \"r22\", \"39\": \"r22\", \"40\": \"r22\", \"41\": \"r22\", \"42\": \"r22\", \"43\": \"r22\", \"44\": \"r22\", \"45\": \"r22\", \"46\": \"r22\", \"47\": \"r22\", \"48\": \"r22\", \"49\": \"r22\", \"50\": \"r22\", \"51\": \"r22\", \"52\": \"r22\", \"53\": \"r22\", \"54\": \"r22\", \"55\": \"r22\", \"57\": \"r22\" }, { \"23\": \"r23\", \"24\": \"r23\", \"25\": \"r23\", \"26\": \"r23\", \"27\": \"r23\", \"28\": \"r23\", \"29\": \"r23\", \"30\": \"r23\", \"31\": \"r23\", \"32\": \"r23\", \"33\": \"r23\", \"34\": \"r23\", \"35\": \"r23\", \"36\": \"r23\", \"37\": \"r23\", \"38\": \"r23\", \"39\": \"r23\", \"40\": \"r23\", \"41\": \"r23\", \"42\": \"r23\", \"43\": \"r23\", \"44\": \"r23\", \"45\": \"r23\", \"46\": \"r23\", \"47\": \"r23\", \"48\": \"r23\", \"49\": \"r23\", \"50\": \"r23\", \"51\": \"r23\", \"52\": \"r23\", \"53\": \"r23\", \"54\": \"r23\", \"55\": \"r23\", \"57\": \"r23\" }, { \"23\": \"r24\", \"24\": \"r24\", \"25\": \"r24\", \"26\": \"r24\", \"27\": \"r24\", \"28\": \"r24\", \"29\": \"r24\", \"30\": \"r24\", \"31\": \"r24\", \"32\": \"r24\", \"33\": \"r24\", \"34\": \"r24\", \"35\": \"r24\", \"36\": \"r24\", \"37\": \"r24\", \"38\": \"r24\", \"39\": \"r24\", \"40\": \"r24\", \"41\": \"r24\", \"42\": \"r24\", \"43\": \"r24\", \"44\": \"r24\", \"45\": \"r24\", \"46\": \"r24\", \"47\": \"r24\", \"48\": \"r24\", \"49\": \"r24\", \"50\": \"r24\", \"51\": \"r24\", \"52\": \"r24\", \"53\": \"r24\", \"54\": \"r24\", \"55\": \"r24\", \"57\": \"r24\" }, { \"23\": \"r25\", \"24\": \"r25\", \"25\": \"r25\", \"26\": \"r25\", \"27\": \"r25\", \"28\": \"r25\", \"29\": \"r25\", \"30\": \"r25\", \"31\": \"r25\", \"32\": \"r25\", \"33\": \"r25\", \"34\": \"r25\", \"35\": \"r25\", \"36\": \"r25\", \"37\": \"r25\", \"38\": \"r25\", \"39\": \"r25\", \"40\": \"r25\", \"41\": \"r25\", \"42\": \"r25\", \"43\": \"r25\", \"44\": \"r25\", \"45\": \"r25\", \"46\": \"r25\", \"47\": \"r25\", \"48\": \"r25\", \"49\": \"r25\", \"50\": \"r25\", \"51\": \"r25\", \"52\": \"r25\", \"53\": \"r25\", \"54\": \"r25\", \"55\": \"r25\", \"56\": \"r25\", \"57\": \"r25\", \"58\": \"r25\" }, { \"23\": \"r26\", \"24\": \"r26\", \"25\": \"r26\", \"26\": \"r26\", \"27\": \"r26\", \"28\": \"r26\", \"29\": \"r26\", \"30\": \"r26\", \"31\": \"r26\", \"32\": \"r26\", \"33\": \"r26\", \"34\": \"r26\", \"35\": \"r26\", \"36\": \"r26\", \"37\": \"r26\", \"38\": \"r26\", \"39\": \"r26\", \"40\": \"r26\", \"41\": \"r26\", \"42\": \"r26\", \"43\": \"r26\", \"44\": \"r26\", \"45\": \"r26\", \"46\": \"r26\", \"47\": \"r26\", \"48\": \"r26\", \"49\": \"r26\", \"50\": \"r26\", \"51\": \"r26\", \"52\": \"r26\", \"53\": \"r26\", \"54\": \"r26\", \"55\": \"r26\", \"56\": \"r26\", \"57\": \"r26\", \"58\": \"r26\" }, { \"23\": \"r27\", \"24\": \"r27\", \"25\": \"r27\", \"26\": \"r27\", \"27\": \"r27\", \"28\": \"r27\", \"29\": \"r27\", \"30\": \"r27\", \"31\": \"r27\", \"32\": \"r27\", \"33\": \"r27\", \"34\": \"r27\", \"35\": \"r27\", \"36\": \"r27\", \"37\": \"r27\", \"38\": \"r27\", \"39\": \"r27\", \"40\": \"r27\", \"41\": \"r27\", \"42\": \"r27\", \"43\": \"r27\", \"44\": \"r27\", \"45\": \"r27\", \"46\": \"r27\", \"47\": \"r27\", \"48\": \"r27\", \"49\": \"r27\", \"50\": \"r27\", \"51\": \"r27\", \"52\": \"r27\", \"53\": \"r27\", \"54\": \"r27\", \"55\": \"r27\", \"56\": \"r27\", \"57\": \"r27\", \"58\": \"r27\" }, { \"23\": \"r28\", \"24\": \"r28\", \"25\": \"r28\", \"26\": \"r28\", \"27\": \"r28\", \"28\": \"r28\", \"29\": \"r28\", \"30\": \"r28\", \"31\": \"r28\", \"32\": \"r28\", \"33\": \"r28\", \"34\": \"r28\", \"35\": \"r28\", \"36\": \"r28\", \"37\": \"r28\", \"38\": \"r28\", \"39\": \"r28\", \"40\": \"r28\", \"41\": \"r28\", \"42\": \"r28\", \"43\": \"r28\", \"44\": \"r28\", \"45\": \"r28\", \"46\": \"r28\", \"47\": \"r28\", \"48\": \"r28\", \"49\": \"r28\", \"50\": \"r28\", \"51\": \"r28\", \"52\": \"r28\", \"53\": \"r28\", \"54\": \"r28\", \"55\": \"r28\", \"56\": \"r28\", \"57\": \"r28\", \"58\": \"r28\" }, { \"23\": \"r29\", \"24\": \"r29\", \"25\": \"r29\", \"26\": \"r29\", \"27\": \"r29\", \"28\": \"r29\", \"29\": \"r29\", \"30\": \"r29\", \"31\": \"r29\", \"32\": \"r29\", \"33\": \"r29\", \"34\": \"r29\", \"35\": \"r29\", \"36\": \"r29\", \"37\": \"r29\", \"38\": \"r29\", \"39\": \"r29\", \"40\": \"r29\", \"41\": \"r29\", \"42\": \"r29\", \"43\": \"r29\", \"44\": \"r29\", \"45\": \"r29\", \"46\": \"r29\", \"47\": \"r29\", \"48\": \"r29\", \"49\": \"r29\", \"50\": \"r29\", \"51\": \"r29\", \"52\": \"r29\", \"53\": \"r29\", \"54\": \"r29\", \"55\": \"r29\", \"56\": \"r29\", \"57\": \"r29\", \"58\": \"r29\" }, { \"23\": \"r30\", \"24\": \"r30\", \"25\": \"r30\", \"26\": \"r30\", \"27\": \"r30\", \"28\": \"r30\", \"29\": \"r30\", \"30\": \"r30\", \"31\": \"r30\", \"32\": \"r30\", \"33\": \"r30\", \"34\": \"r30\", \"35\": \"r30\", \"36\": \"r30\", \"37\": \"r30\", \"38\": \"r30\", \"39\": \"r30\", \"40\": \"r30\", \"41\": \"r30\", \"42\": \"r30\", \"43\": \"r30\", \"44\": \"r30\", \"45\": \"r30\", \"46\": \"r30\", \"47\": \"r30\", \"48\": \"r30\", \"49\": \"r30\", \"50\": \"r30\", \"51\": \"r30\", \"52\": \"r30\", \"53\": \"r30\", \"54\": \"r30\", \"55\": \"r30\", \"56\": \"r30\", \"57\": \"r30\", \"58\": \"r30\" }, { \"23\": \"r31\", \"24\": \"r31\", \"25\": \"r31\", \"26\": \"r31\", \"27\": \"r31\", \"28\": \"r31\", \"29\": \"r31\", \"30\": \"r31\", \"31\": \"r31\", \"32\": \"r31\", \"33\": \"r31\", \"34\": \"r31\", \"35\": \"r31\", \"36\": \"r31\", \"37\": \"r31\", \"38\": \"r31\", \"39\": \"r31\", \"40\": \"r31\", \"41\": \"r31\", \"42\": \"r31\", \"43\": \"r31\", \"44\": \"r31\", \"45\": \"r31\", \"46\": \"r31\", \"47\": \"r31\", \"48\": \"r31\", \"49\": \"r31\", \"50\": \"r31\", \"51\": \"r31\", \"52\": \"r31\", \"53\": \"r31\", \"54\": \"r31\", \"55\": \"r31\", \"56\": \"r31\", \"57\": \"r31\", \"58\": \"r31\" }, { \"23\": \"r32\", \"24\": \"r32\", \"25\": \"r32\", \"26\": \"r32\", \"27\": \"r32\", \"28\": \"r32\", \"29\": \"r32\", \"30\": \"r32\", \"31\": \"r32\", \"32\": \"r32\", \"33\": \"r32\", \"34\": \"r32\", \"35\": \"r32\", \"36\": \"r32\", \"37\": \"r32\", \"38\": \"r32\", \"39\": \"r32\", \"40\": \"r32\", \"41\": \"r32\", \"42\": \"r32\", \"43\": \"r32\", \"44\": \"r32\", \"45\": \"r32\", \"46\": \"r32\", \"47\": \"r32\", \"48\": \"r32\", \"49\": \"r32\", \"50\": \"r32\", \"51\": \"r32\", \"52\": \"r32\", \"53\": \"r32\", \"54\": \"r32\", \"55\": \"r32\", \"56\": \"r32\", \"57\": \"r32\", \"58\": \"r32\" }, { \"23\": \"r33\", \"24\": \"r33\", \"25\": \"r33\", \"26\": \"r33\", \"27\": \"r33\", \"28\": \"r33\", \"29\": \"r33\", \"30\": \"r33\", \"31\": \"r33\", \"32\": \"r33\", \"33\": \"r33\", \"34\": \"r33\", \"35\": \"r33\", \"36\": \"r33\", \"37\": \"r33\", \"38\": \"r33\", \"39\": \"r33\", \"40\": \"r33\", \"41\": \"r33\", \"42\": \"r33\", \"43\": \"r33\", \"44\": \"r33\", \"45\": \"r33\", \"46\": \"r33\", \"47\": \"r33\", \"48\": \"r33\", \"49\": \"r33\", \"50\": \"r33\", \"51\": \"r33\", \"52\": \"r33\", \"53\": \"r33\", \"54\": \"r33\", \"55\": \"r33\", \"56\": \"r33\", \"57\": \"r33\", \"58\": \"r33\" }, { \"23\": \"r34\", \"24\": \"r34\", \"25\": \"r34\", \"26\": \"r34\", \"27\": \"r34\", \"28\": \"r34\", \"29\": \"r34\", \"30\": \"r34\", \"31\": \"r34\", \"32\": \"r34\", \"33\": \"r34\", \"34\": \"r34\", \"35\": \"r34\", \"36\": \"r34\", \"37\": \"r34\", \"38\": \"r34\", \"39\": \"r34\", \"40\": \"r34\", \"41\": \"r34\", \"42\": \"r34\", \"43\": \"r34\", \"44\": \"r34\", \"45\": \"r34\", \"46\": \"r34\", \"47\": \"r34\", \"48\": \"r34\", \"49\": \"r34\", \"50\": \"r34\", \"51\": \"r34\", \"52\": \"r34\", \"53\": \"r34\", \"54\": \"r34\", \"55\": \"r34\", \"56\": \"r34\", \"57\": \"r34\", \"58\": \"r34\" }, { \"23\": \"r35\", \"24\": \"r35\", \"25\": \"r35\", \"26\": \"r35\", \"27\": \"r35\", \"28\": \"r35\", \"29\": \"r35\", \"30\": \"r35\", \"31\": \"r35\", \"32\": \"r35\", \"33\": \"r35\", \"34\": \"r35\", \"35\": \"r35\", \"36\": \"r35\", \"37\": \"r35\", \"38\": \"r35\", \"39\": \"r35\", \"40\": \"r35\", \"41\": \"r35\", \"42\": \"r35\", \"43\": \"r35\", \"44\": \"r35\", \"45\": \"r35\", \"46\": \"r35\", \"47\": \"r35\", \"48\": \"r35\", \"49\": \"r35\", \"50\": \"r35\", \"51\": \"r35\", \"52\": \"r35\", \"53\": \"r35\", \"54\": \"r35\", \"55\": \"r35\", \"56\": \"r35\", \"57\": \"r35\", \"58\": \"r35\" }, { \"23\": \"r36\", \"24\": \"r36\", \"25\": \"r36\", \"26\": \"r36\", \"27\": \"r36\", \"28\": \"r36\", \"29\": \"r36\", \"30\": \"r36\", \"31\": \"r36\", \"32\": \"r36\", \"33\": \"r36\", \"34\": \"r36\", \"35\": \"r36\", \"36\": \"r36\", \"37\": \"r36\", \"38\": \"r36\", \"39\": \"r36\", \"40\": \"r36\", \"41\": \"r36\", \"42\": \"r36\", \"43\": \"r36\", \"44\": \"r36\", \"45\": \"r36\", \"46\": \"r36\", \"47\": \"r36\", \"48\": \"r36\", \"49\": \"r36\", \"50\": \"r36\", \"51\": \"r36\", \"52\": \"r36\", \"53\": \"r36\", \"54\": \"r36\", \"55\": \"r36\", \"56\": \"r36\", \"57\": \"r36\", \"58\": \"r36\" }, { \"10\": 70, \"18\": 65, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 83, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"23\": \"r47\", \"24\": \"r47\", \"25\": \"r47\", \"26\": \"r47\", \"27\": \"r47\", \"28\": \"r47\", \"29\": \"r47\", \"30\": \"r47\", \"31\": \"r47\", \"32\": \"r47\", \"33\": \"r47\", \"34\": \"r47\", \"35\": \"r47\", \"36\": \"r47\", \"37\": \"r47\", \"38\": \"r47\", \"39\": \"r47\", \"40\": \"r47\", \"41\": \"r47\", \"42\": \"r47\", \"43\": \"r47\", \"44\": \"r47\", \"45\": \"r47\", \"46\": \"r47\", \"47\": \"r47\", \"48\": \"r47\", \"49\": \"r47\", \"50\": \"r47\", \"51\": \"r47\", \"52\": \"r47\", \"53\": \"r47\", \"54\": \"r47\", \"55\": \"r47\", \"57\": \"r47\" }, { \"23\": \"r48\", \"24\": \"r48\", \"25\": \"r48\", \"26\": \"r48\", \"27\": \"r48\", \"28\": \"r48\", \"29\": \"r48\", \"30\": \"r48\", \"31\": \"r48\", \"32\": \"r48\", \"33\": \"r48\", \"34\": \"r48\", \"35\": \"r48\", \"36\": \"r48\", \"37\": \"r48\", \"38\": \"r48\", \"39\": \"r48\", \"40\": \"r48\", \"41\": \"r48\", \"42\": \"r48\", \"43\": \"r48\", \"44\": \"r48\", \"45\": \"r48\", \"46\": \"r48\", \"47\": \"r48\", \"48\": \"r48\", \"49\": \"r48\", \"50\": \"r48\", \"51\": \"r48\", \"52\": \"r48\", \"53\": \"r48\", \"54\": \"r48\", \"55\": \"r48\", \"57\": \"r48\" }, { \"4\": 85, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 87, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 89, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r13\", \"24\": \"r13\", \"25\": \"r13\", \"26\": \"r13\", \"27\": \"r13\", \"28\": \"r13\", \"29\": \"r13\", \"30\": \"r13\", \"31\": \"r13\", \"32\": \"r13\", \"33\": \"r13\", \"34\": \"r13\", \"35\": \"r13\", \"36\": \"r13\", \"37\": \"r13\", \"38\": \"r13\", \"39\": \"r13\", \"40\": \"r13\", \"41\": \"r13\", \"42\": \"r13\", \"43\": \"r13\", \"44\": \"r13\", \"45\": \"r13\", \"52\": \"r13\", \"53\": \"r13\", \"54\": \"r13\", \"55\": \"r13\", \"57\": \"r13\" }, { \"23\": \"r37\", \"24\": \"r37\", \"25\": \"r37\", \"26\": \"r37\", \"27\": \"r37\", \"28\": \"r37\", \"29\": \"r37\", \"30\": \"r37\", \"31\": \"r37\", \"32\": \"r37\", \"33\": \"r37\", \"34\": \"r37\", \"35\": \"r37\", \"36\": \"r37\", \"37\": \"r37\", \"38\": \"r37\", \"39\": \"r37\", \"40\": \"r37\", \"41\": \"r37\", \"42\": \"r37\", \"43\": \"r37\", \"44\": \"r37\", \"45\": \"r37\", \"52\": \"r37\", \"53\": \"r37\", \"54\": \"r37\", \"55\": \"r37\", \"57\": \"r37\" }, { \"23\": \"r39\", \"24\": \"r39\", \"25\": \"r39\", \"26\": \"r39\", \"27\": \"r39\", \"28\": \"r39\", \"29\": \"r39\", \"30\": \"r39\", \"31\": \"r39\", \"32\": \"r39\", \"33\": \"r39\", \"34\": \"r39\", \"35\": \"r39\", \"36\": \"r39\", \"37\": \"r39\", \"38\": \"r39\", \"39\": \"r39\", \"40\": \"r39\", \"41\": \"r39\", \"42\": \"r39\", \"43\": \"r39\", \"44\": \"r39\", \"45\": \"r39\", \"46\": \"s56\", \"52\": \"r39\", \"53\": \"r39\", \"54\": \"r39\", \"55\": \"r39\", \"57\": \"r39\" }, { \"23\": \"r41\", \"24\": \"r41\", \"25\": \"r41\", \"26\": \"r41\", \"27\": \"r41\", \"28\": \"r41\", \"29\": \"r41\", \"30\": \"r41\", \"31\": \"r41\", \"32\": \"r41\", \"33\": \"r41\", \"34\": \"r41\", \"35\": \"r41\", \"36\": \"r41\", \"37\": \"r41\", \"38\": \"r41\", \"39\": \"r41\", \"40\": \"r41\", \"41\": \"r41\", \"42\": \"r41\", \"43\": \"r41\", \"44\": \"r41\", \"45\": \"r41\", \"46\": \"r41\", \"52\": \"r41\", \"53\": \"r41\", \"54\": \"r41\", \"55\": \"r41\", \"57\": \"r41\" }, { \"23\": \"r42\", \"24\": \"r42\", \"25\": \"r42\", \"26\": \"r42\", \"27\": \"r42\", \"28\": \"r42\", \"29\": \"r42\", \"30\": \"r42\", \"31\": \"r42\", \"32\": \"r42\", \"33\": \"r42\", \"34\": \"r42\", \"35\": \"r42\", \"36\": \"r42\", \"37\": \"r42\", \"38\": \"r42\", \"39\": \"r42\", \"40\": \"r42\", \"41\": \"r42\", \"42\": \"r42\", \"43\": \"r42\", \"44\": \"r42\", \"45\": \"r42\", \"46\": \"r42\", \"52\": \"r42\", \"53\": \"r42\", \"54\": \"r42\", \"55\": \"r42\", \"57\": \"r42\" }, { \"23\": \"r43\", \"24\": \"r43\", \"25\": \"r43\", \"26\": \"r43\", \"27\": \"r43\", \"28\": \"r43\", \"29\": \"r43\", \"30\": \"r43\", \"31\": \"r43\", \"32\": \"r43\", \"33\": \"r43\", \"34\": \"r43\", \"35\": \"r43\", \"36\": \"r43\", \"37\": \"r43\", \"38\": \"r43\", \"39\": \"r43\", \"40\": \"r43\", \"41\": \"r43\", \"42\": \"r43\", \"43\": \"r43\", \"44\": \"r43\", \"45\": \"r43\", \"46\": \"r43\", \"52\": \"r43\", \"53\": \"r43\", \"54\": \"r43\", \"55\": \"r43\", \"57\": \"r43\" }, { \"23\": \"r44\", \"24\": \"r44\", \"25\": \"r44\", \"26\": \"r44\", \"27\": \"r44\", \"28\": \"r44\", \"29\": \"r44\", \"30\": \"r44\", \"31\": \"r44\", \"32\": \"r44\", \"33\": \"r44\", \"34\": \"r44\", \"35\": \"r44\", \"36\": \"r44\", \"37\": \"r44\", \"38\": \"r44\", \"39\": \"r44\", \"40\": \"r44\", \"41\": \"r44\", \"42\": \"r44\", \"43\": \"r44\", \"44\": \"r44\", \"45\": \"r44\", \"46\": \"r44\", \"52\": \"r44\", \"53\": \"r44\", \"54\": \"r44\", \"55\": \"r44\", \"57\": \"r44\" }, { \"23\": \"r45\", \"24\": \"r45\", \"25\": \"r45\", \"26\": \"r45\", \"27\": \"r45\", \"28\": \"r45\", \"29\": \"r45\", \"30\": \"r45\", \"31\": \"r45\", \"32\": \"r45\", \"33\": \"r45\", \"34\": \"r45\", \"35\": \"r45\", \"36\": \"r45\", \"37\": \"r45\", \"38\": \"r45\", \"39\": \"r45\", \"40\": \"r45\", \"41\": \"r45\", \"42\": \"r45\", \"43\": \"r45\", \"44\": \"r45\", \"45\": \"r45\", \"46\": \"r45\", \"52\": \"r45\", \"53\": \"r45\", \"54\": \"r45\", \"55\": \"r45\", \"57\": \"r45\" }, { \"23\": \"r46\", \"24\": \"r46\", \"25\": \"r46\", \"26\": \"r46\", \"27\": \"r46\", \"28\": \"r46\", \"29\": \"r46\", \"30\": \"r46\", \"31\": \"r46\", \"32\": \"r46\", \"33\": \"r46\", \"34\": \"r46\", \"35\": \"r46\", \"36\": \"r46\", \"37\": \"r46\", \"38\": \"r46\", \"39\": \"r46\", \"40\": \"r46\", \"41\": \"r46\", \"42\": \"r46\", \"43\": \"r46\", \"44\": \"r46\", \"45\": \"r46\", \"46\": \"r46\", \"52\": \"r46\", \"53\": \"r46\", \"54\": \"r46\", \"55\": \"r46\", \"57\": \"r46\" }, { \"23\": \"r40\", \"24\": \"r40\", \"25\": \"r40\", \"26\": \"r40\", \"27\": \"r40\", \"28\": \"r40\", \"29\": \"r40\", \"30\": \"r40\", \"31\": \"r40\", \"32\": \"r40\", \"33\": \"r40\", \"34\": \"r40\", \"35\": \"r40\", \"36\": \"r40\", \"37\": \"r40\", \"38\": \"r40\", \"39\": \"r40\", \"40\": \"r40\", \"41\": \"r40\", \"42\": \"r40\", \"43\": \"r40\", \"44\": \"r40\", \"45\": \"r40\", \"52\": \"r40\", \"53\": \"r40\", \"54\": \"r40\", \"55\": \"r40\", \"57\": \"r40\" }, { \"25\": \"s12\", \"31\": \"s58\" }, { \"23\": \"r18\", \"24\": \"r18\", \"25\": \"r18\", \"26\": \"r18\", \"27\": \"r18\", \"28\": \"r18\", \"29\": \"r18\", \"30\": \"r18\", \"31\": \"r18\", \"32\": \"r18\", \"33\": \"r18\", \"34\": \"r18\", \"35\": \"r18\", \"36\": \"r18\", \"37\": \"r18\", \"38\": \"r18\", \"39\": \"r18\", \"40\": \"r18\", \"41\": \"r18\", \"42\": \"r18\", \"43\": \"r18\", \"44\": \"r18\", \"45\": \"r18\", \"52\": \"r18\", \"53\": \"r18\", \"54\": \"r18\", \"55\": \"r18\", \"57\": \"r18\" }, { \"25\": \"s12\", \"31\": \"s60\" }, { \"23\": \"r19\", \"24\": \"r19\", \"25\": \"r19\", \"26\": \"r19\", \"27\": \"r19\", \"28\": \"r19\", \"29\": \"r19\", \"30\": \"r19\", \"31\": \"r19\", \"32\": \"r19\", \"33\": \"r19\", \"34\": \"r19\", \"35\": \"r19\", \"36\": \"r19\", \"37\": \"r19\", \"38\": \"r19\", \"39\": \"r19\", \"40\": \"r19\", \"41\": \"r19\", \"42\": \"r19\", \"43\": \"r19\", \"44\": \"r19\", \"45\": \"r19\", \"52\": \"r19\", \"53\": \"r19\", \"54\": \"r19\", \"55\": \"r19\", \"57\": \"r19\" }, { \"25\": \"s12\", \"31\": \"s62\" }, { \"23\": \"r20\", \"24\": \"r20\", \"25\": \"r20\", \"26\": \"r20\", \"27\": \"r20\", \"28\": \"r20\", \"29\": \"r20\", \"30\": \"r20\", \"31\": \"r20\", \"32\": \"r20\", \"33\": \"r20\", \"34\": \"r20\", \"35\": \"r20\", \"36\": \"r20\", \"37\": \"r20\", \"38\": \"r20\", \"39\": \"r20\", \"40\": \"r20\", \"41\": \"r20\", \"42\": \"r20\", \"43\": \"r20\", \"44\": \"r20\", \"45\": \"r20\", \"52\": \"r20\", \"53\": \"r20\", \"54\": \"r20\", \"55\": \"r20\", \"57\": \"r20\" }, { \"25\": \"s12\", \"31\": \"s64\" }, { \"23\": \"r21\", \"24\": \"r21\", \"25\": \"r21\", \"26\": \"r21\", \"27\": \"r21\", \"28\": \"r21\", \"29\": \"r21\", \"30\": \"r21\", \"31\": \"r21\", \"32\": \"r21\", \"33\": \"r21\", \"34\": \"r21\", \"35\": \"r21\", \"36\": \"r21\", \"37\": \"r21\", \"38\": \"r21\", \"39\": \"r21\", \"40\": \"r21\", \"41\": \"r21\", \"42\": \"r21\", \"43\": \"r21\", \"44\": \"r21\", \"45\": \"r21\", \"52\": \"r21\", \"53\": \"r21\", \"54\": \"r21\", \"55\": \"r21\", \"57\": \"r21\" }, { \"56\": \"s72\" }, { \"56\": \"r55\" }, { \"10\": 70, \"20\": 73, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r56\", \"58\": \"s74\" }, { \"24\": \"r62\", \"28\": \"r62\", \"35\": \"r62\", \"36\": \"r62\", \"37\": \"r62\", \"38\": \"r62\", \"39\": \"r62\", \"40\": \"r62\", \"41\": \"r62\", \"42\": \"r62\", \"43\": \"r62\", \"44\": \"r62\", \"45\": \"r62\", \"56\": \"r62\", \"58\": \"r62\" }, { \"24\": \"r63\", \"28\": \"r63\", \"35\": \"r63\", \"36\": \"r63\", \"37\": \"r63\", \"38\": \"r63\", \"39\": \"r63\", \"40\": \"r63\", \"41\": \"r63\", \"42\": \"r63\", \"43\": \"r63\", \"44\": \"r63\", \"45\": \"r63\", \"56\": \"r63\", \"58\": \"r63\" }, { \"24\": \"r64\", \"28\": \"r64\", \"35\": \"r64\", \"36\": \"r64\", \"37\": \"r64\", \"38\": \"r64\", \"39\": \"r64\", \"40\": \"r64\", \"41\": \"r64\", \"42\": \"r64\", \"43\": \"r64\", \"44\": \"r64\", \"45\": \"r64\", \"56\": \"r64\", \"58\": \"r64\" }, { \"24\": \"r65\", \"28\": \"r65\", \"35\": \"r65\", \"36\": \"r65\", \"37\": \"r65\", \"38\": \"r65\", \"39\": \"r65\", \"40\": \"r65\", \"41\": \"r65\", \"42\": \"r65\", \"43\": \"r65\", \"44\": \"r65\", \"45\": \"r65\", \"56\": \"r65\", \"58\": \"r65\" }, { \"23\": \"r52\", \"24\": \"r52\", \"25\": \"r52\", \"26\": \"r52\", \"27\": \"r52\", \"28\": \"r52\", \"29\": \"r52\", \"30\": \"r52\", \"31\": \"r52\", \"32\": \"r52\", \"33\": \"r52\", \"34\": \"r52\", \"35\": \"r52\", \"36\": \"r52\", \"37\": \"r52\", \"38\": \"r52\", \"39\": \"r52\", \"40\": \"r52\", \"41\": \"r52\", \"42\": \"r52\", \"43\": \"r52\", \"44\": \"r52\", \"45\": \"r52\", \"46\": \"r52\", \"47\": \"r52\", \"48\": \"r52\", \"49\": \"r52\", \"50\": \"r52\", \"51\": \"r52\", \"52\": \"r52\", \"53\": \"r52\", \"54\": \"r52\", \"55\": \"r52\", \"57\": \"r52\" }, { \"56\": \"r57\" }, { \"10\": 70, \"21\": 77, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"56\": \"r59\" }, { \"10\": 70, \"20\": 79, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r63\", \"58\": \"s80\" }, { \"10\": 70, \"18\": 78, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r58\" }, { \"56\": \"r60\" }, { \"10\": 70, \"21\": 81, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 82, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r61\" }, { \"56\": \"s84\" }, { \"23\": \"r53\", \"24\": \"r53\", \"25\": \"r53\", \"26\": \"r53\", \"27\": \"r53\", \"28\": \"r53\", \"29\": \"r53\", \"30\": \"r53\", \"31\": \"r53\", \"32\": \"r53\", \"33\": \"r53\", \"34\": \"r53\", \"35\": \"r53\", \"36\": \"r53\", \"37\": \"r53\", \"38\": \"r53\", \"39\": \"r53\", \"40\": \"r53\", \"41\": \"r53\", \"42\": \"r53\", \"43\": \"r53\", \"44\": \"r53\", \"45\": \"r53\", \"46\": \"r53\", \"47\": \"r53\", \"48\": \"r53\", \"49\": \"r53\", \"50\": \"r53\", \"51\": \"r53\", \"52\": \"r53\", \"53\": \"r53\", \"54\": \"r53\", \"55\": \"r53\", \"57\": \"r53\" }, { \"25\": \"s12\", \"31\": \"s86\" }, { \"23\": \"r49\", \"24\": \"r49\", \"25\": \"r49\", \"26\": \"r49\", \"27\": \"r49\", \"28\": \"r49\", \"29\": \"r49\", \"30\": \"r49\", \"31\": \"r49\", \"32\": \"r49\", \"33\": \"r49\", \"34\": \"r49\", \"35\": \"r49\", \"36\": \"r49\", \"37\": \"r49\", \"38\": \"r49\", \"39\": \"r49\", \"40\": \"r49\", \"41\": \"r49\", \"42\": \"r49\", \"43\": \"r49\", \"44\": \"r49\", \"45\": \"r49\", \"46\": \"r49\", \"47\": \"r49\", \"48\": \"r49\", \"49\": \"r49\", \"50\": \"r49\", \"51\": \"r49\", \"52\": \"r49\", \"53\": \"r49\", \"54\": \"r49\", \"55\": \"r49\", \"57\": \"r49\" }, { \"25\": \"s12\", \"31\": \"s88\" }, { \"23\": \"r50\", \"24\": \"r50\", \"25\": \"r50\", \"26\": \"r50\", \"27\": \"r50\", \"28\": \"r50\", \"29\": \"r50\", \"30\": \"r50\", \"31\": \"r50\", \"32\": \"r50\", \"33\": \"r50\", \"34\": \"r50\", \"35\": \"r50\", \"36\": \"r50\", \"37\": \"r50\", \"38\": \"r50\", \"39\": \"r50\", \"40\": \"r50\", \"41\": \"r50\", \"42\": \"r50\", \"43\": \"r50\", \"44\": \"r50\", \"45\": \"r50\", \"46\": \"r50\", \"47\": \"r50\", \"48\": \"r50\", \"49\": \"r50\", \"50\": \"r50\", \"51\": \"r50\", \"52\": \"r50\", \"53\": \"r50\", \"54\": \"r50\", \"55\": \"r50\", \"57\": \"r50\" }, { \"25\": \"s12\", \"31\": \"s90\" }, { \"23\": \"r51\", \"24\": \"r51\", \"25\": \"r51\", \"26\": \"r51\", \"27\": \"r51\", \"28\": \"r51\", \"29\": \"r51\", \"30\": \"r51\", \"31\": \"r51\", \"32\": \"r51\", \"33\": \"r51\", \"34\": \"r51\", \"35\": \"r51\", \"36\": \"r51\", \"37\": \"r51\", \"38\": \"r51\", \"39\": \"r51\", \"40\": \"r51\", \"41\": \"r51\", \"42\": \"r51\", \"43\": \"r51\", \"44\": \"r51\", \"45\": \"r51\", \"46\": \"r51\", \"47\": \"r51\", \"48\": \"r51\", \"49\": \"r51\", \"50\": \"r51\", \"51\": \"r51\", \"52\": \"r51\", \"53\": \"r51\", \"54\": \"r51\", \"55\": \"r51\", \"57\": \"r51\" }];\n\n/**\n * Parsing stack.\n */\nvar stack = [];\n\n/**\n * Tokenizer instance.\n */\nvar tokenizer = void 0;\n/**\n * Generic tokenizer used by the parser in the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * See `--custom-tokinzer` to skip this generation, and use a custom one.\n */\n\nvar lexRules = [[/^#[^\\n]+/, function () {/* skip comments */}], [/^\\s+/, function () {/* skip whitespace */}], [/^-/, function () {\n return 'DASH';\n}], [/^\\//, function () {\n return 'CHAR';\n}], [/^#/, function () {\n return 'CHAR';\n}], [/^\\|/, function () {\n return 'CHAR';\n}], [/^\\./, function () {\n return 'CHAR';\n}], [/^\\{/, function () {\n return 'CHAR';\n}], [/^\\{\\d+\\}/, function () {\n return 'RANGE_EXACT';\n}], [/^\\{\\d+,\\}/, function () {\n return 'RANGE_OPEN';\n}], [/^\\{\\d+,\\d+\\}/, function () {\n return 'RANGE_CLOSED';\n}], [/^\\\\k<(([\\u0041-\\u005a\\u0061-\\u007a\\u00aa\\u00b5\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e-\\u066f\\u0671-\\u06d3\\u06d5\\u06e5-\\u06e6\\u06ee-\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4-\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc-\\u09dd\\u09df-\\u09e1\\u09f0-\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0-\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c-\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60-\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0-\\u0ce1\\u0cf1-\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2-\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065-\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\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\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae-\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5-\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\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\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\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\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a-\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd-\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5-\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\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]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\ude80-\\ude9c\\udea0-\\uded0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf75\\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\\ude10-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd23\\udf00-\\udf1c\\udf27\\udf30-\\udf45\\udfe0-\\udff6]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd44\\udd50-\\udd72\\udd76\\udd83-\\uddb2\\uddc1-\\uddc4\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude2b\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udede\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3d\\udf50\\udf5d-\\udf61]|\\ud805[\\udc00-\\udc34\\udc47-\\udc4a\\udc5f\\udc80-\\udcaf\\udcc4-\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udeb8\\udf00-\\udf1a]|\\ud806[\\udc00-\\udc2b\\udca0-\\udcdf\\udcff\\udda0-\\udda7\\uddaa-\\uddd0\\udde1\\udde3\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude89\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd30\\udd46\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd89\\udd98\\udee0-\\udef2]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf50\\udf93-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99]|\\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[\\udd00-\\udd2c\\udd37-\\udd3d\\udd4e\\udec0-\\udeeb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd4b]|\\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]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\}))(([\\u0030-\\u0039\\u0041-\\u005a\\u005f\\u0061-\\u007a\\u00aa\\u00b5\\u00b7\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0300-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u0483-\\u0487\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u07fd\\u0800-\\u082d\\u0840-\\u085b\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u08d3-\\u08e1\\u08e3-\\u0963\\u0966-\\u096f\\u0971-\\u0983\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bc-\\u09c4\\u09c7-\\u09c8\\u09cb-\\u09ce\\u09d7\\u09dc-\\u09dd\\u09df-\\u09e3\\u09e6-\\u09f1\\u09fc\\u09fe\\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\\u0a81-\\u0a83\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abc-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ad0\\u0ae0-\\u0ae3\\u0ae6-\\u0aef\\u0af9-\\u0aff\\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-\\u0b6f\\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-\\u0bcd\\u0bd0\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\\u0c58-\\u0c5a\\u0c60-\\u0c63\\u0c66-\\u0c6f\\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\\u0d00-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d54-\\u0d57\\u0d5f-\\u0d63\\u0d66-\\u0d6f\\u0d7a-\\u0d7f\\u0d82-\\u0d83\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2-\\u0df3\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u0e50-\\u0e59\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0edc-\\u0edf\\u0f00\\u0f18-\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f47\\u0f49-\\u0f6c\\u0f71-\\u0f84\\u0f86-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1049\\u1050-\\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\\u135d-\\u135f\\u1369-\\u1371\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176c\\u176e-\\u1770\\u1772-\\u1773\\u1780-\\u17d3\\u17d7\\u17dc-\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u19d0-\\u19da\\u1a00-\\u1a1b\\u1a20-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1aa7\\u1ab0-\\u1abd\\u1b00-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1bf3\\u1c00-\\u1c37\\u1c40-\\u1c49\\u1c4d-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1cd0-\\u1cd2\\u1cd4-\\u1cfa\\u1d00-\\u1df9\\u1dfb-\\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\\u203f-\\u2040\\u2054\\u2071\\u207f\\u2090-\\u209c\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d7f-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2de0-\\u2dff\\u3005-\\u3007\\u3021-\\u302f\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua8fd-\\ua92d\\ua930-\\ua953\\ua960-\\ua97c\\ua980-\\ua9c0\\ua9cf-\\ua9d9\\ua9e0-\\ua9fe\\uaa00-\\uaa36\\uaa40-\\uaa4d\\uaa50-\\uaa59\\uaa60-\\uaa76\\uaa7a-\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaef\\uaaf2-\\uaaf6\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabea\\uabec-\\uabed\\uabf0-\\uabf9\\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\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33-\\ufe34\\ufe4d-\\ufe4f\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff10-\\uff19\\uff21-\\uff3a\\uff3f\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\uddfd\\ude80-\\ude9c\\udea0-\\uded0\\udee0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udca0-\\udca9\\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-\\ude35\\ude38-\\ude3a\\ude3f\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee6\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd27\\udd30-\\udd39\\udf00-\\udf1c\\udf27\\udf30-\\udf50\\udfe0-\\udff6]|\\ud804[\\udc00-\\udc46\\udc66-\\udc6f\\udc7f-\\udcba\\udcd0-\\udce8\\udcf0-\\udcf9\\udd00-\\udd34\\udd36-\\udd3f\\udd44-\\udd46\\udd50-\\udd73\\udd76\\udd80-\\uddc4\\uddc9-\\uddcc\\uddd0-\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude37\\ude3e\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udeea\\udef0-\\udef9\\udf00-\\udf03\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3b-\\udf44\\udf47-\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc00-\\udc4a\\udc50-\\udc59\\udc5e-\\udc5f\\udc80-\\udcc5\\udcc7\\udcd0-\\udcd9\\udd80-\\uddb5\\uddb8-\\uddc0\\uddd8-\\udddd\\ude00-\\ude40\\ude44\\ude50-\\ude59\\ude80-\\udeb8\\udec0-\\udec9\\udf00-\\udf1a\\udf1d-\\udf2b\\udf30-\\udf39]|\\ud806[\\udc00-\\udc3a\\udca0-\\udce9\\udcff\\udda0-\\udda7\\uddaa-\\uddd7\\uddda-\\udde1\\udde3-\\udde4\\ude00-\\ude3e\\ude47\\ude50-\\ude99\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc40\\udc50-\\udc59\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd36\\udd3a\\udd3c-\\udd3d\\udd3f-\\udd47\\udd50-\\udd59\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd8e\\udd90-\\udd91\\udd93-\\udd98\\udda0-\\udda9\\udee0-\\udef6]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\ude60-\\ude69\\uded0-\\udeed\\udef0-\\udef4\\udf00-\\udf36\\udf40-\\udf43\\udf50-\\udf59\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf4f-\\udf87\\udf8f-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99\\udc9d-\\udc9e]|\\ud834[\\udd65-\\udd69\\udd6d-\\udd72\\udd7b-\\udd82\\udd85-\\udd8b\\uddaa-\\uddad\\ude42-\\ude44]|\\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\\udfce-\\udfff]|\\ud836[\\ude00-\\ude36\\ude3b-\\ude6c\\ude75\\ude84\\ude9b-\\ude9f\\udea1-\\udeaf]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23-\\udc24\\udc26-\\udc2a\\udd00-\\udd2c\\udd30-\\udd3d\\udd40-\\udd49\\udd4e\\udec0-\\udef9]|\\ud83a[\\udc00-\\udcc4\\udcd0-\\udcd6\\udd00-\\udd4b\\udd50-\\udd59]|\\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]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\udb40[\\udd00-\\uddef])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\})|[\\u200c\\u200d])*>/, function () {\n var groupName = yytext.slice(3, -1);\n validateUnicodeGroupName(groupName, this.getCurrentState());\n return 'NAMED_GROUP_REF';\n}], [/^\\\\b/, function () {\n return 'ESC_b';\n}], [/^\\\\B/, function () {\n return 'ESC_B';\n}], [/^\\\\c[a-zA-Z]/, function () {\n return 'CTRL_CH';\n}], [/^\\\\0\\d{1,2}/, function () {\n return 'OCT_CODE';\n}], [/^\\\\0/, function () {\n return 'DEC_CODE';\n}], [/^\\\\\\d{1,3}/, function () {\n return 'DEC_CODE';\n}], [/^\\\\u[dD][89abAB][0-9a-fA-F]{2}\\\\u[dD][c-fC-F][0-9a-fA-F]{2}/, function () {\n return 'U_CODE_SURROGATE';\n}], [/^\\\\u\\{[0-9a-fA-F]{1,}\\}/, function () {\n return 'U_CODE';\n}], [/^\\\\u[0-9a-fA-F]{4}/, function () {\n return 'U_CODE';\n}], [/^\\\\[pP]\\{\\w+(?:=\\w+)?\\}/, function () {\n return 'U_PROP_VALUE_EXP';\n}], [/^\\\\x[0-9a-fA-F]{2}/, function () {\n return 'HEX_CODE';\n}], [/^\\\\[tnrdDsSwWvf]/, function () {\n return 'META_CHAR';\n}], [/^\\\\\\//, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[ #]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[\\^\\$\\.\\*\\+\\?\\(\\)\\\\\\[\\]\\{\\}\\|\\/]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[^*?+\\[()\\\\|]/, function () {\n var s = this.getCurrentState();\n if (s === 'u_class' && yytext === \"\\\\-\") {\n return 'ESC_CHAR';\n } else if (s === 'u' || s === 'xu' || s === 'u_class') {\n throw new SyntaxError('invalid Unicode escape ' + yytext);\n }\n return 'ESC_CHAR';\n}], [/^\\(/, function () {\n return 'CHAR';\n}], [/^\\)/, function () {\n return 'CHAR';\n}], [/^\\(\\?=/, function () {\n return 'POS_LA_ASSERT';\n}], [/^\\(\\?!/, function () {\n return 'NEG_LA_ASSERT';\n}], [/^\\(\\?<=/, function () {\n return 'POS_LB_ASSERT';\n}], [/^\\(\\?<!/, function () {\n return 'NEG_LB_ASSERT';\n}], [/^\\(\\?:/, function () {\n return 'NON_CAPTURE_GROUP';\n}], [/^\\(\\?<(([\\u0041-\\u005a\\u0061-\\u007a\\u00aa\\u00b5\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e-\\u066f\\u0671-\\u06d3\\u06d5\\u06e5-\\u06e6\\u06ee-\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4-\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc-\\u09dd\\u09df-\\u09e1\\u09f0-\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0-\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c-\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60-\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0-\\u0ce1\\u0cf1-\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2-\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065-\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\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\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae-\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5-\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\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\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\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\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a-\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd-\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5-\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\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]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\ude80-\\ude9c\\udea0-\\uded0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf75\\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\\ude10-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd23\\udf00-\\udf1c\\udf27\\udf30-\\udf45\\udfe0-\\udff6]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd44\\udd50-\\udd72\\udd76\\udd83-\\uddb2\\uddc1-\\uddc4\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude2b\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udede\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3d\\udf50\\udf5d-\\udf61]|\\ud805[\\udc00-\\udc34\\udc47-\\udc4a\\udc5f\\udc80-\\udcaf\\udcc4-\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udeb8\\udf00-\\udf1a]|\\ud806[\\udc00-\\udc2b\\udca0-\\udcdf\\udcff\\udda0-\\udda7\\uddaa-\\uddd0\\udde1\\udde3\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude89\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd30\\udd46\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd89\\udd98\\udee0-\\udef2]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf50\\udf93-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99]|\\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[\\udd00-\\udd2c\\udd37-\\udd3d\\udd4e\\udec0-\\udeeb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd4b]|\\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]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\}))(([\\u0030-\\u0039\\u0041-\\u005a\\u005f\\u0061-\\u007a\\u00aa\\u00b5\\u00b7\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0300-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u0483-\\u0487\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u07fd\\u0800-\\u082d\\u0840-\\u085b\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u08d3-\\u08e1\\u08e3-\\u0963\\u0966-\\u096f\\u0971-\\u0983\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bc-\\u09c4\\u09c7-\\u09c8\\u09cb-\\u09ce\\u09d7\\u09dc-\\u09dd\\u09df-\\u09e3\\u09e6-\\u09f1\\u09fc\\u09fe\\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\\u0a81-\\u0a83\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abc-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ad0\\u0ae0-\\u0ae3\\u0ae6-\\u0aef\\u0af9-\\u0aff\\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-\\u0b6f\\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-\\u0bcd\\u0bd0\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\\u0c58-\\u0c5a\\u0c60-\\u0c63\\u0c66-\\u0c6f\\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\\u0d00-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d54-\\u0d57\\u0d5f-\\u0d63\\u0d66-\\u0d6f\\u0d7a-\\u0d7f\\u0d82-\\u0d83\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2-\\u0df3\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u0e50-\\u0e59\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0edc-\\u0edf\\u0f00\\u0f18-\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f47\\u0f49-\\u0f6c\\u0f71-\\u0f84\\u0f86-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1049\\u1050-\\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\\u135d-\\u135f\\u1369-\\u1371\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176c\\u176e-\\u1770\\u1772-\\u1773\\u1780-\\u17d3\\u17d7\\u17dc-\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u19d0-\\u19da\\u1a00-\\u1a1b\\u1a20-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1aa7\\u1ab0-\\u1abd\\u1b00-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1bf3\\u1c00-\\u1c37\\u1c40-\\u1c49\\u1c4d-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1cd0-\\u1cd2\\u1cd4-\\u1cfa\\u1d00-\\u1df9\\u1dfb-\\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\\u203f-\\u2040\\u2054\\u2071\\u207f\\u2090-\\u209c\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d7f-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2de0-\\u2dff\\u3005-\\u3007\\u3021-\\u302f\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua8fd-\\ua92d\\ua930-\\ua953\\ua960-\\ua97c\\ua980-\\ua9c0\\ua9cf-\\ua9d9\\ua9e0-\\ua9fe\\uaa00-\\uaa36\\uaa40-\\uaa4d\\uaa50-\\uaa59\\uaa60-\\uaa76\\uaa7a-\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaef\\uaaf2-\\uaaf6\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabea\\uabec-\\uabed\\uabf0-\\uabf9\\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\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33-\\ufe34\\ufe4d-\\ufe4f\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff10-\\uff19\\uff21-\\uff3a\\uff3f\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\uddfd\\ude80-\\ude9c\\udea0-\\uded0\\udee0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udca0-\\udca9\\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-\\ude35\\ude38-\\ude3a\\ude3f\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee6\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd27\\udd30-\\udd39\\udf00-\\udf1c\\udf27\\udf30-\\udf50\\udfe0-\\udff6]|\\ud804[\\udc00-\\udc46\\udc66-\\udc6f\\udc7f-\\udcba\\udcd0-\\udce8\\udcf0-\\udcf9\\udd00-\\udd34\\udd36-\\udd3f\\udd44-\\udd46\\udd50-\\udd73\\udd76\\udd80-\\uddc4\\uddc9-\\uddcc\\uddd0-\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude37\\ude3e\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udeea\\udef0-\\udef9\\udf00-\\udf03\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3b-\\udf44\\udf47-\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc00-\\udc4a\\udc50-\\udc59\\udc5e-\\udc5f\\udc80-\\udcc5\\udcc7\\udcd0-\\udcd9\\udd80-\\uddb5\\uddb8-\\uddc0\\uddd8-\\udddd\\ude00-\\ude40\\ude44\\ude50-\\ude59\\ude80-\\udeb8\\udec0-\\udec9\\udf00-\\udf1a\\udf1d-\\udf2b\\udf30-\\udf39]|\\ud806[\\udc00-\\udc3a\\udca0-\\udce9\\udcff\\udda0-\\udda7\\uddaa-\\uddd7\\uddda-\\udde1\\udde3-\\udde4\\ude00-\\ude3e\\ude47\\ude50-\\ude99\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc40\\udc50-\\udc59\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd36\\udd3a\\udd3c-\\udd3d\\udd3f-\\udd47\\udd50-\\udd59\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd8e\\udd90-\\udd91\\udd93-\\udd98\\udda0-\\udda9\\udee0-\\udef6]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\ude60-\\ude69\\uded0-\\udeed\\udef0-\\udef4\\udf00-\\udf36\\udf40-\\udf43\\udf50-\\udf59\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf4f-\\udf87\\udf8f-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99\\udc9d-\\udc9e]|\\ud834[\\udd65-\\udd69\\udd6d-\\udd72\\udd7b-\\udd82\\udd85-\\udd8b\\uddaa-\\uddad\\ude42-\\ude44]|\\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\\udfce-\\udfff]|\\ud836[\\ude00-\\ude36\\ude3b-\\ude6c\\ude75\\ude84\\ude9b-\\ude9f\\udea1-\\udeaf]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23-\\udc24\\udc26-\\udc2a\\udd00-\\udd2c\\udd30-\\udd3d\\udd40-\\udd49\\udd4e\\udec0-\\udef9]|\\ud83a[\\udc00-\\udcc4\\udcd0-\\udcd6\\udd00-\\udd4b\\udd50-\\udd59]|\\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]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\udb40[\\udd00-\\uddef])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\})|[\\u200c\\u200d])*>/, function () {\n yytext = yytext.slice(3, -1);\n validateUnicodeGroupName(yytext, this.getCurrentState());\n return 'NAMED_CAPTURE_GROUP';\n}], [/^\\(/, function () {\n return 'L_PAREN';\n}], [/^\\)/, function () {\n return 'R_PAREN';\n}], [/^[*?+[^$]/, function () {\n return 'CHAR';\n}], [/^\\\\\\]/, function () {\n return 'ESC_CHAR';\n}], [/^\\]/, function () {\n this.popState();return 'R_BRACKET';\n}], [/^\\^/, function () {\n return 'BOS';\n}], [/^\\$/, function () {\n return 'EOS';\n}], [/^\\*/, function () {\n return 'STAR';\n}], [/^\\?/, function () {\n return 'Q_MARK';\n}], [/^\\+/, function () {\n return 'PLUS';\n}], [/^\\|/, function () {\n return 'BAR';\n}], [/^\\./, function () {\n return 'ANY';\n}], [/^\\//, function () {\n return 'SLASH';\n}], [/^[^*?+\\[()\\\\|]/, function () {\n return 'CHAR';\n}], [/^\\[\\^/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'NEG_CLASS';\n}], [/^\\[/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'L_BRACKET';\n}]];\nvar lexRulesByConditions = { \"INITIAL\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"xu\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"x\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u_class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51] };\n\nvar EOF_TOKEN = {\n type: EOF,\n value: ''\n};\n\ntokenizer = {\n initString: function initString(string) {\n this._string = string;\n this._cursor = 0;\n\n this._states = ['INITIAL'];\n this._tokensQueue = [];\n\n this._currentLine = 1;\n this._currentColumn = 0;\n this._currentLineBeginOffset = 0;\n\n /**\n * Matched token location data.\n */\n this._tokenStartOffset = 0;\n this._tokenEndOffset = 0;\n this._tokenStartLine = 1;\n this._tokenEndLine = 1;\n this._tokenStartColumn = 0;\n this._tokenEndColumn = 0;\n\n return this;\n },\n\n\n /**\n * Returns tokenizer states.\n */\n getStates: function getStates() {\n return this._states;\n },\n getCurrentState: function getCurrentState() {\n return this._states[this._states.length - 1];\n },\n pushState: function pushState(state) {\n this._states.push(state);\n },\n begin: function begin(state) {\n this.pushState(state);\n },\n popState: function popState() {\n if (this._states.length > 1) {\n return this._states.pop();\n }\n return this._states[0];\n },\n getNextToken: function getNextToken() {\n // Something was queued, return it.\n if (this._tokensQueue.length > 0) {\n return this.onToken(this._toToken(this._tokensQueue.shift()));\n }\n\n if (!this.hasMoreTokens()) {\n return this.onToken(EOF_TOKEN);\n }\n\n var string = this._string.slice(this._cursor);\n var lexRulesForState = lexRulesByConditions[this.getCurrentState()];\n\n for (var i = 0; i < lexRulesForState.length; i++) {\n var lexRuleIndex = lexRulesForState[i];\n var lexRule = lexRules[lexRuleIndex];\n\n var matched = this._match(string, lexRule[0]);\n\n // Manual handling of EOF token (the end of string). Return it\n // as `EOF` symbol.\n if (string === '' && matched === '') {\n this._cursor++;\n }\n\n if (matched !== null) {\n yytext = matched;\n yyleng = yytext.length;\n var token = lexRule[1].call(this);\n\n if (!token) {\n return this.getNextToken();\n }\n\n // If multiple tokens are returned, save them to return\n // on next `getNextToken` call.\n\n if (Array.isArray(token)) {\n var tokensToQueue = token.slice(1);\n token = token[0];\n if (tokensToQueue.length > 0) {\n var _tokensQueue;\n\n (_tokensQueue = this._tokensQueue).unshift.apply(_tokensQueue, _toConsumableArray(tokensToQueue));\n }\n }\n\n return this.onToken(this._toToken(token, yytext));\n }\n }\n\n if (this.isEOF()) {\n this._cursor++;\n return EOF_TOKEN;\n }\n\n this.throwUnexpectedToken(string[0], this._currentLine, this._currentColumn);\n },\n\n\n /**\n * Throws default \"Unexpected token\" exception, showing the actual\n * line from the source, pointing with the ^ marker to the bad token.\n * In addition, shows `line:column` location.\n */\n throwUnexpectedToken: function throwUnexpectedToken(symbol, line, column) {\n var lineSource = this._string.split('\\n')[line - 1];\n var lineData = '';\n\n if (lineSource) {\n var pad = ' '.repeat(column);\n lineData = '\\n\\n' + lineSource + '\\n' + pad + '^\\n';\n }\n\n throw new SyntaxError(lineData + 'Unexpected token: \"' + symbol + '\" ' + ('at ' + line + ':' + column + '.'));\n },\n getCursor: function getCursor() {\n return this._cursor;\n },\n getCurrentLine: function getCurrentLine() {\n return this._currentLine;\n },\n getCurrentColumn: function getCurrentColumn() {\n return this._currentColumn;\n },\n _captureLocation: function _captureLocation(matched) {\n var nlRe = /\\n/g;\n\n // Absolute offsets.\n this._tokenStartOffset = this._cursor;\n\n // Line-based locations, start.\n this._tokenStartLine = this._currentLine;\n this._tokenStartColumn = this._tokenStartOffset - this._currentLineBeginOffset;\n\n // Extract `\\n` in the matched token.\n var nlMatch = void 0;\n while ((nlMatch = nlRe.exec(matched)) !== null) {\n this._currentLine++;\n this._currentLineBeginOffset = this._tokenStartOffset + nlMatch.index + 1;\n }\n\n this._tokenEndOffset = this._cursor + matched.length;\n\n // Line-based locations, end.\n this._tokenEndLine = this._currentLine;\n this._tokenEndColumn = this._currentColumn = this._tokenEndOffset - this._currentLineBeginOffset;\n },\n _toToken: function _toToken(tokenType) {\n var yytext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n return {\n // Basic data.\n type: tokenType,\n value: yytext,\n\n // Location data.\n startOffset: this._tokenStartOffset,\n endOffset: this._tokenEndOffset,\n startLine: this._tokenStartLine,\n endLine: this._tokenEndLine,\n startColumn: this._tokenStartColumn,\n endColumn: this._tokenEndColumn\n };\n },\n isEOF: function isEOF() {\n return this._cursor === this._string.length;\n },\n hasMoreTokens: function hasMoreTokens() {\n return this._cursor <= this._string.length;\n },\n _match: function _match(string, regexp) {\n var matched = string.match(regexp);\n if (matched) {\n // Handle `\\n` in the matched token to track line numbers.\n this._captureLocation(matched[0]);\n this._cursor += matched[0].length;\n return matched[0];\n }\n return null;\n },\n\n\n /**\n * Allows analyzing, and transforming token. Default implementation\n * just passes the token through.\n */\n onToken: function onToken(token) {\n return token;\n }\n};\n\n/**\n * Expose tokenizer so it can be accessed in semantic actions.\n */\nyy.lexer = tokenizer;\nyy.tokenizer = tokenizer;\n\n/**\n * Global parsing options. Some options can be shadowed per\n * each `parse` call, if the optations are passed.\n *\n * Initalized to the `captureLocations` which is passed\n * from the generator. Other options can be added at runtime.\n */\nyy.options = {\n captureLocations: true\n};\n\n/**\n * Parsing module.\n */\nvar yyparse = {\n /**\n * Sets global parsing options.\n */\n setOptions: function setOptions(options) {\n yy.options = options;\n return this;\n },\n\n\n /**\n * Returns parsing options.\n */\n getOptions: function getOptions() {\n return yy.options;\n },\n\n\n /**\n * Parses a string.\n */\n parse: function parse(string, parseOptions) {\n if (!tokenizer) {\n throw new Error('Tokenizer instance wasn\\'t specified.');\n }\n\n tokenizer.initString(string);\n\n /**\n * If parse options are passed, override global parse options for\n * this call, and later restore global options.\n */\n var globalOptions = yy.options;\n if (parseOptions) {\n yy.options = Object.assign({}, yy.options, parseOptions);\n }\n\n /**\n * Allow callers to do setup work based on the\n * parsing string, and passed options.\n */\n yyparse.onParseBegin(string, tokenizer, yy.options);\n\n stack.length = 0;\n stack.push(0);\n\n var token = tokenizer.getNextToken();\n var shiftedToken = null;\n\n do {\n if (!token) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedEndOfInput();\n }\n\n var state = stack[stack.length - 1];\n var column = tokens[token.type];\n\n if (!table[state].hasOwnProperty(column)) {\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n var entry = table[state][column];\n\n // Shift action.\n if (entry[0] === 's') {\n var _loc2 = null;\n\n if (yy.options.captureLocations) {\n _loc2 = {\n startOffset: token.startOffset,\n endOffset: token.endOffset,\n startLine: token.startLine,\n endLine: token.endLine,\n startColumn: token.startColumn,\n endColumn: token.endColumn\n };\n }\n\n shiftedToken = this.onShift(token);\n\n stack.push({ symbol: tokens[shiftedToken.type], semanticValue: shiftedToken.value, loc: _loc2 }, Number(entry.slice(1)));\n\n token = tokenizer.getNextToken();\n }\n\n // Reduce action.\n else if (entry[0] === 'r') {\n var productionNumber = entry.slice(1);\n var production = productions[productionNumber];\n var hasSemanticAction = typeof production[2] === 'function';\n var semanticValueArgs = hasSemanticAction ? [] : null;\n\n var locationArgs = hasSemanticAction && yy.options.captureLocations ? [] : null;\n\n if (production[1] !== 0) {\n var rhsLength = production[1];\n while (rhsLength-- > 0) {\n stack.pop();\n var stackEntry = stack.pop();\n\n if (hasSemanticAction) {\n semanticValueArgs.unshift(stackEntry.semanticValue);\n\n if (locationArgs) {\n locationArgs.unshift(stackEntry.loc);\n }\n }\n }\n }\n\n var reduceStackEntry = { symbol: production[0] };\n\n if (hasSemanticAction) {\n yytext = shiftedToken ? shiftedToken.value : null;\n yyleng = shiftedToken ? shiftedToken.value.length : null;\n\n var semanticActionArgs = locationArgs !== null ? semanticValueArgs.concat(locationArgs) : semanticValueArgs;\n\n production[2].apply(production, _toConsumableArray(semanticActionArgs));\n\n reduceStackEntry.semanticValue = __;\n\n if (locationArgs) {\n reduceStackEntry.loc = __loc;\n }\n }\n\n var nextState = stack[stack.length - 1];\n var symbolToReduceWith = production[0];\n\n stack.push(reduceStackEntry, table[nextState][symbolToReduceWith]);\n }\n\n // Accept.\n else if (entry === 'acc') {\n stack.pop();\n var parsed = stack.pop();\n\n if (stack.length !== 1 || stack[0] !== 0 || tokenizer.hasMoreTokens()) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n if (parsed.hasOwnProperty('semanticValue')) {\n yy.options = globalOptions;\n yyparse.onParseEnd(parsed.semanticValue);\n return parsed.semanticValue;\n }\n\n yyparse.onParseEnd();\n\n // Restore options.\n yy.options = globalOptions;\n return true;\n }\n } while (tokenizer.hasMoreTokens() || stack.length > 1);\n },\n setTokenizer: function setTokenizer(customTokenizer) {\n tokenizer = customTokenizer;\n return yyparse;\n },\n getTokenizer: function getTokenizer() {\n return tokenizer;\n },\n onParseBegin: function onParseBegin(string, tokenizer, options) {},\n onParseEnd: function onParseEnd(parsed) {},\n\n\n /**\n * Allows analyzing, and transforming shifted token. Default implementation\n * just passes the token through.\n */\n onShift: function onShift(token) {\n return token;\n }\n};\n\n/**\n * Tracks capturing groups.\n */\nvar capturingGroupsCount = 0;\n\n/**\n * Tracks named groups.\n */\nvar namedGroups = {};\n\n/**\n * Parsing string.\n */\nvar parsingString = '';\n\nyyparse.onParseBegin = function (string, lexer) {\n parsingString = string;\n capturingGroupsCount = 0;\n namedGroups = {};\n\n var lastSlash = string.lastIndexOf('/');\n var flags = string.slice(lastSlash);\n\n if (flags.includes('x') && flags.includes('u')) {\n lexer.pushState('xu');\n } else {\n if (flags.includes('x')) {\n lexer.pushState('x');\n }\n if (flags.includes('u')) {\n lexer.pushState('u');\n }\n }\n};\n\n/**\n * On shifting `(` remember its number to used on reduce.\n */\nyyparse.onShift = function (token) {\n if (token.type === 'L_PAREN' || token.type === 'NAMED_CAPTURE_GROUP') {\n token.value = new String(token.value);\n token.value.groupNumber = ++capturingGroupsCount;\n }\n return token;\n};\n\n/**\n * Extracts ranges from the range string.\n */\nfunction getRange(text) {\n var range = text.match(/\\d+/g).map(Number);\n\n if (Number.isFinite(range[1]) && range[1] < range[0]) {\n throw new SyntaxError('Numbers out of order in ' + text + ' quantifier');\n }\n\n return range;\n}\n\n/**\n * Checks class range\n */\nfunction checkClassRange(from, to) {\n if (from.kind === 'control' || to.kind === 'control' || !isNaN(from.codePoint) && !isNaN(to.codePoint) && from.codePoint > to.codePoint) {\n throw new SyntaxError('Range ' + from.value + '-' + to.value + ' out of order in character class');\n }\n}\n\n// ---------------------- Unicode property -------------------------------------------\n\nvar unicodeProperties = require('../unicode/parser-unicode-properties.js');\n\n/**\n * Unicode property.\n */\nfunction UnicodeProperty(matched, loc) {\n var negative = matched[1] === 'P';\n var separatorIdx = matched.indexOf('=');\n\n var name = matched.slice(3, separatorIdx !== -1 ? separatorIdx : -1);\n var value = void 0;\n\n // General_Category allows using only value as a shorthand.\n var isShorthand = separatorIdx === -1 && unicodeProperties.isGeneralCategoryValue(name);\n\n // Binary propery name.\n var isBinaryProperty = separatorIdx === -1 && unicodeProperties.isBinaryPropertyName(name);\n\n if (isShorthand) {\n value = name;\n name = 'General_Category';\n } else if (isBinaryProperty) {\n value = name;\n } else {\n if (!unicodeProperties.isValidName(name)) {\n throw new SyntaxError('Invalid unicode property name: ' + name + '.');\n }\n\n value = matched.slice(separatorIdx + 1, -1);\n\n if (!unicodeProperties.isValidValue(name, value)) {\n throw new SyntaxError('Invalid ' + name + ' unicode property value: ' + value + '.');\n }\n }\n\n return Node({\n type: 'UnicodeProperty',\n name: name,\n value: value,\n negative: negative,\n shorthand: isShorthand,\n binary: isBinaryProperty,\n canonicalName: unicodeProperties.getCanonicalName(name) || name,\n canonicalValue: unicodeProperties.getCanonicalValue(value) || value\n }, loc);\n}\n\n// ----------------------------------------------------------------------------------\n\n\n/**\n * Creates a character node.\n */\nfunction Char(value, kind, loc) {\n var symbol = void 0;\n var codePoint = void 0;\n\n switch (kind) {\n case 'decimal':\n {\n codePoint = Number(value.slice(1));\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'oct':\n {\n codePoint = parseInt(value.slice(1), 8);\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'hex':\n case 'unicode':\n {\n if (value.lastIndexOf('\\\\u') > 0) {\n var _value$split$slice = value.split('\\\\u').slice(1),\n _value$split$slice2 = _slicedToArray(_value$split$slice, 2),\n lead = _value$split$slice2[0],\n trail = _value$split$slice2[1];\n\n lead = parseInt(lead, 16);\n trail = parseInt(trail, 16);\n codePoint = (lead - 0xd800) * 0x400 + (trail - 0xdc00) + 0x10000;\n\n symbol = String.fromCodePoint(codePoint);\n } else {\n var hex = value.slice(2).replace('{', '');\n codePoint = parseInt(hex, 16);\n if (codePoint > 0x10ffff) {\n throw new SyntaxError('Bad character escape sequence: ' + value);\n }\n\n symbol = String.fromCodePoint(codePoint);\n }\n break;\n }\n case 'meta':\n {\n switch (value) {\n case '\\\\t':\n symbol = '\\t';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\n':\n symbol = '\\n';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\r':\n symbol = '\\r';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\v':\n symbol = '\\v';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\f':\n symbol = '\\f';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\b':\n symbol = '\\b';\n codePoint = symbol.codePointAt(0);\n case '\\\\0':\n symbol = '\\0';\n codePoint = 0;\n case '.':\n symbol = '.';\n codePoint = NaN;\n break;\n default:\n codePoint = NaN;\n }\n break;\n }\n case 'simple':\n {\n symbol = value;\n codePoint = symbol.codePointAt(0);\n break;\n }\n }\n\n return Node({\n type: 'Char',\n value: value,\n kind: kind,\n symbol: symbol,\n codePoint: codePoint\n }, loc);\n}\n\n/**\n * Valid flags per current ECMAScript spec and\n * stage 3+ proposals.\n */\nvar validFlags = 'gimsuxy';\n\n/**\n * Checks the flags are valid, and that\n * we don't duplicate flags.\n */\nfunction checkFlags(flags) {\n var seen = new Set();\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = flags[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var flag = _step.value;\n\n if (seen.has(flag) || !validFlags.includes(flag)) {\n throw new SyntaxError('Invalid flags: ' + flags);\n }\n seen.add(flag);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return flags.split('').sort().join('');\n}\n\n/**\n * Parses patterns like \\1, \\2, etc. either as a backreference\n * to a group, or a deciaml char code.\n */\nfunction GroupRefOrDecChar(text, textLoc) {\n var reference = Number(text.slice(1));\n\n if (reference > 0 && reference <= capturingGroupsCount) {\n return Node({\n type: 'Backreference',\n kind: 'number',\n number: reference,\n reference: reference\n }, textLoc);\n }\n\n return Char(text, 'decimal', textLoc);\n}\n\n/**\n * Unicode names.\n */\nvar uReStart = /^\\\\u[0-9a-fA-F]{4}/; // only matches start of string\nvar ucpReStart = /^\\\\u\\{[0-9a-fA-F]{1,}\\}/; // only matches start of string\nvar ucpReAnywhere = /\\\\u\\{[0-9a-fA-F]{1,}\\}/; // matches anywhere in string\n\n/**\n * Validates Unicode group name.\n */\nfunction validateUnicodeGroupName(name, state) {\n var isUnicodeName = ucpReAnywhere.test(name);\n var isUnicodeState = state === 'u' || state === 'xu' || state === 'u_class';\n\n if (isUnicodeName && !isUnicodeState) {\n throw new SyntaxError('invalid group Unicode name \"' + name + '\", use `u` flag.');\n }\n\n return name;\n}\n\n// Matches the following production: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n//\n// RegExpUnicodeEscapeSequence ::\n// `u` LeadSurrogate `\\u` TrailSurrogate # as 'leadSurrogate', 'trailSurrogate'\n// `u` LeadSurrogate # as 'leadSurrogateOnly'\n// `u` TrailSurrogate # as 'trailSurrogateOnly'\n// `u` NonSurrogate # as 'nonSurrogate'\n// `u` `{` CodePoint `}` # as 'codePoint'\n//\n// LeadSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xD800 to 0xDBFF # [dD][89aAbB][0-9a-fA-F]{2}\n//\n// TrailSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xDC00 to 0xDFFF # [dD][c-fC-F][0-9a-fA-F]{2}\n//\n// NonSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is not in the inclusive range 0xD800 to 0xDFFF # [0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2}\n//\n// CodePoint ::\n// HexDigits but only if MV of HexDigits ≤ 0x10FFFF # 0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4})\n//\nvar uidRe = /\\\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\\})/;\n\nfunction decodeUnicodeGroupName(name) {\n return name.replace(new RegExp(uidRe, 'g'), function (_, leadSurrogate, trailSurrogate, leadSurrogateOnly, trailSurrogateOnly, nonSurrogate, codePoint) {\n if (leadSurrogate) {\n return String.fromCodePoint(parseInt(leadSurrogate, 16), parseInt(trailSurrogate, 16));\n }\n if (leadSurrogateOnly) {\n return String.fromCodePoint(parseInt(leadSurrogateOnly, 16));\n }\n if (trailSurrogateOnly) {\n // TODO: Per the spec: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n // > Each `\\u` TrailSurrogate for which the choice of associated `u` LeadSurrogate is ambiguous shall be associated with the nearest possible `u` LeadSurrogate that would otherwise have no corresponding `\\u` TrailSurrogate.\n return String.fromCodePoint(parseInt(trailSurrogateOnly, 16));\n }\n if (nonSurrogate) {\n return String.fromCodePoint(parseInt(nonSurrogate, 16));\n }\n if (codePoint) {\n return String.fromCodePoint(parseInt(codePoint, 16));\n }\n return _;\n });\n}\n\n/**\n * Extracts from `\\k<foo>` pattern either a backreference\n * to a named capturing group (if it presents), or parses it\n * as a list of char: `\\k`, `<`, `f`, etc.\n */\nfunction NamedGroupRefOrChars(text, textLoc) {\n var referenceRaw = text.slice(3, -1);\n var reference = decodeUnicodeGroupName(referenceRaw);\n\n if (namedGroups.hasOwnProperty(reference)) {\n return Node({\n type: 'Backreference',\n kind: 'name',\n number: namedGroups[reference],\n reference: reference,\n referenceRaw: referenceRaw\n }, textLoc);\n }\n\n // Else `\\k<foo>` should be parsed as a list of `Char`s.\n // This is really a 0.01% edge case, but we should handle it.\n\n var startOffset = null;\n var startLine = null;\n var endLine = null;\n var startColumn = null;\n\n if (textLoc) {\n startOffset = textLoc.startOffset;\n startLine = textLoc.startLine;\n endLine = textLoc.endLine;\n startColumn = textLoc.startColumn;\n }\n\n var charRe = /^[\\w$<>]/;\n var loc = void 0;\n\n var chars = [\n // Init to first \\k, taking 2 symbols.\n Char(text.slice(1, 2), 'simple', startOffset ? {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += 2,\n endColumn: startColumn += 2\n } : null)];\n\n // For \\k\n chars[0].escaped = true;\n\n // Other symbols.\n text = text.slice(2);\n\n while (text.length > 0) {\n var matched = null;\n\n // Unicode, \\u003B or \\u{003B}\n if ((matched = text.match(uReStart)) || (matched = text.match(ucpReStart))) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += matched[0].length,\n endColumn: startColumn += matched[0].length\n };\n }\n chars.push(Char(matched[0], 'unicode', loc));\n text = text.slice(matched[0].length);\n }\n\n // Simple char.\n else if (matched = text.match(charRe)) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: ++startOffset,\n endColumn: ++startColumn\n };\n }\n chars.push(Char(matched[0], 'simple', loc));\n text = text.slice(1);\n }\n }\n\n return chars;\n}\n\n/**\n * Creates an AST node with a location.\n */\nfunction Node(node, loc) {\n if (yy.options.captureLocations) {\n node.loc = {\n source: parsingString.slice(loc.startOffset, loc.endOffset),\n start: {\n line: loc.startLine,\n column: loc.startColumn,\n offset: loc.startOffset\n },\n end: {\n line: loc.endLine,\n column: loc.endColumn,\n offset: loc.endOffset\n }\n };\n }\n return node;\n}\n\n/**\n * Creates location node.\n */\nfunction loc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nfunction unexpectedToken(token) {\n if (token.type === EOF) {\n unexpectedEndOfInput();\n }\n\n tokenizer.throwUnexpectedToken(token.value, token.startLine, token.startColumn);\n}\n\nfunction unexpectedEndOfInput() {\n parseError('Unexpected end of input.');\n}\n\nfunction parseError(message) {\n throw new SyntaxError(message);\n}\n\nmodule.exports = yyparse;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar regexpTreeParser = require('./generated/regexp-tree');\n\n/**\n * Original parse function.\n */\nvar generatedParseFn = regexpTreeParser.parse.bind(regexpTreeParser);\n\n/**\n * Parses a regular expression.\n *\n * Override original `regexpTreeParser.parse` to convert a value to a string,\n * since in regexp-tree we may pass strings, and RegExp instance.\n */\nregexpTreeParser.parse = function (regexp, options) {\n return generatedParseFn('' + regexp, options);\n};\n\n// By default do not capture locations; callers may override.\nregexpTreeParser.setOptions({ captureLocations: false });\n\nmodule.exports = regexpTreeParser;","'use strict';\n\n/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\nvar NON_BINARY_PROP_NAMES_TO_ALIASES = {\n General_Category: 'gc',\n Script: 'sc',\n Script_Extensions: 'scx'\n};\n\nvar NON_BINARY_ALIASES_TO_PROP_NAMES = inverseMap(NON_BINARY_PROP_NAMES_TO_ALIASES);\n\nvar BINARY_PROP_NAMES_TO_ALIASES = {\n ASCII: 'ASCII',\n ASCII_Hex_Digit: 'AHex',\n Alphabetic: 'Alpha',\n Any: 'Any',\n Assigned: 'Assigned',\n Bidi_Control: 'Bidi_C',\n Bidi_Mirrored: 'Bidi_M',\n Case_Ignorable: 'CI',\n Cased: 'Cased',\n Changes_When_Casefolded: 'CWCF',\n Changes_When_Casemapped: 'CWCM',\n Changes_When_Lowercased: 'CWL',\n Changes_When_NFKC_Casefolded: 'CWKCF',\n Changes_When_Titlecased: 'CWT',\n Changes_When_Uppercased: 'CWU',\n Dash: 'Dash',\n Default_Ignorable_Code_Point: 'DI',\n Deprecated: 'Dep',\n Diacritic: 'Dia',\n Emoji: 'Emoji',\n Emoji_Component: 'Emoji_Component',\n Emoji_Modifier: 'Emoji_Modifier',\n Emoji_Modifier_Base: 'Emoji_Modifier_Base',\n Emoji_Presentation: 'Emoji_Presentation',\n Extended_Pictographic: 'Extended_Pictographic',\n Extender: 'Ext',\n Grapheme_Base: 'Gr_Base',\n Grapheme_Extend: 'Gr_Ext',\n Hex_Digit: 'Hex',\n IDS_Binary_Operator: 'IDSB',\n IDS_Trinary_Operator: 'IDST',\n ID_Continue: 'IDC',\n ID_Start: 'IDS',\n Ideographic: 'Ideo',\n Join_Control: 'Join_C',\n Logical_Order_Exception: 'LOE',\n Lowercase: 'Lower',\n Math: 'Math',\n Noncharacter_Code_Point: 'NChar',\n Pattern_Syntax: 'Pat_Syn',\n Pattern_White_Space: 'Pat_WS',\n Quotation_Mark: 'QMark',\n Radical: 'Radical',\n Regional_Indicator: 'RI',\n Sentence_Terminal: 'STerm',\n Soft_Dotted: 'SD',\n Terminal_Punctuation: 'Term',\n Unified_Ideograph: 'UIdeo',\n Uppercase: 'Upper',\n Variation_Selector: 'VS',\n White_Space: 'space',\n XID_Continue: 'XIDC',\n XID_Start: 'XIDS'\n};\n\nvar BINARY_ALIASES_TO_PROP_NAMES = inverseMap(BINARY_PROP_NAMES_TO_ALIASES);\n\nvar GENERAL_CATEGORY_VALUE_TO_ALIASES = {\n Cased_Letter: 'LC',\n Close_Punctuation: 'Pe',\n Connector_Punctuation: 'Pc',\n Control: ['Cc', 'cntrl'],\n Currency_Symbol: 'Sc',\n Dash_Punctuation: 'Pd',\n Decimal_Number: ['Nd', 'digit'],\n Enclosing_Mark: 'Me',\n Final_Punctuation: 'Pf',\n Format: 'Cf',\n Initial_Punctuation: 'Pi',\n Letter: 'L',\n Letter_Number: 'Nl',\n Line_Separator: 'Zl',\n Lowercase_Letter: 'Ll',\n Mark: ['M', 'Combining_Mark'],\n Math_Symbol: 'Sm',\n Modifier_Letter: 'Lm',\n Modifier_Symbol: 'Sk',\n Nonspacing_Mark: 'Mn',\n Number: 'N',\n Open_Punctuation: 'Ps',\n Other: 'C',\n Other_Letter: 'Lo',\n Other_Number: 'No',\n Other_Punctuation: 'Po',\n Other_Symbol: 'So',\n Paragraph_Separator: 'Zp',\n Private_Use: 'Co',\n Punctuation: ['P', 'punct'],\n Separator: 'Z',\n Space_Separator: 'Zs',\n Spacing_Mark: 'Mc',\n Surrogate: 'Cs',\n Symbol: 'S',\n Titlecase_Letter: 'Lt',\n Unassigned: 'Cn',\n Uppercase_Letter: 'Lu'\n};\n\nvar GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES = inverseMap(GENERAL_CATEGORY_VALUE_TO_ALIASES);\n\nvar SCRIPT_VALUE_TO_ALIASES = {\n Adlam: 'Adlm',\n Ahom: 'Ahom',\n Anatolian_Hieroglyphs: 'Hluw',\n Arabic: 'Arab',\n Armenian: 'Armn',\n Avestan: 'Avst',\n Balinese: 'Bali',\n Bamum: 'Bamu',\n Bassa_Vah: 'Bass',\n Batak: 'Batk',\n Bengali: 'Beng',\n Bhaiksuki: 'Bhks',\n Bopomofo: 'Bopo',\n Brahmi: 'Brah',\n Braille: 'Brai',\n Buginese: 'Bugi',\n Buhid: 'Buhd',\n Canadian_Aboriginal: 'Cans',\n Carian: 'Cari',\n Caucasian_Albanian: 'Aghb',\n Chakma: 'Cakm',\n Cham: 'Cham',\n Cherokee: 'Cher',\n Common: 'Zyyy',\n Coptic: ['Copt', 'Qaac'],\n Cuneiform: 'Xsux',\n Cypriot: 'Cprt',\n Cyrillic: 'Cyrl',\n Deseret: 'Dsrt',\n Devanagari: 'Deva',\n Dogra: 'Dogr',\n Duployan: 'Dupl',\n Egyptian_Hieroglyphs: 'Egyp',\n Elbasan: 'Elba',\n Ethiopic: 'Ethi',\n Georgian: 'Geor',\n Glagolitic: 'Glag',\n Gothic: 'Goth',\n Grantha: 'Gran',\n Greek: 'Grek',\n Gujarati: 'Gujr',\n Gunjala_Gondi: 'Gong',\n Gurmukhi: 'Guru',\n Han: 'Hani',\n Hangul: 'Hang',\n Hanifi_Rohingya: 'Rohg',\n Hanunoo: 'Hano',\n Hatran: 'Hatr',\n Hebrew: 'Hebr',\n Hiragana: 'Hira',\n Imperial_Aramaic: 'Armi',\n Inherited: ['Zinh', 'Qaai'],\n Inscriptional_Pahlavi: 'Phli',\n Inscriptional_Parthian: 'Prti',\n Javanese: 'Java',\n Kaithi: 'Kthi',\n Kannada: 'Knda',\n Katakana: 'Kana',\n Kayah_Li: 'Kali',\n Kharoshthi: 'Khar',\n Khmer: 'Khmr',\n Khojki: 'Khoj',\n Khudawadi: 'Sind',\n Lao: 'Laoo',\n Latin: 'Latn',\n Lepcha: 'Lepc',\n Limbu: 'Limb',\n Linear_A: 'Lina',\n Linear_B: 'Linb',\n Lisu: 'Lisu',\n Lycian: 'Lyci',\n Lydian: 'Lydi',\n Mahajani: 'Mahj',\n Makasar: 'Maka',\n Malayalam: 'Mlym',\n Mandaic: 'Mand',\n Manichaean: 'Mani',\n Marchen: 'Marc',\n Medefaidrin: 'Medf',\n Masaram_Gondi: 'Gonm',\n Meetei_Mayek: 'Mtei',\n Mende_Kikakui: 'Mend',\n Meroitic_Cursive: 'Merc',\n Meroitic_Hieroglyphs: 'Mero',\n Miao: 'Plrd',\n Modi: 'Modi',\n Mongolian: 'Mong',\n Mro: 'Mroo',\n Multani: 'Mult',\n Myanmar: 'Mymr',\n Nabataean: 'Nbat',\n New_Tai_Lue: 'Talu',\n Newa: 'Newa',\n Nko: 'Nkoo',\n Nushu: 'Nshu',\n Ogham: 'Ogam',\n Ol_Chiki: 'Olck',\n Old_Hungarian: 'Hung',\n Old_Italic: 'Ital',\n Old_North_Arabian: 'Narb',\n Old_Permic: 'Perm',\n Old_Persian: 'Xpeo',\n Old_Sogdian: 'Sogo',\n Old_South_Arabian: 'Sarb',\n Old_Turkic: 'Orkh',\n Oriya: 'Orya',\n Osage: 'Osge',\n Osmanya: 'Osma',\n Pahawh_Hmong: 'Hmng',\n Palmyrene: 'Palm',\n Pau_Cin_Hau: 'Pauc',\n Phags_Pa: 'Phag',\n Phoenician: 'Phnx',\n Psalter_Pahlavi: 'Phlp',\n Rejang: 'Rjng',\n Runic: 'Runr',\n Samaritan: 'Samr',\n Saurashtra: 'Saur',\n Sharada: 'Shrd',\n Shavian: 'Shaw',\n Siddham: 'Sidd',\n SignWriting: 'Sgnw',\n Sinhala: 'Sinh',\n Sogdian: 'Sogd',\n Sora_Sompeng: 'Sora',\n Soyombo: 'Soyo',\n Sundanese: 'Sund',\n Syloti_Nagri: 'Sylo',\n Syriac: 'Syrc',\n Tagalog: 'Tglg',\n Tagbanwa: 'Tagb',\n Tai_Le: 'Tale',\n Tai_Tham: 'Lana',\n Tai_Viet: 'Tavt',\n Takri: 'Takr',\n Tamil: 'Taml',\n Tangut: 'Tang',\n Telugu: 'Telu',\n Thaana: 'Thaa',\n Thai: 'Thai',\n Tibetan: 'Tibt',\n Tifinagh: 'Tfng',\n Tirhuta: 'Tirh',\n Ugaritic: 'Ugar',\n Vai: 'Vaii',\n Warang_Citi: 'Wara',\n Yi: 'Yiii',\n Zanabazar_Square: 'Zanb'\n};\n\nvar SCRIPT_VALUE_ALIASES_TO_VALUE = inverseMap(SCRIPT_VALUE_TO_ALIASES);\n\nfunction inverseMap(data) {\n var inverse = {};\n\n for (var name in data) {\n if (!data.hasOwnProperty(name)) {\n continue;\n }\n var value = data[name];\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n inverse[value[i]] = name;\n }\n } else {\n inverse[value] = name;\n }\n }\n\n return inverse;\n}\n\nfunction isValidName(name) {\n return NON_BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isValidValue(name, value) {\n if (isGeneralCategoryName(name)) {\n return isGeneralCategoryValue(value);\n }\n\n if (isScriptCategoryName(name)) {\n return isScriptCategoryValue(value);\n }\n\n return false;\n}\n\nfunction isAlias(name) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isGeneralCategoryName(name) {\n return name === 'General_Category' || name == 'gc';\n}\n\nfunction isScriptCategoryName(name) {\n return name === 'Script' || name === 'Script_Extensions' || name === 'sc' || name === 'scx';\n}\n\nfunction isGeneralCategoryValue(value) {\n return GENERAL_CATEGORY_VALUE_TO_ALIASES.hasOwnProperty(value) || GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value);\n}\n\nfunction isScriptCategoryValue(value) {\n return SCRIPT_VALUE_TO_ALIASES.hasOwnProperty(value) || SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value);\n}\n\nfunction isBinaryPropertyName(name) {\n return BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction getCanonicalName(name) {\n if (NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n return null;\n}\n\nfunction getCanonicalValue(value) {\n if (GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value)) {\n return GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES[value];\n }\n\n if (SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value)) {\n return SCRIPT_VALUE_ALIASES_TO_VALUE[value];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(value)) {\n return BINARY_ALIASES_TO_PROP_NAMES[value];\n }\n\n return null;\n}\n\nmodule.exports = {\n isAlias: isAlias,\n isValidName: isValidName,\n isValidValue: isValidValue,\n isGeneralCategoryValue: isGeneralCategoryValue,\n isScriptCategoryValue: isScriptCategoryValue,\n isBinaryPropertyName: isBinaryPropertyName,\n getCanonicalName: getCanonicalName,\n getCanonicalValue: getCanonicalValue,\n\n NON_BINARY_PROP_NAMES_TO_ALIASES: NON_BINARY_PROP_NAMES_TO_ALIASES,\n NON_BINARY_ALIASES_TO_PROP_NAMES: NON_BINARY_ALIASES_TO_PROP_NAMES,\n\n BINARY_PROP_NAMES_TO_ALIASES: BINARY_PROP_NAMES_TO_ALIASES,\n BINARY_ALIASES_TO_PROP_NAMES: BINARY_ALIASES_TO_PROP_NAMES,\n\n GENERAL_CATEGORY_VALUE_TO_ALIASES: GENERAL_CATEGORY_VALUE_TO_ALIASES,\n GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES: GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES,\n\n SCRIPT_VALUE_TO_ALIASES: SCRIPT_VALUE_TO_ALIASES,\n SCRIPT_VALUE_ALIASES_TO_VALUE: SCRIPT_VALUE_ALIASES_TO_VALUE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar compatTranspiler = require('./compat-transpiler');\nvar generator = require('./generator');\nvar optimizer = require('./optimizer');\nvar parser = require('./parser');\nvar _transform = require('./transform');\nvar _traverse = require('./traverse');\nvar fa = require('./interpreter/finite-automaton');\n\nvar _require = require('./compat-transpiler/runtime'),\n RegExpTree = _require.RegExpTree;\n\n/**\n * An API object for RegExp processing (parsing/transform/generation).\n */\n\n\nvar regexpTree = {\n /**\n * Parser module exposed.\n */\n parser: parser,\n\n /**\n * Expose finite-automaton module.\n */\n fa: fa,\n\n /**\n * `TransformResult` exposed.\n */\n TransformResult: _transform.TransformResult,\n\n /**\n * Parses a regexp string, producing an AST.\n *\n * @param string regexp\n *\n * a regular expression in different formats: string, AST, RegExp.\n *\n * @param Object options\n *\n * parsing options for this parse call. Default are:\n *\n * - captureLocations: boolean\n * - any other custom options\n *\n * @return Object AST\n */\n parse: function parse(regexp, options) {\n return parser.parse('' + regexp, options);\n },\n\n\n /**\n * Traverses a RegExp AST.\n *\n * @param Object ast\n * @param Object | Array<Object> handlers\n *\n * Each `handler` is an object containing handler function for needed\n * node types. Example:\n *\n * regexpTree.traverse(ast, {\n * onChar(node) {\n * ...\n * },\n * });\n *\n * The value for a node type may also be an object with functions pre and post.\n * This enables more context-aware analyses, e.g. measuring star height.\n */\n traverse: function traverse(ast, handlers, options) {\n return _traverse.traverse(ast, handlers, options);\n },\n\n\n /**\n * Transforms a regular expression.\n *\n * A regexp can be passed in different formats (string, regexp or AST),\n * applying a set of transformations. It is a convenient wrapper\n * on top of \"parse-traverse-generate\" tool chain.\n *\n * @param string | AST | RegExp regexp - a regular expression;\n * @param Object | Array<Object> handlers - a list of handlers.\n *\n * @return TransformResult - a transformation result.\n */\n transform: function transform(regexp, handlers) {\n return _transform.transform(regexp, handlers);\n },\n\n\n /**\n * Generates a RegExp string from an AST.\n *\n * @param Object ast\n *\n * Invariant:\n *\n * regexpTree.generate(regexpTree.parse('/[a-z]+/i')); // '/[a-z]+/i'\n */\n generate: function generate(ast) {\n return generator.generate(ast);\n },\n\n\n /**\n * Creates a RegExp object from a regexp string.\n *\n * @param string regexp\n */\n toRegExp: function toRegExp(regexp) {\n var compat = this.compatTranspile(regexp);\n return new RegExp(compat.getSource(), compat.getFlags());\n },\n\n\n /**\n * Optimizes a regular expression by replacing some\n * sub-expressions with their idiomatic patterns.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n optimize: function optimize(regexp, whitelist) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n blacklist = _ref.blacklist;\n\n return optimizer.optimize(regexp, { whitelist: whitelist, blacklist: blacklist });\n },\n\n\n /**\n * Translates a regular expression in new syntax or in new format\n * into equivalent expressions in old syntax.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n compatTranspile: function compatTranspile(regexp, whitelist) {\n return compatTranspiler.transform(regexp, whitelist);\n },\n\n\n /**\n * Executes a regular expression on a string.\n *\n * @param RegExp|string re - a regular expression.\n * @param string string - a testing string.\n */\n exec: function exec(re, string) {\n if (typeof re === 'string') {\n var compat = this.compatTranspile(re);\n var extra = compat.getExtra();\n\n if (extra.namedCapturingGroups) {\n re = new RegExpTree(compat.toRegExp(), {\n flags: compat.getFlags(),\n source: compat.getSource(),\n groups: extra.namedCapturingGroups\n });\n } else {\n re = compat.toRegExp();\n }\n }\n\n return re.exec(string);\n }\n};\n\nmodule.exports = regexpTree;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar generator = require('../generator');\nvar parser = require('../parser');\nvar traverse = require('../traverse');\n\n/**\n * Transform result.\n */\n\nvar TransformResult = function () {\n /**\n * Initializes a transform result for an AST.\n *\n * @param Object ast - an AST node\n * @param mixed extra - any extra data a transform may return\n */\n function TransformResult(ast) {\n var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n _classCallCheck(this, TransformResult);\n\n this._ast = ast;\n this._source = null;\n this._string = null;\n this._regexp = null;\n this._extra = extra;\n }\n\n _createClass(TransformResult, [{\n key: 'getAST',\n value: function getAST() {\n return this._ast;\n }\n }, {\n key: 'setExtra',\n value: function setExtra(extra) {\n this._extra = extra;\n }\n }, {\n key: 'getExtra',\n value: function getExtra() {\n return this._extra;\n }\n }, {\n key: 'toRegExp',\n value: function toRegExp() {\n if (!this._regexp) {\n this._regexp = new RegExp(this.getSource(), this._ast.flags);\n }\n return this._regexp;\n }\n }, {\n key: 'getSource',\n value: function getSource() {\n if (!this._source) {\n this._source = generator.generate(this._ast.body);\n }\n return this._source;\n }\n }, {\n key: 'getFlags',\n value: function getFlags() {\n return this._ast.flags;\n }\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._string) {\n this._string = generator.generate(this._ast);\n }\n return this._string;\n }\n }]);\n\n return TransformResult;\n}();\n\nmodule.exports = {\n /**\n * Expose `TransformResult`.\n */\n TransformResult: TransformResult,\n\n /**\n * Transforms a regular expression applying a set of\n * transformation handlers.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n *\n * @param Object | Array<Object>:\n *\n * a handler (or a list of handlers) from `traverse` API.\n *\n * @return TransformResult instance.\n *\n * Example:\n *\n * transform(/[a-z]/i, {\n * onChar(path) {\n * const {node} = path;\n *\n * if (...) {\n * path.remove();\n * }\n * }\n * });\n */\n transform: function transform(regexp, handlers) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n traverse.traverse(ast, handlers);\n\n return new TransformResult(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Flattens a nested disjunction node to a list.\n *\n * /a|b|c|d/\n *\n * {{{a, b}, c}, d} -> [a, b, c, d]\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction disjunctionToList(node) {\n if (node.type !== 'Disjunction') {\n throw new TypeError('Expected \"Disjunction\" node, got \"' + node.type + '\"');\n }\n\n var list = [];\n\n if (node.left && node.left.type === 'Disjunction') {\n list.push.apply(list, _toConsumableArray(disjunctionToList(node.left)).concat([node.right]));\n } else {\n list.push(node.left, node.right);\n }\n\n return list;\n}\n\n/**\n * Builds a nested disjunction node from a list.\n *\n * /a|b|c|d/\n *\n * [a, b, c, d] -> {{{a, b}, c}, d}\n */\nfunction listToDisjunction(list) {\n return list.reduce(function (left, right) {\n return {\n type: 'Disjunction',\n left: left,\n right: right\n };\n });\n}\n\n/**\n * Increases a quantifier by one.\n * Does not change greediness.\n * * -> +\n * + -> {2,}\n * ? -> {1,2}\n * {2} -> {3}\n * {2,} -> {3,}\n * {2,3} -> {3,4}\n */\nfunction increaseQuantifierByOne(quantifier) {\n if (quantifier.kind === '*') {\n\n quantifier.kind = '+';\n } else if (quantifier.kind === '+') {\n\n quantifier.kind = 'Range';\n quantifier.from = 2;\n delete quantifier.to;\n } else if (quantifier.kind === '?') {\n\n quantifier.kind = 'Range';\n quantifier.from = 1;\n quantifier.to = 2;\n } else if (quantifier.kind === 'Range') {\n\n quantifier.from += 1;\n if (quantifier.to) {\n quantifier.to += 1;\n }\n }\n}\n\nmodule.exports = {\n disjunctionToList: disjunctionToList,\n listToDisjunction: listToDisjunction,\n increaseQuantifierByOne: increaseQuantifierByOne\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NodePath = require('./node-path');\n\n/**\n * Does an actual AST traversal, using visitor pattern,\n * and calling set of callbacks.\n *\n * Based on https://github.com/olov/ast-traverse\n *\n * Expects AST in Mozilla Parser API: nodes which are supposed to be\n * handled should have `type` property.\n *\n * @param Object root - a root node to start traversal from.\n *\n * @param Object options - an object with set of callbacks:\n *\n * - `pre(node, parent, prop, index)` - a hook called on node enter\n * - `post`(node, parent, prop, index) - a hook called on node exit\n * - `skipProperty(prop)` - a predicated whether a property should be skipped\n */\nfunction astTraverse(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var pre = options.pre;\n var post = options.post;\n var skipProperty = options.skipProperty;\n\n function visit(node, parent, prop, idx) {\n if (!node || typeof node.type !== 'string') {\n return;\n }\n\n var res = undefined;\n if (pre) {\n res = pre(node, parent, prop, idx);\n }\n\n if (res !== false) {\n\n // A node can be replaced during traversal, so we have to\n // recalculate it from the parent, to avoid traversing \"dead\" nodes.\n if (parent && parent[prop]) {\n if (!isNaN(idx)) {\n node = parent[prop][idx];\n } else {\n node = parent[prop];\n }\n }\n\n for (var _prop in node) {\n if (node.hasOwnProperty(_prop)) {\n if (skipProperty ? skipProperty(_prop, node) : _prop[0] === '$') {\n continue;\n }\n\n var child = node[_prop];\n\n // Collection node.\n //\n // NOTE: a node (or several nodes) can be removed or inserted\n // during traversal.\n //\n // Current traversing index is stored on top of the\n // `NodePath.traversingIndexStack`. The stack is used to support\n // recursive nature of the traversal.\n //\n // In this case `NodePath.traversingIndex` (which we use here) is\n // updated in the NodePath remove/insert methods.\n //\n if (Array.isArray(child)) {\n var index = 0;\n NodePath.traversingIndexStack.push(index);\n while (index < child.length) {\n visit(child[index], node, _prop, index);\n index = NodePath.updateTraversingIndex(+1);\n }\n NodePath.traversingIndexStack.pop();\n }\n\n // Simple node.\n else {\n visit(child, node, _prop);\n }\n }\n }\n }\n\n if (post) {\n post(node, parent, prop, idx);\n }\n }\n\n visit(root, null);\n}\n\nmodule.exports = {\n /**\n * Traverses an AST.\n *\n * @param Object ast - an AST node\n *\n * @param Object | Array<Object> handlers:\n *\n * an object (or an array of objects)\n *\n * Each such object contains a handler function per node.\n * In case of an array of handlers, they are applied in order.\n * A handler may return a transformed node (or a different type).\n *\n * The per-node function may instead be an object with functions pre and post.\n * pre is called before visiting the node, post after.\n * If a handler is a function, it is treated as the pre function, with an empty post.\n *\n * @param Object options:\n *\n * a config object, specifying traversal options:\n *\n * `asNodes`: boolean - whether handlers should receives raw AST nodes\n * (false by default), instead of a `NodePath` wrapper. Note, by default\n * `NodePath` wrapper provides a set of convenient method to manipulate\n * a traversing AST, and also has access to all parents list. A raw\n * nodes traversal should be used in rare cases, when no `NodePath`\n * features are needed.\n *\n * Special hooks:\n *\n * - `shouldRun(ast)` - a predicate determining whether the handler\n * should be applied.\n *\n * NOTE: Multiple handlers are used as an optimization of applying all of\n * them in one AST traversal pass.\n */\n traverse: function traverse(ast, handlers) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { asNodes: false };\n\n\n if (!Array.isArray(handlers)) {\n handlers = [handlers];\n }\n\n // Filter out handlers by result of `shouldRun`, if the method is present.\n handlers = handlers.filter(function (handler) {\n if (typeof handler.shouldRun !== 'function') {\n return true;\n }\n return handler.shouldRun(ast);\n });\n\n NodePath.initRegistry();\n\n // Allow handlers to initializer themselves.\n handlers.forEach(function (handler) {\n if (typeof handler.init === 'function') {\n handler.init(ast);\n }\n });\n\n function getPathFor(node, parent, prop, index) {\n var parentPath = NodePath.getForNode(parent);\n var nodePath = NodePath.getForNode(node, parentPath, prop, index);\n\n return nodePath;\n }\n\n // Handle actual nodes.\n astTraverse(ast, {\n /**\n * Handler on node enter.\n */\n pre: function pre(node, parent, prop, index) {\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = handlers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var handler = _step.value;\n\n // \"Catch-all\" `*` handler.\n if (typeof handler['*'] === 'function') {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handler['*'](nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handler['*'](node, parent, prop, index);\n }\n }\n\n // Per-node handler.\n var handlerFuncPre = void 0;\n if (typeof handler[node.type] === 'function') {\n handlerFuncPre = handler[node.type];\n } else if (typeof handler[node.type] === 'object' && typeof handler[node.type].pre === 'function') {\n handlerFuncPre = handler[node.type].pre;\n }\n\n if (handlerFuncPre) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var _handlerResult = handlerFuncPre.call(handler, nodePath);\n // Explicitly stop traversal.\n if (_handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPre.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n },\n // pre func\n\n /**\n * Handler on node exit.\n */\n post: function post(node, parent, prop, index) {\n if (!node) {\n return;\n }\n\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = handlers[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var handler = _step2.value;\n\n // Per-node handler.\n var handlerFuncPost = void 0;\n if (typeof handler[node.type] === 'object' && typeof handler[node.type].post === 'function') {\n handlerFuncPost = handler[node.type].post;\n }\n\n if (handlerFuncPost) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handlerFuncPost.call(handler, nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPost.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n },\n // post func\n\n /**\n * Skip locations by default.\n */\n skipProperty: function skipProperty(prop) {\n return prop === 'loc';\n }\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DEFAULT_COLLECTION_PROP = 'expressions';\nvar DEFAULT_SINGLE_PROP = 'expression';\n\n/**\n * NodePath class encapsulates a traversing node,\n * its parent node, property name in the parent node, and\n * an index (in case if a node is part of a collection).\n * It also provides set of methods for AST manipulation.\n */\n\nvar NodePath = function () {\n /**\n * NodePath constructor.\n *\n * @param Object node - an AST node\n * @param NodePath parentPath - a nullable parent path\n * @param string property - property name of the node in the parent\n * @param number index - index of the node in a collection.\n */\n function NodePath(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n _classCallCheck(this, NodePath);\n\n this.node = node;\n this.parentPath = parentPath;\n this.parent = parentPath ? parentPath.node : null;\n this.property = property;\n this.index = index;\n }\n\n _createClass(NodePath, [{\n key: '_enforceProp',\n value: function _enforceProp(property) {\n if (!this.node.hasOwnProperty(property)) {\n throw new Error('Node of type ' + this.node.type + ' doesn\\'t have \"' + property + '\" collection.');\n }\n }\n\n /**\n * Sets a node into a children collection or the single child.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param number index - index at which to set\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'setChild',\n value: function setChild(node) {\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n\n var childPath = void 0;\n if (index != null) {\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n this.node[property][index] = node;\n childPath = NodePath.getForNode(node, this, property, index);\n } else {\n if (!property) {\n property = DEFAULT_SINGLE_PROP;\n }\n this._enforceProp(property);\n this.node[property] = node;\n childPath = NodePath.getForNode(node, this, property, null);\n }\n return childPath;\n }\n\n /**\n * Appends a node to a children collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'appendChild',\n value: function appendChild(node) {\n var property = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n var end = this.node[property].length;\n return this.setChild(node, end, property);\n }\n\n /**\n * Inserts a node into a collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to insert into a collection\n * @param number index - index at which to insert\n * @param string property - name of the collection property\n */\n\n }, {\n key: 'insertChildAt',\n value: function insertChildAt(node, index) {\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_COLLECTION_PROP;\n\n this._enforceProp(property);\n\n this.node[property].splice(index, 0, node);\n\n // If we inserted a node before the traversing index,\n // we should increase the later.\n if (index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(+1);\n }\n\n this._rebuildIndex(this.node, property);\n }\n\n /**\n * Removes a node.\n */\n\n }, {\n key: 'remove',\n value: function remove() {\n if (this.isRemoved()) {\n return;\n }\n NodePath.registry.delete(this.node);\n\n this.node = null;\n\n if (!this.parent) {\n return;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property].splice(this.index, 1);\n\n // If we remove a node before the traversing index,\n // we should increase the later.\n if (this.index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(-1);\n }\n\n // Rebuild index.\n this._rebuildIndex(this.parent, this.property);\n\n this.index = null;\n this.property = null;\n\n return;\n }\n\n // A simple node.\n delete this.parent[this.property];\n this.property = null;\n }\n\n /**\n * Rebuilds child nodes index (used on remove/insert).\n */\n\n }, {\n key: '_rebuildIndex',\n value: function _rebuildIndex(parent, property) {\n var parentPath = NodePath.getForNode(parent);\n\n for (var i = 0; i < parent[property].length; i++) {\n var path = NodePath.getForNode(parent[property][i], parentPath, property, i);\n path.index = i;\n }\n }\n\n /**\n * Whether the path was removed.\n */\n\n }, {\n key: 'isRemoved',\n value: function isRemoved() {\n return this.node === null;\n }\n\n /**\n * Replaces a node with the passed one.\n */\n\n }, {\n key: 'replace',\n value: function replace(newNode) {\n NodePath.registry.delete(this.node);\n\n this.node = newNode;\n\n if (!this.parent) {\n return null;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property][this.index] = newNode;\n }\n\n // A simple node.\n else {\n this.parent[this.property] = newNode;\n }\n\n // Rebuild the node path for the new node.\n return NodePath.getForNode(newNode, this.parentPath, this.property, this.index);\n }\n\n /**\n * Updates a node inline.\n */\n\n }, {\n key: 'update',\n value: function update(nodeProps) {\n Object.assign(this.node, nodeProps);\n }\n\n /**\n * Returns parent.\n */\n\n }, {\n key: 'getParent',\n value: function getParent() {\n return this.parentPath;\n }\n\n /**\n * Returns nth child.\n */\n\n }, {\n key: 'getChild',\n value: function getChild() {\n var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.node.expressions) {\n return NodePath.getForNode(this.node.expressions[n], this, DEFAULT_COLLECTION_PROP, n);\n } else if (this.node.expression && n == 0) {\n return NodePath.getForNode(this.node.expression, this, DEFAULT_SINGLE_PROP);\n }\n return null;\n }\n\n /**\n * Whether a path node is syntactically equal to the passed one.\n *\n * NOTE: we don't rely on `source` property from the `loc` data\n * (which would be the fastest comparison), since it might be unsync\n * after several modifications. We use here simple `JSON.stringify`\n * excluding the `loc` data.\n *\n * @param NodePath other - path to compare to.\n * @return boolean\n */\n\n }, {\n key: 'hasEqualSource',\n value: function hasEqualSource(path) {\n return JSON.stringify(this.node, jsonSkipLoc) === JSON.stringify(path.node, jsonSkipLoc);\n }\n\n /**\n * JSON-encodes a node skipping location.\n */\n\n }, {\n key: 'jsonEncode',\n value: function jsonEncode() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n format = _ref.format,\n useLoc = _ref.useLoc;\n\n return JSON.stringify(this.node, useLoc ? null : jsonSkipLoc, format);\n }\n\n /**\n * Returns previous sibling.\n */\n\n }, {\n key: 'getPreviousSibling',\n value: function getPreviousSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index - 1], NodePath.getForNode(this.parent), this.property, this.index - 1);\n }\n\n /**\n * Returns next sibling.\n */\n\n }, {\n key: 'getNextSibling',\n value: function getNextSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index + 1], NodePath.getForNode(this.parent), this.property, this.index + 1);\n }\n\n /**\n * Returns a NodePath instance for a node.\n *\n * The same NodePath can be reused in several places, e.g.\n * a parent node passed for all its children.\n */\n\n }], [{\n key: 'getForNode',\n value: function getForNode(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var prop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1;\n\n if (!node) {\n return null;\n }\n\n if (!NodePath.registry.has(node)) {\n NodePath.registry.set(node, new NodePath(node, parentPath, prop, index == -1 ? null : index));\n }\n\n var path = NodePath.registry.get(node);\n\n if (parentPath !== null) {\n path.parentPath = parentPath;\n path.parent = path.parentPath.node;\n }\n\n if (prop !== null) {\n path.property = prop;\n }\n\n if (index >= 0) {\n path.index = index;\n }\n\n return path;\n }\n\n /**\n * Initializes the NodePath registry. The registry is a map from\n * a node to its NodePath instance.\n */\n\n }, {\n key: 'initRegistry',\n value: function initRegistry() {\n if (!NodePath.registry) {\n NodePath.registry = new Map();\n }\n NodePath.registry.clear();\n }\n\n /**\n * Updates index of a currently traversing collection.\n */\n\n }, {\n key: 'updateTraversingIndex',\n value: function updateTraversingIndex(dx) {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1] += dx;\n }\n\n /**\n * Returns current traversing index.\n */\n\n }, {\n key: 'getTraversingIndex',\n value: function getTraversingIndex() {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1];\n }\n }]);\n\n return NodePath;\n}();\n\nNodePath.initRegistry();\n\n/**\n * Index of a currently traversing collection is stored on top of the\n * `NodePath.traversingIndexStack`. Remove/insert methods can adjust\n * this index.\n */\nNodePath.traversingIndexStack = [];\n\n// Helper function used to skip `loc` in JSON operations.\nfunction jsonSkipLoc(prop, value) {\n if (prop === 'loc') {\n return undefined;\n }\n return value;\n}\n\nmodule.exports = NodePath;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Performs a deep copy of an simple object.\n * Only handles scalar values, arrays and objects.\n *\n * @param obj Object\n */\n\nmodule.exports = function clone(obj) {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n var res = void 0;\n if (Array.isArray(obj)) {\n res = [];\n } else {\n res = {};\n }\n for (var i in obj) {\n res[i] = clone(obj[i]);\n }\n return res;\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = require('./dist/regexp-tree');","import browserslist from 'browserslist';\nimport RegexpTree from 'regexp-tree';\nimport { regexes } from 'ua-regexes-lite';\n\n/**\n * Array of numbers to array of first and last elements.\n * @param numbers - Array of numbers.\n * @returns Number or two numbers.\n */ function numbersToRanges(numbers) {\n if (typeof numbers === \"number\") {\n return numbers;\n }\n if (numbers.length === 1) {\n return numbers[0];\n }\n return [\n numbers[0],\n numbers[numbers.length - 1]\n ];\n}\n\nvar SemverPart;\n(function(SemverPart) {\n SemverPart[SemverPart[\"Major\"] = 0] = \"Major\";\n SemverPart[SemverPart[\"Minor\"] = 1] = \"Minor\";\n SemverPart[SemverPart[\"Patch\"] = 2] = \"Patch\";\n})(SemverPart || (SemverPart = {}));\n\n/**\n * Get semver from string or array.\n * @param version - Target to convert.\n * @returns Array with semver parts.\n */ function semverify(version) {\n const versionParts = Array.isArray(version) ? version : version.toString().split(\".\");\n if (versionParts[0] === \"all\") {\n return [\n Infinity,\n 0,\n 0\n ];\n }\n let versionPart = null;\n let semverPart = null;\n const semver = [\n 0,\n 0,\n 0\n ];\n for(let i = 0; i < 3; i++){\n versionPart = versionParts[i];\n if (typeof versionPart === \"undefined\") {\n continue;\n }\n semverPart = typeof versionPart === \"number\" ? versionPart : parseInt(versionPart, 10);\n if (isNaN(semverPart)) {\n return null;\n }\n semver[i] = semverPart;\n }\n return semver;\n}\n/**\n * Get semver range.\n * @param from\n * @param to\n * @returns Semver range.\n */ function rangeSemver(from, to) {\n let partIndex = 0;\n const range = [];\n for(let i = 2; i >= 0; i--){\n if (from[i] !== to[i]) {\n partIndex = i;\n break;\n }\n }\n for(let i1 = from[partIndex], max = to[partIndex]; i1 <= max; i1++){\n range.push(from.map((v, j)=>j === partIndex ? i1 : v));\n }\n return range;\n}\n/**\n * Compare semvers.\n * @param a - Semver to compare.\n * @param b - Semver to compare with.\n * @param options - Compare options.\n * @returns Equals or not.\n */ function compareSemvers(a, b, options) {\n const [major, minor, patch] = a;\n const [majorBase, minorBase, patchBase] = b;\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n if (majorBase === Infinity) {\n return true;\n }\n const compareMinor = !ignoreMinor;\n const comparePatch = compareMinor && !ignorePatch;\n if (allowHigherVersions) {\n if (comparePatch && patch < patchBase || compareMinor && minor < minorBase) {\n return false;\n }\n return major >= majorBase;\n }\n if (comparePatch && patch !== patchBase || compareMinor && minor !== minorBase) {\n return false;\n }\n return major === majorBase;\n}\n/**\n * Get required semver parts count.\n * @param version - Semver parts or ranges.\n * @param options - Semver compare options.\n * @returns Required semver parts count.\n */ function getRequiredSemverPartsCount(version, options) {\n const { ignoreMinor , ignorePatch , allowZeroSubversions } = options;\n let shouldRepeatCount = ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowZeroSubversions) {\n for(let i = shouldRepeatCount - 1; i > 0; i--){\n if (version[i] !== 0 || shouldRepeatCount === 1) {\n break;\n }\n shouldRepeatCount--;\n }\n }\n return shouldRepeatCount;\n}\n\n/**\n * Browsers strings to info objects.\n * @param browsersList - Browsers strings with family and version.\n * @returns Browser info objects.\n */ function parseBrowsersList(browsersList) {\n return browsersList.reduce((browsers, browser)=>{\n const [family, versionString, versionStringTo] = browser.split(/ |-/);\n const version = semverify(versionString);\n const versions = !version ? [] : versionStringTo ? rangeSemver(version, semverify(versionStringTo)) : [\n version\n ];\n return versions.reduce((browsers, semver)=>{\n if (semver) {\n browsers.push({\n family,\n version: semver\n });\n }\n return browsers;\n }, browsers);\n }, []);\n}\n/**\n * Request browsers list.\n * @param options - Options to get browsers list.\n * @returns Browser info objects.\n */ function getBrowsersList(options = {}) {\n const { browsers , ...browserslistOptions } = options;\n const browsersList = browserslist(browsers, browserslistOptions);\n const parsedBrowsers = parseBrowsersList(browsersList);\n return parsedBrowsers;\n}\n\n/**\n * Compare two arrays.\n * @param a - Array to compare.\n * @param b - Array to compare.\n * @param from - Index to start compare from.\n * @returns Equals or not.\n */ function compareArrays(a, b, from = 0) {\n const len = a.length;\n for(let i = from; i < len; i++){\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Clone simple object.\n * @param value\n * @returns Object clone.\n */ function clone(value) {\n if (value === null || typeof value !== \"object\") {\n return value;\n }\n /* eslint-disable */ const copy = Array.isArray(value) ? [] : {};\n let i;\n for(i in value){\n copy[i] = clone(value[i]);\n }\n /* eslint-enable */ return copy;\n}\n/**\n * Concat arrays.\n * @param items\n * @returns Concatinated arrays.\n */ function concat(items) {\n return [].concat(...items);\n}\n\n/**\n * Merge browser info object to map with versions.\n * @param browsers - Browser info object to merge.\n * @returns Merged browsers map.\n */ function mergeBrowserVersions(browsers) {\n const merge = new Map();\n browsers.forEach(({ family , version })=>{\n const versions = merge.get(family);\n if (versions) {\n const strVersion = version.join(\".\");\n if (versions.every((_)=>_.join(\".\") !== strVersion)) {\n versions.push(version);\n }\n return;\n }\n merge.set(family, [\n version\n ]);\n });\n merge.forEach((versions)=>{\n versions.sort((a, b)=>{\n for(const i in a){\n if (a[i] !== b[i]) {\n return a[i] - b[i];\n }\n }\n return 0;\n });\n });\n return merge;\n}\n/**\n * Versions to ranged versions.\n * @param versions - Semver versions list.\n * @returns Ranged versions list.\n */ function versionsListToRanges(versions) {\n if (versions.length < 2) {\n return versions;\n }\n const max = versions.length + 1;\n const ranges = [];\n let prev = null;\n let current = versions[0];\n let major = [\n current[SemverPart.Major]\n ];\n let minor = [\n current[SemverPart.Minor]\n ];\n let patch = [\n current[SemverPart.Patch]\n ];\n let part = null;\n for(let i = 1; i < max; i++){\n prev = versions[i - 1];\n current = versions[i] || [];\n for(let p = SemverPart.Major; p <= SemverPart.Patch; p++){\n if ((p === part || part === null) && prev[p] + 1 === current[p] && compareArrays(prev, current, p + 1)) {\n part = p;\n if (p === SemverPart.Major) {\n major.push(current[SemverPart.Major]);\n } else {\n major = current[SemverPart.Major];\n }\n if (p === SemverPart.Minor) {\n minor.push(current[SemverPart.Minor]);\n } else {\n minor = current[SemverPart.Minor];\n }\n if (p === SemverPart.Patch) {\n patch.push(current[SemverPart.Patch]);\n } else {\n patch = current[SemverPart.Patch];\n }\n break;\n }\n if (part === p || prev[p] !== current[p]) {\n ranges.push([\n numbersToRanges(major),\n numbersToRanges(minor),\n numbersToRanges(patch)\n ]);\n major = [\n current[SemverPart.Major]\n ];\n minor = [\n current[SemverPart.Minor]\n ];\n patch = [\n current[SemverPart.Patch]\n ];\n part = null;\n break;\n }\n }\n }\n return ranges;\n}\n\nfunction AstRegExpNode(body) {\n return {\n type: \"RegExp\",\n body,\n flags: \"\"\n };\n}\nfunction AlternativeNode(...expressions) {\n const exps = concat(expressions).filter(Boolean);\n if (exps.length === 1) {\n return exps[0];\n }\n return {\n type: \"Alternative\",\n expressions: exps\n };\n}\nfunction SimpleCharNode(value) {\n return {\n type: \"Char\",\n kind: \"simple\",\n value: String(value),\n codePoint: NaN\n };\n}\nfunction MetaCharNode(value) {\n return {\n type: \"Char\",\n kind: \"meta\",\n value,\n codePoint: NaN\n };\n}\nfunction ClassRangeNode(from, to) {\n return {\n type: \"ClassRange\",\n from,\n to\n };\n}\nfunction CharacterClassNode(...expressions) {\n return {\n type: \"CharacterClass\",\n expressions: concat(expressions).filter(Boolean)\n };\n}\nfunction SimpleQuantifierNode(kind) {\n return {\n type: \"Quantifier\",\n kind,\n greedy: true\n };\n}\nfunction RangeQuantifierNode(from, to) {\n return {\n type: \"Quantifier\",\n kind: \"Range\",\n from,\n to,\n greedy: true\n };\n}\nfunction CapturingGroupNode(expression) {\n return {\n type: \"Group\",\n capturing: true,\n expression,\n number: null\n };\n}\nfunction RepetitionNode(expression, quantifier) {\n return {\n type: \"Repetition\",\n expression,\n quantifier\n };\n}\nfunction DisjunctionNode(...expressions) {\n const exprs = concat(expressions).filter(Boolean);\n if (exprs.length === 1) {\n return exprs[0];\n }\n const disjunction = {\n type: \"Disjunction\",\n left: null,\n right: exprs.pop()\n };\n exprs.reduceRight((disjunction, expr, i)=>{\n if (i === 0) {\n disjunction.left = expr;\n return disjunction;\n }\n disjunction.left = {\n type: \"Disjunction\",\n left: null,\n right: expr\n };\n return disjunction.left;\n }, disjunction);\n return disjunction;\n}\nfunction DisjunctionCapturingGroupNode(...expressions) {\n const expr = DisjunctionNode(...expressions);\n if (expr.type === \"Disjunction\") {\n return CapturingGroupNode(expr);\n }\n return expr;\n}\nfunction DigitPatternNode() {\n return MetaCharNode(\"\\\\d\");\n}\nfunction NumberPatternNode(quantifier = SimpleQuantifierNode(\"+\")) {\n const numberPattern = RepetitionNode(DigitPatternNode(), quantifier);\n return numberPattern;\n}\nfunction NumberCharsNode(value) {\n return AlternativeNode(Array.from(String(value), SimpleCharNode));\n}\n\n/**\n * Check node whether is number pattern.\n * @param node - AST node to check.\n * @returns Is number pattern or not.\n */ function isNumberPatternNode(node) {\n if (node.type === \"Group\" && node.expression.type === \"Repetition\") {\n const { expression , quantifier } = node.expression;\n return expression.type === \"Char\" && expression.value === \"\\\\d\" && quantifier.kind === \"+\" && quantifier.greedy;\n }\n return false;\n}\n/**\n * Check node whether is char node.\n * @param node - AST node to check.\n * @param value - Value to compare.\n * @returns Is char node or not.\n */ function isCharNode(node, value) {\n if (node && node.type === \"Char\") {\n return typeof value === \"undefined\" || value instanceof RegExp && value.test(node.value) || String(value) === node.value;\n }\n return false;\n}\n/**\n * Check node whether is digit range.\n * @param node - AST node to check.\n * @returns Is digit range or not.\n */ function isDigitRangeNode(node) {\n if (node.type === \"CharacterClass\" && node.expressions.length === 1) {\n const [expression] = node.expressions;\n return expression.type === \"ClassRange\" && isCharNode(expression.from, /\\d/) && isCharNode(expression.to, /\\d/);\n }\n return false;\n}\n/**\n * Check node whether is expression.\n * @param node - AST node to check.\n * @returns Is expression node or not.\n */ function isExpressionNode(node) {\n return node.type !== \"RegExp\" && node.type !== \"ClassRange\" && node.type !== \"Quantifier\";\n}\nfunction parseRegex(regex) {\n return typeof regex === \"string\" ? RegexpTree.parse(regex.replace(/^([^/])/, \"/$1\").replace(/([^/])$/, \"$1/\")) : regex instanceof RegExp ? RegexpTree.parse(regex) : regex;\n}\n/**\n * Get regex from string or AST.\n * @param src - String or AST.\n * @returns RegExp.\n */ function toRegex(src) {\n return typeof src === \"string\" ? new RegExp(src) : new RegExp(RegexpTree.generate(src.body), src.flags);\n}\n/**\n * Get string from regex or AST.\n * @param src - RegExp or AST.\n * @returns String.\n */ function toString(src) {\n return typeof src === \"string\" ? src : src instanceof RegExp ? src.toString() : RegexpTree.generate(src);\n}\n\nconst classes = [\n \"RegExp\",\n \"Disjunction\",\n \"Alternative\",\n \"Assertion\",\n \"Char\",\n \"CharacterClass\",\n \"ClassRange\",\n \"Backreference\",\n \"Group\",\n \"Repetition\",\n \"Quantifier\"\n];\n/**\n * Create traversal visitors.\n * @param visitors\n * @returns Traversal handlers.\n */ function visitors(visitors) {\n const { every } = visitors;\n if (!every) {\n return visitors;\n }\n if (typeof every === \"function\") {\n return {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n \"*\": every,\n ...visitors\n };\n }\n return classes.reduce((newVisitors, className)=>{\n const visitor = visitors[className];\n const visitorPre = visitor ? \"pre\" in visitor ? visitor.pre : visitor : null;\n const visitorPost = visitor ? \"post\" in visitor ? visitor.post : null : null;\n newVisitors[className] = {\n pre (nodePath) {\n if (every.pre(nodePath) !== false && visitorPre) {\n return visitorPre(nodePath);\n }\n return true;\n },\n post (nodePath) {\n if (every.post(nodePath) !== false && visitorPost) {\n return visitorPost(nodePath);\n }\n return true;\n }\n };\n return newVisitors;\n }, {});\n}\n\nfunction optimizeRegex(regex) {\n // Optimization requires filled codePoints\n const regexAst = RegexpTree.optimize(parseRegex(toString(regex))).getAST();\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n const { parent , node } = nodePath;\n const { expression } = node;\n node.capturing = true;\n if (parent.type === \"RegExp\" || expression.type !== \"Disjunction\" && parent.type !== \"Repetition\" || expression.type === \"Disjunction\" && parent.type === \"Disjunction\") {\n nodePath.replace(nodePath.node.expression);\n }\n }\n });\n return regexAst;\n}\n/**\n * Merge digits patterns if possible.\n * @param a\n * @param b\n * @returns Merged node.\n */ function mergeDigits(a, b) {\n if (isCharNode(a) && isCharNode(b) && a.value === b.value) {\n return b;\n }\n if (isCharNode(a, /\\d/) && isDigitRangeNode(b) && Number(b.expressions[0].from.value) - Number(a.value) === 1) {\n return {\n ...b,\n expressions: [\n {\n ...b.expressions[0],\n from: a\n }\n ]\n };\n }\n if (isDigitRangeNode(a) && isCharNode(b, /\\d/) && Number(b.value) - Number(a.expressions[0].to.value) === 1) {\n return {\n ...a,\n expressions: [\n {\n ...a.expressions[0],\n to: b\n }\n ]\n };\n }\n return null;\n}\n/**\n * Optimize segment number patterns.\n * @param patterns\n * @returns Optimized segment number patterns.\n */ function optimizeSegmentNumberPatterns(patterns) {\n return patterns.reduce((patterns, node)=>{\n const prevNode = patterns[patterns.length - 1];\n if (prevNode && node.type === \"Alternative\" && prevNode.type === \"Alternative\" && node.expressions.length === prevNode.expressions.length) {\n const merged = prevNode.expressions.reduceRight((exps, exp, i)=>{\n if (!exps) {\n return exps;\n }\n const merged = mergeDigits(exp, node.expressions[i]);\n if (merged) {\n exps.unshift(merged);\n } else {\n return null;\n }\n return exps;\n }, []);\n if (merged) {\n node.expressions = merged;\n patterns.pop();\n }\n }\n patterns.push(node);\n return patterns;\n }, []);\n}\n\n/**\n * Transform number to digits array.\n * @param num - Target number.\n * @returns Digits array.\n */ function numberToDigits(num) {\n return Array.from(num.toString(), Number);\n}\n\n/**\n * Get digit pattern.\n * @param digit - Ray start.\n * @param includes - Include start digit or use next.\n * @returns Digit pattern.\n */ function rayRangeDigitPattern(digit, includes) {\n const rangeStart = digit + Number(!includes);\n if (rangeStart === 0) {\n return DigitPatternNode();\n }\n if (rangeStart === 9) {\n return SimpleCharNode(\"9\");\n }\n if (rangeStart > 9) {\n return null;\n }\n return CharacterClassNode(ClassRangeNode(SimpleCharNode(rangeStart), SimpleCharNode(\"9\")));\n}\n/**\n * Create numeric ray pattern.\n * @param from - Start from this number.\n * @returns Numeric ray pattern parts.\n */ function rayToNumberPatterns(from) {\n if (from === 0) {\n return [\n NumberPatternNode()\n ];\n }\n const digits = numberToDigits(from);\n const digitsCount = digits.length;\n const other = NumberPatternNode(RangeQuantifierNode(digitsCount + 1));\n const zeros = digitsCount - 1;\n if (from / Math.pow(10, zeros) === digits[0]) {\n return [\n AlternativeNode(rayRangeDigitPattern(digits[0], true), Array.from({\n length: zeros\n }, DigitPatternNode)),\n other\n ];\n }\n const raysNumberPatterns = digits.reduce((topNodes, _, i)=>{\n const ri = digitsCount - i - 1;\n const d = i === 0;\n let prev = SimpleCharNode(\"\");\n const nodes = digits.reduce((nodes, digit, j)=>{\n if (j < ri) {\n nodes.push(SimpleCharNode(digit));\n } else if (prev) {\n if (j > ri) {\n nodes.push(DigitPatternNode());\n } else {\n prev = rayRangeDigitPattern(digit, d);\n if (prev) {\n nodes.push(prev);\n } else {\n return [];\n }\n }\n }\n return nodes;\n }, []);\n if (nodes.length) {\n topNodes.push(nodes);\n }\n return topNodes;\n }, []);\n const numberPatterns = raysNumberPatterns.map((_)=>AlternativeNode(_));\n numberPatterns.push(other);\n return numberPatterns;\n}\n\n/**\n * Get digit pattern.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param zeros - Zeros to add as prefix.\n * @returns Digit pattern.\n */ function segmentRangeNumberPattern(from, to, zeros) {\n if (to < from) {\n return null;\n }\n const fromNode = SimpleCharNode(from);\n const toNode = SimpleCharNode(to);\n const zerosPrefix = typeof zeros === \"number\" && zeros > 0 ? Array.from({\n length: zeros\n }, ()=>SimpleCharNode(0)) : [];\n const addPrefix = zerosPrefix.length ? (node)=>AlternativeNode(zerosPrefix, node) : (node)=>node;\n if (from === to) {\n return addPrefix(fromNode);\n }\n if (from === 0 && to === 9) {\n return addPrefix(DigitPatternNode());\n }\n if (to - from === 1) {\n return addPrefix(CharacterClassNode(fromNode, toNode));\n }\n return addPrefix(CharacterClassNode(ClassRangeNode(fromNode, toNode)));\n}\n/**\n * Split segment range to decade ranges.\n * @param from - Segment start.\n * @param to - Segment end.\n * @returns Ranges.\n */ function splitToDecadeRanges(from, to) {\n const ranges = [];\n let num = from;\n let decade = 1;\n do {\n decade *= 10;\n if (num < decade) {\n ranges.push([\n num,\n Math.min(decade - 1, to)\n ]);\n num = decade;\n }\n }while (decade <= to);\n return ranges;\n}\n/**\n * Get common and diffs of two numbers (arrays of digits).\n * @param a - Digits.\n * @param b - Other digits.\n * @returns Common part and diffs.\n */ function splitCommonDiff(a, b) {\n const len = a.length;\n if (len !== b.length || a[0] !== b[0]) {\n return null;\n }\n let common = a[0].toString();\n let currA = 0;\n let currB = 0;\n let diffA = \"\";\n let diffB = \"\";\n for(let i = 1; i < len; i++){\n currA = a[i];\n currB = b[i];\n if (currA === currB) {\n common += currA;\n } else {\n diffA += currA;\n diffB += currB;\n }\n }\n return [\n common,\n parseInt(diffA, 10),\n parseInt(diffB, 10)\n ];\n}\n/**\n * Get segment patterns.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param digitsInNumber - How many digits should be en number. Will be filled by zeros.\n * @returns Segment patterns.\n */ function segmentToNumberPatterns(from, to, digitsInNumber = 0) {\n const fromDigits = numberToDigits(from);\n const digitsCount = fromDigits.length;\n if (from < 10 && to < 10 || from === to) {\n const zeros = digitsInNumber - digitsCount;\n return [\n segmentRangeNumberPattern(from, to, zeros)\n ];\n }\n const toDigits = numberToDigits(to);\n if (digitsCount !== toDigits.length) {\n const decadeRanges = splitToDecadeRanges(from, to);\n const parts = concat(decadeRanges.map(([from, to])=>segmentToNumberPatterns(from, to, digitsInNumber)));\n return parts;\n }\n const commonStart = splitCommonDiff(fromDigits, toDigits);\n if (Array.isArray(commonStart)) {\n const [common, from1, to1] = commonStart;\n const digitsInNumber1 = digitsCount - common.length;\n const diffParts = segmentToNumberPatterns(from1, to1, digitsInNumber1);\n return [\n AlternativeNode(Array.from(common, SimpleCharNode), DisjunctionCapturingGroupNode(diffParts))\n ];\n }\n const range = Array.from({\n length: digitsCount - 1\n });\n const middleSegment = segmentRangeNumberPattern(fromDigits[0] + 1, toDigits[0] - 1);\n const parts1 = [\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(fromDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(digit + d, 9);\n }));\n }),\n // but output more readable\n ...middleSegment ? [\n AlternativeNode(middleSegment, Array.from({\n length: digitsCount - 1\n }, ()=>DigitPatternNode()))\n ] : [],\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(toDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(0, digit - d);\n }));\n })\n ];\n return optimizeSegmentNumberPatterns(parts1);\n}\n\n/**\n * Get regex for given numeric range.\n * @param from - Range start.\n * @param to - Range end.\n * @returns Range pattern.\n */ function rangeToRegex(from, to = Infinity) {\n if (from === Infinity) {\n return NumberPatternNode();\n }\n const numberPatterns = to === Infinity ? rayToNumberPatterns(from) : segmentToNumberPatterns(from, to);\n const regex = DisjunctionCapturingGroupNode(numberPatterns);\n return regex;\n}\n\n/**\n * Find matched versions.\n * @param minVersion - Semver version.\n * @param maxVersion - Semver version.\n * @param bases - Base semver versions.\n * @param options - Semver compare options.\n * @returns Matched versions.\n */ function findMatchedVersions(minVersion, maxVersion, bases, options) {\n const compareOptions = {\n ...options,\n allowHigherVersions: true\n };\n const minComparator = (ver)=>compareSemvers(ver, minVersion, compareOptions);\n const maxComparator = (ver)=>compareSemvers(maxVersion, ver, compareOptions);\n const comparator = minVersion && maxVersion ? (ver)=>minComparator(ver) && maxComparator(ver) : minVersion ? minComparator : maxVersion ? maxComparator : ()=>true;\n return bases.filter(comparator);\n}\n\n/**\n * Get useragent regexes for given browsers.\n * @param browsers - Browsers.\n * @param options - Semver compare options.\n * @param targetRegexes - Override default regexes.\n * @returns User agent regexes.\n */ function getRegexesForBrowsers(browsers, options, targetRegexes = regexes) {\n const result = [];\n let prevFamily = \"\";\n let prevRegexIsGlobal = false;\n targetRegexes.forEach((regex)=>{\n const requestVersions = browsers.get(regex.family);\n if (!requestVersions) {\n return;\n }\n let { version , minVersion , maxVersion } = regex;\n if (version) {\n minVersion = version;\n maxVersion = version;\n }\n let matchedVersions = findMatchedVersions(minVersion, maxVersion, requestVersions, options);\n if (matchedVersions.length) {\n // regex contains global patch\n if (prevFamily === regex.family && prevRegexIsGlobal) {\n version = undefined;\n minVersion = undefined;\n maxVersion = undefined;\n matchedVersions = requestVersions;\n result.pop();\n }\n result.push({\n ...regex,\n version,\n minVersion,\n maxVersion,\n requestVersions,\n matchedVersions\n });\n }\n prevRegexIsGlobal = !version && !minVersion && !maxVersion;\n prevFamily = regex.family;\n });\n return result;\n}\n\n/**\n * Compile regexes.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Objects with info about compiled regexes.\n */ function compileRegexes(regexes) {\n return regexes.map(({ regexAst , ...regex })=>{\n const optimizedRegexAst = optimizeRegex(regexAst);\n return {\n ...regex,\n regexAst: optimizedRegexAst,\n regex: toRegex(optimizedRegexAst)\n };\n });\n}\n/**\n * Compile regex.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Compiled common regex.\n */ function compileRegex(regexes) {\n const partsRegexes = regexes.map(({ regexAst })=>CapturingGroupNode(regexAst.body));\n const regexAst = optimizeRegex(AstRegExpNode(DisjunctionCapturingGroupNode(partsRegexes)));\n return toRegex(regexAst);\n}\n\n/**\n * Get number patterns count from the regex.\n * @param regex - Target regex.\n * @returns Number patterns count.\n */ function getNumberPatternsCount(regex) {\n const regexAst = parseRegex(regex);\n let count = 0;\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node)) {\n count++;\n }\n }\n });\n return count;\n}\nfunction replaceNumberPatterns(regex, numbers, numberPatternsCount) {\n let regexAst = parseRegex(regex);\n const numbersToReplace = typeof numberPatternsCount === \"number\" && numberPatternsCount < numbers.length ? numbers.slice(0, numberPatternsCount) : numbers.slice();\n RegexpTree.traverse(regexAst, visitors({\n every () {\n return Boolean(numbersToReplace.length);\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersToReplace.length) {\n if (regexAst === nodePath.node) {\n regexAst = numbersToReplace.shift();\n } else {\n nodePath.replace(numbersToReplace.shift());\n }\n return false;\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Get from regex part with number patterns.\n * @param regex - Target regex.\n * @param numberPatternsCount - Number patterns to extract.\n * @returns Regex part with number patterns.\n */ function getNumberPatternsPart(regex, numberPatternsCount) {\n const regexAst = parseRegex(regex);\n const maxNumbersCount = Math.min(getNumberPatternsCount(regexAst), numberPatternsCount || Infinity);\n const expressions = [];\n let numbersCounter = 0;\n let containsNumberPattern = false;\n RegexpTree.traverse(regexAst, visitors({\n every: {\n pre ({ node , parent }) {\n if (node === regexAst) {\n return true;\n }\n if (!isExpressionNode(node)) {\n return false;\n }\n if (parent === regexAst) {\n containsNumberPattern = false;\n }\n return numbersCounter < maxNumbersCount;\n },\n post ({ node , parent }) {\n if (node !== regexAst && parent === regexAst && isExpressionNode(node) && (containsNumberPattern || numbersCounter > 0 && numbersCounter < maxNumbersCount)) {\n expressions.push(node);\n }\n }\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersCounter < maxNumbersCount) {\n containsNumberPattern = true;\n numbersCounter++;\n return false;\n }\n return true;\n }\n }));\n if (expressions.length === 1 && !isNumberPatternNode(expressions[0])) {\n return getNumberPatternsPart(expressions[0], maxNumbersCount);\n }\n return expressions;\n}\n/**\n * Ranged semver to regex patterns.\n * @param rangedVersion - Ranged semver.\n * @param options - Semver compare options.\n * @returns Array of regex pattern.\n */ function rangedSemverToRegex(rangedVersion, options) {\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n const ignoreIndex = rangedVersion[0] === Infinity ? 0 : ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowHigherVersions) {\n const numberPatterns = [];\n let prevWasZero = true;\n let d = 0;\n let start = 0;\n const createMapper = (i)=>(range, j)=>{\n if (j >= ignoreIndex) {\n return NumberPatternNode();\n }\n start = Array.isArray(range) ? range[0] : range;\n if (j < i) {\n return NumberCharsNode(start);\n }\n if (j > i) {\n return NumberPatternNode();\n }\n return rangeToRegex(start + d);\n };\n for(let i = ignoreIndex - 1; i >= 0; i--){\n if (prevWasZero && !rangedVersion[i]) {\n continue;\n }\n prevWasZero = false;\n numberPatterns.push(rangedVersion.map(createMapper(i)));\n d = 1;\n }\n return numberPatterns;\n }\n const numberPatterns1 = rangedVersion.map((range, i)=>{\n if (i >= ignoreIndex) {\n return NumberPatternNode();\n }\n if (Array.isArray(range)) {\n return rangeToRegex(range[0], range[1]);\n }\n return NumberCharsNode(range);\n });\n return [\n numberPatterns1\n ];\n}\n\nfunction applyVersionsToRegex(regex, versions, options) {\n const { allowHigherVersions } = options;\n const regexAst = parseRegex(regex);\n const finalVersions = allowHigherVersions && versions.length ? [\n versions[0]\n ] : versions;\n const maxRequiredPartsCount = finalVersions.reduce((maxRequiredPartsCount, version)=>Math.max(maxRequiredPartsCount, getRequiredSemverPartsCount(version, options)), 1);\n const numberPatternsPart = getNumberPatternsPart(regexAst, maxRequiredPartsCount);\n const versionsPart = DisjunctionCapturingGroupNode(...finalVersions.map((version)=>rangedSemverToRegex(version, options).map((parts)=>replaceNumberPatterns(AlternativeNode(clone(numberPatternsPart)), parts, maxRequiredPartsCount))));\n RegexpTree.traverse(regexAst, visitors({\n every (nodePath) {\n if (!numberPatternsPart.length) {\n return false;\n }\n if (nodePath.node === numberPatternsPart[0]) {\n if (numberPatternsPart.length === 1) {\n nodePath.replace(versionsPart);\n } else {\n nodePath.remove();\n }\n numberPatternsPart.shift();\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Apply browser versions to info objects.\n * @param browserRegexes - Objects with requested browser version and regex.\n * @param options - Semver compare options.\n * @returns Objects with requested browser version and regex special for this version.\n */ function applyVersionsToRegexes(browserRegexes, options) {\n return browserRegexes.map(({ regex: sourceRegex , version , maxVersion , matchedVersions , ...other })=>{\n let regexAst = parseRegex(sourceRegex);\n if (!version) {\n regexAst = applyVersionsToRegex(regexAst, versionsListToRanges(matchedVersions), {\n ...options,\n allowHigherVersions: !maxVersion && options.allowHigherVersions\n });\n }\n return {\n regex: null,\n sourceRegex,\n regexAst,\n version,\n maxVersion,\n matchedVersions,\n ...other\n };\n });\n}\n\nconst defaultOptions = {\n ignoreMinor: false,\n ignorePatch: true,\n allowZeroSubversions: false,\n allowHigherVersions: false\n};\n/**\n * Get source regexes objects from browserslist query.\n * @param options - Browserslist and semver compare options.\n * @returns Source regexes objects.\n */ function getPreUserAgentRegexes(options = {}) {\n const finalOptions = {\n ...defaultOptions,\n ...options\n };\n const browsersList = getBrowsersList(finalOptions);\n const mergedBrowsers = mergeBrowserVersions(browsersList);\n const sourceRegexes = getRegexesForBrowsers(mergedBrowsers, finalOptions);\n const versionedRegexes = applyVersionsToRegexes(sourceRegexes, finalOptions);\n return versionedRegexes;\n}\n/**\n * Compile browserslist query to regexes.\n * @param options - Browserslist and semver compare options.\n * @returns Objects with info about compiled regexes.\n */ function getUserAgentRegexes(options = {}) {\n return compileRegexes(getPreUserAgentRegexes(options));\n}\n/**\n * Compile browserslist query to regex.\n * @param options - Browserslist and semver compare options.\n * @returns Compiled regex.\n */ function getUserAgentRegex(options = {}) {\n return compileRegex(getPreUserAgentRegexes(options));\n}\n\nexport { AlternativeNode, AstRegExpNode, CapturingGroupNode, CharacterClassNode, ClassRangeNode, DigitPatternNode, DisjunctionCapturingGroupNode, DisjunctionNode, MetaCharNode, NumberCharsNode, NumberPatternNode, RangeQuantifierNode, RepetitionNode, SemverPart, SimpleCharNode, SimpleQuantifierNode, applyVersionsToRegex, applyVersionsToRegexes, clone, compareArrays, compareSemvers, compileRegex, compileRegexes, concat, defaultOptions, findMatchedVersions, getBrowsersList, getNumberPatternsCount, getNumberPatternsPart, getPreUserAgentRegexes, getRegexesForBrowsers, getRequiredSemverPartsCount, getUserAgentRegex, getUserAgentRegexes, isCharNode, isDigitRangeNode, isExpressionNode, isNumberPatternNode, mergeBrowserVersions, mergeDigits, numberToDigits, numbersToRanges, optimizeRegex, optimizeSegmentNumberPatterns, parseBrowsersList, parseRegex, rangeSemver, rangeToRegex, rangedSemverToRegex, rayRangeDigitPattern, rayToNumberPatterns, replaceNumberPatterns, segmentRangeNumberPattern, segmentToNumberPatterns, semverify, splitCommonDiff, splitToDecadeRanges, toRegex, toString, versionsListToRanges, visitors };\n//# sourceMappingURL=index.js.map\n","/**\n * @typedef {import('./index.d').UserAgentRegex} UserAgentRegex\n */\n\n/** @type {UserAgentRegex[]} */\nexport const regexes = [\n {\n regex: /IE (\\d+)\\.(\\d+)/,\n family: 'ie',\n maxVersion: [\n 7,\n Infinity,\n Infinity\n ]\n },\n /**\n * IE can be in Compatability Mode (IE 7.0)\n * so we need to check Trident version\n */\n {\n regex: /Trident\\/4\\.0/,\n family: 'ie',\n version: [\n 8,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/5\\.0/,\n family: 'ie',\n version: [\n 9,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/6\\.0/,\n family: 'ie',\n version: [\n 10,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/[78]\\.0/,\n family: 'ie',\n version: [\n 11,\n 0,\n 0\n ]\n },\n {\n regex: /Edge?\\/(\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'edge'\n },\n {\n regex: /Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'firefox'\n },\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'chrome'\n },\n /**\n * Ignore Edge with EdgeHTML engine.\n */\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)([\\d.]+$|.*Safari\\/(?![\\d.]+ Edge\\/[\\d.]+$))/,\n family: 'chrome',\n maxVersion: [\n 70,\n Infinity,\n Infinity\n ]\n },\n /**\n * Safari on iPad have desktop-like useragent\n * Some versions contains letter subversions\n */\n {\n regex: /Maci.+ Version\\/(\\d+)\\.(\\d+)([.,](\\d+)|)( \\(\\w+\\)|)( Mobile\\/\\w+|) Safari\\//,\n family: 'safari'\n },\n /**\n * Presto Opera\n */\n {\n regex: /Opera\\/9\\.80.+Version\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'opera',\n maxVersion: [\n 12,\n 15,\n 0\n ]\n },\n /**\n * Chromium based Opera\n */\n {\n regex: /Chrome.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'opera',\n minVersion: [\n 15,\n 0,\n 0\n ]\n },\n {\n regex: /(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /[^e] (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf',\n version: [\n 7,\n 0,\n 3\n ]\n },\n {\n regex: /Opera Mini/,\n family: 'op_mini'\n },\n {\n regex: /Android Donut/,\n family: 'android',\n version: [\n 1,\n 2,\n 0\n ]\n },\n {\n regex: /Android Eclair/,\n family: 'android',\n version: [\n 2,\n 1,\n 0\n ]\n },\n {\n regex: /Android Froyo/,\n family: 'android',\n version: [\n 2,\n 2,\n 0\n ]\n },\n {\n regex: /Android Gingerbread/,\n family: 'android',\n version: [\n 2,\n 3,\n 0\n ]\n },\n {\n regex: /Android Honeycomb/,\n family: 'android',\n version: [\n 3,\n 0,\n 0\n ]\n },\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'android'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|);(?! ARM; Trident)/,\n family: 'android',\n version: [\n 4,\n 0,\n 0\n ]\n },\n {\n regex: /PlayBook.+RIM Tablet OS (\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n {\n regex: /(Black[bB]erry|BB10).+Version\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n /**\n * Presto Opera Mobile\n */\n {\n regex: /Opera\\/.+Opera Mobi.+Version\\/(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n maxVersion: [\n 12,\n 16,\n 0\n ]\n },\n /**\n * Chromium based Opera Mobile\n */\n {\n regex: /Mobile Safari.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n minVersion: [\n 14,\n 0,\n 0\n ]\n },\n {\n regex: /Android.+Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_ff'\n },\n {\n regex: /Android.+Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_chr'\n },\n {\n regex: /IEMobile[ /](\\d+)\\.(\\d+)/,\n family: 'ie_mob'\n },\n {\n regex: /Android.+(UC? ?Browser|UCWEB|U3)[ /]?(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'and_uc'\n },\n {\n regex: /SamsungBrowser\\/(\\d+)\\.(\\d+)/,\n family: 'samsung'\n },\n {\n regex: /Android.+MQQBrowser\\/(\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'and_qq'\n },\n {\n regex: /baidubrowser[/\\s](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'baidu'\n },\n {\n regex: /K[Aa][Ii]OS\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'kaios'\n }\n]\n"],"names":["module","exports","user","getCurrentUser","getLoggerBuilder","setApp","build","setUid","uid","getBuilder","clearOnLogout","persist","supportedBrowsersRegExp","getUserAgentRegex","allowHigherVersions","browsers","browserslistConfig","browserslist","browserStorageKey","redirectPath","generateUrl","isBrowserOverridden","browserStorage","getItem","testSupportedBrowser","test","navigator","userAgent","logger","debug","window","location","pathname","indexOf","redirectUrl","href","replace","origin","base64Param","Buffer","from","toString","history","pushState","concat","reload","BrowserslistError","noop","loadQueries","getStat","opts","stats","loadConfig","config","loadCountry","loadFeature","currentNode","resolve","context","parseConfig","readConfig","findConfig","clearCaches","oldDataWarning","env","message","this","name","Error","captureStackTrace","prototype","jsReleases","agents","jsEOL","path","e2c","parse","ANDROID_EVERGREEN_FIRST","isVersionsMatch","versionA","versionB","normalize","versions","filter","version","normalizeElectron","versionToUse","split","length","slice","join","nameMapper","getMajor","parseInt","getMajorVersions","released","number","majorVersions","uniq","map","minimum","selected","i","unshift","array","filtered","push","fillUsage","result","data","generateFilter","sign","parseFloat","v","parseSimpleInt","x","compare","a","b","compareSemver","semverFilterLoose","operator","range","compareSemverLoose","normalizeVersion","resolved","versionAliases","resolveVersion","filterByYear","since","Object","keys","reduce","byName","releaseDate","date","cloneData","toLowerCase","aliases","mobileToDesktop","desktopNames","desktop","android","chrome","normalizeAndroidVersions","forEach","undefined","cloned","androidVersions","chromeVersions","iFirstEvergreen","checkName","filterJumps","list","nVersions","jump","op_mob","isSupported","flags","queries","QUERIES","node","index","not","query","type","select","call","j","parts","compose","prepareOpts","prepareQueries","defaults","checkQueries","Array","isArray","cache","ignoreUnknownVersions","dangerousExtend","browser","customUsage","cacheKey","JSON","stringify","sort","name1","name2","version1","BROWSERSLIST_DISABLE_CACHE","nodeQuery","matched","nodeVersions","sinceQuery","year","month","day","Date","UTC","coverQuery","coverage","usage","global","place","match","toUpperCase","coveraged","custom","fx","ff","ios","explorer","blackberry","explorermobile","operamini","operamobile","chromeandroid","firefoxandroid","ucandroid","qqandroid","and_chr","and_ff","ie_mob","customStats","dataByBrowser","all","last_major_versions","matches","regexp","last_versions","last_electron_major_versions","last_node_major_versions","last_browser_major_versions","last_electron_versions","last_node_versions","last_browser_versions","unreleased_versions","unreleased_electron_versions","unreleased_browser_versions","last_years","now","years","since_y","since_y_m","since_y_m_d","popularity","popularity_in_my_stats","percentage","popularity_in_config_stats","loadStat","popularity_in_place","cover","cover_in","supports","feature","features","checkDesktop","electron_range","fromToUse","toToUse","to","parsed","node_range","browser_range","electron_ray","node_ray","browser_ray","alias","firefox_esr","opera_mini_all","electron_version","node_major_version","node_minor_version","node_patch_version","current_node","maintained_node","key","end","start","some","phantomjs_1_9","phantomjs_2_1","browser_version","browserslist_config","extends","dead","unknown","release_date","usage_global","full","interval","release","AND_REGEXP","OR_REGEXP","flatten","matchQuery","matchBlock","string","qs","predicate","n","max","substr","find","trim","block","A","K","F","G","H","B","JC","C","E","L","M","I","N","D","O","P","Q","R","S","T","U","V","W","X","Y","Z","c","d","e","f","g","h","o","p","q","r","s","t","u","w","y","z","KC","zB","J","k","l","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","m","qB","rB","sB","tB","uB","LC","MC","NC","OC","PC","QC","RC","SC","vB","wB","TC","UC","xB","AC","yB","BC","CC","DC","EC","FC","GC","VC","WC","XC","YC","ZC","HC","aC","bC","IC","cC","dC","eC","fC","gC","hC","iC","jC","kC","lC","mC","nC","oC","pC","qC","rC","sC","tC","uC","vC","wC","xC","yC","zC","AD","BD","CD","DD","ED","FD","GD","HD","agentsData","unpackBrowserVersions","versionsData","entry","prefix_exceptions","map2","key2","prefix","browserVersions","compatTransforms","_transform","transform","transformsWhitelist","arguments","transformToApply","extra","transformName","hasOwnProperty","handler","getAST","getExtra","setExtra","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","defineProperty","Constructor","protoProps","staticProps","RegExpTree","re","_ref","groups","source","instance","TypeError","_classCallCheck","_re","_groups","dotAll","includes","ignoreCase","multiline","sticky","unicode","value","compile","_toStringResult","exec","group","groupNumber","_hasUFlag","shouldRun","ast","Char","kind","toValue","toSymbol","expressions","symbol","_groupNames","init","Group","nameRaw","Backreference","reference","referenceRaw","RegExp","namedCapturingGroups","xFlag","gen","generator","body","Alternative","Disjunction","left","right","expression","capturing","Assertion","assertion","negative","_assertion","CharacterClass","ClassRange","Repetition","quantifier","Quantifier","greedy","escaped","UnicodeProperty","shorthand","binary","generate","_slicedToArray","arr","Symbol","iterator","_arr","_n","_d","_e","_s","_i","next","done","err","sliceIterator","_toConsumableArray","arr2","currentTransitionMap","sameRow","r1","r2","s1","s2","size","areEquivalent","table","alphabet","_iteratorNormalCompletion8","_didIteratorError8","_iteratorError8","_step8","_iterator8","goToSameSet","return","originalTransitionS1","originalTransitionS2","has","minimize","dfa","getTransitionTable","allStates","getAlphabet","accepting","getAcceptingStateNumbers","nonAccepting","Set","state","Number","add","set","current","previous","_loop","newTransitionMap","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","_set","handledStates","_set2","first","rest","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","restSets","_step4","_iterator4","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_step5","_iterator5","handledState","assign","newSets","remaped","Map","idx","minimizedTable","minimizedAcceptingStates","updateAcceptingStates","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","entries","_ref2","_idx","_iteratorNormalCompletion6","_didIteratorError6","_iteratorError6","_step6","_iterator6","originalTransition","_iteratorNormalCompletion7","_didIteratorError7","_iteratorError7","_step7","_iterator7","originalState","get","setTransitionTable","setAcceptingStateNumbers","DFAMinimizer","EPSILON_CLOSURE","DFA","nfa","_nfa","_originalAcceptingStateNumbers","_acceptingStateNumbers","_originalTransitionTable","_transitionTable","stateNumbers","_this","nfaTable","nfaStates","worklist","nfaAcceptingStates","dfaTable","states","nfaAcceptingState","shift","dfaStateLabel","onSymbol","nfaStatesOnSymbol","nfaStateOnSymbol","apply","dfaStatesOnSymbolSet","dfaStatesOnSymbol","dfaOnSymbolStr","_remapStateNumbers","calculatedDFATable","newStatesMap","transitionTable","originalNumber","newNumber","originalRow","row","_originalNumber","NFA","nfaFromRegExp","builders","toNFA","toDFA","NFAState","EPSILON","char","inState","outState","addTransition","altPair","second","out","in","orPair","alt","_len","fragments","_key","or","_len2","_key2","rep","fragment","repExplicit","plusRep","questionRep","parser","_require","captureLocations","State","_State","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","subClass","superClass","create","constructor","setPrototypeOf","_inherits","visited","getTransitionsOnSymbol","symbolTransitions","_this2","_epsilonClosure","epsilonTransitions","closure","nextState","getEpsilonClosure","_alphabet","transitions","_acceptingStates","getAcceptingStates","acceptingState","symbols","visitState","getTransitions","combinedState","_ref$accepting","_transitions","toState","clone","optimizationTransforms","optimize","_ref$whitelist","whitelist","_ref$blacklist","blacklist","TransformResult","prevResultString","transformer","newResult","UPPER_A_CP","codePointAt","UPPER_Z_CP","_AZClassRanges","parent","isNaN","codePoint","classRange","lower","isSurrogatePair","_getSurrogatePairFrom","trail","lead","Math","floor","getSurrogatePairFromCodePoint","repeat","code","displaySymbolAsValue","sortCharClass","aValue","getSortValue","bValue","isMeta","isControl","Infinity","fitsInMetas","metas","hasIUFlags","fitsInMeta","meta","fitsInMetaS","fitsInMetaD","fitsInMetaW","combinesWithPrecedingClassRange","fitsInClassRange","isMetaWCharOrCode","combinesWithFollowingClassRange","charCombinesWithPrecedingChars","nbMergedChars","currentExpression","precedingExpresion","_hasIUFlags","splice","getParent","insertChildAt","sources","childPath","getChild","jsonEncode","remove","_hasIFlag","isFullNumberRange","rewriteNumberRanges","hasIFlag","hasUFlag","numberPath","lowerCasePath","upperCasePath","underscorePath","u017fPath","u212aPath","isMetaChar","isLowerCaseRange","isUpperCaseRange","isUnderscore","isCodePoint","rewriteWordRanges","whitespaceRangeTests","every","nNode","NaN","Boolean","rewriteWhitespaceRanges","isChar","shouldEscape","previousNode","hasAppropriateSiblings","isAppropriateChar","_node$expressions$","getInverseMeta","LOWER_A_CP","LOWER_Z_CP","DIGIT_0_CP","DIGIT_9_CP","String","fromCodePoint","newChar","parentType","needsEscape","consumeNumbers","startIndex","rtl","siblingNode","abs","isSimpleChar","_hasXFlag","hasXFlag","nbFollowingNumbers","nextSiblingNode","preservesOpeningCurlyBraceEscape","nbPrecedingNumbers","previousSiblingNode","preservesClosingCurlyBraceEscape","preservesEscape","preservesInCharClass","shouldUnescape","NodePath","increaseQuantifierByOne","combineRepeatingPatternLeft","alternative","child","nbPossibleLengths","ceil","getForNode","hasEqualSource","combineWithPreviousRepetition","previousChild","combineRepetitionWithPrevious","rightLength","disjunctionToList","listToDisjunction","uniqueNodesMap","part","encoded","handlers","charset","shouldProcess","characterClass","rewriteOpenZero","rewriteOpenOne","parentPath","rewriteExactOne","isGreedyOpenRange","extractFromTo","previousSibling","getPreviousSibling","_extractFromTo","previousSiblingFrom","previousSiblingTo","_extractFromTo2","nodeFrom","nodeTo","yytext","yy","__","__loc","yyloc","options","startOffset","endOffset","startLine","endLine","startColumn","endColumn","productions","_1","_1loc","_2","_3","_4","_2loc","_3loc","_4loc","Node","checkFlags","loc","_loc","separatorIdx","isShorthand","unicodeProperties","isGeneralCategoryValue","isBinaryProperty","isBinaryPropertyName","isValidName","SyntaxError","isValidValue","canonicalName","getCanonicalName","canonicalValue","getCanonicalValue","text","textLoc","capturingGroupsCount","decodeUnicodeGroupName","namedGroups","charRe","chars","uReStart","ucpReStart","NamedGroupRefOrChars","getRange","allowGroupNameDuplicates","checkClassRange","tokens","stack","tokenizer","lexRules","validateUnicodeGroupName","getCurrentState","popState","lexRulesByConditions","EOF_TOKEN","initString","_string","_cursor","_states","_tokensQueue","_currentLine","_currentColumn","_currentLineBeginOffset","_tokenStartOffset","_tokenEndOffset","_tokenStartLine","_tokenEndLine","_tokenStartColumn","_tokenEndColumn","getStates","begin","pop","getNextToken","onToken","_toToken","hasMoreTokens","lexRulesForState","lexRuleIndex","lexRule","_match","token","tokensToQueue","isEOF","throwUnexpectedToken","line","column","lineSource","lineData","getCursor","getCurrentLine","getCurrentColumn","_captureLocation","nlRe","nlMatch","tokenType","lexer","yyparse","setOptions","getOptions","parseOptions","globalOptions","onParseBegin","shiftedToken","unexpectedEndOfInput","unexpectedToken","_loc2","onShift","semanticValue","productionNumber","production","hasSemanticAction","semanticValueArgs","locationArgs","rhsLength","stackEntry","reduceStackEntry","semanticActionArgs","symbolToReduceWith","onParseEnd","setTokenizer","customTokenizer","getTokenizer","parsingString","isFinite","lastSlash","lastIndexOf","_value$split$slice2","hex","validFlags","seen","flag","ucpReAnywhere","uidRe","_","leadSurrogate","trailSurrogate","leadSurrogateOnly","trailSurrogateOnly","nonSurrogate","offset","parseError","regexpTreeParser","generatedParseFn","bind","NON_BINARY_PROP_NAMES_TO_ALIASES","General_Category","Script","Script_Extensions","NON_BINARY_ALIASES_TO_PROP_NAMES","inverseMap","BINARY_PROP_NAMES_TO_ALIASES","ASCII","ASCII_Hex_Digit","Alphabetic","Any","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","IDS_Binary_Operator","IDS_Trinary_Operator","ID_Continue","ID_Start","Ideographic","Join_Control","Logical_Order_Exception","Lowercase","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start","BINARY_ALIASES_TO_PROP_NAMES","GENERAL_CATEGORY_VALUE_TO_ALIASES","Cased_Letter","Close_Punctuation","Connector_Punctuation","Control","Currency_Symbol","Dash_Punctuation","Decimal_Number","Enclosing_Mark","Final_Punctuation","Format","Initial_Punctuation","Letter","Letter_Number","Line_Separator","Lowercase_Letter","Mark","Math_Symbol","Modifier_Letter","Modifier_Symbol","Nonspacing_Mark","Open_Punctuation","Other","Other_Letter","Other_Number","Other_Punctuation","Other_Symbol","Paragraph_Separator","Private_Use","Punctuation","Separator","Space_Separator","Spacing_Mark","Surrogate","Titlecase_Letter","Unassigned","Uppercase_Letter","GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES","SCRIPT_VALUE_TO_ALIASES","Adlam","Ahom","Anatolian_Hieroglyphs","Arabic","Armenian","Avestan","Balinese","Bamum","Bassa_Vah","Batak","Bengali","Bhaiksuki","Bopomofo","Brahmi","Braille","Buginese","Buhid","Canadian_Aboriginal","Carian","Caucasian_Albanian","Chakma","Cham","Cherokee","Common","Coptic","Cuneiform","Cypriot","Cyrillic","Deseret","Devanagari","Dogra","Duployan","Egyptian_Hieroglyphs","Elbasan","Ethiopic","Georgian","Glagolitic","Gothic","Grantha","Greek","Gujarati","Gunjala_Gondi","Gurmukhi","Han","Hangul","Hanifi_Rohingya","Hanunoo","Hatran","Hebrew","Hiragana","Imperial_Aramaic","Inherited","Inscriptional_Pahlavi","Inscriptional_Parthian","Javanese","Kaithi","Kannada","Katakana","Kayah_Li","Kharoshthi","Khmer","Khojki","Khudawadi","Lao","Latin","Lepcha","Limbu","Linear_A","Linear_B","Lisu","Lycian","Lydian","Mahajani","Makasar","Malayalam","Mandaic","Manichaean","Marchen","Medefaidrin","Masaram_Gondi","Meetei_Mayek","Mende_Kikakui","Meroitic_Cursive","Meroitic_Hieroglyphs","Miao","Modi","Mongolian","Mro","Multani","Myanmar","Nabataean","New_Tai_Lue","Newa","Nko","Nushu","Ogham","Ol_Chiki","Old_Hungarian","Old_Italic","Old_North_Arabian","Old_Permic","Old_Persian","Old_Sogdian","Old_South_Arabian","Old_Turkic","Oriya","Osage","Osmanya","Pahawh_Hmong","Palmyrene","Pau_Cin_Hau","Phags_Pa","Phoenician","Psalter_Pahlavi","Rejang","Runic","Samaritan","Saurashtra","Sharada","Shavian","Siddham","SignWriting","Sinhala","Sogdian","Sora_Sompeng","Soyombo","Sundanese","Syloti_Nagri","Syriac","Tagalog","Tagbanwa","Tai_Le","Tai_Tham","Tai_Viet","Takri","Tamil","Tangut","Telugu","Thaana","Thai","Tibetan","Tifinagh","Tirhuta","Ugaritic","Vai","Warang_Citi","Yi","Zanabazar_Square","SCRIPT_VALUE_ALIASES_TO_VALUE","inverse","isScriptCategoryValue","isAlias","isGeneralCategoryName","isScriptCategoryName","compatTranspiler","optimizer","_traverse","fa","regexpTree","traverse","toRegExp","compat","compatTranspile","getSource","getFlags","_ast","_source","_regexp","_extra","asNodes","getPathFor","prop","initRegistry","root","pre","post","skipProperty","visit","res","_prop","traversingIndexStack","updateTraversingIndex","astTraverse","nodePath","isRemoved","handlerFuncPre","handlerFuncPost","DEFAULT_COLLECTION_PROP","DEFAULT_SINGLE_PROP","property","_enforceProp","setChild","getTraversingIndex","_rebuildIndex","registry","delete","newNode","nodeProps","jsonSkipLoc","format","useLoc","clear","dx","obj","SemverPart","numbersToRanges","numbers","semverify","versionParts","versionPart","semverPart","semver","compareSemvers","major","minor","patch","majorBase","minorBase","patchBase","ignoreMinor","ignorePatch","compareMinor","comparePatch","compareArrays","len","copy","items","AlternativeNode","exps","SimpleCharNode","ClassRangeNode","CharacterClassNode","CapturingGroupNode","DisjunctionCapturingGroupNode","expr","exprs","disjunction","reduceRight","DisjunctionNode","DigitPatternNode","NumberPatternNode","numberPattern","RepetitionNode","NumberCharsNode","isNumberPatternNode","isCharNode","isDigitRangeNode","isExpressionNode","parseRegex","regex","classes","visitors","newVisitors","className","visitor","visitorPre","visitorPost","numberToDigits","num","rayRangeDigitPattern","digit","rangeStart","segmentRangeNumberPattern","zeros","fromNode","toNode","zerosPrefix","segmentToNumberPatterns","digitsInNumber","fromDigits","digitsCount","toDigits","decadeRanges","ranges","decade","min","splitToDecadeRanges","commonStart","common","currA","currB","diffA","diffB","splitCommonDiff","from1","to1","diffParts","middleSegment","ri","patterns","prevNode","merged","exp","rangeToRegex","digits","other","RangeQuantifierNode","pow","numberPatterns","topNodes","prev","nodes","rayToNumberPatterns","getNumberPatternsPart","numberPatternsCount","regexAst","maxNumbersCount","count","getNumberPatternsCount","numbersCounter","containsNumberPattern","applyVersionsToRegex","finalVersions","maxRequiredPartsCount","allowZeroSubversions","shouldRepeatCount","getRequiredSemverPartsCount","numberPatternsPart","versionsPart","rangedVersion","ignoreIndex","prevWasZero","createMapper","rangedSemverToRegex","numbersToReplace","replaceNumberPatterns","defaultOptions","getPreUserAgentRegexes","finalOptions","browserRegexes","sourceRegex","maxVersion","matchedVersions","Major","Minor","Patch","versionsListToRanges","applyVersionsToRegexes","targetRegexes","prevFamily","prevRegexIsGlobal","requestVersions","family","minVersion","bases","compareOptions","minComparator","ver","maxComparator","comparator","findMatchedVersions","getRegexesForBrowsers","merge","strVersion","mergeBrowserVersions","browserslistOptions","versionString","versionStringTo","partIndex","i1","rangeSemver","getBrowsersList","src","optimizeRegex","regexes"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"file":"7816-7816.js?v=3898b987dfee3f7fba52","mappings":"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AAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAQ,CAAE,GAAM,MAAQ,CAAE,GAAM,MAAO,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,MAAQ,CAAE,EAAK,GAAI,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,KAAM,GAAM,KAAM,GAAM,MAAQ,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,G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","sources":["webpack:///nextcloud/node_modules/@nextcloud/browserslist-config/browserlist.config.js","webpack:///nextcloud/core/src/logger.js","webpack:///nextcloud/core/src/services/BrowserStorageService.js","webpack:///nextcloud/core/src/services/BrowsersListService.js","webpack:///nextcloud/core/src/utils/RedirectUnsupportedBrowsers.js","webpack:///nextcloud/node_modules/browserslist/browser.js","webpack:///nextcloud/node_modules/browserslist/error.js","webpack:///nextcloud/node_modules/browserslist/index.js","webpack:///nextcloud/node_modules/browserslist/parse.js","webpack:///nextcloud/node_modules/caniuse-lite/data/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browsers.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browsers.js","webpack:///nextcloud/node_modules/electron-to-chromium/versions.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/runtime/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/generator/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa-minimizer.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-from-regexp.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-case-insensitive-lowercase-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-to-chars-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-meta-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-single-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-code-to-simple-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-escape-unescape-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-surrogate-pair-to-single-unicode-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/combine-repeating-patterns-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/disjunction-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/group-single-chars-to-char-class.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifier-range-to-symbol-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifiers-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/remove-empty-group-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/ungroup-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/generated/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js","webpack:///nextcloud/node_modules/regexp-tree/dist/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/utils.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/node-path.js","webpack:///nextcloud/node_modules/regexp-tree/dist/utils/clone.js","webpack:///nextcloud/node_modules/regexp-tree/index.js","webpack:///nextcloud/node_modules/browserslist-useragent-regexp/dist/index.js","webpack:///nextcloud/node_modules/ua-regexes-lite/index.js"],"sourcesContent":["module.exports = [\n '>0.25%',\n 'not op_mini all',\n 'not dead',\n 'Firefox ESR',\n];\n","/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nconst getLogger = user => {\n\tif (user === null) {\n\t\treturn getLoggerBuilder()\n\t\t\t.setApp('core')\n\t\t\t.build()\n\t}\n\treturn getLoggerBuilder()\n\t\t.setApp('core')\n\t\t.setUid(user.uid)\n\t\t.build()\n}\n\nexport default getLogger(getCurrentUser())\n","/**\n * @copyright 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { getBuilder } from '@nextcloud/browser-storage'\n\nexport default getBuilder('core')\n\t.clearOnLogout()\n\t.persist()\n\t.build()\n","/**\n * @copyright 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { getUserAgentRegex } from 'browserslist-useragent-regexp'\n// eslint-disable-next-line n/no-extraneous-import\nimport browserslist from 'browserslist'\nimport browserslistConfig from '@nextcloud/browserslist-config'\n\n// Generate a regex that matches user agents to detect incompatible browsers\nexport const supportedBrowsersRegExp = getUserAgentRegex({ allowHigherVersions: true, browsers: browserslistConfig })\nexport const supportedBrowsers = browserslist(browserslistConfig)\n","/**\n * @copyright 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport { supportedBrowsersRegExp } from '../services/BrowsersListService.js'\nimport browserStorage from '../services/BrowserStorageService.js'\nimport logger from '../logger.js'\n\nexport const browserStorageKey = 'unsupported-browser-ignore'\nconst redirectPath = generateUrl('/unsupported')\n\nconst isBrowserOverridden = browserStorage.getItem(browserStorageKey) === 'true'\n\n/**\n * Test the current browser user agent against our official browserslist config\n * and redirect if unsupported\n */\nexport const testSupportedBrowser = function() {\n\tif (supportedBrowsersRegExp.test(navigator.userAgent)) {\n\t\tlogger.debug('this browser is officially supported ! 🚀')\n\t\treturn\n\t}\n\n\t// If incompatible BUT ignored, let's keep going\n\tif (isBrowserOverridden) {\n\t\tlogger.debug('this browser is NOT supported but has been manually overridden ! ⚠️')\n\t\treturn\n\t}\n\n\t// If incompatible, NOT overridden AND NOT already on the warning page,\n\t// redirect to the unsupported warning page\n\tif (window.location.pathname.indexOf(redirectPath) === -1) {\n\t\tconst redirectUrl = window.location.href.replace(window.location.origin, '')\n\t\tconst base64Param = Buffer.from(redirectUrl).toString('base64')\n\t\thistory.pushState(null, null, `${redirectPath}?redirect_url=${base64Param}`)\n\t\twindow.location.reload()\n\t}\n}\n","var BrowserslistError = require('./error')\n\nfunction noop() {}\n\nmodule.exports = {\n loadQueries: function loadQueries() {\n throw new BrowserslistError(\n 'Sharable configs are not supported in client-side build of Browserslist'\n )\n },\n\n getStat: function getStat(opts) {\n return opts.stats\n },\n\n loadConfig: function loadConfig(opts) {\n if (opts.config) {\n throw new BrowserslistError(\n 'Browserslist config are not supported in client-side build'\n )\n }\n },\n\n loadCountry: function loadCountry() {\n throw new BrowserslistError(\n 'Country statistics are not supported ' +\n 'in client-side build of Browserslist'\n )\n },\n\n loadFeature: function loadFeature() {\n throw new BrowserslistError(\n 'Supports queries are not available in client-side build of Browserslist'\n )\n },\n\n currentNode: function currentNode(resolve, context) {\n return resolve(['maintained node versions'], context)[0]\n },\n\n parseConfig: noop,\n\n readConfig: noop,\n\n findConfig: noop,\n\n clearCaches: noop,\n\n oldDataWarning: noop,\n\n env: {}\n}\n","function BrowserslistError(message) {\n this.name = 'BrowserslistError'\n this.message = message\n this.browserslist = true\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, BrowserslistError)\n }\n}\n\nBrowserslistError.prototype = Error.prototype\n\nmodule.exports = BrowserslistError\n","var jsReleases = require('node-releases/data/processed/envs.json')\nvar agents = require('caniuse-lite/dist/unpacker/agents').agents\nvar jsEOL = require('node-releases/data/release-schedule/release-schedule.json')\nvar path = require('path')\nvar e2c = require('electron-to-chromium/versions')\n\nvar BrowserslistError = require('./error')\nvar parse = require('./parse')\nvar env = require('./node') // Will load browser.js in webpack\n\nvar YEAR = 365.259641 * 24 * 60 * 60 * 1000\nvar ANDROID_EVERGREEN_FIRST = '37'\nvar OP_MOB_BLINK_FIRST = 14\n\n// Helpers\n\nfunction isVersionsMatch(versionA, versionB) {\n return (versionA + '.').indexOf(versionB + '.') === 0\n}\n\nfunction isEolReleased(name) {\n var version = name.slice(1)\n return browserslist.nodeVersions.some(function (i) {\n return isVersionsMatch(i, version)\n })\n}\n\nfunction normalize(versions) {\n return versions.filter(function (version) {\n return typeof version === 'string'\n })\n}\n\nfunction normalizeElectron(version) {\n var versionToUse = version\n if (version.split('.').length === 3) {\n versionToUse = version.split('.').slice(0, -1).join('.')\n }\n return versionToUse\n}\n\nfunction nameMapper(name) {\n return function mapName(version) {\n return name + ' ' + version\n }\n}\n\nfunction getMajor(version) {\n return parseInt(version.split('.')[0])\n}\n\nfunction getMajorVersions(released, number) {\n if (released.length === 0) return []\n var majorVersions = uniq(released.map(getMajor))\n var minimum = majorVersions[majorVersions.length - number]\n if (!minimum) {\n return released\n }\n var selected = []\n for (var i = released.length - 1; i >= 0; i--) {\n if (minimum > getMajor(released[i])) break\n selected.unshift(released[i])\n }\n return selected\n}\n\nfunction uniq(array) {\n var filtered = []\n for (var i = 0; i < array.length; i++) {\n if (filtered.indexOf(array[i]) === -1) filtered.push(array[i])\n }\n return filtered\n}\n\nfunction fillUsage(result, name, data) {\n for (var i in data) {\n result[name + ' ' + i] = data[i]\n }\n}\n\nfunction generateFilter(sign, version) {\n version = parseFloat(version)\n if (sign === '>') {\n return function (v) {\n return parseFloat(v) > version\n }\n } else if (sign === '>=') {\n return function (v) {\n return parseFloat(v) >= version\n }\n } else if (sign === '<') {\n return function (v) {\n return parseFloat(v) < version\n }\n } else {\n return function (v) {\n return parseFloat(v) <= version\n }\n }\n}\n\nfunction generateSemverFilter(sign, version) {\n version = version.split('.').map(parseSimpleInt)\n version[1] = version[1] || 0\n version[2] = version[2] || 0\n if (sign === '>') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) > 0\n }\n } else if (sign === '>=') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) >= 0\n }\n } else if (sign === '<') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) > 0\n }\n } else {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) >= 0\n }\n }\n}\n\nfunction parseSimpleInt(x) {\n return parseInt(x)\n}\n\nfunction compare(a, b) {\n if (a < b) return -1\n if (a > b) return +1\n return 0\n}\n\nfunction compareSemver(a, b) {\n return (\n compare(parseInt(a[0]), parseInt(b[0])) ||\n compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) ||\n compare(parseInt(a[2] || '0'), parseInt(b[2] || '0'))\n )\n}\n\n// this follows the npm-like semver behavior\nfunction semverFilterLoose(operator, range) {\n range = range.split('.').map(parseSimpleInt)\n if (typeof range[1] === 'undefined') {\n range[1] = 'x'\n }\n // ignore any patch version because we only return minor versions\n // range[2] = 'x'\n switch (operator) {\n case '<=':\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) <= 0\n }\n case '>=':\n default:\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) >= 0\n }\n }\n}\n\n// this follows the npm-like semver behavior\nfunction compareSemverLoose(version, range) {\n if (version[0] !== range[0]) {\n return version[0] < range[0] ? -1 : +1\n }\n if (range[1] === 'x') {\n return 0\n }\n if (version[1] !== range[1]) {\n return version[1] < range[1] ? -1 : +1\n }\n return 0\n}\n\nfunction resolveVersion(data, version) {\n if (data.versions.indexOf(version) !== -1) {\n return version\n } else if (browserslist.versionAliases[data.name][version]) {\n return browserslist.versionAliases[data.name][version]\n } else {\n return false\n }\n}\n\nfunction normalizeVersion(data, version) {\n var resolved = resolveVersion(data, version)\n if (resolved) {\n return resolved\n } else if (data.versions.length === 1) {\n return data.versions[0]\n } else {\n return false\n }\n}\n\nfunction filterByYear(since, context) {\n since = since / 1000\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var versions = Object.keys(data.releaseDate).filter(function (v) {\n var date = data.releaseDate[v]\n return date !== null && date >= since\n })\n return selected.concat(versions.map(nameMapper(data.name)))\n }, [])\n}\n\nfunction cloneData(data) {\n return {\n name: data.name,\n versions: data.versions,\n released: data.released,\n releaseDate: data.releaseDate\n }\n}\n\nfunction byName(name, context) {\n name = name.toLowerCase()\n name = browserslist.aliases[name] || name\n if (context.mobileToDesktop && browserslist.desktopNames[name]) {\n var desktop = browserslist.data[browserslist.desktopNames[name]]\n if (name === 'android') {\n return normalizeAndroidData(cloneData(browserslist.data[name]), desktop)\n } else {\n var cloned = cloneData(desktop)\n cloned.name = name\n return cloned\n }\n }\n return browserslist.data[name]\n}\n\nfunction normalizeAndroidVersions(androidVersions, chromeVersions) {\n var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST)\n return androidVersions\n .filter(function (version) {\n return /^(?:[2-4]\\.|[34]$)/.test(version)\n })\n .concat(chromeVersions.slice(iFirstEvergreen))\n}\n\nfunction normalizeAndroidData(android, chrome) {\n android.released = normalizeAndroidVersions(android.released, chrome.released)\n android.versions = normalizeAndroidVersions(android.versions, chrome.versions)\n android.released.forEach(function (v) {\n if (android.releaseDate[v] === undefined) {\n android.releaseDate[v] = chrome.releaseDate[v]\n }\n })\n return android\n}\n\nfunction checkName(name, context) {\n var data = byName(name, context)\n if (!data) throw new BrowserslistError('Unknown browser ' + name)\n return data\n}\n\nfunction unknownQuery(query) {\n return new BrowserslistError(\n 'Unknown browser query `' +\n query +\n '`. ' +\n 'Maybe you are using old Browserslist or made typo in query.'\n )\n}\n\n// Adjusts last X versions queries for some mobile browsers,\n// where caniuse data jumps from a legacy version to the latest\nfunction filterJumps(list, name, nVersions, context) {\n var jump = 1\n switch (name) {\n case 'android':\n if (context.mobileToDesktop) return list\n var released = browserslist.data.chrome.released\n jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST)\n break\n case 'op_mob':\n var latest = browserslist.data.op_mob.released.slice(-1)[0]\n jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1\n break\n default:\n return list\n }\n if (nVersions <= jump) {\n return list.slice(-1)\n }\n return list.slice(jump - 1 - nVersions)\n}\n\nfunction isSupported(flags) {\n return (\n typeof flags === 'string' &&\n (flags.indexOf('y') >= 0 || flags.indexOf('a') >= 0)\n )\n}\n\nfunction resolve(queries, context) {\n return parse(QUERIES, queries).reduce(function (result, node, index) {\n if (node.not && index === 0) {\n throw new BrowserslistError(\n 'Write any browsers query (for instance, `defaults`) ' +\n 'before `' +\n node.query +\n '`'\n )\n }\n var type = QUERIES[node.type]\n var array = type.select.call(browserslist, context, node).map(function (j) {\n var parts = j.split(' ')\n if (parts[1] === '0') {\n return parts[0] + ' ' + byName(parts[0], context).versions[0]\n } else {\n return j\n }\n })\n\n if (node.compose === 'and') {\n if (node.not) {\n return result.filter(function (j) {\n return array.indexOf(j) === -1\n })\n } else {\n return result.filter(function (j) {\n return array.indexOf(j) !== -1\n })\n }\n } else {\n if (node.not) {\n var filter = {}\n array.forEach(function (j) {\n filter[j] = true\n })\n return result.filter(function (j) {\n return !filter[j]\n })\n }\n return result.concat(array)\n }\n }, [])\n}\n\nfunction prepareOpts(opts) {\n if (typeof opts === 'undefined') opts = {}\n\n if (typeof opts.path === 'undefined') {\n opts.path = path.resolve ? path.resolve('.') : '.'\n }\n\n return opts\n}\n\nfunction prepareQueries(queries, opts) {\n if (typeof queries === 'undefined' || queries === null) {\n var config = browserslist.loadConfig(opts)\n if (config) {\n queries = config\n } else {\n queries = browserslist.defaults\n }\n }\n\n return queries\n}\n\nfunction checkQueries(queries) {\n if (!(typeof queries === 'string' || Array.isArray(queries))) {\n throw new BrowserslistError(\n 'Browser queries must be an array or string. Got ' + typeof queries + '.'\n )\n }\n}\n\nvar cache = {}\n\nfunction browserslist(queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n\n var context = {\n ignoreUnknownVersions: opts.ignoreUnknownVersions,\n dangerousExtend: opts.dangerousExtend,\n mobileToDesktop: opts.mobileToDesktop,\n path: opts.path,\n env: opts.env\n }\n\n env.oldDataWarning(browserslist.data)\n var stats = env.getStat(opts, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n\n var cacheKey = JSON.stringify([queries, context])\n if (cache[cacheKey]) return cache[cacheKey]\n\n var result = uniq(resolve(queries, context)).sort(function (name1, name2) {\n name1 = name1.split(' ')\n name2 = name2.split(' ')\n if (name1[0] === name2[0]) {\n // assumptions on caniuse data\n // 1) version ranges never overlaps\n // 2) if version is not a range, it never contains `-`\n var version1 = name1[1].split('-')[0]\n var version2 = name2[1].split('-')[0]\n return compareSemver(version2.split('.'), version1.split('.'))\n } else {\n return compare(name1[0], name2[0])\n }\n })\n if (!env.env.BROWSERSLIST_DISABLE_CACHE) {\n cache[cacheKey] = result\n }\n return result\n}\n\nbrowserslist.parse = function (queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n return parse(QUERIES, queries)\n}\n\n// Will be filled by Can I Use data below\nbrowserslist.cache = {}\nbrowserslist.data = {}\nbrowserslist.usage = {\n global: {},\n custom: null\n}\n\n// Default browsers query\nbrowserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead']\n\n// Browser names aliases\nbrowserslist.aliases = {\n fx: 'firefox',\n ff: 'firefox',\n ios: 'ios_saf',\n explorer: 'ie',\n blackberry: 'bb',\n explorermobile: 'ie_mob',\n operamini: 'op_mini',\n operamobile: 'op_mob',\n chromeandroid: 'and_chr',\n firefoxandroid: 'and_ff',\n ucandroid: 'and_uc',\n qqandroid: 'and_qq'\n}\n\n// Can I Use only provides a few versions for some browsers (e.g. and_chr).\n// Fallback to a similar browser for unknown versions\n// Note op_mob is not included as its chromium versions are not in sync with Opera desktop\nbrowserslist.desktopNames = {\n and_chr: 'chrome',\n and_ff: 'firefox',\n ie_mob: 'ie',\n android: 'chrome' // has extra processing logic\n}\n\n// Aliases to work with joined versions like `ios_saf 7.0-7.1`\nbrowserslist.versionAliases = {}\n\nbrowserslist.clearCaches = env.clearCaches\nbrowserslist.parseConfig = env.parseConfig\nbrowserslist.readConfig = env.readConfig\nbrowserslist.findConfig = env.findConfig\nbrowserslist.loadConfig = env.loadConfig\n\nbrowserslist.coverage = function (browsers, stats) {\n var data\n if (typeof stats === 'undefined') {\n data = browserslist.usage.global\n } else if (stats === 'my stats') {\n var opts = {}\n opts.path = path.resolve ? path.resolve('.') : '.'\n var customStats = env.getStat(opts)\n if (!customStats) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n data = {}\n for (var browser in customStats) {\n fillUsage(data, browser, customStats[browser])\n }\n } else if (typeof stats === 'string') {\n if (stats.length > 2) {\n stats = stats.toLowerCase()\n } else {\n stats = stats.toUpperCase()\n }\n env.loadCountry(browserslist.usage, stats, browserslist.data)\n data = browserslist.usage[stats]\n } else {\n if ('dataByBrowser' in stats) {\n stats = stats.dataByBrowser\n }\n data = {}\n for (var name in stats) {\n for (var version in stats[name]) {\n data[name + ' ' + version] = stats[name][version]\n }\n }\n }\n\n return browsers.reduce(function (all, i) {\n var usage = data[i]\n if (usage === undefined) {\n usage = data[i.replace(/ \\S+$/, ' 0')]\n }\n return all + (usage || 0)\n }, 0)\n}\n\nfunction nodeQuery(context, node) {\n var matched = browserslist.nodeVersions.filter(function (i) {\n return isVersionsMatch(i, node.version)\n })\n if (matched.length === 0) {\n if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of Node.js'\n )\n }\n }\n return ['node ' + matched[matched.length - 1]]\n}\n\nfunction sinceQuery(context, node) {\n var year = parseInt(node.year)\n var month = parseInt(node.month || '01') - 1\n var day = parseInt(node.day || '01')\n return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context)\n}\n\nfunction coverQuery(context, node) {\n var coverage = parseFloat(node.coverage)\n var usage = browserslist.usage.global\n if (node.place) {\n if (node.place.match(/^my\\s+stats$/i)) {\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n usage = context.customUsage\n } else {\n var place\n if (node.place.length === 2) {\n place = node.place.toUpperCase()\n } else {\n place = node.place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n usage = browserslist.usage[place]\n }\n }\n var versions = Object.keys(usage).sort(function (a, b) {\n return usage[b] - usage[a]\n })\n var coveraged = 0\n var result = []\n var version\n for (var i = 0; i < versions.length; i++) {\n version = versions[i]\n if (usage[version] === 0) break\n coveraged += usage[version]\n result.push(version)\n if (coveraged >= coverage) break\n }\n return result\n}\n\nvar QUERIES = {\n last_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = getMajorVersions(data.released, node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.released.slice(-node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_electron_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var validVersions = getMajorVersions(Object.keys(e2c), node.versions)\n return validVersions.map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return getMajorVersions(browserslist.nodeVersions, node.versions).map(\n function (version) {\n return 'node ' + version\n }\n )\n }\n },\n last_browser_major_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var validVersions = getMajorVersions(data.released, node.versions)\n var list = validVersions.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n last_electron_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(e2c)\n .slice(-node.versions)\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+versions?$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .slice(-node.versions)\n .map(function (version) {\n return 'node ' + version\n })\n }\n },\n last_browser_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var list = data.released.slice(-node.versions).map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n unreleased_versions: {\n matches: [],\n regexp: /^unreleased\\s+versions$/i,\n select: function (context) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.versions.filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n list = list.map(nameMapper(data.name))\n return selected.concat(list)\n }, [])\n }\n },\n unreleased_electron_versions: {\n matches: [],\n regexp: /^unreleased\\s+electron\\s+versions?$/i,\n select: function () {\n return []\n }\n },\n unreleased_browser_versions: {\n matches: ['browser'],\n regexp: /^unreleased\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n return data.versions\n .filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n .map(nameMapper(data.name))\n }\n },\n last_years: {\n matches: ['years'],\n regexp: /^last\\s+(\\d*.?\\d+)\\s+years?$/i,\n select: function (context, node) {\n return filterByYear(Date.now() - YEAR * node.years, context)\n }\n },\n since_y: {\n matches: ['year'],\n regexp: /^since (\\d+)$/i,\n select: sinceQuery\n },\n since_y_m: {\n matches: ['year', 'month'],\n regexp: /^since (\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n since_y_m_d: {\n matches: ['year', 'month', 'day'],\n regexp: /^since (\\d+)-(\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n popularity: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var usage = browserslist.usage.global\n return Object.keys(usage).reduce(function (result, version) {\n if (node.sign === '>') {\n if (usage[version] > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (usage[version] < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (usage[version] <= popularity) {\n result.push(version)\n }\n } else if (usage[version] >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_my_stats: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+my\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_config_stats: {\n matches: ['sign', 'popularity', 'config'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(\\S+)\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var stats = env.loadStat(context, node.config, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_place: {\n matches: ['sign', 'popularity', 'place'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+((alt-)?\\w\\w)$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var place = node.place\n if (place.length === 2) {\n place = place.toUpperCase()\n } else {\n place = place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n var usage = browserslist.usage[place]\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n cover: {\n matches: ['coverage'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%$/i,\n select: coverQuery\n },\n cover_in: {\n matches: ['coverage', 'place'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(my\\s+stats|(alt-)?\\w\\w)$/i,\n select: coverQuery\n },\n supports: {\n matches: ['feature'],\n regexp: /^supports\\s+([\\w-]+)$/,\n select: function (context, node) {\n env.loadFeature(browserslist.cache, node.feature)\n var features = browserslist.cache[node.feature]\n var result = []\n for (var name in features) {\n var data = byName(name, context)\n // Only check desktop when latest released mobile has support\n var checkDesktop =\n context.mobileToDesktop &&\n name in browserslist.desktopNames &&\n isSupported(features[name][data.released.slice(-1)[0]])\n data.versions.forEach(function (version) {\n var flags = features[name][version]\n if (flags === undefined && checkDesktop) {\n flags = features[browserslist.desktopNames[name]][version]\n }\n if (isSupported(flags)) {\n result.push(name + ' ' + version)\n }\n })\n }\n return result\n }\n },\n electron_range: {\n matches: ['from', 'to'],\n regexp: /^electron\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var fromToUse = normalizeElectron(node.from)\n var toToUse = normalizeElectron(node.to)\n var from = parseFloat(node.from)\n var to = parseFloat(node.to)\n if (!e2c[fromToUse]) {\n throw new BrowserslistError('Unknown version ' + from + ' of electron')\n }\n if (!e2c[toToUse]) {\n throw new BrowserslistError('Unknown version ' + to + ' of electron')\n }\n return Object.keys(e2c)\n .filter(function (i) {\n var parsed = parseFloat(i)\n return parsed >= from && parsed <= to\n })\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_range: {\n matches: ['from', 'to'],\n regexp: /^node\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(semverFilterLoose('>=', node.from))\n .filter(semverFilterLoose('<=', node.to))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_range: {\n matches: ['browser', 'from', 'to'],\n regexp: /^(\\w+)\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var from = parseFloat(normalizeVersion(data, node.from) || node.from)\n var to = parseFloat(normalizeVersion(data, node.to) || node.to)\n function filter(v) {\n var parsed = parseFloat(v)\n return parsed >= from && parsed <= to\n }\n return data.released.filter(filter).map(nameMapper(data.name))\n }\n },\n electron_ray: {\n matches: ['sign', 'version'],\n regexp: /^electron\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n return Object.keys(e2c)\n .filter(generateFilter(node.sign, versionToUse))\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_ray: {\n matches: ['sign', 'version'],\n regexp: /^node\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(generateSemverFilter(node.sign, node.version))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_ray: {\n matches: ['browser', 'sign', 'version'],\n regexp: /^(\\w+)\\s*(>=?|<=?)\\s*([\\d.]+)$/,\n select: function (context, node) {\n var version = node.version\n var data = checkName(node.browser, context)\n var alias = browserslist.versionAliases[data.name][version]\n if (alias) version = alias\n return data.released\n .filter(generateFilter(node.sign, version))\n .map(function (v) {\n return data.name + ' ' + v\n })\n }\n },\n firefox_esr: {\n matches: [],\n regexp: /^(firefox|ff|fx)\\s+esr$/i,\n select: function () {\n return ['firefox 102', 'firefox 115']\n }\n },\n opera_mini_all: {\n matches: [],\n regexp: /(operamini|op_mini)\\s+all/i,\n select: function () {\n return ['op_mini all']\n }\n },\n electron_version: {\n matches: ['version'],\n regexp: /^electron\\s+([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n var chrome = e2c[versionToUse]\n if (!chrome) {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of electron'\n )\n }\n return ['chrome ' + chrome]\n }\n },\n node_major_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+)$/i,\n select: nodeQuery\n },\n node_minor_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n node_patch_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n current_node: {\n matches: [],\n regexp: /^current\\s+node$/i,\n select: function (context) {\n return [env.currentNode(resolve, context)]\n }\n },\n maintained_node: {\n matches: [],\n regexp: /^maintained\\s+node\\s+versions$/i,\n select: function (context) {\n var now = Date.now()\n var queries = Object.keys(jsEOL)\n .filter(function (key) {\n return (\n now < Date.parse(jsEOL[key].end) &&\n now > Date.parse(jsEOL[key].start) &&\n isEolReleased(key)\n )\n })\n .map(function (key) {\n return 'node ' + key.slice(1)\n })\n return resolve(queries, context)\n }\n },\n phantomjs_1_9: {\n matches: [],\n regexp: /^phantomjs\\s+1.9$/i,\n select: function () {\n return ['safari 5']\n }\n },\n phantomjs_2_1: {\n matches: [],\n regexp: /^phantomjs\\s+2.1$/i,\n select: function () {\n return ['safari 6']\n }\n },\n browser_version: {\n matches: ['browser', 'version'],\n regexp: /^(\\w+)\\s+(tp|[\\d.]+)$/i,\n select: function (context, node) {\n var version = node.version\n if (/^tp$/i.test(version)) version = 'TP'\n var data = checkName(node.browser, context)\n var alias = normalizeVersion(data, version)\n if (alias) {\n version = alias\n } else {\n if (version.indexOf('.') === -1) {\n alias = version + '.0'\n } else {\n alias = version.replace(/\\.0$/, '')\n }\n alias = normalizeVersion(data, alias)\n if (alias) {\n version = alias\n } else if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + version + ' of ' + node.browser\n )\n }\n }\n return [data.name + ' ' + version]\n }\n },\n browserslist_config: {\n matches: [],\n regexp: /^browserslist config$/i,\n select: function (context) {\n return browserslist(undefined, context)\n }\n },\n extends: {\n matches: ['config'],\n regexp: /^extends (.+)$/i,\n select: function (context, node) {\n return resolve(env.loadQueries(context, node.config), context)\n }\n },\n defaults: {\n matches: [],\n regexp: /^defaults$/i,\n select: function (context) {\n return resolve(browserslist.defaults, context)\n }\n },\n dead: {\n matches: [],\n regexp: /^dead$/i,\n select: function (context) {\n var dead = [\n 'Baidu >= 0',\n 'ie <= 11',\n 'ie_mob <= 11',\n 'bb <= 10',\n 'op_mob <= 12.1',\n 'samsung 4'\n ]\n return resolve(dead, context)\n }\n },\n unknown: {\n matches: [],\n regexp: /^(\\w+)$/i,\n select: function (context, node) {\n if (byName(node.query, context)) {\n throw new BrowserslistError(\n 'Specify versions in Browserslist query for browser ' + node.query\n )\n } else {\n throw unknownQuery(node.query)\n }\n }\n }\n}\n\n// Get and convert Can I Use data\n\n;(function () {\n for (var name in agents) {\n var browser = agents[name]\n browserslist.data[name] = {\n name: name,\n versions: normalize(agents[name].versions),\n released: normalize(agents[name].versions.slice(0, -3)),\n releaseDate: agents[name].release_date\n }\n fillUsage(browserslist.usage.global, name, browser.usage_global)\n\n browserslist.versionAliases[name] = {}\n for (var i = 0; i < browser.versions.length; i++) {\n var full = browser.versions[i]\n if (!full) continue\n\n if (full.indexOf('-') !== -1) {\n var interval = full.split('-')\n for (var j = 0; j < interval.length; j++) {\n browserslist.versionAliases[name][interval[j]] = full\n }\n }\n }\n }\n\n browserslist.nodeVersions = jsReleases.map(function (release) {\n return release.version\n })\n})()\n\nmodule.exports = browserslist\n","var AND_REGEXP = /^\\s+and\\s+(.*)/i\nvar OR_REGEXP = /^(?:,\\s*|\\s+or\\s+)(.*)/i\n\nfunction flatten(array) {\n if (!Array.isArray(array)) return [array]\n return array.reduce(function (a, b) {\n return a.concat(flatten(b))\n }, [])\n}\n\nfunction find(string, predicate) {\n for (var n = 1, max = string.length; n <= max; n++) {\n var parsed = string.substr(-n, n)\n if (predicate(parsed, n, max)) {\n return string.slice(0, -n)\n }\n }\n return ''\n}\n\nfunction matchQuery(all, query) {\n var node = { query: query }\n if (query.indexOf('not ') === 0) {\n node.not = true\n query = query.slice(4)\n }\n\n for (var name in all) {\n var type = all[name]\n var match = query.match(type.regexp)\n if (match) {\n node.type = name\n for (var i = 0; i < type.matches.length; i++) {\n node[type.matches[i]] = match[i + 1]\n }\n return node\n }\n }\n\n node.type = 'unknown'\n return node\n}\n\nfunction matchBlock(all, string, qs) {\n var node\n return find(string, function (parsed, n, max) {\n if (AND_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(AND_REGEXP)[1])\n node.compose = 'and'\n qs.unshift(node)\n return true\n } else if (OR_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(OR_REGEXP)[1])\n node.compose = 'or'\n qs.unshift(node)\n return true\n } else if (n === max) {\n node = matchQuery(all, parsed.trim())\n node.compose = 'or'\n qs.unshift(node)\n return true\n }\n return false\n })\n}\n\nmodule.exports = function parse(all, queries) {\n if (!Array.isArray(queries)) queries = [queries]\n return flatten(\n queries.map(function (block) {\n var qs = []\n do {\n block = matchBlock(all, block, qs)\n } while (block)\n return qs\n })\n )\n}\n","module.exports={A:{A:{K:0,F:0,G:0.0326854,H:0.0435805,A:0,B:0.392224,JC:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"JC\",\"K\",\"F\",\"G\",\"H\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE\",F:{JC:962323200,K:998870400,F:1161129600,G:1237420800,H:1300060800,A:1346716800,B:1381968000}},B:{A:{\"0\":3.56904,C:0,L:0,M:0,I:0.004259,N:0,D:0.004259,O:0.012777,P:0,Q:0.004259,R:0.004259,S:0.004259,T:0.008518,U:0.004259,V:0.004259,W:0.004259,X:0,Y:0.004259,Z:0.004259,a:0,b:0.012777,c:0,d:0,e:0,f:0,g:0,h:0,i:0.008518,j:0,n:0.008518,o:0.008518,p:0.004259,q:0,r:0,s:0.004259,t:0.008518,u:0.012777,v:0.076662,w:0.021295,x:0.029813,y:0.579224,z:0.745325,E:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"C\",\"L\",\"M\",\"I\",\"N\",\"D\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"E\",\"\",\"\",\"\"],E:\"Edge\",F:{\"0\":1685664000,C:1438128000,L:1447286400,M:1470096000,I:1491868800,N:1508198400,D:1525046400,O:1542067200,P:1579046400,Q:1581033600,R:1586736000,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:1611360000,Y:1614816000,Z:1618358400,a:1622073600,b:1626912000,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,n:1651190400,o:1653955200,p:1655942400,q:1659657600,r:1661990400,s:1664755200,t:1666915200,u:1670198400,v:1673481600,w:1675900800,x:1678665600,y:1680825600,z:1683158400,E:1689897600},D:{C:\"ms\",L:\"ms\",M:\"ms\",I:\"ms\",N:\"ms\",D:\"ms\",O:\"ms\"}},C:{A:{\"0\":1.2564,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,KC:0,zB:0,J:0,K:0,F:0,G:0,H:0,A:0,B:0.008518,C:0,L:0,M:0,I:0,N:0,D:0,O:0,k:0,l:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0.012777,PB:0.004259,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0.051108,YB:0,ZB:0,aB:0,bB:0.004259,cB:0,dB:0,\"0B\":0.004259,eB:0,\"1B\":0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0.004259,mB:0,nB:0,oB:0,pB:0.008518,m:0,qB:0,rB:0,sB:0,tB:0,uB:0.051108,P:0,Q:0,R:0,\"2B\":0,S:0,T:0.017036,U:0,V:0,W:0.008518,X:0.004259,Y:0,Z:0,a:0.012777,b:0,c:0,d:0.004259,e:0,f:0,g:0,h:0,i:0,j:0,n:0,o:0.110734,p:0.012777,q:0,r:0.008518,s:0.004259,t:0.008518,u:0.012777,v:0.012777,w:0.012777,x:0.025554,y:0.055367,z:0.660145,E:0.012777,\"3B\":0,\"4B\":0,LC:0,MC:0},B:\"moz\",C:[\"KC\",\"zB\",\"LC\",\"MC\",\"J\",\"1\",\"K\",\"F\",\"G\",\"H\",\"A\",\"B\",\"C\",\"L\",\"M\",\"I\",\"N\",\"D\",\"O\",\"2\",\"k\",\"l\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"0B\",\"eB\",\"1B\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"m\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"P\",\"Q\",\"R\",\"2B\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"E\",\"3B\",\"4B\",\"\"],E:\"Firefox\",F:{\"0\":1686009600,\"1\":1308614400,\"2\":1357603200,\"3\":1368489600,\"4\":1372118400,\"5\":1375747200,\"6\":1379376000,\"7\":1386633600,\"8\":1391472000,\"9\":1395100800,KC:1161648000,zB:1213660800,LC:1246320000,MC:1264032000,J:1300752000,K:1313452800,F:1317081600,G:1317081600,H:1320710400,A:1324339200,B:1327968000,C:1331596800,L:1335225600,M:1338854400,I:1342483200,N:1346112000,D:1349740800,O:1353628800,k:1361232000,l:1364860800,AB:1398729600,BB:1402358400,CB:1405987200,DB:1409616000,EB:1413244800,FB:1417392000,GB:1421107200,HB:1424736000,IB:1428278400,JB:1431475200,KB:1435881600,LB:1439251200,MB:1442880000,NB:1446508800,OB:1450137600,PB:1453852800,QB:1457395200,RB:1461628800,SB:1465257600,TB:1470096000,UB:1474329600,VB:1479168000,WB:1485216000,XB:1488844800,YB:1492560000,ZB:1497312000,aB:1502150400,bB:1506556800,cB:1510617600,dB:1516665600,\"0B\":1520985600,eB:1525824000,\"1B\":1529971200,fB:1536105600,gB:1540252800,hB:1544486400,iB:1548720000,jB:1552953600,kB:1558396800,lB:1562630400,mB:1567468800,nB:1571788800,oB:1575331200,pB:1578355200,m:1581379200,qB:1583798400,rB:1586304000,sB:1588636800,tB:1591056000,uB:1593475200,P:1595894400,Q:1598313600,R:1600732800,\"2B\":1603152000,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392000,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536000,n:1653955200,o:1656374400,p:1658793600,q:1661212800,r:1663632000,s:1666051200,t:1668470400,u:1670889600,v:1673913600,w:1676332800,x:1678752000,y:1681171200,z:1683590400,E:1688428800,\"3B\":null,\"4B\":null}},D:{A:{\"0\":14.553,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,J:0,K:0,F:0,G:0,H:0,A:0,B:0,C:0,L:0,M:0,I:0,N:0,D:0,O:0,k:0,l:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0.008518,GB:0,HB:0,IB:0,JB:0.017036,KB:0,LB:0.012777,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0.008518,TB:0.017036,UB:0.038331,VB:0.008518,WB:0,XB:0.004259,YB:0.008518,ZB:0,aB:0.004259,bB:0.051108,cB:0,dB:0,\"0B\":0,eB:0.017036,\"1B\":0.012777,fB:0,gB:0.004259,hB:0,iB:0.012777,jB:0.029813,kB:0.008518,lB:0.025554,mB:0.051108,nB:0.04259,oB:0.017036,pB:0.025554,m:0.012777,qB:0.059626,rB:0.059626,sB:0.093698,tB:0.025554,uB:0.038331,P:0.200173,Q:0.051108,R:0.051108,S:0.110734,T:0.029813,U:0.089439,V:0.072403,W:0.089439,X:0.046849,Y:0.038331,Z:0.055367,a:0.089439,b:0.038331,c:0.17036,d:0.034072,e:0.021295,f:0.025554,g:0.025554,h:0.063885,i:0.055367,j:0.046849,n:0.04259,o:0.051108,p:0.268317,q:0.063885,r:0.076662,s:0.051108,t:0.059626,u:0.149065,v:1.96766,w:0.123511,x:0.455713,y:0.630332,z:3.9268,E:0.021295,\"3B\":0.021295,\"4B\":0,NC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"J\",\"1\",\"K\",\"F\",\"G\",\"H\",\"A\",\"B\",\"C\",\"L\",\"M\",\"I\",\"N\",\"D\",\"O\",\"2\",\"k\",\"l\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"0B\",\"eB\",\"1B\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"m\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"E\",\"3B\",\"4B\",\"NC\"],E:\"Chrome\",F:{\"0\":1685404800,\"1\":1274745600,\"2\":1332892800,\"3\":1343692800,\"4\":1348531200,\"5\":1352246400,\"6\":1357862400,\"7\":1361404800,\"8\":1364428800,\"9\":1369094400,J:1264377600,K:1283385600,F:1287619200,G:1291248000,H:1296777600,A:1299542400,B:1303862400,C:1307404800,L:1312243200,M:1316131200,I:1316131200,N:1319500800,D:1323734400,O:1328659200,k:1337040000,l:1340668800,AB:1374105600,BB:1376956800,CB:1384214400,DB:1389657600,EB:1392940800,FB:1397001600,GB:1400544000,HB:1405468800,IB:1409011200,JB:1412640000,KB:1416268800,LB:1421798400,MB:1425513600,NB:1429401600,OB:1432080000,PB:1437523200,QB:1441152000,RB:1444780800,SB:1449014400,TB:1453248000,UB:1456963200,VB:1460592000,WB:1464134400,XB:1469059200,YB:1472601600,ZB:1476230400,aB:1480550400,bB:1485302400,cB:1489017600,dB:1492560000,\"0B\":1496707200,eB:1500940800,\"1B\":1504569600,fB:1508198400,gB:1512518400,hB:1516752000,iB:1520294400,jB:1523923200,kB:1527552000,lB:1532390400,mB:1536019200,nB:1539648000,oB:1543968000,pB:1548720000,m:1552348800,qB:1555977600,rB:1559606400,sB:1564444800,tB:1568073600,uB:1571702400,P:1575936000,Q:1580860800,R:1586304000,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272000,a:1621987200,b:1626739200,c:1630368000,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512000,n:1650931200,o:1653350400,p:1655769600,q:1659398400,r:1661817600,s:1664236800,t:1666656000,u:1669680000,v:1673308800,w:1675728000,x:1678147200,y:1680566400,z:1682985600,E:1689724800,\"3B\":null,\"4B\":null,NC:null}},E:{A:{\"1\":0,J:0,K:0,F:0,G:0,H:0,A:0,B:0,C:0,L:0.025554,M:0.12777,I:0.029813,D:0.008518,OC:0,\"5B\":0,PC:0.008518,QC:0,RC:0,SC:0.102216,\"6B\":0,vB:0.008518,wB:0.038331,\"7B\":0.166101,TC:0.332202,UC:0.055367,\"8B\":0.046849,\"9B\":0.106475,xB:0.191655,AC:0.779397,yB:0.080921,BC:0.25554,CC:0.289612,DC:0.706994,EC:0.498303,FC:2.00599,GC:0.021295,VC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"OC\",\"5B\",\"J\",\"1\",\"PC\",\"K\",\"QC\",\"F\",\"RC\",\"G\",\"H\",\"SC\",\"A\",\"6B\",\"B\",\"vB\",\"C\",\"wB\",\"L\",\"7B\",\"M\",\"TC\",\"I\",\"UC\",\"8B\",\"9B\",\"xB\",\"AC\",\"yB\",\"BC\",\"CC\",\"DC\",\"EC\",\"FC\",\"GC\",\"D\",\"VC\"],E:\"Safari\",F:{\"1\":1275868800,OC:1205798400,\"5B\":1226534400,J:1244419200,PC:1311120000,K:1343174400,QC:1382400000,F:1382400000,RC:1410998400,G:1413417600,H:1443657600,SC:1458518400,A:1474329600,\"6B\":1490572800,B:1505779200,vB:1522281600,C:1537142400,wB:1553472000,L:1568851200,\"7B\":1585008000,M:1600214400,TC:1619395200,I:1632096000,UC:1635292800,\"8B\":1639353600,\"9B\":1647216000,xB:1652745600,AC:1658275200,yB:1662940800,BC:1666569600,CC:1670889600,DC:1674432000,EC:1679875200,FC:1684368000,GC:null,D:null,VC:null}},F:{A:{\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0.008518,H:0,B:0.038331,C:0,I:0,N:0,D:0,O:0,k:0,l:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0.004259,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0.017036,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,m:0,qB:0,rB:0,sB:0,tB:0,uB:0,P:0,Q:0,R:0,\"2B\":0,S:0,T:0,U:0.004259,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0,c:0,d:0,e:0.059626,f:0.012777,g:0.021295,h:0.664404,i:1.29048,j:0.012777,WC:0,XC:0,YC:0,ZC:0,vB:0,HC:0,aC:0,wB:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"H\",\"WC\",\"XC\",\"YC\",\"ZC\",\"B\",\"vB\",\"HC\",\"aC\",\"C\",\"wB\",\"I\",\"N\",\"D\",\"O\",\"2\",\"k\",\"l\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"m\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"P\",\"Q\",\"R\",\"2B\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"\",\"\",\"\"],E:\"Opera\",F:{\"2\":1390867200,\"3\":1401753600,\"4\":1405987200,\"5\":1409616000,\"6\":1413331200,\"7\":1417132800,\"8\":1422316800,\"9\":1425945600,H:1150761600,WC:1223424000,XC:1251763200,YC:1267488000,ZC:1277942400,B:1292457600,vB:1302566400,HC:1309219200,aC:1323129600,C:1323129600,wB:1352073600,I:1372723200,N:1377561600,D:1381104000,O:1386288000,k:1393891200,l:1399334400,AB:1430179200,BB:1433808000,CB:1438646400,DB:1442448000,EB:1445904000,FB:1449100800,GB:1454371200,HB:1457308800,IB:1462320000,JB:1465344000,KB:1470096000,LB:1474329600,MB:1477267200,NB:1481587200,OB:1486425600,PB:1490054400,QB:1494374400,RB:1498003200,SB:1502236800,TB:1506470400,UB:1510099200,VB:1515024000,WB:1517961600,XB:1521676800,YB:1525910400,ZB:1530144000,aB:1534982400,bB:1537833600,cB:1543363200,dB:1548201600,eB:1554768000,fB:1561593600,gB:1566259200,hB:1570406400,iB:1573689600,jB:1578441600,kB:1583971200,lB:1587513600,mB:1592956800,nB:1595894400,oB:1600128000,pB:1603238400,m:1613520000,qB:1612224000,rB:1616544000,sB:1619568000,tB:1623715200,uB:1627948800,P:1631577600,Q:1633392000,R:1635984000,\"2B\":1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152000,Z:1660780800,a:1663113600,b:1668816000,c:1668643200,d:1671062400,e:1675209600,f:1677024000,g:1679529600,h:1681948800,i:1684195200,j:1687219200},D:{H:\"o\",B:\"o\",C:\"o\",WC:\"o\",XC:\"o\",YC:\"o\",ZC:\"o\",vB:\"o\",HC:\"o\",aC:\"o\",wB:\"o\"}},G:{A:{G:0,D:0.0227641,\"5B\":0,bC:0,IC:0.00303522,cC:0.00303522,dC:0.00455283,eC:0.0121409,fC:0.00455283,gC:0.00910566,hC:0.0440107,iC:0.00455283,jC:0.062222,kC:0.0303522,lC:0.0197289,mC:0.0166937,nC:0.321733,oC:0.00910566,pC:0.00910566,qC:0.0227641,rC:0.0773981,sC:0.20336,tC:0.374849,uC:0.119891,\"8B\":0.141138,\"9B\":0.160867,xB:0.239782,AC:0.582762,yB:0.648019,BC:1.23837,CC:0.661678,DC:1.56617,EC:1.0259,FC:6.55152,GC:0.0637396},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"5B\",\"bC\",\"IC\",\"cC\",\"dC\",\"eC\",\"G\",\"fC\",\"gC\",\"hC\",\"iC\",\"jC\",\"kC\",\"lC\",\"mC\",\"nC\",\"oC\",\"pC\",\"qC\",\"rC\",\"sC\",\"tC\",\"uC\",\"8B\",\"9B\",\"xB\",\"AC\",\"yB\",\"BC\",\"CC\",\"DC\",\"EC\",\"FC\",\"GC\",\"D\",\"\"],E:\"Safari on iOS\",F:{\"5B\":1270252800,bC:1283904000,IC:1299628800,cC:1331078400,dC:1359331200,eC:1394409600,G:1410912000,fC:1413763200,gC:1442361600,hC:1458518400,iC:1473724800,jC:1490572800,kC:1505779200,lC:1522281600,mC:1537142400,nC:1553472000,oC:1568851200,pC:1572220800,qC:1580169600,rC:1585008000,sC:1600214400,tC:1619395200,uC:1632096000,\"8B\":1639353600,\"9B\":1647216000,xB:1652659200,AC:1658275200,yB:1662940800,BC:1666569600,CC:1670889600,DC:1674432000,EC:1679875200,FC:1684368000,GC:null,D:null}},H:{A:{vC:0.956597},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"vC\",\"\",\"\",\"\"],E:\"Opera Mini\",F:{vC:1426464000}},I:{A:{zB:0,J:0.0252848,E:0,wC:0,xC:0.00842828,yC:0,zC:0.0168566,IC:0.092711,\"0C\":0,\"1C\":0.252848},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"wC\",\"xC\",\"yC\",\"zB\",\"J\",\"zC\",\"IC\",\"0C\",\"1C\",\"E\",\"\",\"\",\"\"],E:\"Android Browser\",F:{wC:1256515200,xC:1274313600,yC:1291593600,zB:1298332800,J:1318896000,zC:1341792000,IC:1374624000,\"0C\":1386547200,\"1C\":1401667200,E:1690243200}},J:{A:{F:0,A:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"F\",\"A\",\"\",\"\",\"\"],E:\"Blackberry Browser\",F:{F:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,m:0,vB:0,HC:0,wB:0},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"vB\",\"HC\",\"C\",\"wB\",\"m\",\"\",\"\",\"\"],E:\"Opera Mobile\",F:{A:1287100800,B:1300752000,vB:1314835200,HC:1318291200,C:1330300800,wB:1349740800,m:1673827200},D:{m:\"webkit\"}},L:{A:{E:38.2012},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"E\",\"\",\"\",\"\"],E:\"Chrome for Android\",F:{E:1690243200}},M:{A:{E:0.281309},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"E\",\"\",\"\",\"\"],E:\"Firefox for Android\",F:{E:1688428800}},N:{A:{A:0,B:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE Mobile\",F:{A:1340150400,B:1353456000}},O:{A:{xB:1.04486},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"xB\",\"\",\"\",\"\"],E:\"UC Browser for Android\",F:{xB:1687132800},D:{xB:\"webkit\"}},P:{A:{J:0.156242,k:0.229156,l:1.74991,\"2C\":0,\"3C\":0,\"4C\":0.0520808,\"5C\":0,\"6C\":0,\"6B\":0,\"7C\":0.0208323,\"8C\":0,\"9C\":0.0208323,AD:0.0208323,BD:0.0104162,yB:0.0416646,CD:0.0416646,DD:0.0416646,ED:0.0833293},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"J\",\"2C\",\"3C\",\"4C\",\"5C\",\"6C\",\"6B\",\"7C\",\"8C\",\"9C\",\"AD\",\"BD\",\"yB\",\"CD\",\"DD\",\"ED\",\"k\",\"l\",\"\",\"\",\"\"],E:\"Samsung Internet\",F:{J:1461024000,\"2C\":1481846400,\"3C\":1509408000,\"4C\":1528329600,\"5C\":1546128000,\"6C\":1554163200,\"6B\":1567900800,\"7C\":1582588800,\"8C\":1593475200,\"9C\":1605657600,AD:1618531200,BD:1629072000,yB:1640736000,CD:1651708800,DD:1659657600,ED:1667260800,k:1677369600,l:1684454400}},Q:{A:{\"7B\":0.155007},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"7B\",\"\",\"\",\"\"],E:\"QQ Browser\",F:{\"7B\":1663718400}},R:{A:{FD:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"FD\",\"\",\"\",\"\"],E:\"Baidu Browser\",F:{FD:1663027200}},S:{A:{GD:0.103338,HD:0},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"GD\",\"HD\",\"\",\"\",\"\"],E:\"KaiOS Browser\",F:{GD:1527811200,HD:1631664000}}};\n","module.exports={\"0\":\"114\",\"1\":\"5\",\"2\":\"19\",\"3\":\"22\",\"4\":\"23\",\"5\":\"24\",\"6\":\"25\",\"7\":\"26\",\"8\":\"27\",\"9\":\"28\",A:\"10\",B:\"11\",C:\"12\",D:\"17\",E:\"115\",F:\"7\",G:\"8\",H:\"9\",I:\"15\",J:\"4\",K:\"6\",L:\"13\",M:\"14\",N:\"16\",O:\"18\",P:\"79\",Q:\"80\",R:\"81\",S:\"83\",T:\"84\",U:\"85\",V:\"86\",W:\"87\",X:\"88\",Y:\"89\",Z:\"90\",a:\"91\",b:\"92\",c:\"93\",d:\"94\",e:\"95\",f:\"96\",g:\"97\",h:\"98\",i:\"99\",j:\"100\",k:\"20\",l:\"21\",m:\"73\",n:\"101\",o:\"102\",p:\"103\",q:\"104\",r:\"105\",s:\"106\",t:\"107\",u:\"108\",v:\"109\",w:\"110\",x:\"111\",y:\"112\",z:\"113\",AB:\"29\",BB:\"30\",CB:\"31\",DB:\"32\",EB:\"33\",FB:\"34\",GB:\"35\",HB:\"36\",IB:\"37\",JB:\"38\",KB:\"39\",LB:\"40\",MB:\"41\",NB:\"42\",OB:\"43\",PB:\"44\",QB:\"45\",RB:\"46\",SB:\"47\",TB:\"48\",UB:\"49\",VB:\"50\",WB:\"51\",XB:\"52\",YB:\"53\",ZB:\"54\",aB:\"55\",bB:\"56\",cB:\"57\",dB:\"58\",eB:\"60\",fB:\"62\",gB:\"63\",hB:\"64\",iB:\"65\",jB:\"66\",kB:\"67\",lB:\"68\",mB:\"69\",nB:\"70\",oB:\"71\",pB:\"72\",qB:\"74\",rB:\"75\",sB:\"76\",tB:\"77\",uB:\"78\",vB:\"11.1\",wB:\"12.1\",xB:\"15.5\",yB:\"16.0\",zB:\"3\",\"0B\":\"59\",\"1B\":\"61\",\"2B\":\"82\",\"3B\":\"116\",\"4B\":\"117\",\"5B\":\"3.2\",\"6B\":\"10.1\",\"7B\":\"13.1\",\"8B\":\"15.2-15.3\",\"9B\":\"15.4\",AC:\"15.6\",BC:\"16.1\",CC:\"16.2\",DC:\"16.3\",EC:\"16.4\",FC:\"16.5\",GC:\"16.6\",HC:\"11.5\",IC:\"4.2-4.3\",JC:\"5.5\",KC:\"2\",LC:\"3.5\",MC:\"3.6\",NC:\"118\",OC:\"3.1\",PC:\"5.1\",QC:\"6.1\",RC:\"7.1\",SC:\"9.1\",TC:\"14.1\",UC:\"15.1\",VC:\"TP\",WC:\"9.5-9.6\",XC:\"10.0-10.1\",YC:\"10.5\",ZC:\"10.6\",aC:\"11.6\",bC:\"4.0-4.1\",cC:\"5.0-5.1\",dC:\"6.0-6.1\",eC:\"7.0-7.1\",fC:\"8.1-8.4\",gC:\"9.0-9.2\",hC:\"9.3\",iC:\"10.0-10.2\",jC:\"10.3\",kC:\"11.0-11.2\",lC:\"11.3-11.4\",mC:\"12.0-12.1\",nC:\"12.2-12.5\",oC:\"13.0-13.1\",pC:\"13.2\",qC:\"13.3\",rC:\"13.4-13.7\",sC:\"14.0-14.4\",tC:\"14.5-14.8\",uC:\"15.0-15.1\",vC:\"all\",wC:\"2.1\",xC:\"2.2\",yC:\"2.3\",zC:\"4.1\",\"0C\":\"4.4\",\"1C\":\"4.4.3-4.4.4\",\"2C\":\"5.0-5.4\",\"3C\":\"6.2-6.4\",\"4C\":\"7.2-7.4\",\"5C\":\"8.2\",\"6C\":\"9.2\",\"7C\":\"11.1-11.2\",\"8C\":\"12.0\",\"9C\":\"13.0\",AD:\"14.0\",BD:\"15.0\",CD:\"17.0\",DD:\"18.0\",ED:\"19.0\",FD:\"13.18\",GD:\"2.5\",HD:\"3.0-3.1\"};\n","module.exports={A:\"ie\",B:\"edge\",C:\"firefox\",D:\"chrome\",E:\"safari\",F:\"opera\",G:\"ios_saf\",H:\"op_mini\",I:\"android\",J:\"bb\",K:\"op_mob\",L:\"and_chr\",M:\"and_ff\",N:\"ie_mob\",O:\"and_uc\",P:\"samsung\",Q:\"and_qq\",R:\"baidu\",S:\"kaios\"};\n","'use strict'\n\nconst browsers = require('./browsers').browsers\nconst versions = require('./browserVersions').browserVersions\nconst agentsData = require('../../data/agents')\n\nfunction unpackBrowserVersions(versionsData) {\n return Object.keys(versionsData).reduce((usage, version) => {\n usage[versions[version]] = versionsData[version]\n return usage\n }, {})\n}\n\nmodule.exports.agents = Object.keys(agentsData).reduce((map, key) => {\n let versionsData = agentsData[key]\n map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => {\n if (entry === 'A') {\n data.usage_global = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'C') {\n data.versions = versionsData[entry].reduce((list, version) => {\n if (version === '') {\n list.push(null)\n } else {\n list.push(versions[version])\n }\n return list\n }, [])\n } else if (entry === 'D') {\n data.prefix_exceptions = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'E') {\n data.browser = versionsData[entry]\n } else if (entry === 'F') {\n data.release_date = Object.keys(versionsData[entry]).reduce(\n (map2, key2) => {\n map2[versions[key2]] = versionsData[entry][key2]\n return map2\n },\n {}\n )\n } else {\n // entry is B\n data.prefix = versionsData[entry]\n }\n return data\n }, {})\n return map\n}, {})\n","module.exports.browserVersions = require('../../data/browserVersions')\n","module.exports.browsers = require('../../data/browsers')\n","module.exports = {\n\t\"0.20\": \"39\",\n\t\"0.21\": \"41\",\n\t\"0.22\": \"41\",\n\t\"0.23\": \"41\",\n\t\"0.24\": \"41\",\n\t\"0.25\": \"42\",\n\t\"0.26\": \"42\",\n\t\"0.27\": \"43\",\n\t\"0.28\": \"43\",\n\t\"0.29\": \"43\",\n\t\"0.30\": \"44\",\n\t\"0.31\": \"45\",\n\t\"0.32\": \"45\",\n\t\"0.33\": \"45\",\n\t\"0.34\": \"45\",\n\t\"0.35\": \"45\",\n\t\"0.36\": \"47\",\n\t\"0.37\": \"49\",\n\t\"1.0\": \"49\",\n\t\"1.1\": \"50\",\n\t\"1.2\": \"51\",\n\t\"1.3\": \"52\",\n\t\"1.4\": \"53\",\n\t\"1.5\": \"54\",\n\t\"1.6\": \"56\",\n\t\"1.7\": \"58\",\n\t\"1.8\": \"59\",\n\t\"2.0\": \"61\",\n\t\"2.1\": \"61\",\n\t\"3.0\": \"66\",\n\t\"3.1\": \"66\",\n\t\"4.0\": \"69\",\n\t\"4.1\": \"69\",\n\t\"4.2\": \"69\",\n\t\"5.0\": \"73\",\n\t\"6.0\": \"76\",\n\t\"6.1\": \"76\",\n\t\"7.0\": \"78\",\n\t\"7.1\": \"78\",\n\t\"7.2\": \"78\",\n\t\"7.3\": \"78\",\n\t\"8.0\": \"80\",\n\t\"8.1\": \"80\",\n\t\"8.2\": \"80\",\n\t\"8.3\": \"80\",\n\t\"8.4\": \"80\",\n\t\"8.5\": \"80\",\n\t\"9.0\": \"83\",\n\t\"9.1\": \"83\",\n\t\"9.2\": \"83\",\n\t\"9.3\": \"83\",\n\t\"9.4\": \"83\",\n\t\"10.0\": \"85\",\n\t\"10.1\": \"85\",\n\t\"10.2\": \"85\",\n\t\"10.3\": \"85\",\n\t\"10.4\": \"85\",\n\t\"11.0\": \"87\",\n\t\"11.1\": \"87\",\n\t\"11.2\": \"87\",\n\t\"11.3\": \"87\",\n\t\"11.4\": \"87\",\n\t\"11.5\": \"87\",\n\t\"12.0\": \"89\",\n\t\"12.1\": \"89\",\n\t\"12.2\": \"89\",\n\t\"13.0\": \"91\",\n\t\"13.1\": \"91\",\n\t\"13.2\": \"91\",\n\t\"13.3\": \"91\",\n\t\"13.4\": \"91\",\n\t\"13.5\": \"91\",\n\t\"13.6\": \"91\",\n\t\"14.0\": \"93\",\n\t\"14.1\": \"93\",\n\t\"14.2\": \"93\",\n\t\"15.0\": \"94\",\n\t\"15.1\": \"94\",\n\t\"15.2\": \"94\",\n\t\"15.3\": \"94\",\n\t\"15.4\": \"94\",\n\t\"15.5\": \"94\",\n\t\"16.0\": \"96\",\n\t\"16.1\": \"96\",\n\t\"16.2\": \"96\",\n\t\"17.0\": \"98\",\n\t\"17.1\": \"98\",\n\t\"17.2\": \"98\",\n\t\"17.3\": \"98\",\n\t\"17.4\": \"98\",\n\t\"18.0\": \"100\",\n\t\"18.1\": \"100\",\n\t\"18.2\": \"100\",\n\t\"18.3\": \"100\",\n\t\"19.0\": \"102\",\n\t\"19.1\": \"102\",\n\t\"20.0\": \"104\",\n\t\"20.1\": \"104\",\n\t\"20.2\": \"104\",\n\t\"20.3\": \"104\",\n\t\"21.0\": \"106\",\n\t\"21.1\": \"106\",\n\t\"21.2\": \"106\",\n\t\"21.3\": \"106\",\n\t\"21.4\": \"106\",\n\t\"22.0\": \"108\",\n\t\"22.1\": \"108\",\n\t\"22.2\": \"108\",\n\t\"22.3\": \"108\",\n\t\"23.0\": \"110\",\n\t\"23.1\": \"110\",\n\t\"23.2\": \"110\",\n\t\"23.3\": \"110\",\n\t\"24.0\": \"112\",\n\t\"24.1\": \"112\",\n\t\"24.2\": \"112\",\n\t\"24.3\": \"112\",\n\t\"24.4\": \"112\",\n\t\"24.5\": \"112\",\n\t\"24.6\": \"112\",\n\t\"25.0\": \"114\",\n\t\"25.1\": \"114\",\n\t\"25.2\": \"114\",\n\t\"25.3\": \"114\",\n\t\"26.0\": \"116\"\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar compatTransforms = require('./transforms');\nvar _transform = require('../transform');\n\nmodule.exports = {\n /**\n * Translates a regexp in new syntax to equivalent regexp in old syntax.\n *\n * @param string|RegExp|AST - regexp\n * @param Array transformsWhitelist - names of the transforms to apply\n */\n transform: function transform(regexp) {\n var transformsWhitelist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var transformToApply = transformsWhitelist.length > 0 ? transformsWhitelist : Object.keys(compatTransforms);\n\n var result = void 0;\n\n // Collect extra data per transform.\n var extra = {};\n\n transformToApply.forEach(function (transformName) {\n\n if (!compatTransforms.hasOwnProperty(transformName)) {\n throw new Error('Unknown compat-transform: ' + transformName + '. ' + 'Available transforms are: ' + Object.keys(compatTransforms).join(', '));\n }\n\n var handler = compatTransforms[transformName];\n\n result = _transform.transform(regexp, handler);\n regexp = result.getAST();\n\n // Collect `extra` transform result.\n if (typeof handler.getExtra === 'function') {\n extra[transformName] = handler.getExtra();\n }\n });\n\n // Set the final extras for all transforms.\n result.setExtra(extra);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * The `RegExpTree` class provides runtime support for `compat-transpiler`\n * module from `regexp-tree`.\n *\n * E.g. it tracks names of the capturing groups, in order to access the\n * names on the matched result.\n *\n * It's a thin-wrapper on top of original regexp.\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar RegExpTree = function () {\n /**\n * Initializes a `RegExpTree` instance.\n *\n * @param RegExp - a regular expression\n *\n * @param Object state:\n *\n * An extra state which may store any related to transformation\n * data, for example, names of the groups.\n *\n * - flags - original flags\n * - groups - names of the groups, and their indices\n * - source - original source\n */\n function RegExpTree(re, _ref) {\n var flags = _ref.flags,\n groups = _ref.groups,\n source = _ref.source;\n\n _classCallCheck(this, RegExpTree);\n\n this._re = re;\n this._groups = groups;\n\n // Original props.\n this.flags = flags;\n this.source = source || re.source;\n this.dotAll = flags.includes('s');\n\n // Inherited directly from `re`.\n this.global = re.global;\n this.ignoreCase = re.ignoreCase;\n this.multiline = re.multiline;\n this.sticky = re.sticky;\n this.unicode = re.unicode;\n }\n\n /**\n * Facade wrapper for RegExp `test` method.\n */\n\n\n _createClass(RegExpTree, [{\n key: 'test',\n value: function test(string) {\n return this._re.test(string);\n }\n\n /**\n * Facade wrapper for RegExp `compile` method.\n */\n\n }, {\n key: 'compile',\n value: function compile(string) {\n return this._re.compile(string);\n }\n\n /**\n * Facade wrapper for RegExp `toString` method.\n */\n\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._toStringResult) {\n this._toStringResult = '/' + this.source + '/' + this.flags;\n }\n return this._toStringResult;\n }\n\n /**\n * Facade wrapper for RegExp `exec` method.\n */\n\n }, {\n key: 'exec',\n value: function exec(string) {\n var result = this._re.exec(string);\n\n if (!this._groups || !result) {\n return result;\n }\n\n result.groups = {};\n\n for (var group in this._groups) {\n var groupNumber = this._groups[group];\n result.groups[group] = result[groupNumber];\n }\n\n return result;\n }\n }]);\n\n return RegExpTree;\n}();\n\nmodule.exports = {\n RegExpTree: RegExpTree\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/./s` to `/[\\0-\\uFFFF]/`.\n */\n\nmodule.exports = {\n\n // Whether `u` flag present. In which case we transform to\n // \\u{10FFFF} instead of \\uFFFF.\n _hasUFlag: false,\n\n // Only run this plugin if we have `s` flag.\n shouldRun: function shouldRun(ast) {\n var shouldRun = ast.flags.includes('s');\n\n if (!shouldRun) {\n return false;\n }\n\n // Strip the `s` flag.\n ast.flags = ast.flags.replace('s', '');\n\n // Whether we have also `u`.\n this._hasUFlag = ast.flags.includes('u');\n\n return true;\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (node.kind !== 'meta' || node.value !== '.') {\n return;\n }\n\n var toValue = '\\\\uFFFF';\n var toSymbol = '\\uFFFF';\n\n if (this._hasUFlag) {\n toValue = '\\\\u{10FFFF}';\n toSymbol = '\\uDBFF\\uDFFF';\n }\n\n path.replace({\n type: 'CharacterClass',\n expressions: [{\n type: 'ClassRange',\n from: {\n type: 'Char',\n value: '\\\\0',\n kind: 'decimal',\n symbol: '\\0'\n },\n to: {\n type: 'Char',\n value: toValue,\n kind: 'unicode',\n symbol: toSymbol\n }\n }]\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/(?<name>a)\\k<name>/` to `/(a)\\1/`.\n */\n\nmodule.exports = {\n // To track the names of the groups, and return them\n // in the transform result state.\n //\n // A map from name to number: {foo: 2, bar: 4}\n _groupNames: {},\n\n /**\n * Initialises the trasnform.\n */\n init: function init() {\n this._groupNames = {};\n },\n\n\n /**\n * Returns extra state, which eventually is returned to\n */\n getExtra: function getExtra() {\n return this._groupNames;\n },\n Group: function Group(path) {\n var node = path.node;\n\n\n if (!node.name) {\n return;\n }\n\n // Record group name.\n this._groupNames[node.name] = node.number;\n\n delete node.name;\n delete node.nameRaw;\n },\n Backreference: function Backreference(path) {\n var node = path.node;\n\n\n if (node.kind !== 'name') {\n return;\n }\n\n node.kind = 'number';\n node.reference = node.number;\n delete node.referenceRaw;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove `x` flag `/foo/x` to `/foo/`.\n *\n * Note: other features of `x` flags (whitespace, comments) are\n * already removed at parsing stage.\n */\n\nmodule.exports = {\n RegExp: function RegExp(_ref) {\n var node = _ref.node;\n\n if (node.flags.includes('x')) {\n node.flags = node.flags.replace('x', '');\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = {\n // \"dotAll\" `s` flag\n dotAll: require('./compat-dotall-s-transform'),\n\n // Named capturing groups.\n namedCapturingGroups: require('./compat-named-capturing-groups-transform'),\n\n // `x` flag\n xFlag: require('./compat-x-flag-transform')\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\nfunction gen(node) {\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n return '/' + gen(node.body) + '/' + node.flags;\n },\n Alternative: function Alternative(node) {\n return (node.expressions || []).map(gen).join('');\n },\n Disjunction: function Disjunction(node) {\n return gen(node.left) + '|' + gen(node.right);\n },\n Group: function Group(node) {\n var expression = gen(node.expression);\n\n if (node.capturing) {\n // A named group.\n if (node.name) {\n return '(?<' + (node.nameRaw || node.name) + '>' + expression + ')';\n }\n\n return '(' + expression + ')';\n }\n\n return '(?:' + expression + ')';\n },\n Backreference: function Backreference(node) {\n switch (node.kind) {\n case 'number':\n return '\\\\' + node.reference;\n case 'name':\n return '\\\\k<' + (node.referenceRaw || node.reference) + '>';\n default:\n throw new TypeError('Unknown Backreference kind: ' + node.kind);\n }\n },\n Assertion: function Assertion(node) {\n switch (node.kind) {\n case '^':\n case '$':\n case '\\\\b':\n case '\\\\B':\n return node.kind;\n\n case 'Lookahead':\n {\n var assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?!' + assertion + ')';\n }\n\n return '(?=' + assertion + ')';\n }\n\n case 'Lookbehind':\n {\n var _assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?<!' + _assertion + ')';\n }\n\n return '(?<=' + _assertion + ')';\n }\n\n default:\n throw new TypeError('Unknown Assertion kind: ' + node.kind);\n }\n },\n CharacterClass: function CharacterClass(node) {\n var expressions = node.expressions.map(gen).join('');\n\n if (node.negative) {\n return '[^' + expressions + ']';\n }\n\n return '[' + expressions + ']';\n },\n ClassRange: function ClassRange(node) {\n return gen(node.from) + '-' + gen(node.to);\n },\n Repetition: function Repetition(node) {\n return '' + gen(node.expression) + gen(node.quantifier);\n },\n Quantifier: function Quantifier(node) {\n var quantifier = void 0;\n var greedy = node.greedy ? '' : '?';\n\n switch (node.kind) {\n case '+':\n case '?':\n case '*':\n quantifier = node.kind;\n break;\n case 'Range':\n // Exact: {1}\n if (node.from === node.to) {\n quantifier = '{' + node.from + '}';\n }\n // Open: {1,}\n else if (!node.to) {\n quantifier = '{' + node.from + ',}';\n }\n // Closed: {1,3}\n else {\n quantifier = '{' + node.from + ',' + node.to + '}';\n }\n break;\n default:\n throw new TypeError('Unknown Quantifier kind: ' + node.kind);\n }\n\n return '' + quantifier + greedy;\n },\n Char: function Char(node) {\n var value = node.value;\n\n switch (node.kind) {\n case 'simple':\n {\n if (node.escaped) {\n return '\\\\' + value;\n }\n return value;\n }\n\n case 'hex':\n case 'unicode':\n case 'oct':\n case 'decimal':\n case 'control':\n case 'meta':\n return value;\n\n default:\n throw new TypeError('Unknown Char kind: ' + node.kind);\n }\n },\n UnicodeProperty: function UnicodeProperty(node) {\n var escapeChar = node.negative ? 'P' : 'p';\n var namePart = void 0;\n\n if (!node.shorthand && !node.binary) {\n namePart = node.name + '=';\n } else {\n namePart = '';\n }\n\n return '\\\\' + escapeChar + '{' + namePart + node.value + '}';\n }\n};\n\nmodule.exports = {\n /**\n * Generates a regexp string from an AST.\n *\n * @param Object ast - an AST node\n */\n generate: gen\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n// DFA minization.\n\n/**\n * Map from state to current set it goes.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar currentTransitionMap = null;\n\n/**\n * Takes a DFA, and returns a minimized version of it\n * compressing some states to groups (using standard, 0-, 1-,\n * 2-, ... N-equivalence algorithm).\n */\nfunction minimize(dfa) {\n var table = dfa.getTransitionTable();\n var allStates = Object.keys(table);\n var alphabet = dfa.getAlphabet();\n var accepting = dfa.getAcceptingStateNumbers();\n\n currentTransitionMap = {};\n\n var nonAccepting = new Set();\n\n allStates.forEach(function (state) {\n state = Number(state);\n var isAccepting = accepting.has(state);\n\n if (isAccepting) {\n currentTransitionMap[state] = accepting;\n } else {\n nonAccepting.add(state);\n currentTransitionMap[state] = nonAccepting;\n }\n });\n\n // ---------------------------------------------------------------------------\n // Step 1: build equivalent sets.\n\n // All [1..N] equivalent sets.\n var all = [\n // 0-equivalent sets.\n [nonAccepting, accepting].filter(function (set) {\n return set.size > 0;\n })];\n\n var current = void 0;\n var previous = void 0;\n\n // Top of the stack is the current list of sets to analyze.\n current = all[all.length - 1];\n\n // Previous set (to check whether we need to stop).\n previous = all[all.length - 2];\n\n // Until we'll not have the same N and N-1 equivalent rows.\n\n var _loop = function _loop() {\n var newTransitionMap = {};\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = current[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _set = _step3.value;\n\n // Handled states for this set.\n var handledStates = {};\n\n var _set2 = _toArray(_set),\n first = _set2[0],\n rest = _set2.slice(1);\n\n handledStates[first] = new Set([first]);\n\n // Have to compare each from the rest states with\n // the already handled states, and see if they are equivalent.\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n restSets: for (var _iterator4 = rest[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var state = _step4.value;\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = Object.keys(handledStates)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var handledState = _step5.value;\n\n // This and some previously handled state are equivalent --\n // just append this state to the same set.\n if (areEquivalent(state, handledState, table, alphabet)) {\n handledStates[handledState].add(state);\n handledStates[state] = handledStates[handledState];\n continue restSets;\n }\n }\n // Else, this state is not equivalent to any of the\n // handled states -- allocate a new set for it.\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n handledStates[state] = new Set([state]);\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n\n // Add these handled states to all states map.\n\n\n Object.assign(newTransitionMap, handledStates);\n }\n\n // Update current transition map for the handled row.\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n currentTransitionMap = newTransitionMap;\n\n var newSets = new Set(Object.keys(newTransitionMap).map(function (state) {\n return newTransitionMap[state];\n }));\n\n all.push([].concat(_toConsumableArray(newSets)));\n\n // Top of the stack is the current.\n current = all[all.length - 1];\n\n // Previous set.\n previous = all[all.length - 2];\n };\n\n while (!sameRow(current, previous)) {\n _loop();\n }\n\n // ---------------------------------------------------------------------------\n // Step 2: build minimized table from the equivalent sets.\n\n // Remap state numbers from sets to index-based.\n var remaped = new Map();\n var idx = 1;\n current.forEach(function (set) {\n return remaped.set(set, idx++);\n });\n\n // Build the minimized table from the calculated equivalent sets.\n var minimizedTable = {};\n\n var minimizedAcceptingStates = new Set();\n\n var updateAcceptingStates = function updateAcceptingStates(set, idx) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = set[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var state = _step.value;\n\n if (accepting.has(state)) {\n minimizedAcceptingStates.add(idx);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = remaped.entries()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var set = _ref2[0];\n var _idx = _ref2[1];\n\n minimizedTable[_idx] = {};\n var _iteratorNormalCompletion6 = true;\n var _didIteratorError6 = false;\n var _iteratorError6 = undefined;\n\n try {\n for (var _iterator6 = alphabet[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var symbol = _step6.value;\n\n updateAcceptingStates(set, _idx);\n\n // Determine original transition for this symbol from the set.\n var originalTransition = void 0;\n var _iteratorNormalCompletion7 = true;\n var _didIteratorError7 = false;\n var _iteratorError7 = undefined;\n\n try {\n for (var _iterator7 = set[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n var originalState = _step7.value;\n\n originalTransition = table[originalState][symbol];\n if (originalTransition) {\n break;\n }\n }\n } catch (err) {\n _didIteratorError7 = true;\n _iteratorError7 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion7 && _iterator7.return) {\n _iterator7.return();\n }\n } finally {\n if (_didIteratorError7) {\n throw _iteratorError7;\n }\n }\n }\n\n if (originalTransition) {\n minimizedTable[_idx][symbol] = remaped.get(currentTransitionMap[originalTransition]);\n }\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n }\n\n // Update the table, and accepting states on the original DFA.\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n dfa.setTransitionTable(minimizedTable);\n dfa.setAcceptingStateNumbers(minimizedAcceptingStates);\n\n return dfa;\n}\n\nfunction sameRow(r1, r2) {\n if (!r2) {\n return false;\n }\n\n if (r1.length !== r2.length) {\n return false;\n }\n\n for (var i = 0; i < r1.length; i++) {\n var s1 = r1[i];\n var s2 = r2[i];\n\n if (s1.size !== s2.size) {\n return false;\n }\n\n if ([].concat(_toConsumableArray(s1)).sort().join(',') !== [].concat(_toConsumableArray(s2)).sort().join(',')) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether two states are N-equivalent, i.e. whether they go\n * to the same set on a symbol.\n */\nfunction areEquivalent(s1, s2, table, alphabet) {\n var _iteratorNormalCompletion8 = true;\n var _didIteratorError8 = false;\n var _iteratorError8 = undefined;\n\n try {\n for (var _iterator8 = alphabet[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {\n var symbol = _step8.value;\n\n if (!goToSameSet(s1, s2, table, symbol)) {\n return false;\n }\n }\n } catch (err) {\n _didIteratorError8 = true;\n _iteratorError8 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion8 && _iterator8.return) {\n _iterator8.return();\n }\n } finally {\n if (_didIteratorError8) {\n throw _iteratorError8;\n }\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether states go to the same set.\n */\nfunction goToSameSet(s1, s2, table, symbol) {\n if (!currentTransitionMap[s1] || !currentTransitionMap[s2]) {\n return false;\n }\n\n var originalTransitionS1 = table[s1][symbol];\n var originalTransitionS2 = table[s2][symbol];\n\n // If no actual transition on this symbol, treat it as positive.\n if (!originalTransitionS1 && !originalTransitionS2) {\n return true;\n }\n\n // Otherwise, check if they are in the same sets.\n return currentTransitionMap[s1].has(originalTransitionS1) && currentTransitionMap[s2].has(originalTransitionS2);\n}\n\nmodule.exports = {\n minimize: minimize\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DFAMinimizer = require('./dfa-minimizer');\n\nvar _require = require('../special-symbols'),\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * DFA is build by converting from NFA (subset construction).\n */\n\n\nvar DFA = function () {\n function DFA(nfa) {\n _classCallCheck(this, DFA);\n\n this._nfa = nfa;\n }\n\n /**\n * Minimizes DFA.\n */\n\n\n _createClass(DFA, [{\n key: 'minimize',\n value: function minimize() {\n this.getTransitionTable();\n\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._originalTransitionTable = this._transitionTable;\n\n DFAMinimizer.minimize(this);\n }\n\n /**\n * Returns alphabet for this DFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n return this._nfa.getAlphabet();\n }\n\n /**\n * Returns accepting states.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._acceptingStateNumbers;\n }\n\n /**\n * Returns original accepting states.\n */\n\n }, {\n key: 'getOriginaAcceptingStateNumbers',\n value: function getOriginaAcceptingStateNumbers() {\n if (!this._originalAcceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._originalAcceptingStateNumbers;\n }\n\n /**\n * Sets transition table.\n */\n\n }, {\n key: 'setTransitionTable',\n value: function setTransitionTable(table) {\n this._transitionTable = table;\n }\n\n /**\n * Sets accepting states.\n */\n\n }, {\n key: 'setAcceptingStateNumbers',\n value: function setAcceptingStateNumbers(stateNumbers) {\n this._acceptingStateNumbers = stateNumbers;\n }\n\n /**\n * DFA transition table is built from NFA table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (this._transitionTable) {\n return this._transitionTable;\n }\n\n // Calculate from NFA transition table.\n var nfaTable = this._nfa.getTransitionTable();\n var nfaStates = Object.keys(nfaTable);\n\n this._acceptingStateNumbers = new Set();\n\n // Start state of DFA is E(S[nfa])\n var startState = nfaTable[nfaStates[0]][EPSILON_CLOSURE];\n\n // Init the worklist (states which should be in the DFA).\n var worklist = [startState];\n\n var alphabet = this.getAlphabet();\n var nfaAcceptingStates = this._nfa.getAcceptingStateNumbers();\n\n var dfaTable = {};\n\n // Determine whether the combined DFA state is accepting.\n var updateAcceptingStates = function updateAcceptingStates(states) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = nfaAcceptingStates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nfaAcceptingState = _step.value;\n\n // If any of the states from NFA is accepting, DFA's\n // state is accepting as well.\n if (states.indexOf(nfaAcceptingState) !== -1) {\n _this._acceptingStateNumbers.add(states.join(','));\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n while (worklist.length > 0) {\n var states = worklist.shift();\n var dfaStateLabel = states.join(',');\n dfaTable[dfaStateLabel] = {};\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = alphabet[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var symbol = _step2.value;\n\n var onSymbol = [];\n\n // Determine whether the combined state is accepting.\n updateAcceptingStates(states);\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = states[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var state = _step3.value;\n\n var nfaStatesOnSymbol = nfaTable[state][symbol];\n if (!nfaStatesOnSymbol) {\n continue;\n }\n\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = nfaStatesOnSymbol[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nfaStateOnSymbol = _step4.value;\n\n if (!nfaTable[nfaStateOnSymbol]) {\n continue;\n }\n onSymbol.push.apply(onSymbol, _toConsumableArray(nfaTable[nfaStateOnSymbol][EPSILON_CLOSURE]));\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n var dfaStatesOnSymbolSet = new Set(onSymbol);\n var dfaStatesOnSymbol = [].concat(_toConsumableArray(dfaStatesOnSymbolSet));\n\n if (dfaStatesOnSymbol.length > 0) {\n var dfaOnSymbolStr = dfaStatesOnSymbol.join(',');\n\n dfaTable[dfaStateLabel][symbol] = dfaOnSymbolStr;\n\n if (!dfaTable.hasOwnProperty(dfaOnSymbolStr)) {\n worklist.unshift(dfaStatesOnSymbol);\n }\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n\n return this._transitionTable = this._remapStateNumbers(dfaTable);\n }\n\n /**\n * Remaps state numbers in the resulting table:\n * combined states '1,2,3' -> 1, '3,4' -> 2, etc.\n */\n\n }, {\n key: '_remapStateNumbers',\n value: function _remapStateNumbers(calculatedDFATable) {\n var newStatesMap = {};\n\n this._originalTransitionTable = calculatedDFATable;\n var transitionTable = {};\n\n Object.keys(calculatedDFATable).forEach(function (originalNumber, newNumber) {\n newStatesMap[originalNumber] = newNumber + 1;\n });\n\n for (var originalNumber in calculatedDFATable) {\n var originalRow = calculatedDFATable[originalNumber];\n var row = {};\n\n for (var symbol in originalRow) {\n row[symbol] = newStatesMap[originalRow[symbol]];\n }\n\n transitionTable[newStatesMap[originalNumber]] = row;\n }\n\n // Remap accepting states.\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._acceptingStateNumbers = new Set();\n\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = this._originalAcceptingStateNumbers[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var _originalNumber = _step5.value;\n\n this._acceptingStateNumbers.add(newStatesMap[_originalNumber]);\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n return transitionTable;\n }\n\n /**\n * Returns original DFA table, where state numbers\n * are combined numbers from NFA.\n */\n\n }, {\n key: 'getOriginalTransitionTable',\n value: function getOriginalTransitionTable() {\n if (!this._originalTransitionTable) {\n // Original table is determined during table construction.\n this.getTransitionTable();\n }\n return this._originalTransitionTable;\n }\n\n /**\n * Checks whether this DFA accepts a string.\n */\n\n }, {\n key: 'matches',\n value: function matches(string) {\n var state = 1;\n var i = 0;\n var table = this.getTransitionTable();\n\n while (string[i]) {\n state = table[state][string[i++]];\n if (!state) {\n return false;\n }\n }\n\n if (!this.getAcceptingStateNumbers().has(state)) {\n return false;\n }\n\n return true;\n }\n }]);\n\n return DFA;\n}();\n\nmodule.exports = DFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NFA = require('./nfa/nfa');\nvar DFA = require('./dfa/dfa');\n\nvar nfaFromRegExp = require('./nfa/nfa-from-regexp');\nvar builders = require('./nfa/builders');\n\nmodule.exports = {\n\n /**\n * Export NFA and DFA classes.\n */\n NFA: NFA,\n DFA: DFA,\n\n /**\n * Expose builders.\n */\n builders: builders,\n\n /**\n * Builds an NFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toNFA: function toNFA(regexp) {\n return nfaFromRegExp.build(regexp);\n },\n\n\n /**\n * Builds DFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toDFA: function toDFA(regexp) {\n return new DFA(this.toNFA(regexp));\n },\n\n\n /**\n * Returns true if regexp accepts the string.\n */\n test: function test(regexp, string) {\n return this.toDFA(regexp).matches(string);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NFA = require('./nfa');\nvar NFAState = require('./nfa-state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n// -----------------------------------------------------------------------------\n// Char NFA fragment: `c`\n\n/**\n * Char factory.\n *\n * Creates an NFA fragment for a single char.\n *\n * [in] --c--> [out]\n */\n\n\nfunction char(c) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n return new NFA(inState.addTransition(c, outState), outState);\n}\n\n// -----------------------------------------------------------------------------\n// Epsilon NFA fragment\n\n/**\n * Epsilon factory.\n *\n * Creates an NFA fragment for ε (recognizes an empty string).\n *\n * [in] --ε--> [out]\n */\nfunction e() {\n return char(EPSILON);\n}\n\n// -----------------------------------------------------------------------------\n// Alteration NFA fragment: `abc`\n\n/**\n * Creates a connection between two NFA fragments on epsilon transition.\n *\n * [in-a] --a--> [out-a] --ε--> [in-b] --b--> [out-b]\n */\nfunction altPair(first, second) {\n first.out.accepting = false;\n second.out.accepting = true;\n\n first.out.addTransition(EPSILON, second.in);\n\n return new NFA(first.in, second.out);\n}\n\n/**\n * Alteration factory.\n *\n * Creates a alteration NFA for (at least) two NFA-fragments.\n */\nfunction alt(first) {\n for (var _len = arguments.length, fragments = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n fragments[_key - 1] = arguments[_key];\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = fragments[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var fragment = _step.value;\n\n first = altPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Disjunction NFA fragment: `a|b`\n\n/**\n * Creates a disjunction choice between two fragments.\n */\nfunction orPair(first, second) {\n var inState = new NFAState();\n var outState = new NFAState();\n\n inState.addTransition(EPSILON, first.in);\n inState.addTransition(EPSILON, second.in);\n\n outState.accepting = true;\n first.out.accepting = false;\n second.out.accepting = false;\n\n first.out.addTransition(EPSILON, outState);\n second.out.addTransition(EPSILON, outState);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Disjunction factory.\n *\n * Creates a disjunction NFA for (at least) two NFA-fragments.\n */\nfunction or(first) {\n for (var _len2 = arguments.length, fragments = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n fragments[_key2 - 1] = arguments[_key2];\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = fragments[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var fragment = _step2.value;\n\n first = orPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Kleene-closure\n\n/**\n * Kleene star/closure.\n *\n * a*\n */\nfunction repExplicit(fragment) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n // 0 or more.\n inState.addTransition(EPSILON, fragment.in);\n inState.addTransition(EPSILON, outState);\n\n fragment.out.accepting = false;\n fragment.out.addTransition(EPSILON, outState);\n outState.addTransition(EPSILON, fragment.in);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Optimized Kleene-star: just adds ε-transitions from\n * input to the output, and back.\n */\nfunction rep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized Plus: just adds ε-transitions from\n * the output to the input.\n */\nfunction plusRep(fragment) {\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized ? repetition: just adds ε-transitions from\n * the input to the output.\n */\nfunction questionRep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n return fragment;\n}\n\nmodule.exports = {\n alt: alt,\n char: char,\n e: e,\n or: or,\n rep: rep,\n repExplicit: repExplicit,\n plusRep: plusRep,\n questionRep: questionRep\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar parser = require('../../../parser');\n\nvar _require = require('./builders'),\n alt = _require.alt,\n char = _require.char,\n or = _require.or,\n rep = _require.rep,\n plusRep = _require.plusRep,\n questionRep = _require.questionRep;\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\n\nfunction gen(node) {\n if (node && !generator[node.type]) {\n throw new Error(node.type + ' is not supported in NFA/DFA interpreter.');\n }\n\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n if (node.flags !== '') {\n throw new Error('NFA/DFA: Flags are not supported yet.');\n }\n\n return gen(node.body);\n },\n Alternative: function Alternative(node) {\n var fragments = (node.expressions || []).map(gen);\n return alt.apply(undefined, _toConsumableArray(fragments));\n },\n Disjunction: function Disjunction(node) {\n return or(gen(node.left), gen(node.right));\n },\n Repetition: function Repetition(node) {\n switch (node.quantifier.kind) {\n case '*':\n return rep(gen(node.expression));\n case '+':\n return plusRep(gen(node.expression));\n case '?':\n return questionRep(gen(node.expression));\n default:\n throw new Error('Unknown repeatition: ' + node.quantifier.kind + '.');\n }\n },\n Char: function Char(node) {\n if (node.kind !== 'simple') {\n throw new Error('NFA/DFA: Only simple chars are supported yet.');\n }\n\n return char(node.value);\n },\n Group: function Group(node) {\n return gen(node.expression);\n }\n};\n\nmodule.exports = {\n /**\n * Builds an NFA from the passed regexp.\n */\n build: function build(regexp) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n return gen(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar State = require('../state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n/**\n * NFA state.\n *\n * Allows nondeterministic transitions to several states on the\n * same symbol, and also epsilon-transitions.\n */\n\n\nvar NFAState = function (_State) {\n _inherits(NFAState, _State);\n\n function NFAState() {\n _classCallCheck(this, NFAState);\n\n return _possibleConstructorReturn(this, (NFAState.__proto__ || Object.getPrototypeOf(NFAState)).apply(this, arguments));\n }\n\n _createClass(NFAState, [{\n key: 'matches',\n\n\n /**\n * Whether this state matches a string.\n *\n * We maintain set of visited epsilon-states to avoid infinite loops\n * when an epsilon-transition goes eventually to itself.\n *\n * NOTE: this function is rather \"educational\", since we use DFA for strings\n * matching. DFA is built on top of NFA, and uses fast transition table.\n */\n value: function matches(string) {\n var visited = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n\n // An epsilon-state has been visited, stop to avoid infinite loop.\n if (visited.has(this)) {\n return false;\n }\n\n visited.add(this);\n\n // No symbols left..\n if (string.length === 0) {\n // .. and we're in the accepting state.\n if (this.accepting) {\n return true;\n }\n\n // Check if we can reach any accepting state from\n // on the epsilon transitions.\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nextState = _step.value;\n\n if (nextState.matches('', visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return false;\n }\n\n // Else, we get some symbols.\n var symbol = string[0];\n var rest = string.slice(1);\n\n var symbolTransitions = this.getTransitionsOnSymbol(symbol);\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = symbolTransitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _nextState = _step2.value;\n\n if (_nextState.matches(rest)) {\n return true;\n }\n }\n\n // If we couldn't match on symbol, check still epsilon-transitions\n // without consuming the symbol (i.e. continue from `string`, not `rest`).\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _nextState2 = _step3.value;\n\n if (_nextState2.matches(string, visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return false;\n }\n\n /**\n * Returns an ε-closure for this state:\n * self + all states following ε-transitions.\n */\n\n }, {\n key: 'getEpsilonClosure',\n value: function getEpsilonClosure() {\n var _this2 = this;\n\n if (!this._epsilonClosure) {\n (function () {\n var epsilonTransitions = _this2.getTransitionsOnSymbol(EPSILON);\n var closure = _this2._epsilonClosure = new Set();\n closure.add(_this2);\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = epsilonTransitions[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nextState = _step4.value;\n\n if (!closure.has(nextState)) {\n closure.add(nextState);\n var nextClosure = nextState.getEpsilonClosure();\n nextClosure.forEach(function (state) {\n return closure.add(state);\n });\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n })();\n }\n\n return this._epsilonClosure;\n }\n }]);\n\n return NFAState;\n}(State);\n\nmodule.exports = NFAState;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON,\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * NFA fragment.\n *\n * NFA sub-fragments can be combined to a larger NFAs building\n * the resulting machine. Combining the fragments is done by patching\n * edges of the in- and out-states.\n *\n * 2-states implementation, `in`, and `out`. Eventually all transitions\n * go to the same `out`, which can further be connected via ε-transition\n * with other fragment.\n */\n\n\nvar NFA = function () {\n function NFA(inState, outState) {\n _classCallCheck(this, NFA);\n\n this.in = inState;\n this.out = outState;\n }\n\n /**\n * Tries to recognize a string based on this NFA fragment.\n */\n\n\n _createClass(NFA, [{\n key: 'matches',\n value: function matches(string) {\n return this.in.matches(string);\n }\n\n /**\n * Returns an alphabet for this NFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n if (!this._alphabet) {\n this._alphabet = new Set();\n var table = this.getTransitionTable();\n for (var state in table) {\n var transitions = table[state];\n for (var symbol in transitions) {\n if (symbol !== EPSILON_CLOSURE) {\n this._alphabet.add(symbol);\n }\n }\n }\n }\n return this._alphabet;\n }\n\n /**\n * Returns set of accepting states.\n */\n\n }, {\n key: 'getAcceptingStates',\n value: function getAcceptingStates() {\n if (!this._acceptingStates) {\n // States are determined during table construction.\n this.getTransitionTable();\n }\n return this._acceptingStates;\n }\n\n /**\n * Returns accepting state numbers.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n this._acceptingStateNumbers = new Set();\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getAcceptingStates()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var acceptingState = _step.value;\n\n this._acceptingStateNumbers.add(acceptingState.number);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n return this._acceptingStateNumbers;\n }\n\n /**\n * Builds and returns transition table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (!this._transitionTable) {\n this._transitionTable = {};\n this._acceptingStates = new Set();\n\n var visited = new Set();\n var symbols = new Set();\n\n var visitState = function visitState(state) {\n if (visited.has(state)) {\n return;\n }\n\n visited.add(state);\n state.number = visited.size;\n _this._transitionTable[state.number] = {};\n\n if (state.accepting) {\n _this._acceptingStates.add(state);\n }\n\n var transitions = state.getTransitions();\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = transitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var symbol = _ref2[0];\n var symbolTransitions = _ref2[1];\n\n var combinedState = [];\n symbols.add(symbol);\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = symbolTransitions[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var nextState = _step3.value;\n\n visitState(nextState);\n combinedState.push(nextState.number);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n _this._transitionTable[state.number][symbol] = combinedState;\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n };\n\n // Traverse the graph starting from the `in`.\n visitState(this.in);\n\n // Append epsilon-closure column.\n visited.forEach(function (state) {\n delete _this._transitionTable[state.number][EPSILON];\n _this._transitionTable[state.number][EPSILON_CLOSURE] = [].concat(_toConsumableArray(state.getEpsilonClosure())).map(function (s) {\n return s.number;\n });\n });\n }\n\n return this._transitionTable;\n }\n }]);\n\n return NFA;\n}();\n\nmodule.exports = NFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Epsilon, the empty string.\n */\n\nvar EPSILON = 'ε';\n\n/**\n * Epsilon-closure.\n */\nvar EPSILON_CLOSURE = EPSILON + '*';\n\nmodule.exports = {\n EPSILON: EPSILON,\n EPSILON_CLOSURE: EPSILON_CLOSURE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A generic FA State class (base for NFA and DFA).\n *\n * Maintains the transition map, and the flag whether\n * the state is accepting.\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar State = function () {\n function State() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$accepting = _ref.accepting,\n accepting = _ref$accepting === undefined ? false : _ref$accepting;\n\n _classCallCheck(this, State);\n\n /**\n * Outgoing transitions to other states.\n */\n this._transitions = new Map();\n\n /**\n * Whether the state is accepting.\n */\n this.accepting = accepting;\n }\n\n /**\n * Returns transitions for this state.\n */\n\n\n _createClass(State, [{\n key: 'getTransitions',\n value: function getTransitions() {\n return this._transitions;\n }\n\n /**\n * Creates a transition on symbol.\n */\n\n }, {\n key: 'addTransition',\n value: function addTransition(symbol, toState) {\n this.getTransitionsOnSymbol(symbol).add(toState);\n return this;\n }\n\n /**\n * Returns transitions set on symbol.\n */\n\n }, {\n key: 'getTransitionsOnSymbol',\n value: function getTransitionsOnSymbol(symbol) {\n var transitions = this._transitions.get(symbol);\n\n if (!transitions) {\n transitions = new Set();\n this._transitions.set(symbol, transitions);\n }\n\n return transitions;\n }\n }]);\n\n return State;\n}();\n\nmodule.exports = State;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar clone = require('../utils/clone');\nvar parser = require('../parser');\nvar transform = require('../transform');\nvar optimizationTransforms = require('./transforms');\n\nmodule.exports = {\n /**\n * Optimizer transforms a regular expression into an optimized version,\n * replacing some sub-expressions with their idiomatic patterns.\n *\n * @param string | RegExp | AST - a regexp to optimize.\n *\n * @return TransformResult - an optimized regexp.\n *\n * Example:\n *\n * /[a-zA-Z_0-9][a-zA-Z_0-9]*\\e{1,}/\n *\n * Optimized to:\n *\n * /\\w+e+/\n */\n optimize: function optimize(regexp) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$whitelist = _ref.whitelist,\n whitelist = _ref$whitelist === undefined ? [] : _ref$whitelist,\n _ref$blacklist = _ref.blacklist,\n blacklist = _ref$blacklist === undefined ? [] : _ref$blacklist;\n\n var transformsRaw = whitelist.length > 0 ? whitelist : Array.from(optimizationTransforms.keys());\n\n var transformToApply = transformsRaw.filter(function (transform) {\n return !blacklist.includes(transform);\n });\n\n var ast = regexp;\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp);\n }\n\n var result = new transform.TransformResult(ast);\n var prevResultString = void 0;\n\n do {\n // Get a copy of the current state here so\n // we can compare it with the state at the\n // end of the loop.\n prevResultString = result.toString();\n ast = clone(result.getAST());\n\n transformToApply.forEach(function (transformName) {\n if (!optimizationTransforms.has(transformName)) {\n throw new Error('Unknown optimization-transform: ' + transformName + '. ' + 'Available transforms are: ' + Array.from(optimizationTransforms.keys()).join(', '));\n }\n\n var transformer = optimizationTransforms.get(transformName);\n\n // Don't override result just yet since we\n // might want to rollback the transform\n var newResult = transform.transform(ast, transformer);\n\n if (newResult.toString() !== result.toString()) {\n if (newResult.toString().length <= result.toString().length) {\n result = newResult;\n } else {\n // Result has changed but is not shorter:\n // restore ast to its previous state.\n\n ast = clone(result.getAST());\n }\n }\n });\n\n // Keep running the optimizer until it stops\n // making any change to the regexp.\n } while (result.toString() !== prevResultString);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\n/**\n * Transforms case-insensitive regexp to lowercase\n *\n * /AaBbÏ/i -> /aabbï/i\n */\nmodule.exports = {\n _AZClassRanges: null,\n _hasUFlag: false,\n init: function init(ast) {\n this._AZClassRanges = new Set();\n this._hasUFlag = ast.flags.includes('u');\n },\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('i');\n },\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint)) {\n return;\n }\n\n // Engine support for case-insensitive matching without the u flag\n // for characters above \\u1000 does not seem reliable.\n if (!this._hasUFlag && node.codePoint >= 0x1000) {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n // The only class ranges we handle must be inside A-Z.\n // After the `from` char is processed, the isAZClassRange test\n // will be false, so we use a Set to keep track of parents and\n // process the `to` char.\n if (!this._AZClassRanges.has(parent) && !isAZClassRange(parent)) {\n return;\n }\n this._AZClassRanges.add(parent);\n }\n\n var lower = node.symbol.toLowerCase();\n if (lower !== node.symbol) {\n node.value = displaySymbolAsValue(lower, node);\n node.symbol = lower;\n node.codePoint = lower.codePointAt(0);\n }\n }\n};\n\nfunction isAZClassRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n // A-Z\n\n return from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP;\n}\n\nfunction displaySymbolAsValue(symbol, node) {\n var codePoint = symbol.codePointAt(0);\n if (node.kind === 'decimal') {\n return '\\\\' + codePoint;\n }\n if (node.kind === 'oct') {\n return '\\\\0' + codePoint.toString(8);\n }\n if (node.kind === 'hex') {\n return '\\\\x' + codePoint.toString(16);\n }\n if (node.kind === 'unicode') {\n if (node.isSurrogatePair) {\n var _getSurrogatePairFrom = getSurrogatePairFromCodePoint(codePoint),\n lead = _getSurrogatePairFrom.lead,\n trail = _getSurrogatePairFrom.trail;\n\n return '\\\\u' + '0'.repeat(4 - lead.length) + lead + '\\\\u' + '0'.repeat(4 - trail.length) + trail;\n } else if (node.value.includes('{')) {\n return '\\\\u{' + codePoint.toString(16) + '}';\n } else {\n var code = codePoint.toString(16);\n return '\\\\u' + '0'.repeat(4 - code.length) + code;\n }\n }\n // simple\n return symbol;\n}\n\n/**\n * Converts a code point to a surrogate pair.\n * Conversion algorithm is taken from The Unicode Standard 3.0 Section 3.7\n * (https://www.unicode.org/versions/Unicode3.0.0/ch03.pdf)\n * @param {number} codePoint - Between 0x10000 and 0x10ffff\n * @returns {{lead: string, trail: string}}\n */\nfunction getSurrogatePairFromCodePoint(codePoint) {\n var lead = Math.floor((codePoint - 0x10000) / 0x400) + 0xd800;\n var trail = (codePoint - 0x10000) % 0x400 + 0xdc00;\n return {\n lead: lead.toString(16),\n trail: trail.toString(16)\n };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to merge class ranges.\n *\n * [a-ec] -> [a-e]\n * [a-ec-e] -> [a-e]\n * [\\w\\da-f] -> [\\w]\n * [abcdef] -> [a-f]\n */\n\nmodule.exports = {\n _hasIUFlags: false,\n init: function init(ast) {\n this._hasIUFlags = ast.flags.includes('i') && ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var expressions = node.expressions;\n\n var metas = [];\n // Extract metas\n expressions.forEach(function (expression) {\n if (isMeta(expression)) {\n metas.push(expression.value);\n }\n });\n\n expressions.sort(sortCharClass);\n\n for (var i = 0; i < expressions.length; i++) {\n var expression = expressions[i];\n if (fitsInMetas(expression, metas, this._hasIUFlags) || combinesWithPrecedingClassRange(expression, expressions[i - 1]) || combinesWithFollowingClassRange(expression, expressions[i + 1])) {\n expressions.splice(i, 1);\n i--;\n } else {\n var nbMergedChars = charCombinesWithPrecedingChars(expression, i, expressions);\n expressions.splice(i - nbMergedChars + 1, nbMergedChars);\n i -= nbMergedChars;\n }\n }\n }\n};\n\n/**\n * Sorts expressions in char class in the following order:\n * - meta chars, ordered alphabetically by value\n * - chars (except `control` kind) and class ranges, ordered alphabetically (`from` char is used for class ranges)\n * - if ambiguous, class range comes before char\n * - if ambiguous between two class ranges, orders alphabetically by `to` char\n * - control chars, ordered alphabetically by value\n * @param {Object} a - Left Char or ClassRange node\n * @param {Object} b - Right Char or ClassRange node\n * @returns {number}\n */\nfunction sortCharClass(a, b) {\n var aValue = getSortValue(a);\n var bValue = getSortValue(b);\n\n if (aValue === bValue) {\n // We want ClassRange before Char\n // [bb-d] -> [b-db]\n if (a.type === 'ClassRange' && b.type !== 'ClassRange') {\n return -1;\n }\n if (b.type === 'ClassRange' && a.type !== 'ClassRange') {\n return 1;\n }\n if (a.type === 'ClassRange' && b.type === 'ClassRange') {\n return getSortValue(a.to) - getSortValue(b.to);\n }\n if (isMeta(a) && isMeta(b) || isControl(a) && isControl(b)) {\n return a.value < b.value ? -1 : 1;\n }\n }\n return aValue - bValue;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {number}\n */\nfunction getSortValue(expression) {\n if (expression.type === 'Char') {\n if (expression.value === '-') {\n return Infinity;\n }\n if (expression.kind === 'control') {\n return Infinity;\n }\n if (expression.kind === 'meta' && isNaN(expression.codePoint)) {\n return -1;\n }\n return expression.codePoint;\n }\n // ClassRange\n return expression.from.codePoint;\n}\n\n/**\n * Checks if a node is a meta char from the set \\d\\w\\s\\D\\W\\S\n * @param {Object} expression - Char or ClassRange node\n * @param {?string} value\n * @returns {boolean}\n */\nfunction isMeta(expression) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n return expression.type === 'Char' && expression.kind === 'meta' && (value ? expression.value === value : /^\\\\[dws]$/i.test(expression.value));\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {boolean}\n */\nfunction isControl(expression) {\n return expression.type === 'Char' && expression.kind === 'control';\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string[]} metas - Array of meta chars, e.g. [\"\\\\w\", \"\\\\s\"]\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetas(expression, metas, hasIUFlags) {\n for (var i = 0; i < metas.length; i++) {\n if (fitsInMeta(expression, metas[i], hasIUFlags)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string} meta - e.g. \"\\\\w\"\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMeta(expression, meta, hasIUFlags) {\n if (expression.type === 'ClassRange') {\n return fitsInMeta(expression.from, meta, hasIUFlags) && fitsInMeta(expression.to, meta, hasIUFlags);\n }\n\n // Special cases:\n // \\S contains \\w and \\d\n if (meta === '\\\\S' && (isMeta(expression, '\\\\w') || isMeta(expression, '\\\\d'))) {\n return true;\n }\n // \\D contains \\W and \\s\n if (meta === '\\\\D' && (isMeta(expression, '\\\\W') || isMeta(expression, '\\\\s'))) {\n return true;\n }\n // \\w contains \\d\n if (meta === '\\\\w' && isMeta(expression, '\\\\d')) {\n return true;\n }\n // \\W contains \\s\n if (meta === '\\\\W' && isMeta(expression, '\\\\s')) {\n return true;\n }\n\n if (expression.type !== 'Char' || isNaN(expression.codePoint)) {\n return false;\n }\n\n if (meta === '\\\\s') {\n return fitsInMetaS(expression);\n }\n if (meta === '\\\\S') {\n return !fitsInMetaS(expression);\n }\n if (meta === '\\\\d') {\n return fitsInMetaD(expression);\n }\n if (meta === '\\\\D') {\n return !fitsInMetaD(expression);\n }\n if (meta === '\\\\w') {\n return fitsInMetaW(expression, hasIUFlags);\n }\n if (meta === '\\\\W') {\n return !fitsInMetaW(expression, hasIUFlags);\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaS(expression) {\n return expression.codePoint === 0x0009 || // \\t\n expression.codePoint === 0x000a || // \\n\n expression.codePoint === 0x000b || // \\v\n expression.codePoint === 0x000c || // \\f\n expression.codePoint === 0x000d || // \\r\n expression.codePoint === 0x0020 || // space\n expression.codePoint === 0x00a0 || // nbsp\n expression.codePoint === 0x1680 || // part of Zs\n expression.codePoint >= 0x2000 && expression.codePoint <= 0x200a || // part of Zs\n expression.codePoint === 0x2028 || // line separator\n expression.codePoint === 0x2029 || // paragraph separator\n expression.codePoint === 0x202f || // part of Zs\n expression.codePoint === 0x205f || // part of Zs\n expression.codePoint === 0x3000 || // part of Zs\n expression.codePoint === 0xfeff; // zwnbsp\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaD(expression) {\n return expression.codePoint >= 0x30 && expression.codePoint <= 0x39; // 0-9\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetaW(expression, hasIUFlags) {\n return fitsInMetaD(expression) || expression.codePoint >= 0x41 && expression.codePoint <= 0x5a || // A-Z\n expression.codePoint >= 0x61 && expression.codePoint <= 0x7a || // a-z\n expression.value === '_' || hasIUFlags && (expression.codePoint === 0x017f || expression.codePoint === 0x212a);\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithPrecedingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n if (fitsInClassRange(expression, classRange)) {\n // [a-gc] -> [a-g]\n // [a-gc-e] -> [a-g]\n return true;\n } else if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.to.codePoint === expression.codePoint - 1) {\n // [a-de] -> [a-e]\n classRange.to = expression;\n return true;\n } else if (expression.type === 'ClassRange' && expression.from.codePoint <= classRange.to.codePoint + 1 && expression.to.codePoint >= classRange.from.codePoint - 1) {\n // [a-db-f] -> [a-f]\n // [b-fa-d] -> [a-f]\n // [a-cd-f] -> [a-f]\n if (expression.from.codePoint < classRange.from.codePoint) {\n classRange.from = expression.from;\n }\n if (expression.to.codePoint > classRange.to.codePoint) {\n classRange.to = expression.to;\n }\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithFollowingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n // Considering the elements were ordered alphabetically,\n // there is only one case to handle\n // [ab-e] -> [a-e]\n if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.from.codePoint === expression.codePoint + 1) {\n classRange.from = expression;\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - ClassRange node\n * @returns {boolean}\n */\nfunction fitsInClassRange(expression, classRange) {\n if (expression.type === 'Char' && isNaN(expression.codePoint)) {\n return false;\n }\n if (expression.type === 'ClassRange') {\n return fitsInClassRange(expression.from, classRange) && fitsInClassRange(expression.to, classRange);\n }\n return expression.codePoint >= classRange.from.codePoint && expression.codePoint <= classRange.to.codePoint;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Number} index\n * @param {Object[]} expressions - expressions in CharClass\n * @returns {number} - Number of characters combined with expression\n */\nfunction charCombinesWithPrecedingChars(expression, index, expressions) {\n // We only want \\w chars or char codes to keep readability\n if (!isMetaWCharOrCode(expression)) {\n return 0;\n }\n var nbMergedChars = 0;\n while (index > 0) {\n var currentExpression = expressions[index];\n var precedingExpresion = expressions[index - 1];\n if (isMetaWCharOrCode(precedingExpresion) && precedingExpresion.codePoint === currentExpression.codePoint - 1) {\n nbMergedChars++;\n index--;\n } else {\n break;\n }\n }\n\n if (nbMergedChars > 1) {\n expressions[index] = {\n type: 'ClassRange',\n from: expressions[index],\n to: expression\n };\n return nbMergedChars;\n }\n return 0;\n}\n\nfunction isMetaWCharOrCode(expression) {\n return expression && expression.type === 'Char' && !isNaN(expression.codePoint) && (fitsInMetaW(expression, false) || expression.kind === 'unicode' || expression.kind === 'hex' || expression.kind === 'oct' || expression.kind === 'decimal');\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to simplify character classes\n * spanning only one or two chars.\n *\n * [a-a] -> [a]\n * [a-b] -> [ab]\n */\n\nmodule.exports = {\n ClassRange: function ClassRange(path) {\n var node = path.node;\n\n\n if (node.from.codePoint === node.to.codePoint) {\n\n path.replace(node.from);\n } else if (node.from.codePoint === node.to.codePoint - 1) {\n\n path.getParent().insertChildAt(node.to, path.index + 1);\n path.replace(node.from);\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove duplicates from character classes.\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var sources = {};\n\n for (var i = 0; i < node.expressions.length; i++) {\n var childPath = path.getChild(i);\n var source = childPath.jsonEncode();\n\n if (sources.hasOwnProperty(source)) {\n childPath.remove();\n\n // Since we remove the current node.\n // TODO: make it simpler for users with a method.\n i--;\n }\n\n sources[source] = true;\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace standard character classes with\n * their meta symbols equivalents.\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n _hasIFlag: false,\n _hasUFlag: false,\n init: function init(ast) {\n this._hasIFlag = ast.flags.includes('i');\n this._hasUFlag = ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n // [0-9] -> \\d\n rewriteNumberRanges(path);\n\n // [a-zA-Z_0-9] -> \\w\n rewriteWordRanges(path, this._hasIFlag, this._hasUFlag);\n\n // [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s\n rewriteWhitespaceRanges(path);\n }\n};\n\n/**\n * Rewrites number ranges: [0-9] -> \\d\n */\nfunction rewriteNumberRanges(path) {\n var node = path.node;\n\n\n node.expressions.forEach(function (expression, i) {\n if (isFullNumberRange(expression)) {\n path.getChild(i).replace({\n type: 'Char',\n value: '\\\\d',\n kind: 'meta'\n });\n }\n });\n}\n\n/**\n * Rewrites word ranges: [a-zA-Z_0-9] -> \\w\n * Thus, the ranges may go in any order, and other symbols/ranges\n * are kept untouched, e.g. [a-z_\\dA-Z$] -> [\\w$]\n */\nfunction rewriteWordRanges(path, hasIFlag, hasUFlag) {\n var node = path.node;\n\n\n var numberPath = null;\n var lowerCasePath = null;\n var upperCasePath = null;\n var underscorePath = null;\n var u017fPath = null;\n var u212aPath = null;\n\n node.expressions.forEach(function (expression, i) {\n // \\d\n if (isMetaChar(expression, '\\\\d')) {\n numberPath = path.getChild(i);\n }\n\n // a-z\n else if (isLowerCaseRange(expression)) {\n lowerCasePath = path.getChild(i);\n }\n\n // A-Z\n else if (isUpperCaseRange(expression)) {\n upperCasePath = path.getChild(i);\n }\n\n // _\n else if (isUnderscore(expression)) {\n underscorePath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x017f)) {\n u017fPath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x212a)) {\n u212aPath = path.getChild(i);\n }\n });\n\n // If we found the whole pattern, replace it.\n if (numberPath && (lowerCasePath && upperCasePath || hasIFlag && (lowerCasePath || upperCasePath)) && underscorePath && (!hasUFlag || !hasIFlag || u017fPath && u212aPath)) {\n // Put \\w in place of \\d.\n numberPath.replace({\n type: 'Char',\n value: '\\\\w',\n kind: 'meta'\n });\n\n // Other paths are removed.\n if (lowerCasePath) {\n lowerCasePath.remove();\n }\n if (upperCasePath) {\n upperCasePath.remove();\n }\n underscorePath.remove();\n if (u017fPath) {\n u017fPath.remove();\n }\n if (u212aPath) {\n u212aPath.remove();\n }\n }\n}\n\n/**\n * Rewrites whitespace ranges: [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s.\n */\nvar whitespaceRangeTests = [function (node) {\n return isChar(node, ' ');\n}].concat(_toConsumableArray(['\\\\f', '\\\\n', '\\\\r', '\\\\t', '\\\\v'].map(function (char) {\n return function (node) {\n return isMetaChar(node, char);\n };\n})), _toConsumableArray([0x00a0, 0x1680, 0x2028, 0x2029, 0x202f, 0x205f, 0x3000, 0xfeff].map(function (codePoint) {\n return function (node) {\n return isCodePoint(node, codePoint);\n };\n})), [function (node) {\n return node.type === 'ClassRange' && isCodePoint(node.from, 0x2000) && isCodePoint(node.to, 0x200a);\n}]);\n\nfunction rewriteWhitespaceRanges(path) {\n var node = path.node;\n\n\n if (node.expressions.length < whitespaceRangeTests.length || !whitespaceRangeTests.every(function (test) {\n return node.expressions.some(function (expression) {\n return test(expression);\n });\n })) {\n return;\n }\n\n // If we found the whole pattern, replace it.\n\n // Put \\s in place of \\n.\n var nNode = node.expressions.find(function (expression) {\n return isMetaChar(expression, '\\\\n');\n });\n nNode.value = '\\\\s';\n nNode.symbol = undefined;\n nNode.codePoint = NaN;\n\n // Other paths are removed.\n node.expressions.map(function (expression, i) {\n return whitespaceRangeTests.some(function (test) {\n return test(expression);\n }) ? path.getChild(i) : undefined;\n }).filter(Boolean).forEach(function (path) {\n return path.remove();\n });\n}\n\nfunction isFullNumberRange(node) {\n return node.type === 'ClassRange' && node.from.value === '0' && node.to.value === '9';\n}\n\nfunction isChar(node, value) {\n var kind = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'simple';\n\n return node.type === 'Char' && node.value === value && node.kind === kind;\n}\n\nfunction isMetaChar(node, value) {\n return isChar(node, value, 'meta');\n}\n\nfunction isLowerCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'a' && node.to.value === 'z';\n}\n\nfunction isUpperCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'A' && node.to.value === 'Z';\n}\n\nfunction isUnderscore(node) {\n return node.type === 'Char' && node.value === '_' && node.kind === 'simple';\n}\n\nfunction isCodePoint(node, codePoint) {\n return node.type === 'Char' && node.kind === 'unicode' && node.codePoint === codePoint;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char character classes with\n * just that character.\n *\n * [\\d] -> \\d, [^\\w] -> \\W\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n\n if (node.expressions.length !== 1 || !hasAppropriateSiblings(path) || !isAppropriateChar(node.expressions[0])) {\n return;\n }\n\n var _node$expressions$ = node.expressions[0],\n value = _node$expressions$.value,\n kind = _node$expressions$.kind,\n escaped = _node$expressions$.escaped;\n\n\n if (node.negative) {\n // For negative can extract only meta chars like [^\\w] -> \\W\n // cannot do for [^a] -> a (wrong).\n if (!isMeta(value)) {\n return;\n }\n\n value = getInverseMeta(value);\n }\n\n path.replace({\n type: 'Char',\n value: value,\n kind: kind,\n escaped: escaped || shouldEscape(value)\n });\n }\n};\n\nfunction isAppropriateChar(node) {\n return node.type === 'Char' &&\n // We don't extract [\\b] (backspace) since \\b has different\n // semantics (word boundary).\n node.value !== '\\\\b';\n}\n\nfunction isMeta(value) {\n return (/^\\\\[dwsDWS]$/.test(value)\n );\n}\n\nfunction getInverseMeta(value) {\n return (/[dws]/.test(value) ? value.toUpperCase() : value.toLowerCase()\n );\n}\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1[0] to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2[0] to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}\n\n// Note: \\{ and \\} are always preserved to avoid `a[{]2[}]` turning\n// into `a{2}`.\nfunction shouldEscape(value) {\n return (/[*[()+?$./{}|]/.test(value)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\nvar LOWER_A_CP = 'a'.codePointAt(0);\nvar LOWER_Z_CP = 'z'.codePointAt(0);\nvar DIGIT_0_CP = '0'.codePointAt(0);\nvar DIGIT_9_CP = '9'.codePointAt(0);\n\n/**\n * A regexp-tree plugin to transform coded chars into simple chars.\n *\n * \\u0061 -> a\n */\nmodule.exports = {\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint) || node.kind === 'simple') {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n if (!isSimpleRange(parent)) {\n return;\n }\n }\n\n if (!isPrintableASCIIChar(node.codePoint)) {\n return;\n }\n\n var symbol = String.fromCodePoint(node.codePoint);\n var newChar = {\n type: 'Char',\n kind: 'simple',\n value: symbol,\n symbol: symbol,\n codePoint: node.codePoint\n };\n if (needsEscape(symbol, parent.type)) {\n newChar.escaped = true;\n }\n path.replace(newChar);\n }\n};\n\n/**\n * Checks if a range is included either in 0-9, a-z or A-Z\n * @param classRange\n * @returns {boolean}\n */\nfunction isSimpleRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n\n return from.codePoint >= DIGIT_0_CP && from.codePoint <= DIGIT_9_CP && to.codePoint >= DIGIT_0_CP && to.codePoint <= DIGIT_9_CP || from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP || from.codePoint >= LOWER_A_CP && from.codePoint <= LOWER_Z_CP && to.codePoint >= LOWER_A_CP && to.codePoint <= LOWER_Z_CP;\n}\n\n/**\n * Checks if a code point in the range of printable ASCII chars\n * (DEL char excluded)\n * @param codePoint\n * @returns {boolean}\n */\nfunction isPrintableASCIIChar(codePoint) {\n return codePoint >= 0x20 && codePoint <= 0x7e;\n}\n\nfunction needsEscape(symbol, parentType) {\n if (parentType === 'ClassRange' || parentType === 'CharacterClass') {\n return (/[\\]\\\\^-]/.test(symbol)\n );\n }\n\n return (/[*[()+?^$./\\\\|{}]/.test(symbol)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary escape.\n *\n * \\e -> e\n *\n * [\\(] -> [(]\n */\n\nmodule.exports = {\n _hasXFlag: false,\n init: function init(ast) {\n this._hasXFlag = ast.flags.includes('x');\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (!node.escaped) {\n return;\n }\n\n if (shouldUnescape(path, this._hasXFlag)) {\n delete node.escaped;\n }\n }\n};\n\nfunction shouldUnescape(path, hasXFlag) {\n var value = path.node.value,\n index = path.index,\n parent = path.parent;\n\n // In char class (, etc are allowed.\n\n if (parent.type !== 'CharacterClass' && parent.type !== 'ClassRange') {\n return !preservesEscape(value, index, parent, hasXFlag);\n }\n\n return !preservesInCharClass(value, index, parent);\n}\n\n/**\n * \\], \\\\, \\^, \\-\n */\nfunction preservesInCharClass(value, index, parent) {\n if (value === '^') {\n // Avoid [\\^a] turning into [^a]\n return index === 0 && !parent.negative;\n }\n if (value === '-') {\n // Avoid [a\\-z] turning into [a-z]\n return true;\n }\n return (/[\\]\\\\]/.test(value)\n );\n}\n\nfunction preservesEscape(value, index, parent, hasXFlag) {\n if (value === '{') {\n return preservesOpeningCurlyBraceEscape(index, parent);\n }\n\n if (value === '}') {\n return preservesClosingCurlyBraceEscape(index, parent);\n }\n\n if (hasXFlag && /[ #]/.test(value)) {\n return true;\n }\n\n return (/[*[()+?^$./\\\\|]/.test(value)\n );\n}\n\nfunction consumeNumbers(startIndex, parent, rtl) {\n var i = startIndex;\n var siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n\n while (siblingNode && siblingNode.type === 'Char' && siblingNode.kind === 'simple' && !siblingNode.escaped && /\\d/.test(siblingNode.value)) {\n rtl ? i-- : i++;\n siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n }\n\n return Math.abs(startIndex - i);\n}\n\nfunction isSimpleChar(node, value) {\n return node && node.type === 'Char' && node.kind === 'simple' && !node.escaped && node.value === value;\n}\n\nfunction preservesOpeningCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbFollowingNumbers = consumeNumbers(index + 1, parent);\n var i = index + nbFollowingNumbers + 1;\n var nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n if (nbFollowingNumbers) {\n // Avoid \\{3} turning into {3}\n if (isSimpleChar(nextSiblingNode, '}')) {\n return true;\n }\n\n if (isSimpleChar(nextSiblingNode, ',')) {\n nbFollowingNumbers = consumeNumbers(i + 1, parent);\n i = i + nbFollowingNumbers + 1;\n nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid \\{3,} turning into {3,}\n return isSimpleChar(nextSiblingNode, '}');\n }\n }\n return false;\n}\n\nfunction preservesClosingCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbPrecedingNumbers = consumeNumbers(index - 1, parent, true);\n var i = index - nbPrecedingNumbers - 1;\n var previousSiblingNode = i >= 0 && parent.expressions[i];\n\n // Avoid {3\\} turning into {3}\n if (nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{')) {\n return true;\n }\n\n if (isSimpleChar(previousSiblingNode, ',')) {\n nbPrecedingNumbers = consumeNumbers(i - 1, parent, true);\n i = i - nbPrecedingNumbers - 1;\n previousSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid {3,\\} turning into {3,}\n return nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{');\n }\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to transform surrogate pairs into single unicode code point\n *\n * \\ud83d\\ude80 -> \\u{1f680}\n */\n\nmodule.exports = {\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('u');\n },\n Char: function Char(path) {\n var node = path.node;\n\n if (node.kind !== 'unicode' || !node.isSurrogatePair || isNaN(node.codePoint)) {\n return;\n }\n node.value = '\\\\u{' + node.codePoint.toString(16) + '}';\n delete node.isSurrogatePair;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to combine repeating patterns.\n *\n * /^abcabcabc/ -> /^abc{3}/\n * /^(?:abc){2}abc/ -> /^(?:abc){3}/\n * /^abc(?:abc){2}/ -> /^(?:abc){3}/\n */\n\nmodule.exports = {\n Alternative: function Alternative(path) {\n var node = path.node;\n\n // We can skip the first child\n\n var index = 1;\n while (index < node.expressions.length) {\n var child = path.getChild(index);\n index = Math.max(1, combineRepeatingPatternLeft(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineWithPreviousRepetition(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineRepetitionWithPrevious(path, child, index));\n\n index++;\n }\n }\n};\n\n// abcabc -> (?:abc){2}\nfunction combineRepeatingPatternLeft(alternative, child, index) {\n var node = alternative.node;\n\n\n var nbPossibleLengths = Math.ceil(index / 2);\n var i = 0;\n\n while (i < nbPossibleLengths) {\n var startIndex = index - 2 * i - 1;\n var right = void 0,\n left = void 0;\n\n if (i === 0) {\n right = child;\n left = alternative.getChild(startIndex);\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - i, index)), [child.node])\n });\n\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(startIndex, index - i)))\n });\n }\n\n if (right.hasEqualSource(left)) {\n for (var j = 0; j < 2 * i + 1; j++) {\n alternative.getChild(startIndex).remove();\n }\n\n child.replace({\n type: 'Repetition',\n expression: i === 0 && right.node.type !== 'Repetition' ? right.node : {\n type: 'Group',\n capturing: false,\n expression: right.node\n },\n quantifier: {\n type: 'Quantifier',\n kind: 'Range',\n from: 2,\n to: 2,\n greedy: true\n }\n });\n return startIndex;\n }\n\n i++;\n }\n\n return index;\n}\n\n// (?:abc){2}abc -> (?:abc){3}\nfunction combineWithPreviousRepetition(alternative, child, index) {\n var node = alternative.node;\n\n\n var i = 0;\n while (i < index) {\n var previousChild = alternative.getChild(i);\n\n if (previousChild.node.type === 'Repetition' && previousChild.node.quantifier.greedy) {\n var left = previousChild.getChild();\n var right = void 0;\n\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n\n if (i + 1 === index) {\n right = child;\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(i + 1, index + 1)))\n });\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = i; j < index; j++) {\n alternative.getChild(i + 1).remove();\n }\n\n increaseQuantifierByOne(previousChild.node.quantifier);\n\n return i;\n }\n }\n\n i++;\n }\n return index;\n}\n\n// abc(?:abc){2} -> (?:abc){3}\nfunction combineRepetitionWithPrevious(alternative, child, index) {\n var node = alternative.node;\n\n\n if (child.node.type === 'Repetition' && child.node.quantifier.greedy) {\n var right = child.getChild();\n var left = void 0;\n\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n\n var rightLength = void 0;\n if (right.node.type === 'Alternative') {\n rightLength = right.node.expressions.length;\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - rightLength, index)))\n });\n } else {\n rightLength = 1;\n left = alternative.getChild(index - 1);\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = index - rightLength; j < index; j++) {\n alternative.getChild(index - rightLength).remove();\n }\n\n increaseQuantifierByOne(child.node.quantifier);\n\n return index - rightLength;\n }\n }\n return index;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n disjunctionToList = _require.disjunctionToList,\n listToDisjunction = _require.listToDisjunction;\n\n/**\n * Removes duplicates from a disjunction sequence:\n *\n * /(ab|bc|ab)+(xy|xy)+/ -> /(ab|bc)+(xy)+/\n */\n\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node;\n\n // Make unique nodes.\n\n var uniqueNodesMap = {};\n\n var parts = disjunctionToList(node).filter(function (part) {\n var encoded = part ? NodePath.getForNode(part).jsonEncode() : 'null';\n\n // Already recorded this part, filter out.\n if (uniqueNodesMap.hasOwnProperty(encoded)) {\n return false;\n }\n\n uniqueNodesMap[encoded] = part;\n return true;\n });\n\n // Replace with the optimized disjunction.\n path.replace(listToDisjunction(parts));\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char group disjunction to char group\n *\n * a|b|c -> [abc]\n * [12]|3|4 -> [1234]\n * (a|b|c) -> ([abc])\n * (?:a|b|c) -> [abc]\n */\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (!handlers[parent.type]) {\n return;\n }\n\n var charset = new Map();\n\n if (!shouldProcess(node, charset) || !charset.size) {\n return;\n }\n\n var characterClass = {\n type: 'CharacterClass',\n expressions: Array.from(charset.keys()).sort().map(function (key) {\n return charset.get(key);\n })\n };\n\n handlers[parent.type](path.getParent(), characterClass);\n }\n};\n\nvar handlers = {\n RegExp: function RegExp(path, characterClass) {\n var node = path.node;\n\n\n node.body = characterClass;\n },\n Group: function Group(path, characterClass) {\n var node = path.node;\n\n\n if (node.capturing) {\n node.expression = characterClass;\n } else {\n path.replace(characterClass);\n }\n }\n};\n\nfunction shouldProcess(expression, charset) {\n if (!expression) {\n // Abort on empty disjunction part\n return false;\n }\n\n var type = expression.type;\n\n\n if (type === 'Disjunction') {\n var left = expression.left,\n right = expression.right;\n\n\n return shouldProcess(left, charset) && shouldProcess(right, charset);\n } else if (type === 'Char') {\n if (expression.kind === 'meta' && expression.symbol === '.') {\n return false;\n }\n\n var value = expression.value;\n\n\n charset.set(value, expression);\n\n return true;\n } else if (type === 'CharacterClass' && !expression.negative) {\n return expression.expressions.every(function (expression) {\n return shouldProcess(expression, charset);\n });\n }\n\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = new Map([\n// \\ud83d\\ude80 -> \\u{1f680}\n['charSurrogatePairToSingleUnicode', require('./char-surrogate-pair-to-single-unicode-transform')],\n\n// \\u0061 -> a\n['charCodeToSimpleChar', require('./char-code-to-simple-char-transform')],\n\n// /Aa/i -> /aa/i\n['charCaseInsensitiveLowerCaseTransform', require('./char-case-insensitive-lowercase-transform')],\n\n// [\\d\\d] -> [\\d]\n['charClassRemoveDuplicates', require('./char-class-remove-duplicates-transform')],\n\n// a{1,2}a{2,3} -> a{3,5}\n['quantifiersMerge', require('./quantifiers-merge-transform')],\n\n// a{1,} -> a+, a{3,3} -> a{3}, a{1} -> a\n['quantifierRangeToSymbol', require('./quantifier-range-to-symbol-transform')],\n\n// [a-a] -> [a], [a-b] -> [ab]\n['charClassClassrangesToChars', require('./char-class-classranges-to-chars-transform')],\n\n// [0-9] -> [\\d]\n['charClassToMeta', require('./char-class-to-meta-transform')],\n\n// [\\d] -> \\d, [^\\w] -> \\W\n['charClassToSingleChar', require('./char-class-to-single-char-transform')],\n\n// \\e -> e\n['charEscapeUnescape', require('./char-escape-unescape-transform')],\n\n// [a-de-f] -> [a-f]\n['charClassClassrangesMerge', require('./char-class-classranges-merge-transform')],\n\n// (ab|ab) -> (ab)\n['disjunctionRemoveDuplicates', require('./disjunction-remove-duplicates-transform')],\n\n// (a|b|c) -> [abc]\n['groupSingleCharsToCharClass', require('./group-single-chars-to-char-class')],\n\n// (?:)a -> a\n['removeEmptyGroup', require('./remove-empty-group-transform')],\n\n// (?:a) -> a\n['ungroup', require('./ungroup-transform')],\n\n// abcabcabc -> (?:abc){3}\n['combineRepeatingPatterns', require('./combine-repeating-patterns-transform')]]);","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace different range-based quantifiers\n * with their symbol equivalents.\n *\n * a{0,} -> a*\n * a{1,} -> a+\n * a{1} -> a\n *\n * NOTE: the following is automatically handled in the generator:\n *\n * a{3,3} -> a{3}\n */\n\nmodule.exports = {\n Quantifier: function Quantifier(path) {\n var node = path.node;\n\n\n if (node.kind !== 'Range') {\n return;\n }\n\n // a{0,} -> a*\n rewriteOpenZero(path);\n\n // a{1,} -> a+\n rewriteOpenOne(path);\n\n // a{1} -> a\n rewriteExactOne(path);\n }\n};\n\nfunction rewriteOpenZero(path) {\n var node = path.node;\n\n\n if (node.from !== 0 || node.to) {\n return;\n }\n\n node.kind = '*';\n delete node.from;\n}\n\nfunction rewriteOpenOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to) {\n return;\n }\n\n node.kind = '+';\n delete node.from;\n}\n\nfunction rewriteExactOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to !== 1) {\n return;\n }\n\n path.parentPath.replace(path.parentPath.node.expression);\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to merge quantifiers\n *\n * a+a+ -> a{2,}\n * a{2}a{3} -> a{5}\n * a{1,2}a{2,3} -> a{3,5}\n */\n\n\nmodule.exports = {\n Repetition: function Repetition(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (parent.type !== 'Alternative' || !path.index) {\n return;\n }\n\n var previousSibling = path.getPreviousSibling();\n\n if (!previousSibling) {\n return;\n }\n\n if (previousSibling.node.type === 'Repetition') {\n if (!previousSibling.getChild().hasEqualSource(path.getChild())) {\n return;\n }\n\n var _extractFromTo = extractFromTo(previousSibling.node.quantifier),\n previousSiblingFrom = _extractFromTo.from,\n previousSiblingTo = _extractFromTo.to;\n\n var _extractFromTo2 = extractFromTo(node.quantifier),\n nodeFrom = _extractFromTo2.from,\n nodeTo = _extractFromTo2.to;\n\n // It's does not seem reliable to merge quantifiers with different greediness\n // when none of both is a greedy open range\n\n\n if (previousSibling.node.quantifier.greedy !== node.quantifier.greedy && !isGreedyOpenRange(previousSibling.node.quantifier) && !isGreedyOpenRange(node.quantifier)) {\n return;\n }\n\n // a*a* -> a*\n // a*a+ -> a+\n // a+a+ -> a{2,}\n // a{2}a{4} -> a{6}\n // a{1,2}a{2,3} -> a{3,5}\n // a{1,}a{2,} -> a{3,}\n // a+a{2,} -> a{3,}\n\n // a??a{2,} -> a{2,}\n // a*?a{2,} -> a{2,}\n // a+?a{2,} -> a{3,}\n\n node.quantifier.kind = 'Range';\n node.quantifier.from = previousSiblingFrom + nodeFrom;\n if (previousSiblingTo && nodeTo) {\n node.quantifier.to = previousSiblingTo + nodeTo;\n } else {\n delete node.quantifier.to;\n }\n if (isGreedyOpenRange(previousSibling.node.quantifier) || isGreedyOpenRange(node.quantifier)) {\n node.quantifier.greedy = true;\n }\n\n previousSibling.remove();\n } else {\n if (!previousSibling.hasEqualSource(path.getChild())) {\n return;\n }\n\n increaseQuantifierByOne(node.quantifier);\n previousSibling.remove();\n }\n }\n};\n\nfunction isGreedyOpenRange(quantifier) {\n return quantifier.greedy && (quantifier.kind === '+' || quantifier.kind === '*' || quantifier.kind === 'Range' && !quantifier.to);\n}\n\nfunction extractFromTo(quantifier) {\n var from = void 0,\n to = void 0;\n if (quantifier.kind === '*') {\n from = 0;\n } else if (quantifier.kind === '+') {\n from = 1;\n } else if (quantifier.kind === '?') {\n from = 0;\n to = 1;\n } else {\n from = quantifier.from;\n if (quantifier.to) {\n to = quantifier.to;\n }\n }\n return { from: from, to: to };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove non-capturing empty groups.\n *\n * /(?:)a/ -> /a/\n * /a|(?:)/ -> /a|/\n */\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || childPath) {\n return;\n }\n\n if (parent.type === 'Repetition') {\n\n path.getParent().replace(node);\n } else if (parent.type !== 'RegExp') {\n\n path.remove();\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary groups.\n *\n * /(?:a)/ -> /a/\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || !childPath) {\n return;\n }\n\n // Don't optimize \\1(?:0) to \\10\n if (!hasAppropriateSiblings(path)) {\n return;\n }\n\n // Don't optimize /a(?:b|c)/ to /ab|c/\n // but /(?:b|c)/ to /b|c/ is ok\n if (childPath.node.type === 'Disjunction' && parent.type !== 'RegExp') {\n return;\n }\n\n // Don't optimize /(?:ab)+/ to /ab+/\n // but /(?:a)+/ to /a+/ is ok\n // and /(?:[a-d])+/ to /[a-d]+/ is ok too\n if (parent.type === 'Repetition' && childPath.node.type !== 'Char' && childPath.node.type !== 'CharacterClass') {\n return;\n }\n\n if (childPath.node.type === 'Alternative') {\n var parentPath = path.getParent();\n if (parentPath.node.type === 'Alternative') {\n // /abc(?:def)ghi/ When (?:def) is ungrouped its content must be merged with parent alternative\n\n parentPath.replace({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(parent.expressions.slice(0, path.index)), _toConsumableArray(childPath.node.expressions), _toConsumableArray(parent.expressions.slice(path.index + 1)))\n });\n }\n } else {\n path.replace(childPath.node);\n }\n }\n};\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1(?:0) to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2(?:0) to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}","/**\n * LR parser generated by the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * npm install -g syntax-cli\n *\n * syntax-cli --help\n *\n * To regenerate run:\n *\n * syntax-cli \\\n * --grammar ~/path-to-grammar-file \\\n * --mode <parsing-mode> \\\n * --output ~/path-to-output-parser-file.js\n */\n\n'use strict';\n\n/**\n * Matched token text.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar yytext = void 0;\n\n/**\n * Length of the matched token text.\n */\nvar yyleng = void 0;\n\n/**\n * Storage object.\n */\nvar yy = {};\n\n/**\n * Result of semantic action.\n */\nvar __ = void 0;\n\n/**\n * Result location object.\n */\nvar __loc = void 0;\n\nfunction yyloc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n // Epsilon doesn't produce location.\n if (!start || !end) {\n return start || end;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nvar EOF = '$';\n\n/**\n * List of productions (generated by Syntax tool).\n */\nvar productions = [[-1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [0, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n __ = Node({\n type: 'RegExp',\n body: _2,\n flags: checkFlags(_4)\n }, loc(_1loc, _4loc || _3loc));\n}], [1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [1, 0, function () {\n __loc = null;__ = '';\n}], [2, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [2, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1 + _2;\n}], [3, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n // Location for empty disjunction: /|/\n var _loc = null;\n\n if (_2loc) {\n _loc = loc(_1loc || _2loc, _3loc || _2loc);\n };\n\n __ = Node({\n type: 'Disjunction',\n left: _1,\n right: _3\n }, _loc);\n}], [5, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n if (_1.length === 0) {\n __ = null;\n return;\n }\n\n if (_1.length === 1) {\n __ = Node(_1[0], __loc);\n } else {\n __ = Node({\n type: 'Alternative',\n expressions: _1\n }, __loc);\n }\n}], [6, 0, function () {\n __loc = null;__ = [];\n}], [6, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1.concat(_2);\n}], [7, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Node(Object.assign({ type: 'Assertion' }, _1), __loc);\n}], [7, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n __ = _1;\n\n if (_2) {\n __ = Node({\n type: 'Repetition',\n expression: _1,\n quantifier: _2\n }, __loc);\n }\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '^' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '$' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\b' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\B' };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n negative: true,\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n negative: true,\n assertion: _2\n };\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1.slice(1), 'simple', __loc);__.escaped = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);__.isSurrogatePair = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = UnicodeProperty(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'control', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'hex', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'oct', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = GroupRefOrDecChar(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = NamedGroupRefOrChars(_1, _1loc);\n}], [11, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [11, 0], [12, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [12, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n _1.greedy = false;\n __ = _1;\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: getRange(_1)[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[1],\n greedy: true\n }, __loc);\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n var nameRaw = String(_1);\n var name = decodeUnicodeGroupName(nameRaw);\n if (!yy.options.allowGroupNameDuplicates && namedGroups.hasOwnProperty(name)) {\n throw new SyntaxError('Duplicate of the named group \"' + name + '\".');\n }\n\n namedGroups[name] = _1.groupNumber;\n\n __ = Node({\n type: 'Group',\n capturing: true,\n name: name,\n nameRaw: nameRaw,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: true,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [16, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: false,\n expression: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n negative: true,\n expressions: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n expressions: _2\n }, __loc);\n}], [18, 0, function () {\n __loc = null;__ = [];\n}], [18, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [19, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = [_1];\n}], [19, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [19, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [20, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [20, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [20, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}]];\n\n/**\n * Encoded tokens map.\n */\nvar tokens = { \"SLASH\": \"23\", \"CHAR\": \"24\", \"BAR\": \"25\", \"BOS\": \"26\", \"EOS\": \"27\", \"ESC_b\": \"28\", \"ESC_B\": \"29\", \"POS_LA_ASSERT\": \"30\", \"R_PAREN\": \"31\", \"NEG_LA_ASSERT\": \"32\", \"POS_LB_ASSERT\": \"33\", \"NEG_LB_ASSERT\": \"34\", \"ESC_CHAR\": \"35\", \"U_CODE_SURROGATE\": \"36\", \"U_CODE\": \"37\", \"U_PROP_VALUE_EXP\": \"38\", \"CTRL_CH\": \"39\", \"HEX_CODE\": \"40\", \"OCT_CODE\": \"41\", \"DEC_CODE\": \"42\", \"META_CHAR\": \"43\", \"ANY\": \"44\", \"NAMED_GROUP_REF\": \"45\", \"Q_MARK\": \"46\", \"STAR\": \"47\", \"PLUS\": \"48\", \"RANGE_EXACT\": \"49\", \"RANGE_OPEN\": \"50\", \"RANGE_CLOSED\": \"51\", \"NAMED_CAPTURE_GROUP\": \"52\", \"L_PAREN\": \"53\", \"NON_CAPTURE_GROUP\": \"54\", \"NEG_CLASS\": \"55\", \"R_BRACKET\": \"56\", \"L_BRACKET\": \"57\", \"DASH\": \"58\", \"$\": \"59\" };\n\n/**\n * Parsing table (generated by Syntax tool).\n */\nvar table = [{ \"0\": 1, \"23\": \"s2\" }, { \"59\": \"acc\" }, { \"3\": 3, \"4\": 4, \"5\": 5, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"s7\" }, { \"23\": \"r6\", \"25\": \"s12\" }, { \"23\": \"r7\", \"25\": \"r7\", \"31\": \"r7\" }, { \"7\": 14, \"8\": 15, \"9\": 16, \"10\": 25, \"14\": 27, \"15\": 42, \"16\": 43, \"17\": 26, \"23\": \"r9\", \"24\": \"s28\", \"25\": \"r9\", \"26\": \"s17\", \"27\": \"s18\", \"28\": \"s19\", \"29\": \"s20\", \"30\": \"s21\", \"31\": \"r9\", \"32\": \"s22\", \"33\": \"s23\", \"34\": \"s24\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"52\": \"s44\", \"53\": \"s45\", \"54\": \"s46\", \"55\": \"s40\", \"57\": \"s41\" }, { \"1\": 8, \"2\": 9, \"24\": \"s10\", \"59\": \"r3\" }, { \"59\": \"r1\" }, { \"24\": \"s11\", \"59\": \"r2\" }, { \"24\": \"r4\", \"59\": \"r4\" }, { \"24\": \"r5\", \"59\": \"r5\" }, { \"5\": 13, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r8\", \"25\": \"r8\", \"31\": \"r8\" }, { \"23\": \"r11\", \"24\": \"r11\", \"25\": \"r11\", \"26\": \"r11\", \"27\": \"r11\", \"28\": \"r11\", \"29\": \"r11\", \"30\": \"r11\", \"31\": \"r11\", \"32\": \"r11\", \"33\": \"r11\", \"34\": \"r11\", \"35\": \"r11\", \"36\": \"r11\", \"37\": \"r11\", \"38\": \"r11\", \"39\": \"r11\", \"40\": \"r11\", \"41\": \"r11\", \"42\": \"r11\", \"43\": \"r11\", \"44\": \"r11\", \"45\": \"r11\", \"52\": \"r11\", \"53\": \"r11\", \"54\": \"r11\", \"55\": \"r11\", \"57\": \"r11\" }, { \"23\": \"r12\", \"24\": \"r12\", \"25\": \"r12\", \"26\": \"r12\", \"27\": \"r12\", \"28\": \"r12\", \"29\": \"r12\", \"30\": \"r12\", \"31\": \"r12\", \"32\": \"r12\", \"33\": \"r12\", \"34\": \"r12\", \"35\": \"r12\", \"36\": \"r12\", \"37\": \"r12\", \"38\": \"r12\", \"39\": \"r12\", \"40\": \"r12\", \"41\": \"r12\", \"42\": \"r12\", \"43\": \"r12\", \"44\": \"r12\", \"45\": \"r12\", \"52\": \"r12\", \"53\": \"r12\", \"54\": \"r12\", \"55\": \"r12\", \"57\": \"r12\" }, { \"11\": 47, \"12\": 48, \"13\": 49, \"23\": \"r38\", \"24\": \"r38\", \"25\": \"r38\", \"26\": \"r38\", \"27\": \"r38\", \"28\": \"r38\", \"29\": \"r38\", \"30\": \"r38\", \"31\": \"r38\", \"32\": \"r38\", \"33\": \"r38\", \"34\": \"r38\", \"35\": \"r38\", \"36\": \"r38\", \"37\": \"r38\", \"38\": \"r38\", \"39\": \"r38\", \"40\": \"r38\", \"41\": \"r38\", \"42\": \"r38\", \"43\": \"r38\", \"44\": \"r38\", \"45\": \"r38\", \"46\": \"s52\", \"47\": \"s50\", \"48\": \"s51\", \"49\": \"s53\", \"50\": \"s54\", \"51\": \"s55\", \"52\": \"r38\", \"53\": \"r38\", \"54\": \"r38\", \"55\": \"r38\", \"57\": \"r38\" }, { \"23\": \"r14\", \"24\": \"r14\", \"25\": \"r14\", \"26\": \"r14\", \"27\": \"r14\", \"28\": \"r14\", \"29\": \"r14\", \"30\": \"r14\", \"31\": \"r14\", \"32\": \"r14\", \"33\": \"r14\", \"34\": \"r14\", \"35\": \"r14\", \"36\": \"r14\", \"37\": \"r14\", \"38\": \"r14\", \"39\": \"r14\", \"40\": \"r14\", \"41\": \"r14\", \"42\": \"r14\", \"43\": \"r14\", \"44\": \"r14\", \"45\": \"r14\", \"52\": \"r14\", \"53\": \"r14\", \"54\": \"r14\", \"55\": \"r14\", \"57\": \"r14\" }, { \"23\": \"r15\", \"24\": \"r15\", \"25\": \"r15\", \"26\": \"r15\", \"27\": \"r15\", \"28\": \"r15\", \"29\": \"r15\", \"30\": \"r15\", \"31\": \"r15\", \"32\": \"r15\", \"33\": \"r15\", \"34\": \"r15\", \"35\": \"r15\", \"36\": \"r15\", \"37\": \"r15\", \"38\": \"r15\", \"39\": \"r15\", \"40\": \"r15\", \"41\": \"r15\", \"42\": \"r15\", \"43\": \"r15\", \"44\": \"r15\", \"45\": \"r15\", \"52\": \"r15\", \"53\": \"r15\", \"54\": \"r15\", \"55\": \"r15\", \"57\": \"r15\" }, { \"23\": \"r16\", \"24\": \"r16\", \"25\": \"r16\", \"26\": \"r16\", \"27\": \"r16\", \"28\": \"r16\", \"29\": \"r16\", \"30\": \"r16\", \"31\": \"r16\", \"32\": \"r16\", \"33\": \"r16\", \"34\": \"r16\", \"35\": \"r16\", \"36\": \"r16\", \"37\": \"r16\", \"38\": \"r16\", \"39\": \"r16\", \"40\": \"r16\", \"41\": \"r16\", \"42\": \"r16\", \"43\": \"r16\", \"44\": \"r16\", \"45\": \"r16\", \"52\": \"r16\", \"53\": \"r16\", \"54\": \"r16\", \"55\": \"r16\", \"57\": \"r16\" }, { \"23\": \"r17\", \"24\": \"r17\", \"25\": \"r17\", \"26\": \"r17\", \"27\": \"r17\", \"28\": \"r17\", \"29\": \"r17\", \"30\": \"r17\", \"31\": \"r17\", \"32\": \"r17\", \"33\": \"r17\", \"34\": \"r17\", \"35\": \"r17\", \"36\": \"r17\", \"37\": \"r17\", \"38\": \"r17\", \"39\": \"r17\", \"40\": \"r17\", \"41\": \"r17\", \"42\": \"r17\", \"43\": \"r17\", \"44\": \"r17\", \"45\": \"r17\", \"52\": \"r17\", \"53\": \"r17\", \"54\": \"r17\", \"55\": \"r17\", \"57\": \"r17\" }, { \"4\": 57, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 59, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 61, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 63, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r22\", \"24\": \"r22\", \"25\": \"r22\", \"26\": \"r22\", \"27\": \"r22\", \"28\": \"r22\", \"29\": \"r22\", \"30\": \"r22\", \"31\": \"r22\", \"32\": \"r22\", \"33\": \"r22\", \"34\": \"r22\", \"35\": \"r22\", \"36\": \"r22\", \"37\": \"r22\", \"38\": \"r22\", \"39\": \"r22\", \"40\": \"r22\", \"41\": \"r22\", \"42\": \"r22\", \"43\": \"r22\", \"44\": \"r22\", \"45\": \"r22\", \"46\": \"r22\", \"47\": \"r22\", \"48\": \"r22\", \"49\": \"r22\", \"50\": \"r22\", \"51\": \"r22\", \"52\": \"r22\", \"53\": \"r22\", \"54\": \"r22\", \"55\": \"r22\", \"57\": \"r22\" }, { \"23\": \"r23\", \"24\": \"r23\", \"25\": \"r23\", \"26\": \"r23\", \"27\": \"r23\", \"28\": \"r23\", \"29\": \"r23\", \"30\": \"r23\", \"31\": \"r23\", \"32\": \"r23\", \"33\": \"r23\", \"34\": \"r23\", \"35\": \"r23\", \"36\": \"r23\", \"37\": \"r23\", \"38\": \"r23\", \"39\": \"r23\", \"40\": \"r23\", \"41\": \"r23\", \"42\": \"r23\", \"43\": \"r23\", \"44\": \"r23\", \"45\": \"r23\", \"46\": \"r23\", \"47\": \"r23\", \"48\": \"r23\", \"49\": \"r23\", \"50\": \"r23\", \"51\": \"r23\", \"52\": \"r23\", \"53\": \"r23\", \"54\": \"r23\", \"55\": \"r23\", \"57\": \"r23\" }, { \"23\": \"r24\", \"24\": \"r24\", \"25\": \"r24\", \"26\": \"r24\", \"27\": \"r24\", \"28\": \"r24\", \"29\": \"r24\", \"30\": \"r24\", \"31\": \"r24\", \"32\": \"r24\", \"33\": \"r24\", \"34\": \"r24\", \"35\": \"r24\", \"36\": \"r24\", \"37\": \"r24\", \"38\": \"r24\", \"39\": \"r24\", \"40\": \"r24\", \"41\": \"r24\", \"42\": \"r24\", \"43\": \"r24\", \"44\": \"r24\", \"45\": \"r24\", \"46\": \"r24\", \"47\": \"r24\", \"48\": \"r24\", \"49\": \"r24\", \"50\": \"r24\", \"51\": \"r24\", \"52\": \"r24\", \"53\": \"r24\", \"54\": \"r24\", \"55\": \"r24\", \"57\": \"r24\" }, { \"23\": \"r25\", \"24\": \"r25\", \"25\": \"r25\", \"26\": \"r25\", \"27\": \"r25\", \"28\": \"r25\", \"29\": \"r25\", \"30\": \"r25\", \"31\": \"r25\", \"32\": \"r25\", \"33\": \"r25\", \"34\": \"r25\", \"35\": \"r25\", \"36\": \"r25\", \"37\": \"r25\", \"38\": \"r25\", \"39\": \"r25\", \"40\": \"r25\", \"41\": \"r25\", \"42\": \"r25\", \"43\": \"r25\", \"44\": \"r25\", \"45\": \"r25\", \"46\": \"r25\", \"47\": \"r25\", \"48\": \"r25\", \"49\": \"r25\", \"50\": \"r25\", \"51\": \"r25\", \"52\": \"r25\", \"53\": \"r25\", \"54\": \"r25\", \"55\": \"r25\", \"56\": \"r25\", \"57\": \"r25\", \"58\": \"r25\" }, { \"23\": \"r26\", \"24\": \"r26\", \"25\": \"r26\", \"26\": \"r26\", \"27\": \"r26\", \"28\": \"r26\", \"29\": \"r26\", \"30\": \"r26\", \"31\": \"r26\", \"32\": \"r26\", \"33\": \"r26\", \"34\": \"r26\", \"35\": \"r26\", \"36\": \"r26\", \"37\": \"r26\", \"38\": \"r26\", \"39\": \"r26\", \"40\": \"r26\", \"41\": \"r26\", \"42\": \"r26\", \"43\": \"r26\", \"44\": \"r26\", \"45\": \"r26\", \"46\": \"r26\", \"47\": \"r26\", \"48\": \"r26\", \"49\": \"r26\", \"50\": \"r26\", \"51\": \"r26\", \"52\": \"r26\", \"53\": \"r26\", \"54\": \"r26\", \"55\": \"r26\", \"56\": \"r26\", \"57\": \"r26\", \"58\": \"r26\" }, { \"23\": \"r27\", \"24\": \"r27\", \"25\": \"r27\", \"26\": \"r27\", \"27\": \"r27\", \"28\": \"r27\", \"29\": \"r27\", \"30\": \"r27\", \"31\": \"r27\", \"32\": \"r27\", \"33\": \"r27\", \"34\": \"r27\", \"35\": \"r27\", \"36\": \"r27\", \"37\": \"r27\", \"38\": \"r27\", \"39\": \"r27\", \"40\": \"r27\", \"41\": \"r27\", \"42\": \"r27\", \"43\": \"r27\", \"44\": \"r27\", \"45\": \"r27\", \"46\": \"r27\", \"47\": \"r27\", \"48\": \"r27\", \"49\": \"r27\", \"50\": \"r27\", \"51\": \"r27\", \"52\": \"r27\", \"53\": \"r27\", \"54\": \"r27\", \"55\": \"r27\", \"56\": \"r27\", \"57\": \"r27\", \"58\": \"r27\" }, { \"23\": \"r28\", \"24\": \"r28\", \"25\": \"r28\", \"26\": \"r28\", \"27\": \"r28\", \"28\": \"r28\", \"29\": \"r28\", \"30\": \"r28\", \"31\": \"r28\", \"32\": \"r28\", \"33\": \"r28\", \"34\": \"r28\", \"35\": \"r28\", \"36\": \"r28\", \"37\": \"r28\", \"38\": \"r28\", \"39\": \"r28\", \"40\": \"r28\", \"41\": \"r28\", \"42\": \"r28\", \"43\": \"r28\", \"44\": \"r28\", \"45\": \"r28\", \"46\": \"r28\", \"47\": \"r28\", \"48\": \"r28\", \"49\": \"r28\", \"50\": \"r28\", \"51\": \"r28\", \"52\": \"r28\", \"53\": \"r28\", \"54\": \"r28\", \"55\": \"r28\", \"56\": \"r28\", \"57\": \"r28\", \"58\": \"r28\" }, { \"23\": \"r29\", \"24\": \"r29\", \"25\": \"r29\", \"26\": \"r29\", \"27\": \"r29\", \"28\": \"r29\", \"29\": \"r29\", \"30\": \"r29\", \"31\": \"r29\", \"32\": \"r29\", \"33\": \"r29\", \"34\": \"r29\", \"35\": \"r29\", \"36\": \"r29\", \"37\": \"r29\", \"38\": \"r29\", \"39\": \"r29\", \"40\": \"r29\", \"41\": \"r29\", \"42\": \"r29\", \"43\": \"r29\", \"44\": \"r29\", \"45\": \"r29\", \"46\": \"r29\", \"47\": \"r29\", \"48\": \"r29\", \"49\": \"r29\", \"50\": \"r29\", \"51\": \"r29\", \"52\": \"r29\", \"53\": \"r29\", \"54\": \"r29\", \"55\": \"r29\", \"56\": \"r29\", \"57\": \"r29\", \"58\": \"r29\" }, { \"23\": \"r30\", \"24\": \"r30\", \"25\": \"r30\", \"26\": \"r30\", \"27\": \"r30\", \"28\": \"r30\", \"29\": \"r30\", \"30\": \"r30\", \"31\": \"r30\", \"32\": \"r30\", \"33\": \"r30\", \"34\": \"r30\", \"35\": \"r30\", \"36\": \"r30\", \"37\": \"r30\", \"38\": \"r30\", \"39\": \"r30\", \"40\": \"r30\", \"41\": \"r30\", \"42\": \"r30\", \"43\": \"r30\", \"44\": \"r30\", \"45\": \"r30\", \"46\": \"r30\", \"47\": \"r30\", \"48\": \"r30\", \"49\": \"r30\", \"50\": \"r30\", \"51\": \"r30\", \"52\": \"r30\", \"53\": \"r30\", \"54\": \"r30\", \"55\": \"r30\", \"56\": \"r30\", \"57\": \"r30\", \"58\": \"r30\" }, { \"23\": \"r31\", \"24\": \"r31\", \"25\": \"r31\", \"26\": \"r31\", \"27\": \"r31\", \"28\": \"r31\", \"29\": \"r31\", \"30\": \"r31\", \"31\": \"r31\", \"32\": \"r31\", \"33\": \"r31\", \"34\": \"r31\", \"35\": \"r31\", \"36\": \"r31\", \"37\": \"r31\", \"38\": \"r31\", \"39\": \"r31\", \"40\": \"r31\", \"41\": \"r31\", \"42\": \"r31\", \"43\": \"r31\", \"44\": \"r31\", \"45\": \"r31\", \"46\": \"r31\", \"47\": \"r31\", \"48\": \"r31\", \"49\": \"r31\", \"50\": \"r31\", \"51\": \"r31\", \"52\": \"r31\", \"53\": \"r31\", \"54\": \"r31\", \"55\": \"r31\", \"56\": \"r31\", \"57\": \"r31\", \"58\": \"r31\" }, { \"23\": \"r32\", \"24\": \"r32\", \"25\": \"r32\", \"26\": \"r32\", \"27\": \"r32\", \"28\": \"r32\", \"29\": \"r32\", \"30\": \"r32\", \"31\": \"r32\", \"32\": \"r32\", \"33\": \"r32\", \"34\": \"r32\", \"35\": \"r32\", \"36\": \"r32\", \"37\": \"r32\", \"38\": \"r32\", \"39\": \"r32\", \"40\": \"r32\", \"41\": \"r32\", \"42\": \"r32\", \"43\": \"r32\", \"44\": \"r32\", \"45\": \"r32\", \"46\": \"r32\", \"47\": \"r32\", \"48\": \"r32\", \"49\": \"r32\", \"50\": \"r32\", \"51\": \"r32\", \"52\": \"r32\", \"53\": \"r32\", \"54\": \"r32\", \"55\": \"r32\", \"56\": \"r32\", \"57\": \"r32\", \"58\": \"r32\" }, { \"23\": \"r33\", \"24\": \"r33\", \"25\": \"r33\", \"26\": \"r33\", \"27\": \"r33\", \"28\": \"r33\", \"29\": \"r33\", \"30\": \"r33\", \"31\": \"r33\", \"32\": \"r33\", \"33\": \"r33\", \"34\": \"r33\", \"35\": \"r33\", \"36\": \"r33\", \"37\": \"r33\", \"38\": \"r33\", \"39\": \"r33\", \"40\": \"r33\", \"41\": \"r33\", \"42\": \"r33\", \"43\": \"r33\", \"44\": \"r33\", \"45\": \"r33\", \"46\": \"r33\", \"47\": \"r33\", \"48\": \"r33\", \"49\": \"r33\", \"50\": \"r33\", \"51\": \"r33\", \"52\": \"r33\", \"53\": \"r33\", \"54\": \"r33\", \"55\": \"r33\", \"56\": \"r33\", \"57\": \"r33\", \"58\": \"r33\" }, { \"23\": \"r34\", \"24\": \"r34\", \"25\": \"r34\", \"26\": \"r34\", \"27\": \"r34\", \"28\": \"r34\", \"29\": \"r34\", \"30\": \"r34\", \"31\": \"r34\", \"32\": \"r34\", \"33\": \"r34\", \"34\": \"r34\", \"35\": \"r34\", \"36\": \"r34\", \"37\": \"r34\", \"38\": \"r34\", \"39\": \"r34\", \"40\": \"r34\", \"41\": \"r34\", \"42\": \"r34\", \"43\": \"r34\", \"44\": \"r34\", \"45\": \"r34\", \"46\": \"r34\", \"47\": \"r34\", \"48\": \"r34\", \"49\": \"r34\", \"50\": \"r34\", \"51\": \"r34\", \"52\": \"r34\", \"53\": \"r34\", \"54\": \"r34\", \"55\": \"r34\", \"56\": \"r34\", \"57\": \"r34\", \"58\": \"r34\" }, { \"23\": \"r35\", \"24\": \"r35\", \"25\": \"r35\", \"26\": \"r35\", \"27\": \"r35\", \"28\": \"r35\", \"29\": \"r35\", \"30\": \"r35\", \"31\": \"r35\", \"32\": \"r35\", \"33\": \"r35\", \"34\": \"r35\", \"35\": \"r35\", \"36\": \"r35\", \"37\": \"r35\", \"38\": \"r35\", \"39\": \"r35\", \"40\": \"r35\", \"41\": \"r35\", \"42\": \"r35\", \"43\": \"r35\", \"44\": \"r35\", \"45\": \"r35\", \"46\": \"r35\", \"47\": \"r35\", \"48\": \"r35\", \"49\": \"r35\", \"50\": \"r35\", \"51\": \"r35\", \"52\": \"r35\", \"53\": \"r35\", \"54\": \"r35\", \"55\": \"r35\", \"56\": \"r35\", \"57\": \"r35\", \"58\": \"r35\" }, { \"23\": \"r36\", \"24\": \"r36\", \"25\": \"r36\", \"26\": \"r36\", \"27\": \"r36\", \"28\": \"r36\", \"29\": \"r36\", \"30\": \"r36\", \"31\": \"r36\", \"32\": \"r36\", \"33\": \"r36\", \"34\": \"r36\", \"35\": \"r36\", \"36\": \"r36\", \"37\": \"r36\", \"38\": \"r36\", \"39\": \"r36\", \"40\": \"r36\", \"41\": \"r36\", \"42\": \"r36\", \"43\": \"r36\", \"44\": \"r36\", \"45\": \"r36\", \"46\": \"r36\", \"47\": \"r36\", \"48\": \"r36\", \"49\": \"r36\", \"50\": \"r36\", \"51\": \"r36\", \"52\": \"r36\", \"53\": \"r36\", \"54\": \"r36\", \"55\": \"r36\", \"56\": \"r36\", \"57\": \"r36\", \"58\": \"r36\" }, { \"10\": 70, \"18\": 65, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 83, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"23\": \"r47\", \"24\": \"r47\", \"25\": \"r47\", \"26\": \"r47\", \"27\": \"r47\", \"28\": \"r47\", \"29\": \"r47\", \"30\": \"r47\", \"31\": \"r47\", \"32\": \"r47\", \"33\": \"r47\", \"34\": \"r47\", \"35\": \"r47\", \"36\": \"r47\", \"37\": \"r47\", \"38\": \"r47\", \"39\": \"r47\", \"40\": \"r47\", \"41\": \"r47\", \"42\": \"r47\", \"43\": \"r47\", \"44\": \"r47\", \"45\": \"r47\", \"46\": \"r47\", \"47\": \"r47\", \"48\": \"r47\", \"49\": \"r47\", \"50\": \"r47\", \"51\": \"r47\", \"52\": \"r47\", \"53\": \"r47\", \"54\": \"r47\", \"55\": \"r47\", \"57\": \"r47\" }, { \"23\": \"r48\", \"24\": \"r48\", \"25\": \"r48\", \"26\": \"r48\", \"27\": \"r48\", \"28\": \"r48\", \"29\": \"r48\", \"30\": \"r48\", \"31\": \"r48\", \"32\": \"r48\", \"33\": \"r48\", \"34\": \"r48\", \"35\": \"r48\", \"36\": \"r48\", \"37\": \"r48\", \"38\": \"r48\", \"39\": \"r48\", \"40\": \"r48\", \"41\": \"r48\", \"42\": \"r48\", \"43\": \"r48\", \"44\": \"r48\", \"45\": \"r48\", \"46\": \"r48\", \"47\": \"r48\", \"48\": \"r48\", \"49\": \"r48\", \"50\": \"r48\", \"51\": \"r48\", \"52\": \"r48\", \"53\": \"r48\", \"54\": \"r48\", \"55\": \"r48\", \"57\": \"r48\" }, { \"4\": 85, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 87, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 89, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r13\", \"24\": \"r13\", \"25\": \"r13\", \"26\": \"r13\", \"27\": \"r13\", \"28\": \"r13\", \"29\": \"r13\", \"30\": \"r13\", \"31\": \"r13\", \"32\": \"r13\", \"33\": \"r13\", \"34\": \"r13\", \"35\": \"r13\", \"36\": \"r13\", \"37\": \"r13\", \"38\": \"r13\", \"39\": \"r13\", \"40\": \"r13\", \"41\": \"r13\", \"42\": \"r13\", \"43\": \"r13\", \"44\": \"r13\", \"45\": \"r13\", \"52\": \"r13\", \"53\": \"r13\", \"54\": \"r13\", \"55\": \"r13\", \"57\": \"r13\" }, { \"23\": \"r37\", \"24\": \"r37\", \"25\": \"r37\", \"26\": \"r37\", \"27\": \"r37\", \"28\": \"r37\", \"29\": \"r37\", \"30\": \"r37\", \"31\": \"r37\", \"32\": \"r37\", \"33\": \"r37\", \"34\": \"r37\", \"35\": \"r37\", \"36\": \"r37\", \"37\": \"r37\", \"38\": \"r37\", \"39\": \"r37\", \"40\": \"r37\", \"41\": \"r37\", \"42\": \"r37\", \"43\": \"r37\", \"44\": \"r37\", \"45\": \"r37\", \"52\": \"r37\", \"53\": \"r37\", \"54\": \"r37\", \"55\": \"r37\", \"57\": \"r37\" }, { \"23\": \"r39\", \"24\": \"r39\", \"25\": \"r39\", \"26\": \"r39\", \"27\": \"r39\", \"28\": \"r39\", \"29\": \"r39\", \"30\": \"r39\", \"31\": \"r39\", \"32\": \"r39\", \"33\": \"r39\", \"34\": \"r39\", \"35\": \"r39\", \"36\": \"r39\", \"37\": \"r39\", \"38\": \"r39\", \"39\": \"r39\", \"40\": \"r39\", \"41\": \"r39\", \"42\": \"r39\", \"43\": \"r39\", \"44\": \"r39\", \"45\": \"r39\", \"46\": \"s56\", \"52\": \"r39\", \"53\": \"r39\", \"54\": \"r39\", \"55\": \"r39\", \"57\": \"r39\" }, { \"23\": \"r41\", \"24\": \"r41\", \"25\": \"r41\", \"26\": \"r41\", \"27\": \"r41\", \"28\": \"r41\", \"29\": \"r41\", \"30\": \"r41\", \"31\": \"r41\", \"32\": \"r41\", \"33\": \"r41\", \"34\": \"r41\", \"35\": \"r41\", \"36\": \"r41\", \"37\": \"r41\", \"38\": \"r41\", \"39\": \"r41\", \"40\": \"r41\", \"41\": \"r41\", \"42\": \"r41\", \"43\": \"r41\", \"44\": \"r41\", \"45\": \"r41\", \"46\": \"r41\", \"52\": \"r41\", \"53\": \"r41\", \"54\": \"r41\", \"55\": \"r41\", \"57\": \"r41\" }, { \"23\": \"r42\", \"24\": \"r42\", \"25\": \"r42\", \"26\": \"r42\", \"27\": \"r42\", \"28\": \"r42\", \"29\": \"r42\", \"30\": \"r42\", \"31\": \"r42\", \"32\": \"r42\", \"33\": \"r42\", \"34\": \"r42\", \"35\": \"r42\", \"36\": \"r42\", \"37\": \"r42\", \"38\": \"r42\", \"39\": \"r42\", \"40\": \"r42\", \"41\": \"r42\", \"42\": \"r42\", \"43\": \"r42\", \"44\": \"r42\", \"45\": \"r42\", \"46\": \"r42\", \"52\": \"r42\", \"53\": \"r42\", \"54\": \"r42\", \"55\": \"r42\", \"57\": \"r42\" }, { \"23\": \"r43\", \"24\": \"r43\", \"25\": \"r43\", \"26\": \"r43\", \"27\": \"r43\", \"28\": \"r43\", \"29\": \"r43\", \"30\": \"r43\", \"31\": \"r43\", \"32\": \"r43\", \"33\": \"r43\", \"34\": \"r43\", \"35\": \"r43\", \"36\": \"r43\", \"37\": \"r43\", \"38\": \"r43\", \"39\": \"r43\", \"40\": \"r43\", \"41\": \"r43\", \"42\": \"r43\", \"43\": \"r43\", \"44\": \"r43\", \"45\": \"r43\", \"46\": \"r43\", \"52\": \"r43\", \"53\": \"r43\", \"54\": \"r43\", \"55\": \"r43\", \"57\": \"r43\" }, { \"23\": \"r44\", \"24\": \"r44\", \"25\": \"r44\", \"26\": \"r44\", \"27\": \"r44\", \"28\": \"r44\", \"29\": \"r44\", \"30\": \"r44\", \"31\": \"r44\", \"32\": \"r44\", \"33\": \"r44\", \"34\": \"r44\", \"35\": \"r44\", \"36\": \"r44\", \"37\": \"r44\", \"38\": \"r44\", \"39\": \"r44\", \"40\": \"r44\", \"41\": \"r44\", \"42\": \"r44\", \"43\": \"r44\", \"44\": \"r44\", \"45\": \"r44\", \"46\": \"r44\", \"52\": \"r44\", \"53\": \"r44\", \"54\": \"r44\", \"55\": \"r44\", \"57\": \"r44\" }, { \"23\": \"r45\", \"24\": \"r45\", \"25\": \"r45\", \"26\": \"r45\", \"27\": \"r45\", \"28\": \"r45\", \"29\": \"r45\", \"30\": \"r45\", \"31\": \"r45\", \"32\": \"r45\", \"33\": \"r45\", \"34\": \"r45\", \"35\": \"r45\", \"36\": \"r45\", \"37\": \"r45\", \"38\": \"r45\", \"39\": \"r45\", \"40\": \"r45\", \"41\": \"r45\", \"42\": \"r45\", \"43\": \"r45\", \"44\": \"r45\", \"45\": \"r45\", \"46\": \"r45\", \"52\": \"r45\", \"53\": \"r45\", \"54\": \"r45\", \"55\": \"r45\", \"57\": \"r45\" }, { \"23\": \"r46\", \"24\": \"r46\", \"25\": \"r46\", \"26\": \"r46\", \"27\": \"r46\", \"28\": \"r46\", \"29\": \"r46\", \"30\": \"r46\", \"31\": \"r46\", \"32\": \"r46\", \"33\": \"r46\", \"34\": \"r46\", \"35\": \"r46\", \"36\": \"r46\", \"37\": \"r46\", \"38\": \"r46\", \"39\": \"r46\", \"40\": \"r46\", \"41\": \"r46\", \"42\": \"r46\", \"43\": \"r46\", \"44\": \"r46\", \"45\": \"r46\", \"46\": \"r46\", \"52\": \"r46\", \"53\": \"r46\", \"54\": \"r46\", \"55\": \"r46\", \"57\": \"r46\" }, { \"23\": \"r40\", \"24\": \"r40\", \"25\": \"r40\", \"26\": \"r40\", \"27\": \"r40\", \"28\": \"r40\", \"29\": \"r40\", \"30\": \"r40\", \"31\": \"r40\", \"32\": \"r40\", \"33\": \"r40\", \"34\": \"r40\", \"35\": \"r40\", \"36\": \"r40\", \"37\": \"r40\", \"38\": \"r40\", \"39\": \"r40\", \"40\": \"r40\", \"41\": \"r40\", \"42\": \"r40\", \"43\": \"r40\", \"44\": \"r40\", \"45\": \"r40\", \"52\": \"r40\", \"53\": \"r40\", \"54\": \"r40\", \"55\": \"r40\", \"57\": \"r40\" }, { \"25\": \"s12\", \"31\": \"s58\" }, { \"23\": \"r18\", \"24\": \"r18\", \"25\": \"r18\", \"26\": \"r18\", \"27\": \"r18\", \"28\": \"r18\", \"29\": \"r18\", \"30\": \"r18\", \"31\": \"r18\", \"32\": \"r18\", \"33\": \"r18\", \"34\": \"r18\", \"35\": \"r18\", \"36\": \"r18\", \"37\": \"r18\", \"38\": \"r18\", \"39\": \"r18\", \"40\": \"r18\", \"41\": \"r18\", \"42\": \"r18\", \"43\": \"r18\", \"44\": \"r18\", \"45\": \"r18\", \"52\": \"r18\", \"53\": \"r18\", \"54\": \"r18\", \"55\": \"r18\", \"57\": \"r18\" }, { \"25\": \"s12\", \"31\": \"s60\" }, { \"23\": \"r19\", \"24\": \"r19\", \"25\": \"r19\", \"26\": \"r19\", \"27\": \"r19\", \"28\": \"r19\", \"29\": \"r19\", \"30\": \"r19\", \"31\": \"r19\", \"32\": \"r19\", \"33\": \"r19\", \"34\": \"r19\", \"35\": \"r19\", \"36\": \"r19\", \"37\": \"r19\", \"38\": \"r19\", \"39\": \"r19\", \"40\": \"r19\", \"41\": \"r19\", \"42\": \"r19\", \"43\": \"r19\", \"44\": \"r19\", \"45\": \"r19\", \"52\": \"r19\", \"53\": \"r19\", \"54\": \"r19\", \"55\": \"r19\", \"57\": \"r19\" }, { \"25\": \"s12\", \"31\": \"s62\" }, { \"23\": \"r20\", \"24\": \"r20\", \"25\": \"r20\", \"26\": \"r20\", \"27\": \"r20\", \"28\": \"r20\", \"29\": \"r20\", \"30\": \"r20\", \"31\": \"r20\", \"32\": \"r20\", \"33\": \"r20\", \"34\": \"r20\", \"35\": \"r20\", \"36\": \"r20\", \"37\": \"r20\", \"38\": \"r20\", \"39\": \"r20\", \"40\": \"r20\", \"41\": \"r20\", \"42\": \"r20\", \"43\": \"r20\", \"44\": \"r20\", \"45\": \"r20\", \"52\": \"r20\", \"53\": \"r20\", \"54\": \"r20\", \"55\": \"r20\", \"57\": \"r20\" }, { \"25\": \"s12\", \"31\": \"s64\" }, { \"23\": \"r21\", \"24\": \"r21\", \"25\": \"r21\", \"26\": \"r21\", \"27\": \"r21\", \"28\": \"r21\", \"29\": \"r21\", \"30\": \"r21\", \"31\": \"r21\", \"32\": \"r21\", \"33\": \"r21\", \"34\": \"r21\", \"35\": \"r21\", \"36\": \"r21\", \"37\": \"r21\", \"38\": \"r21\", \"39\": \"r21\", \"40\": \"r21\", \"41\": \"r21\", \"42\": \"r21\", \"43\": \"r21\", \"44\": \"r21\", \"45\": \"r21\", \"52\": \"r21\", \"53\": \"r21\", \"54\": \"r21\", \"55\": \"r21\", \"57\": \"r21\" }, { \"56\": \"s72\" }, { \"56\": \"r55\" }, { \"10\": 70, \"20\": 73, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r56\", \"58\": \"s74\" }, { \"24\": \"r62\", \"28\": \"r62\", \"35\": \"r62\", \"36\": \"r62\", \"37\": \"r62\", \"38\": \"r62\", \"39\": \"r62\", \"40\": \"r62\", \"41\": \"r62\", \"42\": \"r62\", \"43\": \"r62\", \"44\": \"r62\", \"45\": \"r62\", \"56\": \"r62\", \"58\": \"r62\" }, { \"24\": \"r63\", \"28\": \"r63\", \"35\": \"r63\", \"36\": \"r63\", \"37\": \"r63\", \"38\": \"r63\", \"39\": \"r63\", \"40\": \"r63\", \"41\": \"r63\", \"42\": \"r63\", \"43\": \"r63\", \"44\": \"r63\", \"45\": \"r63\", \"56\": \"r63\", \"58\": \"r63\" }, { \"24\": \"r64\", \"28\": \"r64\", \"35\": \"r64\", \"36\": \"r64\", \"37\": \"r64\", \"38\": \"r64\", \"39\": \"r64\", \"40\": \"r64\", \"41\": \"r64\", \"42\": \"r64\", \"43\": \"r64\", \"44\": \"r64\", \"45\": \"r64\", \"56\": \"r64\", \"58\": \"r64\" }, { \"24\": \"r65\", \"28\": \"r65\", \"35\": \"r65\", \"36\": \"r65\", \"37\": \"r65\", \"38\": \"r65\", \"39\": \"r65\", \"40\": \"r65\", \"41\": \"r65\", \"42\": \"r65\", \"43\": \"r65\", \"44\": \"r65\", \"45\": \"r65\", \"56\": \"r65\", \"58\": \"r65\" }, { \"23\": \"r52\", \"24\": \"r52\", \"25\": \"r52\", \"26\": \"r52\", \"27\": \"r52\", \"28\": \"r52\", \"29\": \"r52\", \"30\": \"r52\", \"31\": \"r52\", \"32\": \"r52\", \"33\": \"r52\", \"34\": \"r52\", \"35\": \"r52\", \"36\": \"r52\", \"37\": \"r52\", \"38\": \"r52\", \"39\": \"r52\", \"40\": \"r52\", \"41\": \"r52\", \"42\": \"r52\", \"43\": \"r52\", \"44\": \"r52\", \"45\": \"r52\", \"46\": \"r52\", \"47\": \"r52\", \"48\": \"r52\", \"49\": \"r52\", \"50\": \"r52\", \"51\": \"r52\", \"52\": \"r52\", \"53\": \"r52\", \"54\": \"r52\", \"55\": \"r52\", \"57\": \"r52\" }, { \"56\": \"r57\" }, { \"10\": 70, \"21\": 77, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"56\": \"r59\" }, { \"10\": 70, \"20\": 79, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r63\", \"58\": \"s80\" }, { \"10\": 70, \"18\": 78, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r58\" }, { \"56\": \"r60\" }, { \"10\": 70, \"21\": 81, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 82, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r61\" }, { \"56\": \"s84\" }, { \"23\": \"r53\", \"24\": \"r53\", \"25\": \"r53\", \"26\": \"r53\", \"27\": \"r53\", \"28\": \"r53\", \"29\": \"r53\", \"30\": \"r53\", \"31\": \"r53\", \"32\": \"r53\", \"33\": \"r53\", \"34\": \"r53\", \"35\": \"r53\", \"36\": \"r53\", \"37\": \"r53\", \"38\": \"r53\", \"39\": \"r53\", \"40\": \"r53\", \"41\": \"r53\", \"42\": \"r53\", \"43\": \"r53\", \"44\": \"r53\", \"45\": \"r53\", \"46\": \"r53\", \"47\": \"r53\", \"48\": \"r53\", \"49\": \"r53\", \"50\": \"r53\", \"51\": \"r53\", \"52\": \"r53\", \"53\": \"r53\", \"54\": \"r53\", \"55\": \"r53\", \"57\": \"r53\" }, { \"25\": \"s12\", \"31\": \"s86\" }, { \"23\": \"r49\", \"24\": \"r49\", \"25\": \"r49\", \"26\": \"r49\", \"27\": \"r49\", \"28\": \"r49\", \"29\": \"r49\", \"30\": \"r49\", \"31\": \"r49\", \"32\": \"r49\", \"33\": \"r49\", \"34\": \"r49\", \"35\": \"r49\", \"36\": \"r49\", \"37\": \"r49\", \"38\": \"r49\", \"39\": \"r49\", \"40\": \"r49\", \"41\": \"r49\", \"42\": \"r49\", \"43\": \"r49\", \"44\": \"r49\", \"45\": \"r49\", \"46\": \"r49\", \"47\": \"r49\", \"48\": \"r49\", \"49\": \"r49\", \"50\": \"r49\", \"51\": \"r49\", \"52\": \"r49\", \"53\": \"r49\", \"54\": \"r49\", \"55\": \"r49\", \"57\": \"r49\" }, { \"25\": \"s12\", \"31\": \"s88\" }, { \"23\": \"r50\", \"24\": \"r50\", \"25\": \"r50\", \"26\": \"r50\", \"27\": \"r50\", \"28\": \"r50\", \"29\": \"r50\", \"30\": \"r50\", \"31\": \"r50\", \"32\": \"r50\", \"33\": \"r50\", \"34\": \"r50\", \"35\": \"r50\", \"36\": \"r50\", \"37\": \"r50\", \"38\": \"r50\", \"39\": \"r50\", \"40\": \"r50\", \"41\": \"r50\", \"42\": \"r50\", \"43\": \"r50\", \"44\": \"r50\", \"45\": \"r50\", \"46\": \"r50\", \"47\": \"r50\", \"48\": \"r50\", \"49\": \"r50\", \"50\": \"r50\", \"51\": \"r50\", \"52\": \"r50\", \"53\": \"r50\", \"54\": \"r50\", \"55\": \"r50\", \"57\": \"r50\" }, { \"25\": \"s12\", \"31\": \"s90\" }, { \"23\": \"r51\", \"24\": \"r51\", \"25\": \"r51\", \"26\": \"r51\", \"27\": \"r51\", \"28\": \"r51\", \"29\": \"r51\", \"30\": \"r51\", \"31\": \"r51\", \"32\": \"r51\", \"33\": \"r51\", \"34\": \"r51\", \"35\": \"r51\", \"36\": \"r51\", \"37\": \"r51\", \"38\": \"r51\", \"39\": \"r51\", \"40\": \"r51\", \"41\": \"r51\", \"42\": \"r51\", \"43\": \"r51\", \"44\": \"r51\", \"45\": \"r51\", \"46\": \"r51\", \"47\": \"r51\", \"48\": \"r51\", \"49\": \"r51\", \"50\": \"r51\", \"51\": \"r51\", \"52\": \"r51\", \"53\": \"r51\", \"54\": \"r51\", \"55\": \"r51\", \"57\": \"r51\" }];\n\n/**\n * Parsing stack.\n */\nvar stack = [];\n\n/**\n * Tokenizer instance.\n */\nvar tokenizer = void 0;\n/**\n * Generic tokenizer used by the parser in the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * See `--custom-tokinzer` to skip this generation, and use a custom one.\n */\n\nvar lexRules = [[/^#[^\\n]+/, function () {/* skip comments */}], [/^\\s+/, function () {/* skip whitespace */}], [/^-/, function () {\n return 'DASH';\n}], [/^\\//, function () {\n return 'CHAR';\n}], [/^#/, function () {\n return 'CHAR';\n}], [/^\\|/, function () {\n return 'CHAR';\n}], [/^\\./, function () {\n return 'CHAR';\n}], [/^\\{/, function () {\n return 'CHAR';\n}], [/^\\{\\d+\\}/, function () {\n return 'RANGE_EXACT';\n}], [/^\\{\\d+,\\}/, function () {\n return 'RANGE_OPEN';\n}], [/^\\{\\d+,\\d+\\}/, function () {\n return 'RANGE_CLOSED';\n}], [/^\\\\k<(([\\u0041-\\u005a\\u0061-\\u007a\\u00aa\\u00b5\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e-\\u066f\\u0671-\\u06d3\\u06d5\\u06e5-\\u06e6\\u06ee-\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4-\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc-\\u09dd\\u09df-\\u09e1\\u09f0-\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0-\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c-\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60-\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0-\\u0ce1\\u0cf1-\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2-\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065-\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\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\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae-\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5-\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\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\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\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\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a-\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd-\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5-\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\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]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\ude80-\\ude9c\\udea0-\\uded0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf75\\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\\ude10-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd23\\udf00-\\udf1c\\udf27\\udf30-\\udf45\\udfe0-\\udff6]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd44\\udd50-\\udd72\\udd76\\udd83-\\uddb2\\uddc1-\\uddc4\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude2b\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udede\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3d\\udf50\\udf5d-\\udf61]|\\ud805[\\udc00-\\udc34\\udc47-\\udc4a\\udc5f\\udc80-\\udcaf\\udcc4-\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udeb8\\udf00-\\udf1a]|\\ud806[\\udc00-\\udc2b\\udca0-\\udcdf\\udcff\\udda0-\\udda7\\uddaa-\\uddd0\\udde1\\udde3\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude89\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd30\\udd46\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd89\\udd98\\udee0-\\udef2]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf50\\udf93-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99]|\\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[\\udd00-\\udd2c\\udd37-\\udd3d\\udd4e\\udec0-\\udeeb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd4b]|\\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]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\}))(([\\u0030-\\u0039\\u0041-\\u005a\\u005f\\u0061-\\u007a\\u00aa\\u00b5\\u00b7\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0300-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u0483-\\u0487\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u07fd\\u0800-\\u082d\\u0840-\\u085b\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u08d3-\\u08e1\\u08e3-\\u0963\\u0966-\\u096f\\u0971-\\u0983\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bc-\\u09c4\\u09c7-\\u09c8\\u09cb-\\u09ce\\u09d7\\u09dc-\\u09dd\\u09df-\\u09e3\\u09e6-\\u09f1\\u09fc\\u09fe\\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\\u0a81-\\u0a83\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abc-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ad0\\u0ae0-\\u0ae3\\u0ae6-\\u0aef\\u0af9-\\u0aff\\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-\\u0b6f\\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-\\u0bcd\\u0bd0\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\\u0c58-\\u0c5a\\u0c60-\\u0c63\\u0c66-\\u0c6f\\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\\u0d00-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d54-\\u0d57\\u0d5f-\\u0d63\\u0d66-\\u0d6f\\u0d7a-\\u0d7f\\u0d82-\\u0d83\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2-\\u0df3\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u0e50-\\u0e59\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0edc-\\u0edf\\u0f00\\u0f18-\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f47\\u0f49-\\u0f6c\\u0f71-\\u0f84\\u0f86-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1049\\u1050-\\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\\u135d-\\u135f\\u1369-\\u1371\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176c\\u176e-\\u1770\\u1772-\\u1773\\u1780-\\u17d3\\u17d7\\u17dc-\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u19d0-\\u19da\\u1a00-\\u1a1b\\u1a20-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1aa7\\u1ab0-\\u1abd\\u1b00-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1bf3\\u1c00-\\u1c37\\u1c40-\\u1c49\\u1c4d-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1cd0-\\u1cd2\\u1cd4-\\u1cfa\\u1d00-\\u1df9\\u1dfb-\\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\\u203f-\\u2040\\u2054\\u2071\\u207f\\u2090-\\u209c\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d7f-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2de0-\\u2dff\\u3005-\\u3007\\u3021-\\u302f\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua8fd-\\ua92d\\ua930-\\ua953\\ua960-\\ua97c\\ua980-\\ua9c0\\ua9cf-\\ua9d9\\ua9e0-\\ua9fe\\uaa00-\\uaa36\\uaa40-\\uaa4d\\uaa50-\\uaa59\\uaa60-\\uaa76\\uaa7a-\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaef\\uaaf2-\\uaaf6\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabea\\uabec-\\uabed\\uabf0-\\uabf9\\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\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33-\\ufe34\\ufe4d-\\ufe4f\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff10-\\uff19\\uff21-\\uff3a\\uff3f\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\uddfd\\ude80-\\ude9c\\udea0-\\uded0\\udee0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udca0-\\udca9\\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-\\ude35\\ude38-\\ude3a\\ude3f\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee6\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd27\\udd30-\\udd39\\udf00-\\udf1c\\udf27\\udf30-\\udf50\\udfe0-\\udff6]|\\ud804[\\udc00-\\udc46\\udc66-\\udc6f\\udc7f-\\udcba\\udcd0-\\udce8\\udcf0-\\udcf9\\udd00-\\udd34\\udd36-\\udd3f\\udd44-\\udd46\\udd50-\\udd73\\udd76\\udd80-\\uddc4\\uddc9-\\uddcc\\uddd0-\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude37\\ude3e\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udeea\\udef0-\\udef9\\udf00-\\udf03\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3b-\\udf44\\udf47-\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc00-\\udc4a\\udc50-\\udc59\\udc5e-\\udc5f\\udc80-\\udcc5\\udcc7\\udcd0-\\udcd9\\udd80-\\uddb5\\uddb8-\\uddc0\\uddd8-\\udddd\\ude00-\\ude40\\ude44\\ude50-\\ude59\\ude80-\\udeb8\\udec0-\\udec9\\udf00-\\udf1a\\udf1d-\\udf2b\\udf30-\\udf39]|\\ud806[\\udc00-\\udc3a\\udca0-\\udce9\\udcff\\udda0-\\udda7\\uddaa-\\uddd7\\uddda-\\udde1\\udde3-\\udde4\\ude00-\\ude3e\\ude47\\ude50-\\ude99\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc40\\udc50-\\udc59\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd36\\udd3a\\udd3c-\\udd3d\\udd3f-\\udd47\\udd50-\\udd59\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd8e\\udd90-\\udd91\\udd93-\\udd98\\udda0-\\udda9\\udee0-\\udef6]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\ude60-\\ude69\\uded0-\\udeed\\udef0-\\udef4\\udf00-\\udf36\\udf40-\\udf43\\udf50-\\udf59\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf4f-\\udf87\\udf8f-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99\\udc9d-\\udc9e]|\\ud834[\\udd65-\\udd69\\udd6d-\\udd72\\udd7b-\\udd82\\udd85-\\udd8b\\uddaa-\\uddad\\ude42-\\ude44]|\\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\\udfce-\\udfff]|\\ud836[\\ude00-\\ude36\\ude3b-\\ude6c\\ude75\\ude84\\ude9b-\\ude9f\\udea1-\\udeaf]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23-\\udc24\\udc26-\\udc2a\\udd00-\\udd2c\\udd30-\\udd3d\\udd40-\\udd49\\udd4e\\udec0-\\udef9]|\\ud83a[\\udc00-\\udcc4\\udcd0-\\udcd6\\udd00-\\udd4b\\udd50-\\udd59]|\\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]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\udb40[\\udd00-\\uddef])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\})|[\\u200c\\u200d])*>/, function () {\n var groupName = yytext.slice(3, -1);\n validateUnicodeGroupName(groupName, this.getCurrentState());\n return 'NAMED_GROUP_REF';\n}], [/^\\\\b/, function () {\n return 'ESC_b';\n}], [/^\\\\B/, function () {\n return 'ESC_B';\n}], [/^\\\\c[a-zA-Z]/, function () {\n return 'CTRL_CH';\n}], [/^\\\\0\\d{1,2}/, function () {\n return 'OCT_CODE';\n}], [/^\\\\0/, function () {\n return 'DEC_CODE';\n}], [/^\\\\\\d{1,3}/, function () {\n return 'DEC_CODE';\n}], [/^\\\\u[dD][89abAB][0-9a-fA-F]{2}\\\\u[dD][c-fC-F][0-9a-fA-F]{2}/, function () {\n return 'U_CODE_SURROGATE';\n}], [/^\\\\u\\{[0-9a-fA-F]{1,}\\}/, function () {\n return 'U_CODE';\n}], [/^\\\\u[0-9a-fA-F]{4}/, function () {\n return 'U_CODE';\n}], [/^\\\\[pP]\\{\\w+(?:=\\w+)?\\}/, function () {\n return 'U_PROP_VALUE_EXP';\n}], [/^\\\\x[0-9a-fA-F]{2}/, function () {\n return 'HEX_CODE';\n}], [/^\\\\[tnrdDsSwWvf]/, function () {\n return 'META_CHAR';\n}], [/^\\\\\\//, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[ #]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[\\^\\$\\.\\*\\+\\?\\(\\)\\\\\\[\\]\\{\\}\\|\\/]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[^*?+\\[()\\\\|]/, function () {\n var s = this.getCurrentState();\n if (s === 'u_class' && yytext === \"\\\\-\") {\n return 'ESC_CHAR';\n } else if (s === 'u' || s === 'xu' || s === 'u_class') {\n throw new SyntaxError('invalid Unicode escape ' + yytext);\n }\n return 'ESC_CHAR';\n}], [/^\\(/, function () {\n return 'CHAR';\n}], [/^\\)/, function () {\n return 'CHAR';\n}], [/^\\(\\?=/, function () {\n return 'POS_LA_ASSERT';\n}], [/^\\(\\?!/, function () {\n return 'NEG_LA_ASSERT';\n}], [/^\\(\\?<=/, function () {\n return 'POS_LB_ASSERT';\n}], [/^\\(\\?<!/, function () {\n return 'NEG_LB_ASSERT';\n}], [/^\\(\\?:/, function () {\n return 'NON_CAPTURE_GROUP';\n}], [/^\\(\\?<(([\\u0041-\\u005a\\u0061-\\u007a\\u00aa\\u00b5\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e-\\u066f\\u0671-\\u06d3\\u06d5\\u06e5-\\u06e6\\u06ee-\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4-\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc-\\u09dd\\u09df-\\u09e1\\u09f0-\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0-\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c-\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60-\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0-\\u0ce1\\u0cf1-\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2-\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065-\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\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\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae-\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5-\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\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\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\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\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a-\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd-\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5-\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\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]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\ude80-\\ude9c\\udea0-\\uded0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf75\\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\\ude10-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd23\\udf00-\\udf1c\\udf27\\udf30-\\udf45\\udfe0-\\udff6]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd44\\udd50-\\udd72\\udd76\\udd83-\\uddb2\\uddc1-\\uddc4\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude2b\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udede\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3d\\udf50\\udf5d-\\udf61]|\\ud805[\\udc00-\\udc34\\udc47-\\udc4a\\udc5f\\udc80-\\udcaf\\udcc4-\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udeb8\\udf00-\\udf1a]|\\ud806[\\udc00-\\udc2b\\udca0-\\udcdf\\udcff\\udda0-\\udda7\\uddaa-\\uddd0\\udde1\\udde3\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude89\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd30\\udd46\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd89\\udd98\\udee0-\\udef2]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf50\\udf93-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99]|\\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[\\udd00-\\udd2c\\udd37-\\udd3d\\udd4e\\udec0-\\udeeb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd4b]|\\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]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\}))(([\\u0030-\\u0039\\u0041-\\u005a\\u005f\\u0061-\\u007a\\u00aa\\u00b5\\u00b7\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0300-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u0483-\\u0487\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u07fd\\u0800-\\u082d\\u0840-\\u085b\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u08d3-\\u08e1\\u08e3-\\u0963\\u0966-\\u096f\\u0971-\\u0983\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bc-\\u09c4\\u09c7-\\u09c8\\u09cb-\\u09ce\\u09d7\\u09dc-\\u09dd\\u09df-\\u09e3\\u09e6-\\u09f1\\u09fc\\u09fe\\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\\u0a81-\\u0a83\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abc-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ad0\\u0ae0-\\u0ae3\\u0ae6-\\u0aef\\u0af9-\\u0aff\\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-\\u0b6f\\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-\\u0bcd\\u0bd0\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\\u0c58-\\u0c5a\\u0c60-\\u0c63\\u0c66-\\u0c6f\\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\\u0d00-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d54-\\u0d57\\u0d5f-\\u0d63\\u0d66-\\u0d6f\\u0d7a-\\u0d7f\\u0d82-\\u0d83\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2-\\u0df3\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u0e50-\\u0e59\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0edc-\\u0edf\\u0f00\\u0f18-\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f47\\u0f49-\\u0f6c\\u0f71-\\u0f84\\u0f86-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1049\\u1050-\\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\\u135d-\\u135f\\u1369-\\u1371\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176c\\u176e-\\u1770\\u1772-\\u1773\\u1780-\\u17d3\\u17d7\\u17dc-\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u19d0-\\u19da\\u1a00-\\u1a1b\\u1a20-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1aa7\\u1ab0-\\u1abd\\u1b00-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1bf3\\u1c00-\\u1c37\\u1c40-\\u1c49\\u1c4d-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1cd0-\\u1cd2\\u1cd4-\\u1cfa\\u1d00-\\u1df9\\u1dfb-\\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\\u203f-\\u2040\\u2054\\u2071\\u207f\\u2090-\\u209c\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d7f-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2de0-\\u2dff\\u3005-\\u3007\\u3021-\\u302f\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua8fd-\\ua92d\\ua930-\\ua953\\ua960-\\ua97c\\ua980-\\ua9c0\\ua9cf-\\ua9d9\\ua9e0-\\ua9fe\\uaa00-\\uaa36\\uaa40-\\uaa4d\\uaa50-\\uaa59\\uaa60-\\uaa76\\uaa7a-\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaef\\uaaf2-\\uaaf6\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabea\\uabec-\\uabed\\uabf0-\\uabf9\\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\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33-\\ufe34\\ufe4d-\\ufe4f\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff10-\\uff19\\uff21-\\uff3a\\uff3f\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\uddfd\\ude80-\\ude9c\\udea0-\\uded0\\udee0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udca0-\\udca9\\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-\\ude35\\ude38-\\ude3a\\ude3f\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee6\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd27\\udd30-\\udd39\\udf00-\\udf1c\\udf27\\udf30-\\udf50\\udfe0-\\udff6]|\\ud804[\\udc00-\\udc46\\udc66-\\udc6f\\udc7f-\\udcba\\udcd0-\\udce8\\udcf0-\\udcf9\\udd00-\\udd34\\udd36-\\udd3f\\udd44-\\udd46\\udd50-\\udd73\\udd76\\udd80-\\uddc4\\uddc9-\\uddcc\\uddd0-\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude37\\ude3e\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udeea\\udef0-\\udef9\\udf00-\\udf03\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3b-\\udf44\\udf47-\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc00-\\udc4a\\udc50-\\udc59\\udc5e-\\udc5f\\udc80-\\udcc5\\udcc7\\udcd0-\\udcd9\\udd80-\\uddb5\\uddb8-\\uddc0\\uddd8-\\udddd\\ude00-\\ude40\\ude44\\ude50-\\ude59\\ude80-\\udeb8\\udec0-\\udec9\\udf00-\\udf1a\\udf1d-\\udf2b\\udf30-\\udf39]|\\ud806[\\udc00-\\udc3a\\udca0-\\udce9\\udcff\\udda0-\\udda7\\uddaa-\\uddd7\\uddda-\\udde1\\udde3-\\udde4\\ude00-\\ude3e\\ude47\\ude50-\\ude99\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc40\\udc50-\\udc59\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd36\\udd3a\\udd3c-\\udd3d\\udd3f-\\udd47\\udd50-\\udd59\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd8e\\udd90-\\udd91\\udd93-\\udd98\\udda0-\\udda9\\udee0-\\udef6]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\ude60-\\ude69\\uded0-\\udeed\\udef0-\\udef4\\udf00-\\udf36\\udf40-\\udf43\\udf50-\\udf59\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf4f-\\udf87\\udf8f-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99\\udc9d-\\udc9e]|\\ud834[\\udd65-\\udd69\\udd6d-\\udd72\\udd7b-\\udd82\\udd85-\\udd8b\\uddaa-\\uddad\\ude42-\\ude44]|\\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\\udfce-\\udfff]|\\ud836[\\ude00-\\ude36\\ude3b-\\ude6c\\ude75\\ude84\\ude9b-\\ude9f\\udea1-\\udeaf]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23-\\udc24\\udc26-\\udc2a\\udd00-\\udd2c\\udd30-\\udd3d\\udd40-\\udd49\\udd4e\\udec0-\\udef9]|\\ud83a[\\udc00-\\udcc4\\udcd0-\\udcd6\\udd00-\\udd4b\\udd50-\\udd59]|\\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]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\udb40[\\udd00-\\uddef])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\})|[\\u200c\\u200d])*>/, function () {\n yytext = yytext.slice(3, -1);\n validateUnicodeGroupName(yytext, this.getCurrentState());\n return 'NAMED_CAPTURE_GROUP';\n}], [/^\\(/, function () {\n return 'L_PAREN';\n}], [/^\\)/, function () {\n return 'R_PAREN';\n}], [/^[*?+[^$]/, function () {\n return 'CHAR';\n}], [/^\\\\\\]/, function () {\n return 'ESC_CHAR';\n}], [/^\\]/, function () {\n this.popState();return 'R_BRACKET';\n}], [/^\\^/, function () {\n return 'BOS';\n}], [/^\\$/, function () {\n return 'EOS';\n}], [/^\\*/, function () {\n return 'STAR';\n}], [/^\\?/, function () {\n return 'Q_MARK';\n}], [/^\\+/, function () {\n return 'PLUS';\n}], [/^\\|/, function () {\n return 'BAR';\n}], [/^\\./, function () {\n return 'ANY';\n}], [/^\\//, function () {\n return 'SLASH';\n}], [/^[^*?+\\[()\\\\|]/, function () {\n return 'CHAR';\n}], [/^\\[\\^/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'NEG_CLASS';\n}], [/^\\[/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'L_BRACKET';\n}]];\nvar lexRulesByConditions = { \"INITIAL\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"xu\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"x\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u_class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51] };\n\nvar EOF_TOKEN = {\n type: EOF,\n value: ''\n};\n\ntokenizer = {\n initString: function initString(string) {\n this._string = string;\n this._cursor = 0;\n\n this._states = ['INITIAL'];\n this._tokensQueue = [];\n\n this._currentLine = 1;\n this._currentColumn = 0;\n this._currentLineBeginOffset = 0;\n\n /**\n * Matched token location data.\n */\n this._tokenStartOffset = 0;\n this._tokenEndOffset = 0;\n this._tokenStartLine = 1;\n this._tokenEndLine = 1;\n this._tokenStartColumn = 0;\n this._tokenEndColumn = 0;\n\n return this;\n },\n\n\n /**\n * Returns tokenizer states.\n */\n getStates: function getStates() {\n return this._states;\n },\n getCurrentState: function getCurrentState() {\n return this._states[this._states.length - 1];\n },\n pushState: function pushState(state) {\n this._states.push(state);\n },\n begin: function begin(state) {\n this.pushState(state);\n },\n popState: function popState() {\n if (this._states.length > 1) {\n return this._states.pop();\n }\n return this._states[0];\n },\n getNextToken: function getNextToken() {\n // Something was queued, return it.\n if (this._tokensQueue.length > 0) {\n return this.onToken(this._toToken(this._tokensQueue.shift()));\n }\n\n if (!this.hasMoreTokens()) {\n return this.onToken(EOF_TOKEN);\n }\n\n var string = this._string.slice(this._cursor);\n var lexRulesForState = lexRulesByConditions[this.getCurrentState()];\n\n for (var i = 0; i < lexRulesForState.length; i++) {\n var lexRuleIndex = lexRulesForState[i];\n var lexRule = lexRules[lexRuleIndex];\n\n var matched = this._match(string, lexRule[0]);\n\n // Manual handling of EOF token (the end of string). Return it\n // as `EOF` symbol.\n if (string === '' && matched === '') {\n this._cursor++;\n }\n\n if (matched !== null) {\n yytext = matched;\n yyleng = yytext.length;\n var token = lexRule[1].call(this);\n\n if (!token) {\n return this.getNextToken();\n }\n\n // If multiple tokens are returned, save them to return\n // on next `getNextToken` call.\n\n if (Array.isArray(token)) {\n var tokensToQueue = token.slice(1);\n token = token[0];\n if (tokensToQueue.length > 0) {\n var _tokensQueue;\n\n (_tokensQueue = this._tokensQueue).unshift.apply(_tokensQueue, _toConsumableArray(tokensToQueue));\n }\n }\n\n return this.onToken(this._toToken(token, yytext));\n }\n }\n\n if (this.isEOF()) {\n this._cursor++;\n return EOF_TOKEN;\n }\n\n this.throwUnexpectedToken(string[0], this._currentLine, this._currentColumn);\n },\n\n\n /**\n * Throws default \"Unexpected token\" exception, showing the actual\n * line from the source, pointing with the ^ marker to the bad token.\n * In addition, shows `line:column` location.\n */\n throwUnexpectedToken: function throwUnexpectedToken(symbol, line, column) {\n var lineSource = this._string.split('\\n')[line - 1];\n var lineData = '';\n\n if (lineSource) {\n var pad = ' '.repeat(column);\n lineData = '\\n\\n' + lineSource + '\\n' + pad + '^\\n';\n }\n\n throw new SyntaxError(lineData + 'Unexpected token: \"' + symbol + '\" ' + ('at ' + line + ':' + column + '.'));\n },\n getCursor: function getCursor() {\n return this._cursor;\n },\n getCurrentLine: function getCurrentLine() {\n return this._currentLine;\n },\n getCurrentColumn: function getCurrentColumn() {\n return this._currentColumn;\n },\n _captureLocation: function _captureLocation(matched) {\n var nlRe = /\\n/g;\n\n // Absolute offsets.\n this._tokenStartOffset = this._cursor;\n\n // Line-based locations, start.\n this._tokenStartLine = this._currentLine;\n this._tokenStartColumn = this._tokenStartOffset - this._currentLineBeginOffset;\n\n // Extract `\\n` in the matched token.\n var nlMatch = void 0;\n while ((nlMatch = nlRe.exec(matched)) !== null) {\n this._currentLine++;\n this._currentLineBeginOffset = this._tokenStartOffset + nlMatch.index + 1;\n }\n\n this._tokenEndOffset = this._cursor + matched.length;\n\n // Line-based locations, end.\n this._tokenEndLine = this._currentLine;\n this._tokenEndColumn = this._currentColumn = this._tokenEndOffset - this._currentLineBeginOffset;\n },\n _toToken: function _toToken(tokenType) {\n var yytext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n return {\n // Basic data.\n type: tokenType,\n value: yytext,\n\n // Location data.\n startOffset: this._tokenStartOffset,\n endOffset: this._tokenEndOffset,\n startLine: this._tokenStartLine,\n endLine: this._tokenEndLine,\n startColumn: this._tokenStartColumn,\n endColumn: this._tokenEndColumn\n };\n },\n isEOF: function isEOF() {\n return this._cursor === this._string.length;\n },\n hasMoreTokens: function hasMoreTokens() {\n return this._cursor <= this._string.length;\n },\n _match: function _match(string, regexp) {\n var matched = string.match(regexp);\n if (matched) {\n // Handle `\\n` in the matched token to track line numbers.\n this._captureLocation(matched[0]);\n this._cursor += matched[0].length;\n return matched[0];\n }\n return null;\n },\n\n\n /**\n * Allows analyzing, and transforming token. Default implementation\n * just passes the token through.\n */\n onToken: function onToken(token) {\n return token;\n }\n};\n\n/**\n * Expose tokenizer so it can be accessed in semantic actions.\n */\nyy.lexer = tokenizer;\nyy.tokenizer = tokenizer;\n\n/**\n * Global parsing options. Some options can be shadowed per\n * each `parse` call, if the optations are passed.\n *\n * Initalized to the `captureLocations` which is passed\n * from the generator. Other options can be added at runtime.\n */\nyy.options = {\n captureLocations: true\n};\n\n/**\n * Parsing module.\n */\nvar yyparse = {\n /**\n * Sets global parsing options.\n */\n setOptions: function setOptions(options) {\n yy.options = options;\n return this;\n },\n\n\n /**\n * Returns parsing options.\n */\n getOptions: function getOptions() {\n return yy.options;\n },\n\n\n /**\n * Parses a string.\n */\n parse: function parse(string, parseOptions) {\n if (!tokenizer) {\n throw new Error('Tokenizer instance wasn\\'t specified.');\n }\n\n tokenizer.initString(string);\n\n /**\n * If parse options are passed, override global parse options for\n * this call, and later restore global options.\n */\n var globalOptions = yy.options;\n if (parseOptions) {\n yy.options = Object.assign({}, yy.options, parseOptions);\n }\n\n /**\n * Allow callers to do setup work based on the\n * parsing string, and passed options.\n */\n yyparse.onParseBegin(string, tokenizer, yy.options);\n\n stack.length = 0;\n stack.push(0);\n\n var token = tokenizer.getNextToken();\n var shiftedToken = null;\n\n do {\n if (!token) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedEndOfInput();\n }\n\n var state = stack[stack.length - 1];\n var column = tokens[token.type];\n\n if (!table[state].hasOwnProperty(column)) {\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n var entry = table[state][column];\n\n // Shift action.\n if (entry[0] === 's') {\n var _loc2 = null;\n\n if (yy.options.captureLocations) {\n _loc2 = {\n startOffset: token.startOffset,\n endOffset: token.endOffset,\n startLine: token.startLine,\n endLine: token.endLine,\n startColumn: token.startColumn,\n endColumn: token.endColumn\n };\n }\n\n shiftedToken = this.onShift(token);\n\n stack.push({ symbol: tokens[shiftedToken.type], semanticValue: shiftedToken.value, loc: _loc2 }, Number(entry.slice(1)));\n\n token = tokenizer.getNextToken();\n }\n\n // Reduce action.\n else if (entry[0] === 'r') {\n var productionNumber = entry.slice(1);\n var production = productions[productionNumber];\n var hasSemanticAction = typeof production[2] === 'function';\n var semanticValueArgs = hasSemanticAction ? [] : null;\n\n var locationArgs = hasSemanticAction && yy.options.captureLocations ? [] : null;\n\n if (production[1] !== 0) {\n var rhsLength = production[1];\n while (rhsLength-- > 0) {\n stack.pop();\n var stackEntry = stack.pop();\n\n if (hasSemanticAction) {\n semanticValueArgs.unshift(stackEntry.semanticValue);\n\n if (locationArgs) {\n locationArgs.unshift(stackEntry.loc);\n }\n }\n }\n }\n\n var reduceStackEntry = { symbol: production[0] };\n\n if (hasSemanticAction) {\n yytext = shiftedToken ? shiftedToken.value : null;\n yyleng = shiftedToken ? shiftedToken.value.length : null;\n\n var semanticActionArgs = locationArgs !== null ? semanticValueArgs.concat(locationArgs) : semanticValueArgs;\n\n production[2].apply(production, _toConsumableArray(semanticActionArgs));\n\n reduceStackEntry.semanticValue = __;\n\n if (locationArgs) {\n reduceStackEntry.loc = __loc;\n }\n }\n\n var nextState = stack[stack.length - 1];\n var symbolToReduceWith = production[0];\n\n stack.push(reduceStackEntry, table[nextState][symbolToReduceWith]);\n }\n\n // Accept.\n else if (entry === 'acc') {\n stack.pop();\n var parsed = stack.pop();\n\n if (stack.length !== 1 || stack[0] !== 0 || tokenizer.hasMoreTokens()) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n if (parsed.hasOwnProperty('semanticValue')) {\n yy.options = globalOptions;\n yyparse.onParseEnd(parsed.semanticValue);\n return parsed.semanticValue;\n }\n\n yyparse.onParseEnd();\n\n // Restore options.\n yy.options = globalOptions;\n return true;\n }\n } while (tokenizer.hasMoreTokens() || stack.length > 1);\n },\n setTokenizer: function setTokenizer(customTokenizer) {\n tokenizer = customTokenizer;\n return yyparse;\n },\n getTokenizer: function getTokenizer() {\n return tokenizer;\n },\n onParseBegin: function onParseBegin(string, tokenizer, options) {},\n onParseEnd: function onParseEnd(parsed) {},\n\n\n /**\n * Allows analyzing, and transforming shifted token. Default implementation\n * just passes the token through.\n */\n onShift: function onShift(token) {\n return token;\n }\n};\n\n/**\n * Tracks capturing groups.\n */\nvar capturingGroupsCount = 0;\n\n/**\n * Tracks named groups.\n */\nvar namedGroups = {};\n\n/**\n * Parsing string.\n */\nvar parsingString = '';\n\nyyparse.onParseBegin = function (string, lexer) {\n parsingString = string;\n capturingGroupsCount = 0;\n namedGroups = {};\n\n var lastSlash = string.lastIndexOf('/');\n var flags = string.slice(lastSlash);\n\n if (flags.includes('x') && flags.includes('u')) {\n lexer.pushState('xu');\n } else {\n if (flags.includes('x')) {\n lexer.pushState('x');\n }\n if (flags.includes('u')) {\n lexer.pushState('u');\n }\n }\n};\n\n/**\n * On shifting `(` remember its number to used on reduce.\n */\nyyparse.onShift = function (token) {\n if (token.type === 'L_PAREN' || token.type === 'NAMED_CAPTURE_GROUP') {\n token.value = new String(token.value);\n token.value.groupNumber = ++capturingGroupsCount;\n }\n return token;\n};\n\n/**\n * Extracts ranges from the range string.\n */\nfunction getRange(text) {\n var range = text.match(/\\d+/g).map(Number);\n\n if (Number.isFinite(range[1]) && range[1] < range[0]) {\n throw new SyntaxError('Numbers out of order in ' + text + ' quantifier');\n }\n\n return range;\n}\n\n/**\n * Checks class range\n */\nfunction checkClassRange(from, to) {\n if (from.kind === 'control' || to.kind === 'control' || !isNaN(from.codePoint) && !isNaN(to.codePoint) && from.codePoint > to.codePoint) {\n throw new SyntaxError('Range ' + from.value + '-' + to.value + ' out of order in character class');\n }\n}\n\n// ---------------------- Unicode property -------------------------------------------\n\nvar unicodeProperties = require('../unicode/parser-unicode-properties.js');\n\n/**\n * Unicode property.\n */\nfunction UnicodeProperty(matched, loc) {\n var negative = matched[1] === 'P';\n var separatorIdx = matched.indexOf('=');\n\n var name = matched.slice(3, separatorIdx !== -1 ? separatorIdx : -1);\n var value = void 0;\n\n // General_Category allows using only value as a shorthand.\n var isShorthand = separatorIdx === -1 && unicodeProperties.isGeneralCategoryValue(name);\n\n // Binary propery name.\n var isBinaryProperty = separatorIdx === -1 && unicodeProperties.isBinaryPropertyName(name);\n\n if (isShorthand) {\n value = name;\n name = 'General_Category';\n } else if (isBinaryProperty) {\n value = name;\n } else {\n if (!unicodeProperties.isValidName(name)) {\n throw new SyntaxError('Invalid unicode property name: ' + name + '.');\n }\n\n value = matched.slice(separatorIdx + 1, -1);\n\n if (!unicodeProperties.isValidValue(name, value)) {\n throw new SyntaxError('Invalid ' + name + ' unicode property value: ' + value + '.');\n }\n }\n\n return Node({\n type: 'UnicodeProperty',\n name: name,\n value: value,\n negative: negative,\n shorthand: isShorthand,\n binary: isBinaryProperty,\n canonicalName: unicodeProperties.getCanonicalName(name) || name,\n canonicalValue: unicodeProperties.getCanonicalValue(value) || value\n }, loc);\n}\n\n// ----------------------------------------------------------------------------------\n\n\n/**\n * Creates a character node.\n */\nfunction Char(value, kind, loc) {\n var symbol = void 0;\n var codePoint = void 0;\n\n switch (kind) {\n case 'decimal':\n {\n codePoint = Number(value.slice(1));\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'oct':\n {\n codePoint = parseInt(value.slice(1), 8);\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'hex':\n case 'unicode':\n {\n if (value.lastIndexOf('\\\\u') > 0) {\n var _value$split$slice = value.split('\\\\u').slice(1),\n _value$split$slice2 = _slicedToArray(_value$split$slice, 2),\n lead = _value$split$slice2[0],\n trail = _value$split$slice2[1];\n\n lead = parseInt(lead, 16);\n trail = parseInt(trail, 16);\n codePoint = (lead - 0xd800) * 0x400 + (trail - 0xdc00) + 0x10000;\n\n symbol = String.fromCodePoint(codePoint);\n } else {\n var hex = value.slice(2).replace('{', '');\n codePoint = parseInt(hex, 16);\n if (codePoint > 0x10ffff) {\n throw new SyntaxError('Bad character escape sequence: ' + value);\n }\n\n symbol = String.fromCodePoint(codePoint);\n }\n break;\n }\n case 'meta':\n {\n switch (value) {\n case '\\\\t':\n symbol = '\\t';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\n':\n symbol = '\\n';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\r':\n symbol = '\\r';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\v':\n symbol = '\\v';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\f':\n symbol = '\\f';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\b':\n symbol = '\\b';\n codePoint = symbol.codePointAt(0);\n case '\\\\0':\n symbol = '\\0';\n codePoint = 0;\n case '.':\n symbol = '.';\n codePoint = NaN;\n break;\n default:\n codePoint = NaN;\n }\n break;\n }\n case 'simple':\n {\n symbol = value;\n codePoint = symbol.codePointAt(0);\n break;\n }\n }\n\n return Node({\n type: 'Char',\n value: value,\n kind: kind,\n symbol: symbol,\n codePoint: codePoint\n }, loc);\n}\n\n/**\n * Valid flags per current ECMAScript spec and\n * stage 3+ proposals.\n */\nvar validFlags = 'gimsuxy';\n\n/**\n * Checks the flags are valid, and that\n * we don't duplicate flags.\n */\nfunction checkFlags(flags) {\n var seen = new Set();\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = flags[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var flag = _step.value;\n\n if (seen.has(flag) || !validFlags.includes(flag)) {\n throw new SyntaxError('Invalid flags: ' + flags);\n }\n seen.add(flag);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return flags.split('').sort().join('');\n}\n\n/**\n * Parses patterns like \\1, \\2, etc. either as a backreference\n * to a group, or a deciaml char code.\n */\nfunction GroupRefOrDecChar(text, textLoc) {\n var reference = Number(text.slice(1));\n\n if (reference > 0 && reference <= capturingGroupsCount) {\n return Node({\n type: 'Backreference',\n kind: 'number',\n number: reference,\n reference: reference\n }, textLoc);\n }\n\n return Char(text, 'decimal', textLoc);\n}\n\n/**\n * Unicode names.\n */\nvar uReStart = /^\\\\u[0-9a-fA-F]{4}/; // only matches start of string\nvar ucpReStart = /^\\\\u\\{[0-9a-fA-F]{1,}\\}/; // only matches start of string\nvar ucpReAnywhere = /\\\\u\\{[0-9a-fA-F]{1,}\\}/; // matches anywhere in string\n\n/**\n * Validates Unicode group name.\n */\nfunction validateUnicodeGroupName(name, state) {\n var isUnicodeName = ucpReAnywhere.test(name);\n var isUnicodeState = state === 'u' || state === 'xu' || state === 'u_class';\n\n if (isUnicodeName && !isUnicodeState) {\n throw new SyntaxError('invalid group Unicode name \"' + name + '\", use `u` flag.');\n }\n\n return name;\n}\n\n// Matches the following production: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n//\n// RegExpUnicodeEscapeSequence ::\n// `u` LeadSurrogate `\\u` TrailSurrogate # as 'leadSurrogate', 'trailSurrogate'\n// `u` LeadSurrogate # as 'leadSurrogateOnly'\n// `u` TrailSurrogate # as 'trailSurrogateOnly'\n// `u` NonSurrogate # as 'nonSurrogate'\n// `u` `{` CodePoint `}` # as 'codePoint'\n//\n// LeadSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xD800 to 0xDBFF # [dD][89aAbB][0-9a-fA-F]{2}\n//\n// TrailSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xDC00 to 0xDFFF # [dD][c-fC-F][0-9a-fA-F]{2}\n//\n// NonSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is not in the inclusive range 0xD800 to 0xDFFF # [0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2}\n//\n// CodePoint ::\n// HexDigits but only if MV of HexDigits ≤ 0x10FFFF # 0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4})\n//\nvar uidRe = /\\\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\\})/;\n\nfunction decodeUnicodeGroupName(name) {\n return name.replace(new RegExp(uidRe, 'g'), function (_, leadSurrogate, trailSurrogate, leadSurrogateOnly, trailSurrogateOnly, nonSurrogate, codePoint) {\n if (leadSurrogate) {\n return String.fromCodePoint(parseInt(leadSurrogate, 16), parseInt(trailSurrogate, 16));\n }\n if (leadSurrogateOnly) {\n return String.fromCodePoint(parseInt(leadSurrogateOnly, 16));\n }\n if (trailSurrogateOnly) {\n // TODO: Per the spec: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n // > Each `\\u` TrailSurrogate for which the choice of associated `u` LeadSurrogate is ambiguous shall be associated with the nearest possible `u` LeadSurrogate that would otherwise have no corresponding `\\u` TrailSurrogate.\n return String.fromCodePoint(parseInt(trailSurrogateOnly, 16));\n }\n if (nonSurrogate) {\n return String.fromCodePoint(parseInt(nonSurrogate, 16));\n }\n if (codePoint) {\n return String.fromCodePoint(parseInt(codePoint, 16));\n }\n return _;\n });\n}\n\n/**\n * Extracts from `\\k<foo>` pattern either a backreference\n * to a named capturing group (if it presents), or parses it\n * as a list of char: `\\k`, `<`, `f`, etc.\n */\nfunction NamedGroupRefOrChars(text, textLoc) {\n var referenceRaw = text.slice(3, -1);\n var reference = decodeUnicodeGroupName(referenceRaw);\n\n if (namedGroups.hasOwnProperty(reference)) {\n return Node({\n type: 'Backreference',\n kind: 'name',\n number: namedGroups[reference],\n reference: reference,\n referenceRaw: referenceRaw\n }, textLoc);\n }\n\n // Else `\\k<foo>` should be parsed as a list of `Char`s.\n // This is really a 0.01% edge case, but we should handle it.\n\n var startOffset = null;\n var startLine = null;\n var endLine = null;\n var startColumn = null;\n\n if (textLoc) {\n startOffset = textLoc.startOffset;\n startLine = textLoc.startLine;\n endLine = textLoc.endLine;\n startColumn = textLoc.startColumn;\n }\n\n var charRe = /^[\\w$<>]/;\n var loc = void 0;\n\n var chars = [\n // Init to first \\k, taking 2 symbols.\n Char(text.slice(1, 2), 'simple', startOffset ? {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += 2,\n endColumn: startColumn += 2\n } : null)];\n\n // For \\k\n chars[0].escaped = true;\n\n // Other symbols.\n text = text.slice(2);\n\n while (text.length > 0) {\n var matched = null;\n\n // Unicode, \\u003B or \\u{003B}\n if ((matched = text.match(uReStart)) || (matched = text.match(ucpReStart))) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += matched[0].length,\n endColumn: startColumn += matched[0].length\n };\n }\n chars.push(Char(matched[0], 'unicode', loc));\n text = text.slice(matched[0].length);\n }\n\n // Simple char.\n else if (matched = text.match(charRe)) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: ++startOffset,\n endColumn: ++startColumn\n };\n }\n chars.push(Char(matched[0], 'simple', loc));\n text = text.slice(1);\n }\n }\n\n return chars;\n}\n\n/**\n * Creates an AST node with a location.\n */\nfunction Node(node, loc) {\n if (yy.options.captureLocations) {\n node.loc = {\n source: parsingString.slice(loc.startOffset, loc.endOffset),\n start: {\n line: loc.startLine,\n column: loc.startColumn,\n offset: loc.startOffset\n },\n end: {\n line: loc.endLine,\n column: loc.endColumn,\n offset: loc.endOffset\n }\n };\n }\n return node;\n}\n\n/**\n * Creates location node.\n */\nfunction loc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nfunction unexpectedToken(token) {\n if (token.type === EOF) {\n unexpectedEndOfInput();\n }\n\n tokenizer.throwUnexpectedToken(token.value, token.startLine, token.startColumn);\n}\n\nfunction unexpectedEndOfInput() {\n parseError('Unexpected end of input.');\n}\n\nfunction parseError(message) {\n throw new SyntaxError(message);\n}\n\nmodule.exports = yyparse;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar regexpTreeParser = require('./generated/regexp-tree');\n\n/**\n * Original parse function.\n */\nvar generatedParseFn = regexpTreeParser.parse.bind(regexpTreeParser);\n\n/**\n * Parses a regular expression.\n *\n * Override original `regexpTreeParser.parse` to convert a value to a string,\n * since in regexp-tree we may pass strings, and RegExp instance.\n */\nregexpTreeParser.parse = function (regexp, options) {\n return generatedParseFn('' + regexp, options);\n};\n\n// By default do not capture locations; callers may override.\nregexpTreeParser.setOptions({ captureLocations: false });\n\nmodule.exports = regexpTreeParser;","'use strict';\n\n/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\nvar NON_BINARY_PROP_NAMES_TO_ALIASES = {\n General_Category: 'gc',\n Script: 'sc',\n Script_Extensions: 'scx'\n};\n\nvar NON_BINARY_ALIASES_TO_PROP_NAMES = inverseMap(NON_BINARY_PROP_NAMES_TO_ALIASES);\n\nvar BINARY_PROP_NAMES_TO_ALIASES = {\n ASCII: 'ASCII',\n ASCII_Hex_Digit: 'AHex',\n Alphabetic: 'Alpha',\n Any: 'Any',\n Assigned: 'Assigned',\n Bidi_Control: 'Bidi_C',\n Bidi_Mirrored: 'Bidi_M',\n Case_Ignorable: 'CI',\n Cased: 'Cased',\n Changes_When_Casefolded: 'CWCF',\n Changes_When_Casemapped: 'CWCM',\n Changes_When_Lowercased: 'CWL',\n Changes_When_NFKC_Casefolded: 'CWKCF',\n Changes_When_Titlecased: 'CWT',\n Changes_When_Uppercased: 'CWU',\n Dash: 'Dash',\n Default_Ignorable_Code_Point: 'DI',\n Deprecated: 'Dep',\n Diacritic: 'Dia',\n Emoji: 'Emoji',\n Emoji_Component: 'Emoji_Component',\n Emoji_Modifier: 'Emoji_Modifier',\n Emoji_Modifier_Base: 'Emoji_Modifier_Base',\n Emoji_Presentation: 'Emoji_Presentation',\n Extended_Pictographic: 'Extended_Pictographic',\n Extender: 'Ext',\n Grapheme_Base: 'Gr_Base',\n Grapheme_Extend: 'Gr_Ext',\n Hex_Digit: 'Hex',\n IDS_Binary_Operator: 'IDSB',\n IDS_Trinary_Operator: 'IDST',\n ID_Continue: 'IDC',\n ID_Start: 'IDS',\n Ideographic: 'Ideo',\n Join_Control: 'Join_C',\n Logical_Order_Exception: 'LOE',\n Lowercase: 'Lower',\n Math: 'Math',\n Noncharacter_Code_Point: 'NChar',\n Pattern_Syntax: 'Pat_Syn',\n Pattern_White_Space: 'Pat_WS',\n Quotation_Mark: 'QMark',\n Radical: 'Radical',\n Regional_Indicator: 'RI',\n Sentence_Terminal: 'STerm',\n Soft_Dotted: 'SD',\n Terminal_Punctuation: 'Term',\n Unified_Ideograph: 'UIdeo',\n Uppercase: 'Upper',\n Variation_Selector: 'VS',\n White_Space: 'space',\n XID_Continue: 'XIDC',\n XID_Start: 'XIDS'\n};\n\nvar BINARY_ALIASES_TO_PROP_NAMES = inverseMap(BINARY_PROP_NAMES_TO_ALIASES);\n\nvar GENERAL_CATEGORY_VALUE_TO_ALIASES = {\n Cased_Letter: 'LC',\n Close_Punctuation: 'Pe',\n Connector_Punctuation: 'Pc',\n Control: ['Cc', 'cntrl'],\n Currency_Symbol: 'Sc',\n Dash_Punctuation: 'Pd',\n Decimal_Number: ['Nd', 'digit'],\n Enclosing_Mark: 'Me',\n Final_Punctuation: 'Pf',\n Format: 'Cf',\n Initial_Punctuation: 'Pi',\n Letter: 'L',\n Letter_Number: 'Nl',\n Line_Separator: 'Zl',\n Lowercase_Letter: 'Ll',\n Mark: ['M', 'Combining_Mark'],\n Math_Symbol: 'Sm',\n Modifier_Letter: 'Lm',\n Modifier_Symbol: 'Sk',\n Nonspacing_Mark: 'Mn',\n Number: 'N',\n Open_Punctuation: 'Ps',\n Other: 'C',\n Other_Letter: 'Lo',\n Other_Number: 'No',\n Other_Punctuation: 'Po',\n Other_Symbol: 'So',\n Paragraph_Separator: 'Zp',\n Private_Use: 'Co',\n Punctuation: ['P', 'punct'],\n Separator: 'Z',\n Space_Separator: 'Zs',\n Spacing_Mark: 'Mc',\n Surrogate: 'Cs',\n Symbol: 'S',\n Titlecase_Letter: 'Lt',\n Unassigned: 'Cn',\n Uppercase_Letter: 'Lu'\n};\n\nvar GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES = inverseMap(GENERAL_CATEGORY_VALUE_TO_ALIASES);\n\nvar SCRIPT_VALUE_TO_ALIASES = {\n Adlam: 'Adlm',\n Ahom: 'Ahom',\n Anatolian_Hieroglyphs: 'Hluw',\n Arabic: 'Arab',\n Armenian: 'Armn',\n Avestan: 'Avst',\n Balinese: 'Bali',\n Bamum: 'Bamu',\n Bassa_Vah: 'Bass',\n Batak: 'Batk',\n Bengali: 'Beng',\n Bhaiksuki: 'Bhks',\n Bopomofo: 'Bopo',\n Brahmi: 'Brah',\n Braille: 'Brai',\n Buginese: 'Bugi',\n Buhid: 'Buhd',\n Canadian_Aboriginal: 'Cans',\n Carian: 'Cari',\n Caucasian_Albanian: 'Aghb',\n Chakma: 'Cakm',\n Cham: 'Cham',\n Cherokee: 'Cher',\n Common: 'Zyyy',\n Coptic: ['Copt', 'Qaac'],\n Cuneiform: 'Xsux',\n Cypriot: 'Cprt',\n Cyrillic: 'Cyrl',\n Deseret: 'Dsrt',\n Devanagari: 'Deva',\n Dogra: 'Dogr',\n Duployan: 'Dupl',\n Egyptian_Hieroglyphs: 'Egyp',\n Elbasan: 'Elba',\n Ethiopic: 'Ethi',\n Georgian: 'Geor',\n Glagolitic: 'Glag',\n Gothic: 'Goth',\n Grantha: 'Gran',\n Greek: 'Grek',\n Gujarati: 'Gujr',\n Gunjala_Gondi: 'Gong',\n Gurmukhi: 'Guru',\n Han: 'Hani',\n Hangul: 'Hang',\n Hanifi_Rohingya: 'Rohg',\n Hanunoo: 'Hano',\n Hatran: 'Hatr',\n Hebrew: 'Hebr',\n Hiragana: 'Hira',\n Imperial_Aramaic: 'Armi',\n Inherited: ['Zinh', 'Qaai'],\n Inscriptional_Pahlavi: 'Phli',\n Inscriptional_Parthian: 'Prti',\n Javanese: 'Java',\n Kaithi: 'Kthi',\n Kannada: 'Knda',\n Katakana: 'Kana',\n Kayah_Li: 'Kali',\n Kharoshthi: 'Khar',\n Khmer: 'Khmr',\n Khojki: 'Khoj',\n Khudawadi: 'Sind',\n Lao: 'Laoo',\n Latin: 'Latn',\n Lepcha: 'Lepc',\n Limbu: 'Limb',\n Linear_A: 'Lina',\n Linear_B: 'Linb',\n Lisu: 'Lisu',\n Lycian: 'Lyci',\n Lydian: 'Lydi',\n Mahajani: 'Mahj',\n Makasar: 'Maka',\n Malayalam: 'Mlym',\n Mandaic: 'Mand',\n Manichaean: 'Mani',\n Marchen: 'Marc',\n Medefaidrin: 'Medf',\n Masaram_Gondi: 'Gonm',\n Meetei_Mayek: 'Mtei',\n Mende_Kikakui: 'Mend',\n Meroitic_Cursive: 'Merc',\n Meroitic_Hieroglyphs: 'Mero',\n Miao: 'Plrd',\n Modi: 'Modi',\n Mongolian: 'Mong',\n Mro: 'Mroo',\n Multani: 'Mult',\n Myanmar: 'Mymr',\n Nabataean: 'Nbat',\n New_Tai_Lue: 'Talu',\n Newa: 'Newa',\n Nko: 'Nkoo',\n Nushu: 'Nshu',\n Ogham: 'Ogam',\n Ol_Chiki: 'Olck',\n Old_Hungarian: 'Hung',\n Old_Italic: 'Ital',\n Old_North_Arabian: 'Narb',\n Old_Permic: 'Perm',\n Old_Persian: 'Xpeo',\n Old_Sogdian: 'Sogo',\n Old_South_Arabian: 'Sarb',\n Old_Turkic: 'Orkh',\n Oriya: 'Orya',\n Osage: 'Osge',\n Osmanya: 'Osma',\n Pahawh_Hmong: 'Hmng',\n Palmyrene: 'Palm',\n Pau_Cin_Hau: 'Pauc',\n Phags_Pa: 'Phag',\n Phoenician: 'Phnx',\n Psalter_Pahlavi: 'Phlp',\n Rejang: 'Rjng',\n Runic: 'Runr',\n Samaritan: 'Samr',\n Saurashtra: 'Saur',\n Sharada: 'Shrd',\n Shavian: 'Shaw',\n Siddham: 'Sidd',\n SignWriting: 'Sgnw',\n Sinhala: 'Sinh',\n Sogdian: 'Sogd',\n Sora_Sompeng: 'Sora',\n Soyombo: 'Soyo',\n Sundanese: 'Sund',\n Syloti_Nagri: 'Sylo',\n Syriac: 'Syrc',\n Tagalog: 'Tglg',\n Tagbanwa: 'Tagb',\n Tai_Le: 'Tale',\n Tai_Tham: 'Lana',\n Tai_Viet: 'Tavt',\n Takri: 'Takr',\n Tamil: 'Taml',\n Tangut: 'Tang',\n Telugu: 'Telu',\n Thaana: 'Thaa',\n Thai: 'Thai',\n Tibetan: 'Tibt',\n Tifinagh: 'Tfng',\n Tirhuta: 'Tirh',\n Ugaritic: 'Ugar',\n Vai: 'Vaii',\n Warang_Citi: 'Wara',\n Yi: 'Yiii',\n Zanabazar_Square: 'Zanb'\n};\n\nvar SCRIPT_VALUE_ALIASES_TO_VALUE = inverseMap(SCRIPT_VALUE_TO_ALIASES);\n\nfunction inverseMap(data) {\n var inverse = {};\n\n for (var name in data) {\n if (!data.hasOwnProperty(name)) {\n continue;\n }\n var value = data[name];\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n inverse[value[i]] = name;\n }\n } else {\n inverse[value] = name;\n }\n }\n\n return inverse;\n}\n\nfunction isValidName(name) {\n return NON_BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isValidValue(name, value) {\n if (isGeneralCategoryName(name)) {\n return isGeneralCategoryValue(value);\n }\n\n if (isScriptCategoryName(name)) {\n return isScriptCategoryValue(value);\n }\n\n return false;\n}\n\nfunction isAlias(name) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isGeneralCategoryName(name) {\n return name === 'General_Category' || name == 'gc';\n}\n\nfunction isScriptCategoryName(name) {\n return name === 'Script' || name === 'Script_Extensions' || name === 'sc' || name === 'scx';\n}\n\nfunction isGeneralCategoryValue(value) {\n return GENERAL_CATEGORY_VALUE_TO_ALIASES.hasOwnProperty(value) || GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value);\n}\n\nfunction isScriptCategoryValue(value) {\n return SCRIPT_VALUE_TO_ALIASES.hasOwnProperty(value) || SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value);\n}\n\nfunction isBinaryPropertyName(name) {\n return BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction getCanonicalName(name) {\n if (NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n return null;\n}\n\nfunction getCanonicalValue(value) {\n if (GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value)) {\n return GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES[value];\n }\n\n if (SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value)) {\n return SCRIPT_VALUE_ALIASES_TO_VALUE[value];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(value)) {\n return BINARY_ALIASES_TO_PROP_NAMES[value];\n }\n\n return null;\n}\n\nmodule.exports = {\n isAlias: isAlias,\n isValidName: isValidName,\n isValidValue: isValidValue,\n isGeneralCategoryValue: isGeneralCategoryValue,\n isScriptCategoryValue: isScriptCategoryValue,\n isBinaryPropertyName: isBinaryPropertyName,\n getCanonicalName: getCanonicalName,\n getCanonicalValue: getCanonicalValue,\n\n NON_BINARY_PROP_NAMES_TO_ALIASES: NON_BINARY_PROP_NAMES_TO_ALIASES,\n NON_BINARY_ALIASES_TO_PROP_NAMES: NON_BINARY_ALIASES_TO_PROP_NAMES,\n\n BINARY_PROP_NAMES_TO_ALIASES: BINARY_PROP_NAMES_TO_ALIASES,\n BINARY_ALIASES_TO_PROP_NAMES: BINARY_ALIASES_TO_PROP_NAMES,\n\n GENERAL_CATEGORY_VALUE_TO_ALIASES: GENERAL_CATEGORY_VALUE_TO_ALIASES,\n GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES: GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES,\n\n SCRIPT_VALUE_TO_ALIASES: SCRIPT_VALUE_TO_ALIASES,\n SCRIPT_VALUE_ALIASES_TO_VALUE: SCRIPT_VALUE_ALIASES_TO_VALUE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar compatTranspiler = require('./compat-transpiler');\nvar generator = require('./generator');\nvar optimizer = require('./optimizer');\nvar parser = require('./parser');\nvar _transform = require('./transform');\nvar _traverse = require('./traverse');\nvar fa = require('./interpreter/finite-automaton');\n\nvar _require = require('./compat-transpiler/runtime'),\n RegExpTree = _require.RegExpTree;\n\n/**\n * An API object for RegExp processing (parsing/transform/generation).\n */\n\n\nvar regexpTree = {\n /**\n * Parser module exposed.\n */\n parser: parser,\n\n /**\n * Expose finite-automaton module.\n */\n fa: fa,\n\n /**\n * `TransformResult` exposed.\n */\n TransformResult: _transform.TransformResult,\n\n /**\n * Parses a regexp string, producing an AST.\n *\n * @param string regexp\n *\n * a regular expression in different formats: string, AST, RegExp.\n *\n * @param Object options\n *\n * parsing options for this parse call. Default are:\n *\n * - captureLocations: boolean\n * - any other custom options\n *\n * @return Object AST\n */\n parse: function parse(regexp, options) {\n return parser.parse('' + regexp, options);\n },\n\n\n /**\n * Traverses a RegExp AST.\n *\n * @param Object ast\n * @param Object | Array<Object> handlers\n *\n * Each `handler` is an object containing handler function for needed\n * node types. Example:\n *\n * regexpTree.traverse(ast, {\n * onChar(node) {\n * ...\n * },\n * });\n *\n * The value for a node type may also be an object with functions pre and post.\n * This enables more context-aware analyses, e.g. measuring star height.\n */\n traverse: function traverse(ast, handlers, options) {\n return _traverse.traverse(ast, handlers, options);\n },\n\n\n /**\n * Transforms a regular expression.\n *\n * A regexp can be passed in different formats (string, regexp or AST),\n * applying a set of transformations. It is a convenient wrapper\n * on top of \"parse-traverse-generate\" tool chain.\n *\n * @param string | AST | RegExp regexp - a regular expression;\n * @param Object | Array<Object> handlers - a list of handlers.\n *\n * @return TransformResult - a transformation result.\n */\n transform: function transform(regexp, handlers) {\n return _transform.transform(regexp, handlers);\n },\n\n\n /**\n * Generates a RegExp string from an AST.\n *\n * @param Object ast\n *\n * Invariant:\n *\n * regexpTree.generate(regexpTree.parse('/[a-z]+/i')); // '/[a-z]+/i'\n */\n generate: function generate(ast) {\n return generator.generate(ast);\n },\n\n\n /**\n * Creates a RegExp object from a regexp string.\n *\n * @param string regexp\n */\n toRegExp: function toRegExp(regexp) {\n var compat = this.compatTranspile(regexp);\n return new RegExp(compat.getSource(), compat.getFlags());\n },\n\n\n /**\n * Optimizes a regular expression by replacing some\n * sub-expressions with their idiomatic patterns.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n optimize: function optimize(regexp, whitelist) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n blacklist = _ref.blacklist;\n\n return optimizer.optimize(regexp, { whitelist: whitelist, blacklist: blacklist });\n },\n\n\n /**\n * Translates a regular expression in new syntax or in new format\n * into equivalent expressions in old syntax.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n compatTranspile: function compatTranspile(regexp, whitelist) {\n return compatTranspiler.transform(regexp, whitelist);\n },\n\n\n /**\n * Executes a regular expression on a string.\n *\n * @param RegExp|string re - a regular expression.\n * @param string string - a testing string.\n */\n exec: function exec(re, string) {\n if (typeof re === 'string') {\n var compat = this.compatTranspile(re);\n var extra = compat.getExtra();\n\n if (extra.namedCapturingGroups) {\n re = new RegExpTree(compat.toRegExp(), {\n flags: compat.getFlags(),\n source: compat.getSource(),\n groups: extra.namedCapturingGroups\n });\n } else {\n re = compat.toRegExp();\n }\n }\n\n return re.exec(string);\n }\n};\n\nmodule.exports = regexpTree;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar generator = require('../generator');\nvar parser = require('../parser');\nvar traverse = require('../traverse');\n\n/**\n * Transform result.\n */\n\nvar TransformResult = function () {\n /**\n * Initializes a transform result for an AST.\n *\n * @param Object ast - an AST node\n * @param mixed extra - any extra data a transform may return\n */\n function TransformResult(ast) {\n var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n _classCallCheck(this, TransformResult);\n\n this._ast = ast;\n this._source = null;\n this._string = null;\n this._regexp = null;\n this._extra = extra;\n }\n\n _createClass(TransformResult, [{\n key: 'getAST',\n value: function getAST() {\n return this._ast;\n }\n }, {\n key: 'setExtra',\n value: function setExtra(extra) {\n this._extra = extra;\n }\n }, {\n key: 'getExtra',\n value: function getExtra() {\n return this._extra;\n }\n }, {\n key: 'toRegExp',\n value: function toRegExp() {\n if (!this._regexp) {\n this._regexp = new RegExp(this.getSource(), this._ast.flags);\n }\n return this._regexp;\n }\n }, {\n key: 'getSource',\n value: function getSource() {\n if (!this._source) {\n this._source = generator.generate(this._ast.body);\n }\n return this._source;\n }\n }, {\n key: 'getFlags',\n value: function getFlags() {\n return this._ast.flags;\n }\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._string) {\n this._string = generator.generate(this._ast);\n }\n return this._string;\n }\n }]);\n\n return TransformResult;\n}();\n\nmodule.exports = {\n /**\n * Expose `TransformResult`.\n */\n TransformResult: TransformResult,\n\n /**\n * Transforms a regular expression applying a set of\n * transformation handlers.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n *\n * @param Object | Array<Object>:\n *\n * a handler (or a list of handlers) from `traverse` API.\n *\n * @return TransformResult instance.\n *\n * Example:\n *\n * transform(/[a-z]/i, {\n * onChar(path) {\n * const {node} = path;\n *\n * if (...) {\n * path.remove();\n * }\n * }\n * });\n */\n transform: function transform(regexp, handlers) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n traverse.traverse(ast, handlers);\n\n return new TransformResult(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Flattens a nested disjunction node to a list.\n *\n * /a|b|c|d/\n *\n * {{{a, b}, c}, d} -> [a, b, c, d]\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction disjunctionToList(node) {\n if (node.type !== 'Disjunction') {\n throw new TypeError('Expected \"Disjunction\" node, got \"' + node.type + '\"');\n }\n\n var list = [];\n\n if (node.left && node.left.type === 'Disjunction') {\n list.push.apply(list, _toConsumableArray(disjunctionToList(node.left)).concat([node.right]));\n } else {\n list.push(node.left, node.right);\n }\n\n return list;\n}\n\n/**\n * Builds a nested disjunction node from a list.\n *\n * /a|b|c|d/\n *\n * [a, b, c, d] -> {{{a, b}, c}, d}\n */\nfunction listToDisjunction(list) {\n return list.reduce(function (left, right) {\n return {\n type: 'Disjunction',\n left: left,\n right: right\n };\n });\n}\n\n/**\n * Increases a quantifier by one.\n * Does not change greediness.\n * * -> +\n * + -> {2,}\n * ? -> {1,2}\n * {2} -> {3}\n * {2,} -> {3,}\n * {2,3} -> {3,4}\n */\nfunction increaseQuantifierByOne(quantifier) {\n if (quantifier.kind === '*') {\n\n quantifier.kind = '+';\n } else if (quantifier.kind === '+') {\n\n quantifier.kind = 'Range';\n quantifier.from = 2;\n delete quantifier.to;\n } else if (quantifier.kind === '?') {\n\n quantifier.kind = 'Range';\n quantifier.from = 1;\n quantifier.to = 2;\n } else if (quantifier.kind === 'Range') {\n\n quantifier.from += 1;\n if (quantifier.to) {\n quantifier.to += 1;\n }\n }\n}\n\nmodule.exports = {\n disjunctionToList: disjunctionToList,\n listToDisjunction: listToDisjunction,\n increaseQuantifierByOne: increaseQuantifierByOne\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NodePath = require('./node-path');\n\n/**\n * Does an actual AST traversal, using visitor pattern,\n * and calling set of callbacks.\n *\n * Based on https://github.com/olov/ast-traverse\n *\n * Expects AST in Mozilla Parser API: nodes which are supposed to be\n * handled should have `type` property.\n *\n * @param Object root - a root node to start traversal from.\n *\n * @param Object options - an object with set of callbacks:\n *\n * - `pre(node, parent, prop, index)` - a hook called on node enter\n * - `post`(node, parent, prop, index) - a hook called on node exit\n * - `skipProperty(prop)` - a predicated whether a property should be skipped\n */\nfunction astTraverse(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var pre = options.pre;\n var post = options.post;\n var skipProperty = options.skipProperty;\n\n function visit(node, parent, prop, idx) {\n if (!node || typeof node.type !== 'string') {\n return;\n }\n\n var res = undefined;\n if (pre) {\n res = pre(node, parent, prop, idx);\n }\n\n if (res !== false) {\n\n // A node can be replaced during traversal, so we have to\n // recalculate it from the parent, to avoid traversing \"dead\" nodes.\n if (parent && parent[prop]) {\n if (!isNaN(idx)) {\n node = parent[prop][idx];\n } else {\n node = parent[prop];\n }\n }\n\n for (var _prop in node) {\n if (node.hasOwnProperty(_prop)) {\n if (skipProperty ? skipProperty(_prop, node) : _prop[0] === '$') {\n continue;\n }\n\n var child = node[_prop];\n\n // Collection node.\n //\n // NOTE: a node (or several nodes) can be removed or inserted\n // during traversal.\n //\n // Current traversing index is stored on top of the\n // `NodePath.traversingIndexStack`. The stack is used to support\n // recursive nature of the traversal.\n //\n // In this case `NodePath.traversingIndex` (which we use here) is\n // updated in the NodePath remove/insert methods.\n //\n if (Array.isArray(child)) {\n var index = 0;\n NodePath.traversingIndexStack.push(index);\n while (index < child.length) {\n visit(child[index], node, _prop, index);\n index = NodePath.updateTraversingIndex(+1);\n }\n NodePath.traversingIndexStack.pop();\n }\n\n // Simple node.\n else {\n visit(child, node, _prop);\n }\n }\n }\n }\n\n if (post) {\n post(node, parent, prop, idx);\n }\n }\n\n visit(root, null);\n}\n\nmodule.exports = {\n /**\n * Traverses an AST.\n *\n * @param Object ast - an AST node\n *\n * @param Object | Array<Object> handlers:\n *\n * an object (or an array of objects)\n *\n * Each such object contains a handler function per node.\n * In case of an array of handlers, they are applied in order.\n * A handler may return a transformed node (or a different type).\n *\n * The per-node function may instead be an object with functions pre and post.\n * pre is called before visiting the node, post after.\n * If a handler is a function, it is treated as the pre function, with an empty post.\n *\n * @param Object options:\n *\n * a config object, specifying traversal options:\n *\n * `asNodes`: boolean - whether handlers should receives raw AST nodes\n * (false by default), instead of a `NodePath` wrapper. Note, by default\n * `NodePath` wrapper provides a set of convenient method to manipulate\n * a traversing AST, and also has access to all parents list. A raw\n * nodes traversal should be used in rare cases, when no `NodePath`\n * features are needed.\n *\n * Special hooks:\n *\n * - `shouldRun(ast)` - a predicate determining whether the handler\n * should be applied.\n *\n * NOTE: Multiple handlers are used as an optimization of applying all of\n * them in one AST traversal pass.\n */\n traverse: function traverse(ast, handlers) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { asNodes: false };\n\n\n if (!Array.isArray(handlers)) {\n handlers = [handlers];\n }\n\n // Filter out handlers by result of `shouldRun`, if the method is present.\n handlers = handlers.filter(function (handler) {\n if (typeof handler.shouldRun !== 'function') {\n return true;\n }\n return handler.shouldRun(ast);\n });\n\n NodePath.initRegistry();\n\n // Allow handlers to initializer themselves.\n handlers.forEach(function (handler) {\n if (typeof handler.init === 'function') {\n handler.init(ast);\n }\n });\n\n function getPathFor(node, parent, prop, index) {\n var parentPath = NodePath.getForNode(parent);\n var nodePath = NodePath.getForNode(node, parentPath, prop, index);\n\n return nodePath;\n }\n\n // Handle actual nodes.\n astTraverse(ast, {\n /**\n * Handler on node enter.\n */\n pre: function pre(node, parent, prop, index) {\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = handlers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var handler = _step.value;\n\n // \"Catch-all\" `*` handler.\n if (typeof handler['*'] === 'function') {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handler['*'](nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handler['*'](node, parent, prop, index);\n }\n }\n\n // Per-node handler.\n var handlerFuncPre = void 0;\n if (typeof handler[node.type] === 'function') {\n handlerFuncPre = handler[node.type];\n } else if (typeof handler[node.type] === 'object' && typeof handler[node.type].pre === 'function') {\n handlerFuncPre = handler[node.type].pre;\n }\n\n if (handlerFuncPre) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var _handlerResult = handlerFuncPre.call(handler, nodePath);\n // Explicitly stop traversal.\n if (_handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPre.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n },\n // pre func\n\n /**\n * Handler on node exit.\n */\n post: function post(node, parent, prop, index) {\n if (!node) {\n return;\n }\n\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = handlers[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var handler = _step2.value;\n\n // Per-node handler.\n var handlerFuncPost = void 0;\n if (typeof handler[node.type] === 'object' && typeof handler[node.type].post === 'function') {\n handlerFuncPost = handler[node.type].post;\n }\n\n if (handlerFuncPost) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handlerFuncPost.call(handler, nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPost.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n },\n // post func\n\n /**\n * Skip locations by default.\n */\n skipProperty: function skipProperty(prop) {\n return prop === 'loc';\n }\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DEFAULT_COLLECTION_PROP = 'expressions';\nvar DEFAULT_SINGLE_PROP = 'expression';\n\n/**\n * NodePath class encapsulates a traversing node,\n * its parent node, property name in the parent node, and\n * an index (in case if a node is part of a collection).\n * It also provides set of methods for AST manipulation.\n */\n\nvar NodePath = function () {\n /**\n * NodePath constructor.\n *\n * @param Object node - an AST node\n * @param NodePath parentPath - a nullable parent path\n * @param string property - property name of the node in the parent\n * @param number index - index of the node in a collection.\n */\n function NodePath(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n _classCallCheck(this, NodePath);\n\n this.node = node;\n this.parentPath = parentPath;\n this.parent = parentPath ? parentPath.node : null;\n this.property = property;\n this.index = index;\n }\n\n _createClass(NodePath, [{\n key: '_enforceProp',\n value: function _enforceProp(property) {\n if (!this.node.hasOwnProperty(property)) {\n throw new Error('Node of type ' + this.node.type + ' doesn\\'t have \"' + property + '\" collection.');\n }\n }\n\n /**\n * Sets a node into a children collection or the single child.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param number index - index at which to set\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'setChild',\n value: function setChild(node) {\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n\n var childPath = void 0;\n if (index != null) {\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n this.node[property][index] = node;\n childPath = NodePath.getForNode(node, this, property, index);\n } else {\n if (!property) {\n property = DEFAULT_SINGLE_PROP;\n }\n this._enforceProp(property);\n this.node[property] = node;\n childPath = NodePath.getForNode(node, this, property, null);\n }\n return childPath;\n }\n\n /**\n * Appends a node to a children collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'appendChild',\n value: function appendChild(node) {\n var property = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n var end = this.node[property].length;\n return this.setChild(node, end, property);\n }\n\n /**\n * Inserts a node into a collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to insert into a collection\n * @param number index - index at which to insert\n * @param string property - name of the collection property\n */\n\n }, {\n key: 'insertChildAt',\n value: function insertChildAt(node, index) {\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_COLLECTION_PROP;\n\n this._enforceProp(property);\n\n this.node[property].splice(index, 0, node);\n\n // If we inserted a node before the traversing index,\n // we should increase the later.\n if (index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(+1);\n }\n\n this._rebuildIndex(this.node, property);\n }\n\n /**\n * Removes a node.\n */\n\n }, {\n key: 'remove',\n value: function remove() {\n if (this.isRemoved()) {\n return;\n }\n NodePath.registry.delete(this.node);\n\n this.node = null;\n\n if (!this.parent) {\n return;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property].splice(this.index, 1);\n\n // If we remove a node before the traversing index,\n // we should increase the later.\n if (this.index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(-1);\n }\n\n // Rebuild index.\n this._rebuildIndex(this.parent, this.property);\n\n this.index = null;\n this.property = null;\n\n return;\n }\n\n // A simple node.\n delete this.parent[this.property];\n this.property = null;\n }\n\n /**\n * Rebuilds child nodes index (used on remove/insert).\n */\n\n }, {\n key: '_rebuildIndex',\n value: function _rebuildIndex(parent, property) {\n var parentPath = NodePath.getForNode(parent);\n\n for (var i = 0; i < parent[property].length; i++) {\n var path = NodePath.getForNode(parent[property][i], parentPath, property, i);\n path.index = i;\n }\n }\n\n /**\n * Whether the path was removed.\n */\n\n }, {\n key: 'isRemoved',\n value: function isRemoved() {\n return this.node === null;\n }\n\n /**\n * Replaces a node with the passed one.\n */\n\n }, {\n key: 'replace',\n value: function replace(newNode) {\n NodePath.registry.delete(this.node);\n\n this.node = newNode;\n\n if (!this.parent) {\n return null;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property][this.index] = newNode;\n }\n\n // A simple node.\n else {\n this.parent[this.property] = newNode;\n }\n\n // Rebuild the node path for the new node.\n return NodePath.getForNode(newNode, this.parentPath, this.property, this.index);\n }\n\n /**\n * Updates a node inline.\n */\n\n }, {\n key: 'update',\n value: function update(nodeProps) {\n Object.assign(this.node, nodeProps);\n }\n\n /**\n * Returns parent.\n */\n\n }, {\n key: 'getParent',\n value: function getParent() {\n return this.parentPath;\n }\n\n /**\n * Returns nth child.\n */\n\n }, {\n key: 'getChild',\n value: function getChild() {\n var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.node.expressions) {\n return NodePath.getForNode(this.node.expressions[n], this, DEFAULT_COLLECTION_PROP, n);\n } else if (this.node.expression && n == 0) {\n return NodePath.getForNode(this.node.expression, this, DEFAULT_SINGLE_PROP);\n }\n return null;\n }\n\n /**\n * Whether a path node is syntactically equal to the passed one.\n *\n * NOTE: we don't rely on `source` property from the `loc` data\n * (which would be the fastest comparison), since it might be unsync\n * after several modifications. We use here simple `JSON.stringify`\n * excluding the `loc` data.\n *\n * @param NodePath other - path to compare to.\n * @return boolean\n */\n\n }, {\n key: 'hasEqualSource',\n value: function hasEqualSource(path) {\n return JSON.stringify(this.node, jsonSkipLoc) === JSON.stringify(path.node, jsonSkipLoc);\n }\n\n /**\n * JSON-encodes a node skipping location.\n */\n\n }, {\n key: 'jsonEncode',\n value: function jsonEncode() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n format = _ref.format,\n useLoc = _ref.useLoc;\n\n return JSON.stringify(this.node, useLoc ? null : jsonSkipLoc, format);\n }\n\n /**\n * Returns previous sibling.\n */\n\n }, {\n key: 'getPreviousSibling',\n value: function getPreviousSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index - 1], NodePath.getForNode(this.parent), this.property, this.index - 1);\n }\n\n /**\n * Returns next sibling.\n */\n\n }, {\n key: 'getNextSibling',\n value: function getNextSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index + 1], NodePath.getForNode(this.parent), this.property, this.index + 1);\n }\n\n /**\n * Returns a NodePath instance for a node.\n *\n * The same NodePath can be reused in several places, e.g.\n * a parent node passed for all its children.\n */\n\n }], [{\n key: 'getForNode',\n value: function getForNode(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var prop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1;\n\n if (!node) {\n return null;\n }\n\n if (!NodePath.registry.has(node)) {\n NodePath.registry.set(node, new NodePath(node, parentPath, prop, index == -1 ? null : index));\n }\n\n var path = NodePath.registry.get(node);\n\n if (parentPath !== null) {\n path.parentPath = parentPath;\n path.parent = path.parentPath.node;\n }\n\n if (prop !== null) {\n path.property = prop;\n }\n\n if (index >= 0) {\n path.index = index;\n }\n\n return path;\n }\n\n /**\n * Initializes the NodePath registry. The registry is a map from\n * a node to its NodePath instance.\n */\n\n }, {\n key: 'initRegistry',\n value: function initRegistry() {\n if (!NodePath.registry) {\n NodePath.registry = new Map();\n }\n NodePath.registry.clear();\n }\n\n /**\n * Updates index of a currently traversing collection.\n */\n\n }, {\n key: 'updateTraversingIndex',\n value: function updateTraversingIndex(dx) {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1] += dx;\n }\n\n /**\n * Returns current traversing index.\n */\n\n }, {\n key: 'getTraversingIndex',\n value: function getTraversingIndex() {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1];\n }\n }]);\n\n return NodePath;\n}();\n\nNodePath.initRegistry();\n\n/**\n * Index of a currently traversing collection is stored on top of the\n * `NodePath.traversingIndexStack`. Remove/insert methods can adjust\n * this index.\n */\nNodePath.traversingIndexStack = [];\n\n// Helper function used to skip `loc` in JSON operations.\nfunction jsonSkipLoc(prop, value) {\n if (prop === 'loc') {\n return undefined;\n }\n return value;\n}\n\nmodule.exports = NodePath;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Performs a deep copy of an simple object.\n * Only handles scalar values, arrays and objects.\n *\n * @param obj Object\n */\n\nmodule.exports = function clone(obj) {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n var res = void 0;\n if (Array.isArray(obj)) {\n res = [];\n } else {\n res = {};\n }\n for (var i in obj) {\n res[i] = clone(obj[i]);\n }\n return res;\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = require('./dist/regexp-tree');","import browserslist from 'browserslist';\nimport RegexpTree from 'regexp-tree';\nimport { regexes } from 'ua-regexes-lite';\n\n/**\n * Array of numbers to array of first and last elements.\n * @param numbers - Array of numbers.\n * @returns Number or two numbers.\n */ function numbersToRanges(numbers) {\n if (typeof numbers === \"number\") {\n return numbers;\n }\n if (numbers.length === 1) {\n return numbers[0];\n }\n return [\n numbers[0],\n numbers[numbers.length - 1]\n ];\n}\n\nvar SemverPart;\n(function(SemverPart) {\n SemverPart[SemverPart[\"Major\"] = 0] = \"Major\";\n SemverPart[SemverPart[\"Minor\"] = 1] = \"Minor\";\n SemverPart[SemverPart[\"Patch\"] = 2] = \"Patch\";\n})(SemverPart || (SemverPart = {}));\n\n/**\n * Get semver from string or array.\n * @param version - Target to convert.\n * @returns Array with semver parts.\n */ function semverify(version) {\n const versionParts = Array.isArray(version) ? version : version.toString().split(\".\");\n if (versionParts[0] === \"all\") {\n return [\n Infinity,\n 0,\n 0\n ];\n }\n let versionPart = null;\n let semverPart = null;\n const semver = [\n 0,\n 0,\n 0\n ];\n for(let i = 0; i < 3; i++){\n versionPart = versionParts[i];\n if (typeof versionPart === \"undefined\") {\n continue;\n }\n semverPart = typeof versionPart === \"number\" ? versionPart : parseInt(versionPart, 10);\n if (isNaN(semverPart)) {\n return null;\n }\n semver[i] = semverPart;\n }\n return semver;\n}\n/**\n * Get semver range.\n * @param from\n * @param to\n * @returns Semver range.\n */ function rangeSemver(from, to) {\n let partIndex = 0;\n const range = [];\n for(let i = 2; i >= 0; i--){\n if (from[i] !== to[i]) {\n partIndex = i;\n break;\n }\n }\n for(let i1 = from[partIndex], max = to[partIndex]; i1 <= max; i1++){\n range.push(from.map((v, j)=>j === partIndex ? i1 : v));\n }\n return range;\n}\n/**\n * Compare semvers.\n * @param a - Semver to compare.\n * @param b - Semver to compare with.\n * @param options - Compare options.\n * @returns Equals or not.\n */ function compareSemvers(a, b, options) {\n const [major, minor, patch] = a;\n const [majorBase, minorBase, patchBase] = b;\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n if (majorBase === Infinity) {\n return true;\n }\n const compareMinor = !ignoreMinor;\n const comparePatch = compareMinor && !ignorePatch;\n if (allowHigherVersions) {\n if (comparePatch && patch < patchBase || compareMinor && minor < minorBase) {\n return false;\n }\n return major >= majorBase;\n }\n if (comparePatch && patch !== patchBase || compareMinor && minor !== minorBase) {\n return false;\n }\n return major === majorBase;\n}\n/**\n * Get required semver parts count.\n * @param version - Semver parts or ranges.\n * @param options - Semver compare options.\n * @returns Required semver parts count.\n */ function getRequiredSemverPartsCount(version, options) {\n const { ignoreMinor , ignorePatch , allowZeroSubversions } = options;\n let shouldRepeatCount = ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowZeroSubversions) {\n for(let i = shouldRepeatCount - 1; i > 0; i--){\n if (version[i] !== 0 || shouldRepeatCount === 1) {\n break;\n }\n shouldRepeatCount--;\n }\n }\n return shouldRepeatCount;\n}\n\n/**\n * Browsers strings to info objects.\n * @param browsersList - Browsers strings with family and version.\n * @returns Browser info objects.\n */ function parseBrowsersList(browsersList) {\n return browsersList.reduce((browsers, browser)=>{\n const [family, versionString, versionStringTo] = browser.split(/ |-/);\n const version = semverify(versionString);\n const versions = !version ? [] : versionStringTo ? rangeSemver(version, semverify(versionStringTo)) : [\n version\n ];\n return versions.reduce((browsers, semver)=>{\n if (semver) {\n browsers.push({\n family,\n version: semver\n });\n }\n return browsers;\n }, browsers);\n }, []);\n}\n/**\n * Request browsers list.\n * @param options - Options to get browsers list.\n * @returns Browser info objects.\n */ function getBrowsersList(options = {}) {\n const { browsers , ...browserslistOptions } = options;\n const browsersList = browserslist(browsers, browserslistOptions);\n const parsedBrowsers = parseBrowsersList(browsersList);\n return parsedBrowsers;\n}\n\n/**\n * Compare two arrays.\n * @param a - Array to compare.\n * @param b - Array to compare.\n * @param from - Index to start compare from.\n * @returns Equals or not.\n */ function compareArrays(a, b, from = 0) {\n const len = a.length;\n for(let i = from; i < len; i++){\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Clone simple object.\n * @param value\n * @returns Object clone.\n */ function clone(value) {\n if (value === null || typeof value !== \"object\") {\n return value;\n }\n /* eslint-disable */ const copy = Array.isArray(value) ? [] : {};\n let i;\n for(i in value){\n copy[i] = clone(value[i]);\n }\n /* eslint-enable */ return copy;\n}\n/**\n * Concat arrays.\n * @param items\n * @returns Concatinated arrays.\n */ function concat(items) {\n return [].concat(...items);\n}\n\n/**\n * Merge browser info object to map with versions.\n * @param browsers - Browser info object to merge.\n * @returns Merged browsers map.\n */ function mergeBrowserVersions(browsers) {\n const merge = new Map();\n browsers.forEach(({ family , version })=>{\n const versions = merge.get(family);\n if (versions) {\n const strVersion = version.join(\".\");\n if (versions.every((_)=>_.join(\".\") !== strVersion)) {\n versions.push(version);\n }\n return;\n }\n merge.set(family, [\n version\n ]);\n });\n merge.forEach((versions)=>{\n versions.sort((a, b)=>{\n for(const i in a){\n if (a[i] !== b[i]) {\n return a[i] - b[i];\n }\n }\n return 0;\n });\n });\n return merge;\n}\n/**\n * Versions to ranged versions.\n * @param versions - Semver versions list.\n * @returns Ranged versions list.\n */ function versionsListToRanges(versions) {\n if (versions.length < 2) {\n return versions;\n }\n const max = versions.length + 1;\n const ranges = [];\n let prev = null;\n let current = versions[0];\n let major = [\n current[SemverPart.Major]\n ];\n let minor = [\n current[SemverPart.Minor]\n ];\n let patch = [\n current[SemverPart.Patch]\n ];\n let part = null;\n for(let i = 1; i < max; i++){\n prev = versions[i - 1];\n current = versions[i] || [];\n for(let p = SemverPart.Major; p <= SemverPart.Patch; p++){\n if ((p === part || part === null) && prev[p] + 1 === current[p] && compareArrays(prev, current, p + 1)) {\n part = p;\n if (p === SemverPart.Major) {\n major.push(current[SemverPart.Major]);\n } else {\n major = current[SemverPart.Major];\n }\n if (p === SemverPart.Minor) {\n minor.push(current[SemverPart.Minor]);\n } else {\n minor = current[SemverPart.Minor];\n }\n if (p === SemverPart.Patch) {\n patch.push(current[SemverPart.Patch]);\n } else {\n patch = current[SemverPart.Patch];\n }\n break;\n }\n if (part === p || prev[p] !== current[p]) {\n ranges.push([\n numbersToRanges(major),\n numbersToRanges(minor),\n numbersToRanges(patch)\n ]);\n major = [\n current[SemverPart.Major]\n ];\n minor = [\n current[SemverPart.Minor]\n ];\n patch = [\n current[SemverPart.Patch]\n ];\n part = null;\n break;\n }\n }\n }\n return ranges;\n}\n\nfunction AstRegExpNode(body) {\n return {\n type: \"RegExp\",\n body,\n flags: \"\"\n };\n}\nfunction AlternativeNode(...expressions) {\n const exps = concat(expressions).filter(Boolean);\n if (exps.length === 1) {\n return exps[0];\n }\n return {\n type: \"Alternative\",\n expressions: exps\n };\n}\nfunction SimpleCharNode(value) {\n return {\n type: \"Char\",\n kind: \"simple\",\n value: String(value),\n codePoint: NaN\n };\n}\nfunction MetaCharNode(value) {\n return {\n type: \"Char\",\n kind: \"meta\",\n value,\n codePoint: NaN\n };\n}\nfunction ClassRangeNode(from, to) {\n return {\n type: \"ClassRange\",\n from,\n to\n };\n}\nfunction CharacterClassNode(...expressions) {\n return {\n type: \"CharacterClass\",\n expressions: concat(expressions).filter(Boolean)\n };\n}\nfunction SimpleQuantifierNode(kind) {\n return {\n type: \"Quantifier\",\n kind,\n greedy: true\n };\n}\nfunction RangeQuantifierNode(from, to) {\n return {\n type: \"Quantifier\",\n kind: \"Range\",\n from,\n to,\n greedy: true\n };\n}\nfunction CapturingGroupNode(expression) {\n return {\n type: \"Group\",\n capturing: true,\n expression,\n number: null\n };\n}\nfunction RepetitionNode(expression, quantifier) {\n return {\n type: \"Repetition\",\n expression,\n quantifier\n };\n}\nfunction DisjunctionNode(...expressions) {\n const exprs = concat(expressions).filter(Boolean);\n if (exprs.length === 1) {\n return exprs[0];\n }\n const disjunction = {\n type: \"Disjunction\",\n left: null,\n right: exprs.pop()\n };\n exprs.reduceRight((disjunction, expr, i)=>{\n if (i === 0) {\n disjunction.left = expr;\n return disjunction;\n }\n disjunction.left = {\n type: \"Disjunction\",\n left: null,\n right: expr\n };\n return disjunction.left;\n }, disjunction);\n return disjunction;\n}\nfunction DisjunctionCapturingGroupNode(...expressions) {\n const expr = DisjunctionNode(...expressions);\n if (expr.type === \"Disjunction\") {\n return CapturingGroupNode(expr);\n }\n return expr;\n}\nfunction DigitPatternNode() {\n return MetaCharNode(\"\\\\d\");\n}\nfunction NumberPatternNode(quantifier = SimpleQuantifierNode(\"+\")) {\n const numberPattern = RepetitionNode(DigitPatternNode(), quantifier);\n return numberPattern;\n}\nfunction NumberCharsNode(value) {\n return AlternativeNode(Array.from(String(value), SimpleCharNode));\n}\n\n/**\n * Check node whether is number pattern.\n * @param node - AST node to check.\n * @returns Is number pattern or not.\n */ function isNumberPatternNode(node) {\n if (node.type === \"Group\" && node.expression.type === \"Repetition\") {\n const { expression , quantifier } = node.expression;\n return expression.type === \"Char\" && expression.value === \"\\\\d\" && quantifier.kind === \"+\" && quantifier.greedy;\n }\n return false;\n}\n/**\n * Check node whether is char node.\n * @param node - AST node to check.\n * @param value - Value to compare.\n * @returns Is char node or not.\n */ function isCharNode(node, value) {\n if (node && node.type === \"Char\") {\n return typeof value === \"undefined\" || value instanceof RegExp && value.test(node.value) || String(value) === node.value;\n }\n return false;\n}\n/**\n * Check node whether is digit range.\n * @param node - AST node to check.\n * @returns Is digit range or not.\n */ function isDigitRangeNode(node) {\n if (node.type === \"CharacterClass\" && node.expressions.length === 1) {\n const [expression] = node.expressions;\n return expression.type === \"ClassRange\" && isCharNode(expression.from, /\\d/) && isCharNode(expression.to, /\\d/);\n }\n return false;\n}\n/**\n * Check node whether is expression.\n * @param node - AST node to check.\n * @returns Is expression node or not.\n */ function isExpressionNode(node) {\n return node.type !== \"RegExp\" && node.type !== \"ClassRange\" && node.type !== \"Quantifier\";\n}\nfunction parseRegex(regex) {\n return typeof regex === \"string\" ? RegexpTree.parse(regex.replace(/^([^/])/, \"/$1\").replace(/([^/])$/, \"$1/\")) : regex instanceof RegExp ? RegexpTree.parse(regex) : regex;\n}\n/**\n * Get regex from string or AST.\n * @param src - String or AST.\n * @returns RegExp.\n */ function toRegex(src) {\n return typeof src === \"string\" ? new RegExp(src) : new RegExp(RegexpTree.generate(src.body), src.flags);\n}\n/**\n * Get string from regex or AST.\n * @param src - RegExp or AST.\n * @returns String.\n */ function toString(src) {\n return typeof src === \"string\" ? src : src instanceof RegExp ? src.toString() : RegexpTree.generate(src);\n}\n\nconst classes = [\n \"RegExp\",\n \"Disjunction\",\n \"Alternative\",\n \"Assertion\",\n \"Char\",\n \"CharacterClass\",\n \"ClassRange\",\n \"Backreference\",\n \"Group\",\n \"Repetition\",\n \"Quantifier\"\n];\n/**\n * Create traversal visitors.\n * @param visitors\n * @returns Traversal handlers.\n */ function visitors(visitors) {\n const { every } = visitors;\n if (!every) {\n return visitors;\n }\n if (typeof every === \"function\") {\n return {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n \"*\": every,\n ...visitors\n };\n }\n return classes.reduce((newVisitors, className)=>{\n const visitor = visitors[className];\n const visitorPre = visitor ? \"pre\" in visitor ? visitor.pre : visitor : null;\n const visitorPost = visitor ? \"post\" in visitor ? visitor.post : null : null;\n newVisitors[className] = {\n pre (nodePath) {\n if (every.pre(nodePath) !== false && visitorPre) {\n return visitorPre(nodePath);\n }\n return true;\n },\n post (nodePath) {\n if (every.post(nodePath) !== false && visitorPost) {\n return visitorPost(nodePath);\n }\n return true;\n }\n };\n return newVisitors;\n }, {});\n}\n\nfunction optimizeRegex(regex) {\n // Optimization requires filled codePoints\n const regexAst = RegexpTree.optimize(parseRegex(toString(regex))).getAST();\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n const { parent , node } = nodePath;\n const { expression } = node;\n node.capturing = true;\n if (parent.type === \"RegExp\" || expression.type !== \"Disjunction\" && parent.type !== \"Repetition\" || expression.type === \"Disjunction\" && parent.type === \"Disjunction\") {\n nodePath.replace(nodePath.node.expression);\n }\n }\n });\n return regexAst;\n}\n/**\n * Merge digits patterns if possible.\n * @param a\n * @param b\n * @returns Merged node.\n */ function mergeDigits(a, b) {\n if (isCharNode(a) && isCharNode(b) && a.value === b.value) {\n return b;\n }\n if (isCharNode(a, /\\d/) && isDigitRangeNode(b) && Number(b.expressions[0].from.value) - Number(a.value) === 1) {\n return {\n ...b,\n expressions: [\n {\n ...b.expressions[0],\n from: a\n }\n ]\n };\n }\n if (isDigitRangeNode(a) && isCharNode(b, /\\d/) && Number(b.value) - Number(a.expressions[0].to.value) === 1) {\n return {\n ...a,\n expressions: [\n {\n ...a.expressions[0],\n to: b\n }\n ]\n };\n }\n return null;\n}\n/**\n * Optimize segment number patterns.\n * @param patterns\n * @returns Optimized segment number patterns.\n */ function optimizeSegmentNumberPatterns(patterns) {\n return patterns.reduce((patterns, node)=>{\n const prevNode = patterns[patterns.length - 1];\n if (prevNode && node.type === \"Alternative\" && prevNode.type === \"Alternative\" && node.expressions.length === prevNode.expressions.length) {\n const merged = prevNode.expressions.reduceRight((exps, exp, i)=>{\n if (!exps) {\n return exps;\n }\n const merged = mergeDigits(exp, node.expressions[i]);\n if (merged) {\n exps.unshift(merged);\n } else {\n return null;\n }\n return exps;\n }, []);\n if (merged) {\n node.expressions = merged;\n patterns.pop();\n }\n }\n patterns.push(node);\n return patterns;\n }, []);\n}\n\n/**\n * Transform number to digits array.\n * @param num - Target number.\n * @returns Digits array.\n */ function numberToDigits(num) {\n return Array.from(num.toString(), Number);\n}\n\n/**\n * Get digit pattern.\n * @param digit - Ray start.\n * @param includes - Include start digit or use next.\n * @returns Digit pattern.\n */ function rayRangeDigitPattern(digit, includes) {\n const rangeStart = digit + Number(!includes);\n if (rangeStart === 0) {\n return DigitPatternNode();\n }\n if (rangeStart === 9) {\n return SimpleCharNode(\"9\");\n }\n if (rangeStart > 9) {\n return null;\n }\n return CharacterClassNode(ClassRangeNode(SimpleCharNode(rangeStart), SimpleCharNode(\"9\")));\n}\n/**\n * Create numeric ray pattern.\n * @param from - Start from this number.\n * @returns Numeric ray pattern parts.\n */ function rayToNumberPatterns(from) {\n if (from === 0) {\n return [\n NumberPatternNode()\n ];\n }\n const digits = numberToDigits(from);\n const digitsCount = digits.length;\n const other = NumberPatternNode(RangeQuantifierNode(digitsCount + 1));\n const zeros = digitsCount - 1;\n if (from / Math.pow(10, zeros) === digits[0]) {\n return [\n AlternativeNode(rayRangeDigitPattern(digits[0], true), Array.from({\n length: zeros\n }, DigitPatternNode)),\n other\n ];\n }\n const raysNumberPatterns = digits.reduce((topNodes, _, i)=>{\n const ri = digitsCount - i - 1;\n const d = i === 0;\n let prev = SimpleCharNode(\"\");\n const nodes = digits.reduce((nodes, digit, j)=>{\n if (j < ri) {\n nodes.push(SimpleCharNode(digit));\n } else if (prev) {\n if (j > ri) {\n nodes.push(DigitPatternNode());\n } else {\n prev = rayRangeDigitPattern(digit, d);\n if (prev) {\n nodes.push(prev);\n } else {\n return [];\n }\n }\n }\n return nodes;\n }, []);\n if (nodes.length) {\n topNodes.push(nodes);\n }\n return topNodes;\n }, []);\n const numberPatterns = raysNumberPatterns.map((_)=>AlternativeNode(_));\n numberPatterns.push(other);\n return numberPatterns;\n}\n\n/**\n * Get digit pattern.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param zeros - Zeros to add as prefix.\n * @returns Digit pattern.\n */ function segmentRangeNumberPattern(from, to, zeros) {\n if (to < from) {\n return null;\n }\n const fromNode = SimpleCharNode(from);\n const toNode = SimpleCharNode(to);\n const zerosPrefix = typeof zeros === \"number\" && zeros > 0 ? Array.from({\n length: zeros\n }, ()=>SimpleCharNode(0)) : [];\n const addPrefix = zerosPrefix.length ? (node)=>AlternativeNode(zerosPrefix, node) : (node)=>node;\n if (from === to) {\n return addPrefix(fromNode);\n }\n if (from === 0 && to === 9) {\n return addPrefix(DigitPatternNode());\n }\n if (to - from === 1) {\n return addPrefix(CharacterClassNode(fromNode, toNode));\n }\n return addPrefix(CharacterClassNode(ClassRangeNode(fromNode, toNode)));\n}\n/**\n * Split segment range to decade ranges.\n * @param from - Segment start.\n * @param to - Segment end.\n * @returns Ranges.\n */ function splitToDecadeRanges(from, to) {\n const ranges = [];\n let num = from;\n let decade = 1;\n do {\n decade *= 10;\n if (num < decade) {\n ranges.push([\n num,\n Math.min(decade - 1, to)\n ]);\n num = decade;\n }\n }while (decade <= to);\n return ranges;\n}\n/**\n * Get common and diffs of two numbers (arrays of digits).\n * @param a - Digits.\n * @param b - Other digits.\n * @returns Common part and diffs.\n */ function splitCommonDiff(a, b) {\n const len = a.length;\n if (len !== b.length || a[0] !== b[0]) {\n return null;\n }\n let common = a[0].toString();\n let currA = 0;\n let currB = 0;\n let diffA = \"\";\n let diffB = \"\";\n for(let i = 1; i < len; i++){\n currA = a[i];\n currB = b[i];\n if (currA === currB) {\n common += currA;\n } else {\n diffA += currA;\n diffB += currB;\n }\n }\n return [\n common,\n parseInt(diffA, 10),\n parseInt(diffB, 10)\n ];\n}\n/**\n * Get segment patterns.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param digitsInNumber - How many digits should be en number. Will be filled by zeros.\n * @returns Segment patterns.\n */ function segmentToNumberPatterns(from, to, digitsInNumber = 0) {\n const fromDigits = numberToDigits(from);\n const digitsCount = fromDigits.length;\n if (from < 10 && to < 10 || from === to) {\n const zeros = digitsInNumber - digitsCount;\n return [\n segmentRangeNumberPattern(from, to, zeros)\n ];\n }\n const toDigits = numberToDigits(to);\n if (digitsCount !== toDigits.length) {\n const decadeRanges = splitToDecadeRanges(from, to);\n const parts = concat(decadeRanges.map(([from, to])=>segmentToNumberPatterns(from, to, digitsInNumber)));\n return parts;\n }\n const commonStart = splitCommonDiff(fromDigits, toDigits);\n if (Array.isArray(commonStart)) {\n const [common, from1, to1] = commonStart;\n const digitsInNumber1 = digitsCount - common.length;\n const diffParts = segmentToNumberPatterns(from1, to1, digitsInNumber1);\n return [\n AlternativeNode(Array.from(common, SimpleCharNode), DisjunctionCapturingGroupNode(diffParts))\n ];\n }\n const range = Array.from({\n length: digitsCount - 1\n });\n const middleSegment = segmentRangeNumberPattern(fromDigits[0] + 1, toDigits[0] - 1);\n const parts1 = [\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(fromDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(digit + d, 9);\n }));\n }),\n // but output more readable\n ...middleSegment ? [\n AlternativeNode(middleSegment, Array.from({\n length: digitsCount - 1\n }, ()=>DigitPatternNode()))\n ] : [],\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(toDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(0, digit - d);\n }));\n })\n ];\n return optimizeSegmentNumberPatterns(parts1);\n}\n\n/**\n * Get regex for given numeric range.\n * @param from - Range start.\n * @param to - Range end.\n * @returns Range pattern.\n */ function rangeToRegex(from, to = Infinity) {\n if (from === Infinity) {\n return NumberPatternNode();\n }\n const numberPatterns = to === Infinity ? rayToNumberPatterns(from) : segmentToNumberPatterns(from, to);\n const regex = DisjunctionCapturingGroupNode(numberPatterns);\n return regex;\n}\n\n/**\n * Find matched versions.\n * @param minVersion - Semver version.\n * @param maxVersion - Semver version.\n * @param bases - Base semver versions.\n * @param options - Semver compare options.\n * @returns Matched versions.\n */ function findMatchedVersions(minVersion, maxVersion, bases, options) {\n const compareOptions = {\n ...options,\n allowHigherVersions: true\n };\n const minComparator = (ver)=>compareSemvers(ver, minVersion, compareOptions);\n const maxComparator = (ver)=>compareSemvers(maxVersion, ver, compareOptions);\n const comparator = minVersion && maxVersion ? (ver)=>minComparator(ver) && maxComparator(ver) : minVersion ? minComparator : maxVersion ? maxComparator : ()=>true;\n return bases.filter(comparator);\n}\n\n/**\n * Get useragent regexes for given browsers.\n * @param browsers - Browsers.\n * @param options - Semver compare options.\n * @param targetRegexes - Override default regexes.\n * @returns User agent regexes.\n */ function getRegexesForBrowsers(browsers, options, targetRegexes = regexes) {\n const result = [];\n let prevFamily = \"\";\n let prevRegexIsGlobal = false;\n targetRegexes.forEach((regex)=>{\n const requestVersions = browsers.get(regex.family);\n if (!requestVersions) {\n return;\n }\n let { version , minVersion , maxVersion } = regex;\n if (version) {\n minVersion = version;\n maxVersion = version;\n }\n let matchedVersions = findMatchedVersions(minVersion, maxVersion, requestVersions, options);\n if (matchedVersions.length) {\n // regex contains global patch\n if (prevFamily === regex.family && prevRegexIsGlobal) {\n version = undefined;\n minVersion = undefined;\n maxVersion = undefined;\n matchedVersions = requestVersions;\n result.pop();\n }\n result.push({\n ...regex,\n version,\n minVersion,\n maxVersion,\n requestVersions,\n matchedVersions\n });\n }\n prevRegexIsGlobal = !version && !minVersion && !maxVersion;\n prevFamily = regex.family;\n });\n return result;\n}\n\n/**\n * Compile regexes.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Objects with info about compiled regexes.\n */ function compileRegexes(regexes) {\n return regexes.map(({ regexAst , ...regex })=>{\n const optimizedRegexAst = optimizeRegex(regexAst);\n return {\n ...regex,\n regexAst: optimizedRegexAst,\n regex: toRegex(optimizedRegexAst)\n };\n });\n}\n/**\n * Compile regex.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Compiled common regex.\n */ function compileRegex(regexes) {\n const partsRegexes = regexes.map(({ regexAst })=>CapturingGroupNode(regexAst.body));\n const regexAst = optimizeRegex(AstRegExpNode(DisjunctionCapturingGroupNode(partsRegexes)));\n return toRegex(regexAst);\n}\n\n/**\n * Get number patterns count from the regex.\n * @param regex - Target regex.\n * @returns Number patterns count.\n */ function getNumberPatternsCount(regex) {\n const regexAst = parseRegex(regex);\n let count = 0;\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node)) {\n count++;\n }\n }\n });\n return count;\n}\nfunction replaceNumberPatterns(regex, numbers, numberPatternsCount) {\n let regexAst = parseRegex(regex);\n const numbersToReplace = typeof numberPatternsCount === \"number\" && numberPatternsCount < numbers.length ? numbers.slice(0, numberPatternsCount) : numbers.slice();\n RegexpTree.traverse(regexAst, visitors({\n every () {\n return Boolean(numbersToReplace.length);\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersToReplace.length) {\n if (regexAst === nodePath.node) {\n regexAst = numbersToReplace.shift();\n } else {\n nodePath.replace(numbersToReplace.shift());\n }\n return false;\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Get from regex part with number patterns.\n * @param regex - Target regex.\n * @param numberPatternsCount - Number patterns to extract.\n * @returns Regex part with number patterns.\n */ function getNumberPatternsPart(regex, numberPatternsCount) {\n const regexAst = parseRegex(regex);\n const maxNumbersCount = Math.min(getNumberPatternsCount(regexAst), numberPatternsCount || Infinity);\n const expressions = [];\n let numbersCounter = 0;\n let containsNumberPattern = false;\n RegexpTree.traverse(regexAst, visitors({\n every: {\n pre ({ node , parent }) {\n if (node === regexAst) {\n return true;\n }\n if (!isExpressionNode(node)) {\n return false;\n }\n if (parent === regexAst) {\n containsNumberPattern = false;\n }\n return numbersCounter < maxNumbersCount;\n },\n post ({ node , parent }) {\n if (node !== regexAst && parent === regexAst && isExpressionNode(node) && (containsNumberPattern || numbersCounter > 0 && numbersCounter < maxNumbersCount)) {\n expressions.push(node);\n }\n }\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersCounter < maxNumbersCount) {\n containsNumberPattern = true;\n numbersCounter++;\n return false;\n }\n return true;\n }\n }));\n if (expressions.length === 1 && !isNumberPatternNode(expressions[0])) {\n return getNumberPatternsPart(expressions[0], maxNumbersCount);\n }\n return expressions;\n}\n/**\n * Ranged semver to regex patterns.\n * @param rangedVersion - Ranged semver.\n * @param options - Semver compare options.\n * @returns Array of regex pattern.\n */ function rangedSemverToRegex(rangedVersion, options) {\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n const ignoreIndex = rangedVersion[0] === Infinity ? 0 : ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowHigherVersions) {\n const numberPatterns = [];\n let prevWasZero = true;\n let d = 0;\n let start = 0;\n const createMapper = (i)=>(range, j)=>{\n if (j >= ignoreIndex) {\n return NumberPatternNode();\n }\n start = Array.isArray(range) ? range[0] : range;\n if (j < i) {\n return NumberCharsNode(start);\n }\n if (j > i) {\n return NumberPatternNode();\n }\n return rangeToRegex(start + d);\n };\n for(let i = ignoreIndex - 1; i >= 0; i--){\n if (prevWasZero && !rangedVersion[i]) {\n continue;\n }\n prevWasZero = false;\n numberPatterns.push(rangedVersion.map(createMapper(i)));\n d = 1;\n }\n return numberPatterns;\n }\n const numberPatterns1 = rangedVersion.map((range, i)=>{\n if (i >= ignoreIndex) {\n return NumberPatternNode();\n }\n if (Array.isArray(range)) {\n return rangeToRegex(range[0], range[1]);\n }\n return NumberCharsNode(range);\n });\n return [\n numberPatterns1\n ];\n}\n\nfunction applyVersionsToRegex(regex, versions, options) {\n const { allowHigherVersions } = options;\n const regexAst = parseRegex(regex);\n const finalVersions = allowHigherVersions && versions.length ? [\n versions[0]\n ] : versions;\n const maxRequiredPartsCount = finalVersions.reduce((maxRequiredPartsCount, version)=>Math.max(maxRequiredPartsCount, getRequiredSemverPartsCount(version, options)), 1);\n const numberPatternsPart = getNumberPatternsPart(regexAst, maxRequiredPartsCount);\n const versionsPart = DisjunctionCapturingGroupNode(...finalVersions.map((version)=>rangedSemverToRegex(version, options).map((parts)=>replaceNumberPatterns(AlternativeNode(clone(numberPatternsPart)), parts, maxRequiredPartsCount))));\n RegexpTree.traverse(regexAst, visitors({\n every (nodePath) {\n if (!numberPatternsPart.length) {\n return false;\n }\n if (nodePath.node === numberPatternsPart[0]) {\n if (numberPatternsPart.length === 1) {\n nodePath.replace(versionsPart);\n } else {\n nodePath.remove();\n }\n numberPatternsPart.shift();\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Apply browser versions to info objects.\n * @param browserRegexes - Objects with requested browser version and regex.\n * @param options - Semver compare options.\n * @returns Objects with requested browser version and regex special for this version.\n */ function applyVersionsToRegexes(browserRegexes, options) {\n return browserRegexes.map(({ regex: sourceRegex , version , maxVersion , matchedVersions , ...other })=>{\n let regexAst = parseRegex(sourceRegex);\n if (!version) {\n regexAst = applyVersionsToRegex(regexAst, versionsListToRanges(matchedVersions), {\n ...options,\n allowHigherVersions: !maxVersion && options.allowHigherVersions\n });\n }\n return {\n regex: null,\n sourceRegex,\n regexAst,\n version,\n maxVersion,\n matchedVersions,\n ...other\n };\n });\n}\n\nconst defaultOptions = {\n ignoreMinor: false,\n ignorePatch: true,\n allowZeroSubversions: false,\n allowHigherVersions: false\n};\n/**\n * Get source regexes objects from browserslist query.\n * @param options - Browserslist and semver compare options.\n * @returns Source regexes objects.\n */ function getPreUserAgentRegexes(options = {}) {\n const finalOptions = {\n ...defaultOptions,\n ...options\n };\n const browsersList = getBrowsersList(finalOptions);\n const mergedBrowsers = mergeBrowserVersions(browsersList);\n const sourceRegexes = getRegexesForBrowsers(mergedBrowsers, finalOptions);\n const versionedRegexes = applyVersionsToRegexes(sourceRegexes, finalOptions);\n return versionedRegexes;\n}\n/**\n * Compile browserslist query to regexes.\n * @param options - Browserslist and semver compare options.\n * @returns Objects with info about compiled regexes.\n */ function getUserAgentRegexes(options = {}) {\n return compileRegexes(getPreUserAgentRegexes(options));\n}\n/**\n * Compile browserslist query to regex.\n * @param options - Browserslist and semver compare options.\n * @returns Compiled regex.\n */ function getUserAgentRegex(options = {}) {\n return compileRegex(getPreUserAgentRegexes(options));\n}\n\nexport { AlternativeNode, AstRegExpNode, CapturingGroupNode, CharacterClassNode, ClassRangeNode, DigitPatternNode, DisjunctionCapturingGroupNode, DisjunctionNode, MetaCharNode, NumberCharsNode, NumberPatternNode, RangeQuantifierNode, RepetitionNode, SemverPart, SimpleCharNode, SimpleQuantifierNode, applyVersionsToRegex, applyVersionsToRegexes, clone, compareArrays, compareSemvers, compileRegex, compileRegexes, concat, defaultOptions, findMatchedVersions, getBrowsersList, getNumberPatternsCount, getNumberPatternsPart, getPreUserAgentRegexes, getRegexesForBrowsers, getRequiredSemverPartsCount, getUserAgentRegex, getUserAgentRegexes, isCharNode, isDigitRangeNode, isExpressionNode, isNumberPatternNode, mergeBrowserVersions, mergeDigits, numberToDigits, numbersToRanges, optimizeRegex, optimizeSegmentNumberPatterns, parseBrowsersList, parseRegex, rangeSemver, rangeToRegex, rangedSemverToRegex, rayRangeDigitPattern, rayToNumberPatterns, replaceNumberPatterns, segmentRangeNumberPattern, segmentToNumberPatterns, semverify, splitCommonDiff, splitToDecadeRanges, toRegex, toString, versionsListToRanges, visitors };\n//# sourceMappingURL=index.js.map\n","/**\n * @typedef {import('./index.d').UserAgentRegex} UserAgentRegex\n */\n\n/** @type {UserAgentRegex[]} */\nexport const regexes = [\n {\n regex: /IE (\\d+)\\.(\\d+)/,\n family: 'ie',\n maxVersion: [\n 7,\n Infinity,\n Infinity\n ]\n },\n /**\n * IE can be in Compatability Mode (IE 7.0)\n * so we need to check Trident version\n */\n {\n regex: /Trident\\/4\\.0/,\n family: 'ie',\n version: [\n 8,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/5\\.0/,\n family: 'ie',\n version: [\n 9,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/6\\.0/,\n family: 'ie',\n version: [\n 10,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/[78]\\.0/,\n family: 'ie',\n version: [\n 11,\n 0,\n 0\n ]\n },\n {\n regex: /Edge?\\/(\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'edge'\n },\n {\n regex: /Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'firefox'\n },\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'chrome'\n },\n /**\n * Ignore Edge with EdgeHTML engine.\n */\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)([\\d.]+$|.*Safari\\/(?![\\d.]+ Edge\\/[\\d.]+$))/,\n family: 'chrome',\n maxVersion: [\n 70,\n Infinity,\n Infinity\n ]\n },\n /**\n * Safari on iPad have desktop-like useragent\n * Some versions contains letter subversions\n */\n {\n regex: /Maci.+ Version\\/(\\d+)\\.(\\d+)([.,](\\d+)|)( \\(\\w+\\)|)( Mobile\\/\\w+|) Safari\\//,\n family: 'safari'\n },\n /**\n * Presto Opera\n */\n {\n regex: /Opera\\/9\\.80.+Version\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'opera',\n maxVersion: [\n 12,\n 15,\n 0\n ]\n },\n /**\n * Chromium based Opera\n */\n {\n regex: /Chrome.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'opera',\n minVersion: [\n 15,\n 0,\n 0\n ]\n },\n {\n regex: /(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /[^e] (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf',\n version: [\n 7,\n 0,\n 3\n ]\n },\n {\n regex: /Opera Mini/,\n family: 'op_mini'\n },\n {\n regex: /Android Donut/,\n family: 'android',\n version: [\n 1,\n 2,\n 0\n ]\n },\n {\n regex: /Android Eclair/,\n family: 'android',\n version: [\n 2,\n 1,\n 0\n ]\n },\n {\n regex: /Android Froyo/,\n family: 'android',\n version: [\n 2,\n 2,\n 0\n ]\n },\n {\n regex: /Android Gingerbread/,\n family: 'android',\n version: [\n 2,\n 3,\n 0\n ]\n },\n {\n regex: /Android Honeycomb/,\n family: 'android',\n version: [\n 3,\n 0,\n 0\n ]\n },\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'android'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|);(?! ARM; Trident)/,\n family: 'android',\n version: [\n 4,\n 0,\n 0\n ]\n },\n {\n regex: /PlayBook.+RIM Tablet OS (\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n {\n regex: /(Black[bB]erry|BB10).+Version\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n /**\n * Presto Opera Mobile\n */\n {\n regex: /Opera\\/.+Opera Mobi.+Version\\/(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n maxVersion: [\n 12,\n 16,\n 0\n ]\n },\n /**\n * Chromium based Opera Mobile\n */\n {\n regex: /Mobile Safari.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n minVersion: [\n 14,\n 0,\n 0\n ]\n },\n {\n regex: /Android.+Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_ff'\n },\n {\n regex: /Android.+Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_chr'\n },\n {\n regex: /IEMobile[ /](\\d+)\\.(\\d+)/,\n family: 'ie_mob'\n },\n {\n regex: /Android.+(UC? ?Browser|UCWEB|U3)[ /]?(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'and_uc'\n },\n {\n regex: /SamsungBrowser\\/(\\d+)\\.(\\d+)/,\n family: 'samsung'\n },\n {\n regex: /Android.+MQQBrowser\\/(\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'and_qq'\n },\n {\n regex: /baidubrowser[/\\s](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'baidu'\n },\n {\n regex: /K[Aa][Ii]OS\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'kaios'\n }\n]\n"],"names":["module","exports","user","getCurrentUser","getLoggerBuilder","setApp","build","setUid","uid","getBuilder","clearOnLogout","persist","supportedBrowsersRegExp","getUserAgentRegex","allowHigherVersions","browsers","browserslistConfig","browserslist","browserStorageKey","redirectPath","generateUrl","isBrowserOverridden","browserStorage","getItem","testSupportedBrowser","test","navigator","userAgent","logger","debug","window","location","pathname","indexOf","redirectUrl","href","replace","origin","base64Param","Buffer","from","toString","history","pushState","concat","reload","BrowserslistError","noop","loadQueries","getStat","opts","stats","loadConfig","config","loadCountry","loadFeature","currentNode","resolve","context","parseConfig","readConfig","findConfig","clearCaches","oldDataWarning","env","message","this","name","Error","captureStackTrace","prototype","jsReleases","agents","jsEOL","path","e2c","parse","ANDROID_EVERGREEN_FIRST","isVersionsMatch","versionA","versionB","normalize","versions","filter","version","normalizeElectron","versionToUse","split","length","slice","join","nameMapper","getMajor","parseInt","getMajorVersions","released","number","majorVersions","uniq","map","minimum","selected","i","unshift","array","filtered","push","fillUsage","result","data","generateFilter","sign","parseFloat","v","parseSimpleInt","x","compare","a","b","compareSemver","semverFilterLoose","operator","range","compareSemverLoose","normalizeVersion","resolved","versionAliases","resolveVersion","filterByYear","since","Object","keys","reduce","byName","releaseDate","date","cloneData","toLowerCase","aliases","mobileToDesktop","desktopNames","desktop","android","chrome","normalizeAndroidVersions","forEach","undefined","cloned","androidVersions","chromeVersions","iFirstEvergreen","checkName","filterJumps","list","nVersions","jump","op_mob","isSupported","flags","queries","QUERIES","node","index","not","query","type","select","call","j","parts","compose","prepareOpts","prepareQueries","defaults","checkQueries","Array","isArray","cache","ignoreUnknownVersions","dangerousExtend","browser","customUsage","cacheKey","JSON","stringify","sort","name1","name2","version1","BROWSERSLIST_DISABLE_CACHE","nodeQuery","matched","nodeVersions","sinceQuery","year","month","day","Date","UTC","coverQuery","coverage","usage","global","place","match","toUpperCase","coveraged","custom","fx","ff","ios","explorer","blackberry","explorermobile","operamini","operamobile","chromeandroid","firefoxandroid","ucandroid","qqandroid","and_chr","and_ff","ie_mob","customStats","dataByBrowser","all","last_major_versions","matches","regexp","last_versions","last_electron_major_versions","last_node_major_versions","last_browser_major_versions","last_electron_versions","last_node_versions","last_browser_versions","unreleased_versions","unreleased_electron_versions","unreleased_browser_versions","last_years","now","years","since_y","since_y_m","since_y_m_d","popularity","popularity_in_my_stats","percentage","popularity_in_config_stats","loadStat","popularity_in_place","cover","cover_in","supports","feature","features","checkDesktop","electron_range","fromToUse","toToUse","to","parsed","node_range","browser_range","electron_ray","node_ray","browser_ray","alias","firefox_esr","opera_mini_all","electron_version","node_major_version","node_minor_version","node_patch_version","current_node","maintained_node","key","end","start","some","phantomjs_1_9","phantomjs_2_1","browser_version","browserslist_config","extends","dead","unknown","release_date","usage_global","full","interval","release","AND_REGEXP","OR_REGEXP","flatten","matchQuery","matchBlock","string","qs","predicate","n","max","substr","find","trim","block","A","K","F","G","H","B","JC","C","E","L","M","I","N","D","O","P","Q","R","S","T","U","V","W","X","Y","Z","c","d","e","f","g","h","o","p","q","r","s","t","u","w","y","z","KC","zB","J","k","l","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","m","qB","rB","sB","tB","uB","LC","MC","NC","OC","PC","QC","RC","SC","vB","wB","TC","UC","xB","AC","yB","BC","CC","DC","EC","FC","GC","VC","WC","XC","YC","ZC","HC","aC","bC","IC","cC","dC","eC","fC","gC","hC","iC","jC","kC","lC","mC","nC","oC","pC","qC","rC","sC","tC","uC","vC","wC","xC","yC","zC","AD","BD","CD","DD","ED","FD","GD","HD","agentsData","unpackBrowserVersions","versionsData","entry","prefix_exceptions","map2","key2","prefix","browserVersions","compatTransforms","_transform","transform","transformsWhitelist","arguments","transformToApply","extra","transformName","hasOwnProperty","handler","getAST","getExtra","setExtra","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","defineProperty","Constructor","protoProps","staticProps","RegExpTree","re","_ref","groups","source","instance","TypeError","_classCallCheck","_re","_groups","dotAll","includes","ignoreCase","multiline","sticky","unicode","value","compile","_toStringResult","exec","group","groupNumber","_hasUFlag","shouldRun","ast","Char","kind","toValue","toSymbol","expressions","symbol","_groupNames","init","Group","nameRaw","Backreference","reference","referenceRaw","RegExp","namedCapturingGroups","xFlag","gen","generator","body","Alternative","Disjunction","left","right","expression","capturing","Assertion","assertion","negative","_assertion","CharacterClass","ClassRange","Repetition","quantifier","Quantifier","greedy","escaped","UnicodeProperty","shorthand","binary","generate","_slicedToArray","arr","Symbol","iterator","_arr","_n","_d","_e","_s","_i","next","done","err","sliceIterator","_toConsumableArray","arr2","currentTransitionMap","sameRow","r1","r2","s1","s2","size","areEquivalent","table","alphabet","_iteratorNormalCompletion8","_didIteratorError8","_iteratorError8","_step8","_iterator8","goToSameSet","return","originalTransitionS1","originalTransitionS2","has","minimize","dfa","getTransitionTable","allStates","getAlphabet","accepting","getAcceptingStateNumbers","nonAccepting","Set","state","Number","add","set","current","previous","_loop","newTransitionMap","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","_set","handledStates","_set2","first","rest","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","restSets","_step4","_iterator4","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_step5","_iterator5","handledState","assign","newSets","remaped","Map","idx","minimizedTable","minimizedAcceptingStates","updateAcceptingStates","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","entries","_ref2","_idx","_iteratorNormalCompletion6","_didIteratorError6","_iteratorError6","_step6","_iterator6","originalTransition","_iteratorNormalCompletion7","_didIteratorError7","_iteratorError7","_step7","_iterator7","originalState","get","setTransitionTable","setAcceptingStateNumbers","DFAMinimizer","EPSILON_CLOSURE","DFA","nfa","_nfa","_originalAcceptingStateNumbers","_acceptingStateNumbers","_originalTransitionTable","_transitionTable","stateNumbers","_this","nfaTable","nfaStates","worklist","nfaAcceptingStates","dfaTable","states","nfaAcceptingState","shift","dfaStateLabel","onSymbol","nfaStatesOnSymbol","nfaStateOnSymbol","apply","dfaStatesOnSymbolSet","dfaStatesOnSymbol","dfaOnSymbolStr","_remapStateNumbers","calculatedDFATable","newStatesMap","transitionTable","originalNumber","newNumber","originalRow","row","_originalNumber","NFA","nfaFromRegExp","builders","toNFA","toDFA","NFAState","EPSILON","char","inState","outState","addTransition","altPair","second","out","in","orPair","alt","_len","fragments","_key","or","_len2","_key2","rep","fragment","repExplicit","plusRep","questionRep","parser","_require","captureLocations","State","_State","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","subClass","superClass","create","constructor","setPrototypeOf","_inherits","visited","getTransitionsOnSymbol","symbolTransitions","_this2","_epsilonClosure","epsilonTransitions","closure","nextState","getEpsilonClosure","_alphabet","transitions","_acceptingStates","getAcceptingStates","acceptingState","symbols","visitState","getTransitions","combinedState","_ref$accepting","_transitions","toState","clone","optimizationTransforms","optimize","_ref$whitelist","whitelist","_ref$blacklist","blacklist","TransformResult","prevResultString","transformer","newResult","UPPER_A_CP","codePointAt","UPPER_Z_CP","_AZClassRanges","parent","isNaN","codePoint","classRange","lower","isSurrogatePair","_getSurrogatePairFrom","trail","lead","Math","floor","getSurrogatePairFromCodePoint","repeat","code","displaySymbolAsValue","sortCharClass","aValue","getSortValue","bValue","isMeta","isControl","Infinity","fitsInMetas","metas","hasIUFlags","fitsInMeta","meta","fitsInMetaS","fitsInMetaD","fitsInMetaW","combinesWithPrecedingClassRange","fitsInClassRange","isMetaWCharOrCode","combinesWithFollowingClassRange","charCombinesWithPrecedingChars","nbMergedChars","currentExpression","precedingExpresion","_hasIUFlags","splice","getParent","insertChildAt","sources","childPath","getChild","jsonEncode","remove","_hasIFlag","isFullNumberRange","rewriteNumberRanges","hasIFlag","hasUFlag","numberPath","lowerCasePath","upperCasePath","underscorePath","u017fPath","u212aPath","isMetaChar","isLowerCaseRange","isUpperCaseRange","isUnderscore","isCodePoint","rewriteWordRanges","whitespaceRangeTests","every","nNode","NaN","Boolean","rewriteWhitespaceRanges","isChar","shouldEscape","previousNode","hasAppropriateSiblings","isAppropriateChar","_node$expressions$","getInverseMeta","LOWER_A_CP","LOWER_Z_CP","DIGIT_0_CP","DIGIT_9_CP","String","fromCodePoint","newChar","parentType","needsEscape","consumeNumbers","startIndex","rtl","siblingNode","abs","isSimpleChar","_hasXFlag","hasXFlag","nbFollowingNumbers","nextSiblingNode","preservesOpeningCurlyBraceEscape","nbPrecedingNumbers","previousSiblingNode","preservesClosingCurlyBraceEscape","preservesEscape","preservesInCharClass","shouldUnescape","NodePath","increaseQuantifierByOne","combineRepeatingPatternLeft","alternative","child","nbPossibleLengths","ceil","getForNode","hasEqualSource","combineWithPreviousRepetition","previousChild","combineRepetitionWithPrevious","rightLength","disjunctionToList","listToDisjunction","uniqueNodesMap","part","encoded","handlers","charset","shouldProcess","characterClass","rewriteOpenZero","rewriteOpenOne","parentPath","rewriteExactOne","isGreedyOpenRange","extractFromTo","previousSibling","getPreviousSibling","_extractFromTo","previousSiblingFrom","previousSiblingTo","_extractFromTo2","nodeFrom","nodeTo","yytext","yy","__","__loc","yyloc","options","startOffset","endOffset","startLine","endLine","startColumn","endColumn","productions","_1","_1loc","_2","_3","_4","_2loc","_3loc","_4loc","Node","checkFlags","loc","_loc","separatorIdx","isShorthand","unicodeProperties","isGeneralCategoryValue","isBinaryProperty","isBinaryPropertyName","isValidName","SyntaxError","isValidValue","canonicalName","getCanonicalName","canonicalValue","getCanonicalValue","text","textLoc","capturingGroupsCount","decodeUnicodeGroupName","namedGroups","charRe","chars","uReStart","ucpReStart","NamedGroupRefOrChars","getRange","allowGroupNameDuplicates","checkClassRange","tokens","stack","tokenizer","lexRules","validateUnicodeGroupName","getCurrentState","popState","lexRulesByConditions","EOF_TOKEN","initString","_string","_cursor","_states","_tokensQueue","_currentLine","_currentColumn","_currentLineBeginOffset","_tokenStartOffset","_tokenEndOffset","_tokenStartLine","_tokenEndLine","_tokenStartColumn","_tokenEndColumn","getStates","begin","pop","getNextToken","onToken","_toToken","hasMoreTokens","lexRulesForState","lexRuleIndex","lexRule","_match","token","tokensToQueue","isEOF","throwUnexpectedToken","line","column","lineSource","lineData","getCursor","getCurrentLine","getCurrentColumn","_captureLocation","nlRe","nlMatch","tokenType","lexer","yyparse","setOptions","getOptions","parseOptions","globalOptions","onParseBegin","shiftedToken","unexpectedEndOfInput","unexpectedToken","_loc2","onShift","semanticValue","productionNumber","production","hasSemanticAction","semanticValueArgs","locationArgs","rhsLength","stackEntry","reduceStackEntry","semanticActionArgs","symbolToReduceWith","onParseEnd","setTokenizer","customTokenizer","getTokenizer","parsingString","isFinite","lastSlash","lastIndexOf","_value$split$slice2","hex","validFlags","seen","flag","ucpReAnywhere","uidRe","_","leadSurrogate","trailSurrogate","leadSurrogateOnly","trailSurrogateOnly","nonSurrogate","offset","parseError","regexpTreeParser","generatedParseFn","bind","NON_BINARY_PROP_NAMES_TO_ALIASES","General_Category","Script","Script_Extensions","NON_BINARY_ALIASES_TO_PROP_NAMES","inverseMap","BINARY_PROP_NAMES_TO_ALIASES","ASCII","ASCII_Hex_Digit","Alphabetic","Any","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","IDS_Binary_Operator","IDS_Trinary_Operator","ID_Continue","ID_Start","Ideographic","Join_Control","Logical_Order_Exception","Lowercase","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start","BINARY_ALIASES_TO_PROP_NAMES","GENERAL_CATEGORY_VALUE_TO_ALIASES","Cased_Letter","Close_Punctuation","Connector_Punctuation","Control","Currency_Symbol","Dash_Punctuation","Decimal_Number","Enclosing_Mark","Final_Punctuation","Format","Initial_Punctuation","Letter","Letter_Number","Line_Separator","Lowercase_Letter","Mark","Math_Symbol","Modifier_Letter","Modifier_Symbol","Nonspacing_Mark","Open_Punctuation","Other","Other_Letter","Other_Number","Other_Punctuation","Other_Symbol","Paragraph_Separator","Private_Use","Punctuation","Separator","Space_Separator","Spacing_Mark","Surrogate","Titlecase_Letter","Unassigned","Uppercase_Letter","GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES","SCRIPT_VALUE_TO_ALIASES","Adlam","Ahom","Anatolian_Hieroglyphs","Arabic","Armenian","Avestan","Balinese","Bamum","Bassa_Vah","Batak","Bengali","Bhaiksuki","Bopomofo","Brahmi","Braille","Buginese","Buhid","Canadian_Aboriginal","Carian","Caucasian_Albanian","Chakma","Cham","Cherokee","Common","Coptic","Cuneiform","Cypriot","Cyrillic","Deseret","Devanagari","Dogra","Duployan","Egyptian_Hieroglyphs","Elbasan","Ethiopic","Georgian","Glagolitic","Gothic","Grantha","Greek","Gujarati","Gunjala_Gondi","Gurmukhi","Han","Hangul","Hanifi_Rohingya","Hanunoo","Hatran","Hebrew","Hiragana","Imperial_Aramaic","Inherited","Inscriptional_Pahlavi","Inscriptional_Parthian","Javanese","Kaithi","Kannada","Katakana","Kayah_Li","Kharoshthi","Khmer","Khojki","Khudawadi","Lao","Latin","Lepcha","Limbu","Linear_A","Linear_B","Lisu","Lycian","Lydian","Mahajani","Makasar","Malayalam","Mandaic","Manichaean","Marchen","Medefaidrin","Masaram_Gondi","Meetei_Mayek","Mende_Kikakui","Meroitic_Cursive","Meroitic_Hieroglyphs","Miao","Modi","Mongolian","Mro","Multani","Myanmar","Nabataean","New_Tai_Lue","Newa","Nko","Nushu","Ogham","Ol_Chiki","Old_Hungarian","Old_Italic","Old_North_Arabian","Old_Permic","Old_Persian","Old_Sogdian","Old_South_Arabian","Old_Turkic","Oriya","Osage","Osmanya","Pahawh_Hmong","Palmyrene","Pau_Cin_Hau","Phags_Pa","Phoenician","Psalter_Pahlavi","Rejang","Runic","Samaritan","Saurashtra","Sharada","Shavian","Siddham","SignWriting","Sinhala","Sogdian","Sora_Sompeng","Soyombo","Sundanese","Syloti_Nagri","Syriac","Tagalog","Tagbanwa","Tai_Le","Tai_Tham","Tai_Viet","Takri","Tamil","Tangut","Telugu","Thaana","Thai","Tibetan","Tifinagh","Tirhuta","Ugaritic","Vai","Warang_Citi","Yi","Zanabazar_Square","SCRIPT_VALUE_ALIASES_TO_VALUE","inverse","isScriptCategoryValue","isAlias","isGeneralCategoryName","isScriptCategoryName","compatTranspiler","optimizer","_traverse","fa","regexpTree","traverse","toRegExp","compat","compatTranspile","getSource","getFlags","_ast","_source","_regexp","_extra","asNodes","getPathFor","prop","initRegistry","root","pre","post","skipProperty","visit","res","_prop","traversingIndexStack","updateTraversingIndex","astTraverse","nodePath","isRemoved","handlerFuncPre","handlerFuncPost","DEFAULT_COLLECTION_PROP","DEFAULT_SINGLE_PROP","property","_enforceProp","setChild","getTraversingIndex","_rebuildIndex","registry","delete","newNode","nodeProps","jsonSkipLoc","format","useLoc","clear","dx","obj","SemverPart","numbersToRanges","numbers","semverify","versionParts","versionPart","semverPart","semver","compareSemvers","major","minor","patch","majorBase","minorBase","patchBase","ignoreMinor","ignorePatch","compareMinor","comparePatch","compareArrays","len","copy","items","AlternativeNode","exps","SimpleCharNode","ClassRangeNode","CharacterClassNode","CapturingGroupNode","DisjunctionCapturingGroupNode","expr","exprs","disjunction","reduceRight","DisjunctionNode","DigitPatternNode","NumberPatternNode","numberPattern","RepetitionNode","NumberCharsNode","isNumberPatternNode","isCharNode","isDigitRangeNode","isExpressionNode","parseRegex","regex","classes","visitors","newVisitors","className","visitor","visitorPre","visitorPost","numberToDigits","num","rayRangeDigitPattern","digit","rangeStart","segmentRangeNumberPattern","zeros","fromNode","toNode","zerosPrefix","segmentToNumberPatterns","digitsInNumber","fromDigits","digitsCount","toDigits","decadeRanges","ranges","decade","min","splitToDecadeRanges","commonStart","common","currA","currB","diffA","diffB","splitCommonDiff","from1","to1","diffParts","middleSegment","ri","patterns","prevNode","merged","exp","rangeToRegex","digits","other","RangeQuantifierNode","pow","numberPatterns","topNodes","prev","nodes","rayToNumberPatterns","getNumberPatternsPart","numberPatternsCount","regexAst","maxNumbersCount","count","getNumberPatternsCount","numbersCounter","containsNumberPattern","applyVersionsToRegex","finalVersions","maxRequiredPartsCount","allowZeroSubversions","shouldRepeatCount","getRequiredSemverPartsCount","numberPatternsPart","versionsPart","rangedVersion","ignoreIndex","prevWasZero","createMapper","rangedSemverToRegex","numbersToReplace","replaceNumberPatterns","defaultOptions","getPreUserAgentRegexes","finalOptions","browserRegexes","sourceRegex","maxVersion","matchedVersions","Major","Minor","Patch","versionsListToRanges","applyVersionsToRegexes","targetRegexes","prevFamily","prevRegexIsGlobal","requestVersions","family","minVersion","bases","compareOptions","minComparator","ver","maxComparator","comparator","findMatchedVersions","getRegexesForBrowsers","merge","strVersion","mergeBrowserVersions","browserslistOptions","versionString","versionStringTo","partIndex","i1","rangeSemver","getBrowsersList","src","optimizeRegex","regexes"],"sourceRoot":""} \ No newline at end of file
diff --git a/dist/core-unsupported-browser-redirect.js b/dist/core-unsupported-browser-redirect.js
index 582c9becbac..9ede1317f1a 100644
--- a/dist/core-unsupported-browser-redirect.js
+++ b/dist/core-unsupported-browser-redirect.js
@@ -1,3 +1,3 @@
/*! For license information please see core-unsupported-browser-redirect.js.LICENSE.txt */
-!function(){"use strict";var t,e,r,n={66592:function(t,e,r){var n,o=r(77958);function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}function a(){a=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n=Object.defineProperty||function(t,e,r){t[e]=r.value},o="function"==typeof Symbol?Symbol:{},u=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",f=o.toStringTag||"@@toStringTag";function l(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{l({},"")}catch(t){l=function(t,e,r){return t[e]=r}}function s(t,e,r,o){var i=e&&e.prototype instanceof d?e:d,a=Object.create(i.prototype),u=new _(o||[]);return n(a,"_invoke",{value:L(t,r,u)}),a}function h(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=s;var p={};function d(){}function v(){}function y(){}var g={};l(g,u,(function(){return this}));var m=Object.getPrototypeOf,b=m&&m(m(k([])));b&&b!==e&&r.call(b,u)&&(g=b);var w=y.prototype=d.prototype=Object.create(g);function x(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function E(t,e){function o(n,a,u,c){var f=h(t[n],t,a);if("throw"!==f.type){var l=f.arg,s=l.value;return s&&"object"==i(s)&&r.call(s,"__await")?e.resolve(s.__await).then((function(t){o("next",t,u,c)}),(function(t){o("throw",t,u,c)})):e.resolve(s).then((function(t){l.value=t,u(l)}),(function(t){return o("throw",t,u,c)}))}c(f.arg)}var a;n(this,"_invoke",{value:function(t,r){function n(){return new e((function(e,n){o(t,r,e,n)}))}return a=a?a.then(n,n):n()}})}function L(t,e,r){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return{value:void 0,done:!0}}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var u=O(a,r);if(u){if(u===p)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var c=h(t,e,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===p)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}function O(t,e){var r=e.method,n=t.iterator[r];if(void 0===n)return e.delegate=null,"throw"===r&&t.iterator.return&&(e.method="return",e.arg=void 0,O(t,e),"throw"===e.method)||"return"!==r&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+r+"' method")),p;var o=h(n,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,p;var i=o.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,p):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,p)}function j(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function S(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function _(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(j,this),this.reset(!0)}function k(t){if(t){var e=t[u];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,o=function e(){for(;++n<t.length;)if(r.call(t,n))return e.value=t[n],e.done=!1,e;return e.value=void 0,e.done=!0,e};return o.next=o}}return{next:P}}function P(){return{value:void 0,done:!0}}return v.prototype=y,n(w,"constructor",{value:y,configurable:!0}),n(y,"constructor",{value:v,configurable:!0}),v.displayName=l(y,f,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===v||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,y):(t.__proto__=y,l(t,f,"GeneratorFunction")),t.prototype=Object.create(w),t},t.awrap=function(t){return{__await:t}},x(E.prototype),l(E.prototype,c,(function(){return this})),t.AsyncIterator=E,t.async=function(e,r,n,o,i){void 0===i&&(i=Promise);var a=new E(s(e,r,n,o),i);return t.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},x(w),l(w,f,"Generator"),l(w,u,(function(){return this})),l(w,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},t.values=k,_.prototype={constructor:_,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(S),!t)for(var e in this)"t"===e.charAt(0)&&r.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function n(r,n){return a.type="throw",a.arg=t,e.next=r,n&&(e.method="next",e.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(u&&c){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,p):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),p},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),S(r),p}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;S(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:k(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),p}},t}function u(t,e,r,n,o,i,a){try{var u=t[i](a),c=u.value}catch(t){return void r(t)}u.done?e(c):Promise.resolve(c).then(n,o)}function c(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function a(t){u(i,n,o,a,c,"next",t)}function c(t){u(i,n,o,a,c,"throw",t)}a(void 0)}))}}r.nc=btoa((0,o.IH)()),window.TESTING||null!==(n=OC)&&void 0!==n&&null!==(n=n.config)&&void 0!==n&&n.no_unsupported_browser_warning||window.addEventListener("DOMContentLoaded",c(a().mark((function t(){return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,Promise.all([r.e(7874),r.e(7816)]).then(r.bind(r,77816));case 2:(0,t.sent.testSupportedBrowser)();case 5:case"end":return t.stop()}}),t)}))))}},o={};function i(t){var e=o[t];if(void 0!==e)return e.exports;var r=o[t]={id:t,loaded:!1,exports:{}};return n[t].call(r.exports,r,r.exports,i),r.loaded=!0,r.exports}i.m=n,t=[],i.O=function(e,r,n,o){if(!r){var a=1/0;for(l=0;l<t.length;l++){r=t[l][0],n=t[l][1],o=t[l][2];for(var u=!0,c=0;c<r.length;c++)(!1&o||a>=o)&&Object.keys(i.O).every((function(t){return i.O[t](r[c])}))?r.splice(c--,1):(u=!1,o<a&&(a=o));if(u){t.splice(l--,1);var f=n();void 0!==f&&(e=f)}}return e}o=o||0;for(var l=t.length;l>0&&t[l-1][2]>o;l--)t[l]=t[l-1];t[l]=[r,n,o]},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,{a:e}),e},i.d=function(t,e){for(var r in e)i.o(e,r)&&!i.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},i.f={},i.e=function(t){return Promise.all(Object.keys(i.f).reduce((function(e,r){return i.f[r](t,e),e}),[]))},i.u=function(t){return t+"-"+t+".js?v=65431bc18b0fe13cdaff"},i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e={},r="nextcloud:",i.l=function(t,n,o,a){if(e[t])e[t].push(n);else{var u,c;if(void 0!==o)for(var f=document.getElementsByTagName("script"),l=0;l<f.length;l++){var s=f[l];if(s.getAttribute("src")==t||s.getAttribute("data-webpack")==r+o){u=s;break}}u||(c=!0,(u=document.createElement("script")).charset="utf-8",u.timeout=120,i.nc&&u.setAttribute("nonce",i.nc),u.setAttribute("data-webpack",r+o),u.src=t),e[t]=[n];var h=function(r,n){u.onerror=u.onload=null,clearTimeout(p);var o=e[t];if(delete e[t],u.parentNode&&u.parentNode.removeChild(u),o&&o.forEach((function(t){return t(n)})),r)return r(n)},p=setTimeout(h.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=h.bind(null,u.onerror),u.onload=h.bind(null,u.onload),c&&document.head.appendChild(u)}},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.nmd=function(t){return t.paths=[],t.children||(t.children=[]),t},i.j=8876,function(){var t;i.g.importScripts&&(t=i.g.location+"");var e=i.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var r=e.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&!t;)t=r[n--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),i.p=t}(),function(){i.b=document.baseURI||self.location.href;var t={8876:0};i.f.j=function(e,r){var n=i.o(t,e)?t[e]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise((function(r,o){n=t[e]=[r,o]}));r.push(n[2]=o);var a=i.p+i.u(e),u=new Error;i.l(a,(function(r){if(i.o(t,e)&&(0!==(n=t[e])&&(t[e]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;u.message="Loading chunk "+e+" failed.\n("+o+": "+a+")",u.name="ChunkLoadError",u.type=o,u.request=a,n[1](u)}}),"chunk-"+e,e)}},i.O.j=function(e){return 0===t[e]};var e=function(e,r){var n,o,a=r[0],u=r[1],c=r[2],f=0;if(a.some((function(e){return 0!==t[e]}))){for(n in u)i.o(u,n)&&(i.m[n]=u[n]);if(c)var l=c(i)}for(e&&e(r);f<a.length;f++)o=a[f],i.o(t,o)&&t[o]&&t[o][0](),t[o]=0;return i.O(l)},r=self.webpackChunknextcloud=self.webpackChunknextcloud||[];r.forEach(e.bind(null,0)),r.push=e.bind(null,r.push.bind(r))}(),i.nc=void 0;var a=i.O(void 0,[7874],(function(){return i(66592)}));a=i.O(a)}();
-//# sourceMappingURL=core-unsupported-browser-redirect.js.map?v=809df72ced18854c9deb \ No newline at end of file
+!function(){"use strict";var t,e,r,n={66592:function(t,e,r){var n,o=r(77958);function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}function a(){a=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n=Object.defineProperty||function(t,e,r){t[e]=r.value},o="function"==typeof Symbol?Symbol:{},u=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",f=o.toStringTag||"@@toStringTag";function l(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{l({},"")}catch(t){l=function(t,e,r){return t[e]=r}}function s(t,e,r,o){var i=e&&e.prototype instanceof d?e:d,a=Object.create(i.prototype),u=new _(o||[]);return n(a,"_invoke",{value:L(t,r,u)}),a}function h(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=s;var p={};function d(){}function v(){}function y(){}var g={};l(g,u,(function(){return this}));var m=Object.getPrototypeOf,b=m&&m(m(k([])));b&&b!==e&&r.call(b,u)&&(g=b);var w=y.prototype=d.prototype=Object.create(g);function x(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function E(t,e){function o(n,a,u,c){var f=h(t[n],t,a);if("throw"!==f.type){var l=f.arg,s=l.value;return s&&"object"==i(s)&&r.call(s,"__await")?e.resolve(s.__await).then((function(t){o("next",t,u,c)}),(function(t){o("throw",t,u,c)})):e.resolve(s).then((function(t){l.value=t,u(l)}),(function(t){return o("throw",t,u,c)}))}c(f.arg)}var a;n(this,"_invoke",{value:function(t,r){function n(){return new e((function(e,n){o(t,r,e,n)}))}return a=a?a.then(n,n):n()}})}function L(t,e,r){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return{value:void 0,done:!0}}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var u=O(a,r);if(u){if(u===p)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var c=h(t,e,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===p)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}function O(t,e){var r=e.method,n=t.iterator[r];if(void 0===n)return e.delegate=null,"throw"===r&&t.iterator.return&&(e.method="return",e.arg=void 0,O(t,e),"throw"===e.method)||"return"!==r&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+r+"' method")),p;var o=h(n,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,p;var i=o.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,p):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,p)}function j(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function S(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function _(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(j,this),this.reset(!0)}function k(t){if(t){var e=t[u];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,o=function e(){for(;++n<t.length;)if(r.call(t,n))return e.value=t[n],e.done=!1,e;return e.value=void 0,e.done=!0,e};return o.next=o}}return{next:P}}function P(){return{value:void 0,done:!0}}return v.prototype=y,n(w,"constructor",{value:y,configurable:!0}),n(y,"constructor",{value:v,configurable:!0}),v.displayName=l(y,f,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===v||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,y):(t.__proto__=y,l(t,f,"GeneratorFunction")),t.prototype=Object.create(w),t},t.awrap=function(t){return{__await:t}},x(E.prototype),l(E.prototype,c,(function(){return this})),t.AsyncIterator=E,t.async=function(e,r,n,o,i){void 0===i&&(i=Promise);var a=new E(s(e,r,n,o),i);return t.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},x(w),l(w,f,"Generator"),l(w,u,(function(){return this})),l(w,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},t.values=k,_.prototype={constructor:_,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(S),!t)for(var e in this)"t"===e.charAt(0)&&r.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function n(r,n){return a.type="throw",a.arg=t,e.next=r,n&&(e.method="next",e.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(u&&c){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,p):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),p},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),S(r),p}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;S(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:k(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),p}},t}function u(t,e,r,n,o,i,a){try{var u=t[i](a),c=u.value}catch(t){return void r(t)}u.done?e(c):Promise.resolve(c).then(n,o)}function c(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function a(t){u(i,n,o,a,c,"next",t)}function c(t){u(i,n,o,a,c,"throw",t)}a(void 0)}))}}r.nc=btoa((0,o.IH)()),window.TESTING||null!==(n=OC)&&void 0!==n&&null!==(n=n.config)&&void 0!==n&&n.no_unsupported_browser_warning||window.addEventListener("DOMContentLoaded",c(a().mark((function t(){return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,Promise.all([r.e(7874),r.e(7816)]).then(r.bind(r,77816));case 2:(0,t.sent.testSupportedBrowser)();case 5:case"end":return t.stop()}}),t)}))))}},o={};function i(t){var e=o[t];if(void 0!==e)return e.exports;var r=o[t]={id:t,loaded:!1,exports:{}};return n[t].call(r.exports,r,r.exports,i),r.loaded=!0,r.exports}i.m=n,t=[],i.O=function(e,r,n,o){if(!r){var a=1/0;for(l=0;l<t.length;l++){r=t[l][0],n=t[l][1],o=t[l][2];for(var u=!0,c=0;c<r.length;c++)(!1&o||a>=o)&&Object.keys(i.O).every((function(t){return i.O[t](r[c])}))?r.splice(c--,1):(u=!1,o<a&&(a=o));if(u){t.splice(l--,1);var f=n();void 0!==f&&(e=f)}}return e}o=o||0;for(var l=t.length;l>0&&t[l-1][2]>o;l--)t[l]=t[l-1];t[l]=[r,n,o]},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,{a:e}),e},i.d=function(t,e){for(var r in e)i.o(e,r)&&!i.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},i.f={},i.e=function(t){return Promise.all(Object.keys(i.f).reduce((function(e,r){return i.f[r](t,e),e}),[]))},i.u=function(t){return t+"-"+t+".js?v=3898b987dfee3f7fba52"},i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e={},r="nextcloud:",i.l=function(t,n,o,a){if(e[t])e[t].push(n);else{var u,c;if(void 0!==o)for(var f=document.getElementsByTagName("script"),l=0;l<f.length;l++){var s=f[l];if(s.getAttribute("src")==t||s.getAttribute("data-webpack")==r+o){u=s;break}}u||(c=!0,(u=document.createElement("script")).charset="utf-8",u.timeout=120,i.nc&&u.setAttribute("nonce",i.nc),u.setAttribute("data-webpack",r+o),u.src=t),e[t]=[n];var h=function(r,n){u.onerror=u.onload=null,clearTimeout(p);var o=e[t];if(delete e[t],u.parentNode&&u.parentNode.removeChild(u),o&&o.forEach((function(t){return t(n)})),r)return r(n)},p=setTimeout(h.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=h.bind(null,u.onerror),u.onload=h.bind(null,u.onload),c&&document.head.appendChild(u)}},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.nmd=function(t){return t.paths=[],t.children||(t.children=[]),t},i.j=8876,function(){var t;i.g.importScripts&&(t=i.g.location+"");var e=i.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var r=e.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&!t;)t=r[n--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),i.p=t}(),function(){i.b=document.baseURI||self.location.href;var t={8876:0};i.f.j=function(e,r){var n=i.o(t,e)?t[e]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise((function(r,o){n=t[e]=[r,o]}));r.push(n[2]=o);var a=i.p+i.u(e),u=new Error;i.l(a,(function(r){if(i.o(t,e)&&(0!==(n=t[e])&&(t[e]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;u.message="Loading chunk "+e+" failed.\n("+o+": "+a+")",u.name="ChunkLoadError",u.type=o,u.request=a,n[1](u)}}),"chunk-"+e,e)}},i.O.j=function(e){return 0===t[e]};var e=function(e,r){var n,o,a=r[0],u=r[1],c=r[2],f=0;if(a.some((function(e){return 0!==t[e]}))){for(n in u)i.o(u,n)&&(i.m[n]=u[n]);if(c)var l=c(i)}for(e&&e(r);f<a.length;f++)o=a[f],i.o(t,o)&&t[o]&&t[o][0](),t[o]=0;return i.O(l)},r=self.webpackChunknextcloud=self.webpackChunknextcloud||[];r.forEach(e.bind(null,0)),r.push=e.bind(null,r.push.bind(r))}(),i.nc=void 0;var a=i.O(void 0,[7874],(function(){return i(66592)}));a=i.O(a)}();
+//# sourceMappingURL=core-unsupported-browser-redirect.js.map?v=195e269a762c3ea46183 \ No newline at end of file
diff --git a/dist/core-unsupported-browser-redirect.js.map b/dist/core-unsupported-browser-redirect.js.map
index 946b17f22bb..f23c430bc8c 100644
--- a/dist/core-unsupported-browser-redirect.js.map
+++ b/dist/core-unsupported-browser-redirect.js.map
@@ -1 +1 @@
-{"version":3,"file":"core-unsupported-browser-redirect.js?v=809df72ced18854c9deb","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/core/src/unsupported-browser-redirect.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * @copyright 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { getRequestToken } from '@nextcloud/auth'\n\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = btoa(getRequestToken())\n\nif (!window.TESTING && !OC?.config?.no_unsupported_browser_warning) {\n\twindow.addEventListener('DOMContentLoaded', async function() {\n\t\tconst { testSupportedBrowser } = await import('./utils/RedirectUnsupportedBrowsers.js')\n\t\ttestSupportedBrowser()\n\t})\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + \"65431bc18b0fe13cdaff\" + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 8876;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t8876: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], function() { return __webpack_require__(66592); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","_regeneratorRuntime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","obj","key","desc","value","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","type","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","_typeof","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","state","Error","undefined","done","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","methodName","return","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","doneResult","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","arguments","apply","__webpack_nonce__","btoa","getRequestToken","window","TESTING","_OC","OC","config","no_unsupported_browser_warning","addEventListener","_callee","_context","testSupportedBrowser","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","module","id","loaded","__webpack_modules__","m","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","every","splice","r","n","getter","__esModule","d","a","definition","o","get","f","e","chunkId","all","reduce","promises","u","g","globalThis","this","Function","prop","l","url","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","target","head","appendChild","nmd","paths","children","scriptUrl","importScripts","location","currentScript","replace","p","b","baseURI","href","installedChunks","installedChunkData","promise","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"file":"core-unsupported-browser-redirect.js?v=195e269a762c3ea46183","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/core/src/unsupported-browser-redirect.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * @copyright 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { getRequestToken } from '@nextcloud/auth'\n\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = btoa(getRequestToken())\n\nif (!window.TESTING && !OC?.config?.no_unsupported_browser_warning) {\n\twindow.addEventListener('DOMContentLoaded', async function() {\n\t\tconst { testSupportedBrowser } = await import('./utils/RedirectUnsupportedBrowsers.js')\n\t\ttestSupportedBrowser()\n\t})\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + \"3898b987dfee3f7fba52\" + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 8876;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t8876: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], function() { return __webpack_require__(66592); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","_regeneratorRuntime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","obj","key","desc","value","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","type","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","_typeof","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","state","Error","undefined","done","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","methodName","return","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","doneResult","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","arguments","apply","__webpack_nonce__","btoa","getRequestToken","window","TESTING","_OC","OC","config","no_unsupported_browser_warning","addEventListener","_callee","_context","testSupportedBrowser","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","module","id","loaded","__webpack_modules__","m","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","every","splice","r","n","getter","__esModule","d","a","definition","o","get","f","e","chunkId","all","reduce","promises","u","g","globalThis","this","Function","prop","l","url","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","target","head","appendChild","nmd","paths","children","scriptUrl","importScripts","location","currentScript","replace","p","b","baseURI","href","installedChunks","installedChunkData","promise","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file
diff --git a/dist/core-unsupported-browser.js b/dist/core-unsupported-browser.js
index 1cb2582e107..3c396ca0eaa 100644
--- a/dist/core-unsupported-browser.js
+++ b/dist/core-unsupported-browser.js
@@ -1,3 +1,3 @@
/*! For license information please see core-unsupported-browser.js.LICENSE.txt */
-!function(){var e,u,r,t,n,d={77727:function(e){e.exports=[">0.25%","not ie 11","not op_mini all","not dead","Firefox ESR"]},27979:function(e,u,r){"use strict";var t=r(79753),n=r(20144),d=r(31e3),a=r.n(d),s=r(16262);const i=[{regex:/IE (\d+)\.(\d+)/,family:"ie",maxVersion:[7,1/0,1/0]},{regex:/Trident\/4\.0/,family:"ie",version:[8,0,0]},{regex:/Trident\/5\.0/,family:"ie",version:[9,0,0]},{regex:/Trident\/6\.0/,family:"ie",version:[10,0,0]},{regex:/Trident\/[78]\.0/,family:"ie",version:[11,0,0]},{regex:/Edge?\/(\d+)(\.(\d+)|)(\.(\d+)|)/,family:"edge"},{regex:/Firefox\/(\d+)\.(\d+)(\.(\d+)|)/,family:"firefox"},{regex:/Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)/,family:"chrome"},{regex:/Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))/,family:"chrome",maxVersion:[70,1/0,1/0]},{regex:/Maci.+ Version\/(\d+)\.(\d+)([.,](\d+)|)( \(\w+\)|)( Mobile\/\w+|) Safari\//,family:"safari"},{regex:/Opera\/9\.80.+Version\/(\d+)\.(\d+)(\.(\d+)|)/,family:"opera",maxVersion:[12,15,0]},{regex:/Chrome.+OPR\/(\d+)\.(\d+)\.(\d+)/,family:"opera",minVersion:[15,0,0]},{regex:/(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\d+)[_.](\d+)([_.](\d+)|)/,family:"ios_saf"},{regex:/[^e] (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\d+)[_.](\d+)([_.](\d+)|)/,family:"ios_saf",version:[7,0,3]},{regex:/Opera Mini/,family:"op_mini"},{regex:/Android Donut/,family:"android",version:[1,2,0]},{regex:/Android Eclair/,family:"android",version:[2,1,0]},{regex:/Android Froyo/,family:"android",version:[2,2,0]},{regex:/Android Gingerbread/,family:"android",version:[2,3,0]},{regex:/Android Honeycomb/,family:"android",version:[3,0,0]},{regex:/Android:?[ /-](\d+)(\.(\d+)|)(\.(\d+)|)/,family:"android"},{regex:/Android:?[ /-](\d+)(\.(\d+)|)(\.(\d+)|);(?! ARM; Trident)/,family:"android",version:[4,0,0]},{regex:/PlayBook.+RIM Tablet OS (\d+)\.(\d+)\.(\d+)/,family:"bb"},{regex:/(Black[bB]erry|BB10).+Version\/(\d+)\.(\d+)\.(\d+)/,family:"bb"},{regex:/Opera\/.+Opera Mobi.+Version\/(\d+)\.(\d+)/,family:"op_mob",maxVersion:[12,16,0]},{regex:/Mobile Safari.+OPR\/(\d+)\.(\d+)\.(\d+)/,family:"op_mob",minVersion:[14,0,0]},{regex:/Android.+Firefox\/(\d+)\.(\d+)(\.(\d+)|)/,family:"and_ff"},{regex:/Android.+Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)/,family:"and_chr"},{regex:/IEMobile[ /](\d+)\.(\d+)/,family:"ie_mob"},{regex:/Android.+(UC? ?Browser|UCWEB|U3)[ /]?(\d+)\.(\d+)\.(\d+)/,family:"and_uc"},{regex:/SamsungBrowser\/(\d+)\.(\d+)/,family:"samsung"},{regex:/Android.+MQQBrowser\/(\d+)(\.(\d+)|)(\.(\d+)|)/,family:"and_qq"},{regex:/baidubrowser[/\s](\d+)(\.(\d+)|)(\.(\d+)|)/,family:"baidu"},{regex:/K[Aa][Ii]OS\/(\d+)\.(\d+)(\.(\d+)|)/,family:"kaios"}];function o(e){return"number"==typeof e?e:1===e.length?e[0]:[e[0],e[e.length-1]]}var f;function c(e){const u=Array.isArray(e)?e:e.toString().split(".");if("all"===u[0])return[1/0,0,0];let r=null,t=null;const n=[0,0,0];for(let e=0;e<3;e++)if(r=u[e],void 0!==r){if(t="number"==typeof r?r:parseInt(r,10),isNaN(t))return null;n[e]=t}return n}function l(e,u,r){const[t,n,d]=e,[a,s,i]=u,{ignoreMinor:o,ignorePatch:f,allowHigherVersions:c}=r;if(a===1/0)return!0;const l=!o,v=l&&!f;return c?!(v&&d<i||l&&n<s)&&t>=a:!(v&&d!==i||l&&n!==s)&&t===a}function v(e,u,r=0){const t=e.length;for(let n=r;n<t;n++)if(e[n]!==u[n])return!1;return!0}function p(e){if(null===e||"object"!=typeof e)return e;const u=Array.isArray(e)?[]:{};let r;for(r in e)u[r]=p(e[r]);return u}function b(e){return[].concat(...e)}function h(...e){const u=b(e).filter(Boolean);return 1===u.length?u[0]:{type:"Alternative",expressions:u}}function m(e){return{type:"Char",kind:"simple",value:String(e),codePoint:NaN}}function y(e,u){return{type:"ClassRange",from:e,to:u}}function g(...e){return{type:"CharacterClass",expressions:b(e).filter(Boolean)}}function C(e){return{type:"Group",capturing:!0,expression:e,number:null}}function B(...e){const u=function(...e){const u=b(e).filter(Boolean);if(1===u.length)return u[0];const r={type:"Disjunction",left:null,right:u.pop()};return u.reduceRight(((e,u,r)=>0===r?(e.left=u,e):(e.left={type:"Disjunction",left:null,right:u},e.left)),r),r}(...e);return"Disjunction"===u.type?C(u):u}function _(){return{type:"Char",kind:"meta",value:"\\d",codePoint:NaN}}function x(e={type:"Quantifier",kind:"+",greedy:!0}){const u=function(e,u){return{type:"Repetition",expression:{type:"Char",kind:"meta",value:"\\d",codePoint:NaN},quantifier:u}}(0,e);return u}function w(e){return h(Array.from(String(e),m))}function A(e){if("Group"===e.type&&"Repetition"===e.expression.type){const{expression:u,quantifier:r}=e.expression;return"Char"===u.type&&"\\d"===u.value&&"+"===r.kind&&r.greedy}return!1}function S(e,u){return!(!e||"Char"!==e.type)&&(void 0===u||u instanceof RegExp&&u.test(e.value)||String(u)===e.value)}function j(e){if("CharacterClass"===e.type&&1===e.expressions.length){const[u]=e.expressions;return"ClassRange"===u.type&&S(u.from,/\d/)&&S(u.to,/\d/)}return!1}function k(e){return"RegExp"!==e.type&&"ClassRange"!==e.type&&"Quantifier"!==e.type}function E(e){return"string"==typeof e?s.parse(e.replace(/^([^/])/,"/$1").replace(/([^/])$/,"$1/")):e instanceof RegExp?s.parse(e):e}!function(e){e[e.Major=0]="Major",e[e.Minor=1]="Minor",e[e.Patch=2]="Patch"}(f||(f={}));const P=["RegExp","Disjunction","Alternative","Assertion","Char","CharacterClass","ClassRange","Backreference","Group","Repetition","Quantifier"];function O(e){const{every:u}=e;return u?"function"==typeof u?{"*":u,...e}:P.reduce(((r,t)=>{const n=e[t],d=n?"pre"in n?n.pre:n:null,a=n&&"post"in n?n.post:null;return r[t]={pre(e){return!1===u.pre(e)||!d||d(e)},post(e){return!1===u.post(e)||!a||a(e)}},r}),{}):e}function T(e){return Array.from(e.toString(),Number)}function N(e,u){const r=e+Number(!u);return 0===r?{type:"Char",kind:"meta",value:"\\d",codePoint:NaN}:9===r?m("9"):r>9?null:g(y(m(r),m("9")))}function R(e,u,r){if(u<e)return null;const t=m(e),n=m(u),d="number"==typeof r&&r>0?Array.from({length:r},(()=>m(0))):[];return(d.length?e=>h(d,e):e=>e)(e===u?t:0===e&&9===u?{type:"Char",kind:"meta",value:"\\d",codePoint:NaN}:u-e==1?g(t,n):g(y(t,n)))}function L(e,u,r=0){const t=T(e),n=t.length;if(e<10&&u<10||e===u)return[R(e,u,r-n)];const d=T(u);if(n!==d.length){const t=function(e,u){const r=[];let t=e,n=1;do{n*=10,t<n&&(r.push([t,Math.min(n-1,u)]),t=n)}while(n<=u);return r}(e,u),n=b(t.map((([e,u])=>L(e,u,r))));return n}const a=function(e,u){const r=e.length;if(r!==u.length||e[0]!==u[0])return null;let t=e[0].toString(),n=0,d=0,a="",s="";for(let i=1;i<r;i++)n=e[i],d=u[i],n===d?t+=n:(a+=n,s+=d);return[t,parseInt(a,10),parseInt(s,10)]}(t,d);if(Array.isArray(a)){const[e,u,r]=a,t=L(u,r,n-e.length);return[h(Array.from(e,m),B(t))]}const s=Array.from({length:n-1}),i=R(t[0]+1,d[0]-1);return[...s.map(((e,u)=>{const r=n-u-1,d=Number(u>0);return h(t.map(((e,u)=>u<r?m(e):R(u>r?0:e+d,9))))})),...i?[h(i,Array.from({length:n-1},(()=>({type:"Char",kind:"meta",value:"\\d",codePoint:NaN}))))]:[],...s.map(((e,u)=>{const r=n-u-1,t=Number(u>0);return h(d.map(((e,u)=>u<r?m(e):R(0,u>r?9:e-t))))}))].reduce(((e,u)=>{const r=e[e.length-1];if(r&&"Alternative"===u.type&&"Alternative"===r.type&&u.expressions.length===r.expressions.length){const t=r.expressions.reduceRight(((e,r,t)=>{if(!e)return e;const n=(d=r,a=u.expressions[t],S(d)&&S(a)&&d.value===a.value?a:S(d,/\d/)&&j(a)&&Number(a.expressions[0].from.value)-Number(d.value)==1?{...a,expressions:[{...a.expressions[0],from:d}]}:j(d)&&S(a,/\d/)&&Number(a.value)-Number(d.expressions[0].to.value)==1?{...d,expressions:[{...d.expressions[0],to:a}]}:null);var d,a;return n?(e.unshift(n),e):null}),[]);t&&(u.expressions=t,e.pop())}return e.push(u),e}),[])}function D(e,u=1/0){return e===1/0?x():B(u===1/0?function(e){if(0===e)return[x()];const u=T(e),r=u.length,t=x(function(e,u){return{type:"Quantifier",kind:"Range",from:e,to:void 0,greedy:!0}}(r+1)),n=r-1;if(e/Math.pow(10,n)===u[0])return[h(N(u[0],!0),Array.from({length:n},_)),t];const d=u.reduce(((e,t,n)=>{const d=r-n-1,a=0===n;let s=m("");const i=u.reduce(((e,u,r)=>{if(r<d)e.push(m(u));else if(s)if(r>d)e.push({type:"Char",kind:"meta",value:"\\d",codePoint:NaN});else{if(s=N(u,a),!s)return[];e.push(s)}return e}),[]);return i.length&&e.push(i),e}),[]).map((e=>h(e)));return d.push(t),d}(e):L(e,u))}function F(e,u){const r=E(e),t=Math.min(function(e){const u=E(e);let r=0;return s.traverse(u,{Group(e){A(e.node)&&r++}}),r}(r),u||1/0),n=[];let d=0,a=!1;return s.traverse(r,O({every:{pre({node:e,parent:u}){return e===r||!!k(e)&&(u===r&&(a=!1),d<t)},post({node:e,parent:u}){e!==r&&u===r&&k(e)&&(a||d>0&&d<t)&&n.push(e)}},Group(e){return!(A(e.node)&&d<t&&(a=!0,d++,1))}})),1!==n.length||A(n[0])?n:F(n[0],t)}function I(e,u,r){const{allowHigherVersions:t}=r,n=E(e),d=t&&u.length?[u[0]]:u,a=d.reduce(((e,u)=>Math.max(e,function(e,u){const{ignoreMinor:r,ignorePatch:t,allowZeroSubversions:n}=u;let d=r?1:t?2:3;if(n)for(let u=d-1;u>0&&0===e[u]&&1!==d;u--)d--;return d}(u,r))),1),i=F(n,a),o=B(...d.map((e=>function(e,u){const{ignoreMinor:r,ignorePatch:t,allowHigherVersions:n}=u,d=e[0]===1/0?0:r?1:t?2:3;if(n){const u=[];let r=!0,t=0,n=0;const a=e=>(u,r)=>r>=d?x():(n=Array.isArray(u)?u[0]:u,r<e?w(n):r>e?x():D(n+t));for(let n=d-1;n>=0;n--)r&&!e[n]||(r=!1,u.push(e.map(a(n))),t=1);return u}return[e.map(((e,u)=>u>=d?x():Array.isArray(e)?D(e[0],e[1]):w(e)))]}(e,r).map((e=>function(e,u,r){let t=E(e);const n="number"==typeof r&&r<u.length?u.slice(0,r):u.slice();return s.traverse(t,O({every(){return Boolean(n.length)},Group(e){return!A(e.node)||!n.length||(t===e.node?t=n.shift():e.replace(n.shift()),!1)}})),t}(h(p(i)),e,a))))));return s.traverse(n,O({every(e){return!!i.length&&(e.node===i[0]&&(1===i.length?e.replace(o):e.remove(),i.shift()),!0)}})),n}const M={ignoreMinor:!1,ignorePatch:!0,allowZeroSubversions:!1,allowHigherVersions:!1};function U(e={}){const u={...M,...e};return function(e,u){return e.map((({regex:e,version:r,maxVersion:t,matchedVersions:n,...d})=>{let a=E(e);return r||(a=I(a,function(e){if(e.length<2)return e;const u=e.length+1,r=[];let t=null,n=e[0],d=[n[f.Major]],a=[n[f.Minor]],s=[n[f.Patch]],i=null;for(let c=1;c<u;c++){t=e[c-1],n=e[c]||[];for(let e=f.Major;e<=f.Patch;e++){if((e===i||null===i)&&t[e]+1===n[e]&&v(t,n,e+1)){i=e,e===f.Major?d.push(n[f.Major]):d=n[f.Major],e===f.Minor?a.push(n[f.Minor]):a=n[f.Minor],e===f.Patch?s.push(n[f.Patch]):s=n[f.Patch];break}if(i===e||t[e]!==n[e]){r.push([o(d),o(a),o(s)]),d=[n[f.Major]],a=[n[f.Minor]],s=[n[f.Patch]],i=null;break}}}return r}(n),{...u,allowHigherVersions:!t&&u.allowHigherVersions})),{regex:null,sourceRegex:e,regexAst:a,version:r,maxVersion:t,matchedVersions:n,...d}}))}(function(e,u,r=i){const t=[];let n="",d=!1;return r.forEach((r=>{const a=e.get(r.family);if(!a)return;let{version:s,minVersion:i,maxVersion:o}=r;s&&(i=s,o=s);let f=function(e,u,r,t){const n={...t,allowHigherVersions:!0},d=u=>l(u,e,n),a=e=>l(u,e,n),s=e&&u?e=>d(e)&&a(e):e?d:u?a:()=>!0;return r.filter(s)}(i,o,a,u);f.length&&(n===r.family&&d&&(s=void 0,i=void 0,o=void 0,f=a,t.pop()),t.push({...r,version:s,minVersion:i,maxVersion:o,requestVersions:a,matchedVersions:f})),d=!s&&!i&&!o,n=r.family})),t}(function(e){const u=new Map;return e.forEach((({family:e,version:r})=>{const t=u.get(e);if(t){const e=r.join(".");t.every((u=>u.join(".")!==e))&&t.push(r)}else u.set(e,[r])})),u.forEach((e=>{e.sort(((e,u)=>{for(const r in e)if(e[r]!==u[r])return e[r]-u[r];return 0}))})),u}(function(e={}){const{browsers:u,...r}=e;return d(u,r).reduce(((e,u)=>{const[r,t,n]=u.split(/ |-/),d=c(t);return(d?n?function(e,u){let r=0;const t=[];for(let t=2;t>=0;t--)if(e[t]!==u[t]){r=t;break}for(let n=e[r],d=u[r];n<=d;n++)t.push(e.map(((e,u)=>u===r?n:e)));return t}(d,c(n)):[d]:[]).reduce(((e,u)=>(u&&e.push({family:r,version:u}),e)),e)}),[])}(u)),u),u)}var G,H=r(77727),V=r.n(H),q=(function(e={}){!function(e){const u=e.map((({regexAst:e})=>C(e.body)));var r;"string"==typeof(r=function(e){const u=s.optimize(E((r=e,"string"==typeof r?r:r instanceof RegExp?r.toString():s.generate(r)))).getAST();var r;return s.traverse(u,{Group(e){const{parent:u,node:r}=e,{expression:t}=r;r.capturing=!0,("RegExp"===u.type||"Disjunction"!==t.type&&"Repetition"!==u.type||"Disjunction"===t.type&&"Disjunction"===u.type)&&e.replace(e.node.expression)}}),u}({type:"RegExp",body:B(u),flags:""}))?new RegExp(r):new RegExp(s.generate(r.body),r.flags)}(U(e))}({allowHigherVersions:!0,browsers:V()}),a()(V())),$=(0,r(62556).getBuilder)("core").clearOnLogout().persist().build(),Q=r(77958),W=r(17499),K=null===(G=(0,Q.ts)())?(0,W.IY)().setApp("core").build():(0,W.IY)().setApp("core").setUid(G.uid).build(),Z=(r(23085).lW,"unsupported-browser-ignore"),z=((0,t.generateUrl)("/unsupported"),$.getItem(Z),r(31352)),Y=r(10861),X=r.n(Y),J=r(93455),ee=r.n(J),ue=r(97859),re=r(23085).lW;function te(e){return te="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},te(e)}function ne(){ne=function(){return e};var e={},u=Object.prototype,r=u.hasOwnProperty,t=Object.defineProperty||function(e,u,r){e[u]=r.value},n="function"==typeof Symbol?Symbol:{},d=n.iterator||"@@iterator",a=n.asyncIterator||"@@asyncIterator",s=n.toStringTag||"@@toStringTag";function i(e,u,r){return Object.defineProperty(e,u,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[u]}try{i({},"")}catch(e){i=function(e,u,r){return e[u]=r}}function o(e,u,r,n){var d=u&&u.prototype instanceof l?u:l,a=Object.create(d.prototype),s=new A(n||[]);return t(a,"_invoke",{value:B(e,r,s)}),a}function f(e,u,r){try{return{type:"normal",arg:e.call(u,r)}}catch(e){return{type:"throw",arg:e}}}e.wrap=o;var c={};function l(){}function v(){}function p(){}var b={};i(b,d,(function(){return this}));var h=Object.getPrototypeOf,m=h&&h(h(S([])));m&&m!==u&&r.call(m,d)&&(b=m);var y=p.prototype=l.prototype=Object.create(b);function g(e){["next","throw","return"].forEach((function(u){i(e,u,(function(e){return this._invoke(u,e)}))}))}function C(e,u){function n(t,d,a,s){var i=f(e[t],e,d);if("throw"!==i.type){var o=i.arg,c=o.value;return c&&"object"==te(c)&&r.call(c,"__await")?u.resolve(c.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):u.resolve(c).then((function(e){o.value=e,a(o)}),(function(e){return n("throw",e,a,s)}))}s(i.arg)}var d;t(this,"_invoke",{value:function(e,r){function t(){return new u((function(u,t){n(e,r,u,t)}))}return d=d?d.then(t,t):t()}})}function B(e,u,r){var t="suspendedStart";return function(n,d){if("executing"===t)throw new Error("Generator is already running");if("completed"===t){if("throw"===n)throw d;return{value:void 0,done:!0}}for(r.method=n,r.arg=d;;){var a=r.delegate;if(a){var s=_(a,r);if(s){if(s===c)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===t)throw t="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);t="executing";var i=f(e,u,r);if("normal"===i.type){if(t=r.done?"completed":"suspendedYield",i.arg===c)continue;return{value:i.arg,done:r.done}}"throw"===i.type&&(t="completed",r.method="throw",r.arg=i.arg)}}}function _(e,u){var r=u.method,t=e.iterator[r];if(void 0===t)return u.delegate=null,"throw"===r&&e.iterator.return&&(u.method="return",u.arg=void 0,_(e,u),"throw"===u.method)||"return"!==r&&(u.method="throw",u.arg=new TypeError("The iterator does not provide a '"+r+"' method")),c;var n=f(t,e.iterator,u.arg);if("throw"===n.type)return u.method="throw",u.arg=n.arg,u.delegate=null,c;var d=n.arg;return d?d.done?(u[e.resultName]=d.value,u.next=e.nextLoc,"return"!==u.method&&(u.method="next",u.arg=void 0),u.delegate=null,c):d:(u.method="throw",u.arg=new TypeError("iterator result is not an object"),u.delegate=null,c)}function x(e){var u={tryLoc:e[0]};1 in e&&(u.catchLoc=e[1]),2 in e&&(u.finallyLoc=e[2],u.afterLoc=e[3]),this.tryEntries.push(u)}function w(e){var u=e.completion||{};u.type="normal",delete u.arg,e.completion=u}function A(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(x,this),this.reset(!0)}function S(e){if(e){var u=e[d];if(u)return u.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var t=-1,n=function u(){for(;++t<e.length;)if(r.call(e,t))return u.value=e[t],u.done=!1,u;return u.value=void 0,u.done=!0,u};return n.next=n}}return{next:j}}function j(){return{value:void 0,done:!0}}return v.prototype=p,t(y,"constructor",{value:p,configurable:!0}),t(p,"constructor",{value:v,configurable:!0}),v.displayName=i(p,s,"GeneratorFunction"),e.isGeneratorFunction=function(e){var u="function"==typeof e&&e.constructor;return!!u&&(u===v||"GeneratorFunction"===(u.displayName||u.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,i(e,s,"GeneratorFunction")),e.prototype=Object.create(y),e},e.awrap=function(e){return{__await:e}},g(C.prototype),i(C.prototype,a,(function(){return this})),e.AsyncIterator=C,e.async=function(u,r,t,n,d){void 0===d&&(d=Promise);var a=new C(o(u,r,t,n),d);return e.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},g(y),i(y,s,"Generator"),i(y,d,(function(){return this})),i(y,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var u=Object(e),r=[];for(var t in u)r.push(t);return r.reverse(),function e(){for(;r.length;){var t=r.pop();if(t in u)return e.value=t,e.done=!1,e}return e.done=!0,e}},e.values=S,A.prototype={constructor:A,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(w),!e)for(var u in this)"t"===u.charAt(0)&&r.call(this,u)&&!isNaN(+u.slice(1))&&(this[u]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var u=this;function t(r,t){return a.type="throw",a.arg=e,u.next=r,t&&(u.method="next",u.arg=void 0),!!t}for(var n=this.tryEntries.length-1;n>=0;--n){var d=this.tryEntries[n],a=d.completion;if("root"===d.tryLoc)return t("end");if(d.tryLoc<=this.prev){var s=r.call(d,"catchLoc"),i=r.call(d,"finallyLoc");if(s&&i){if(this.prev<d.catchLoc)return t(d.catchLoc,!0);if(this.prev<d.finallyLoc)return t(d.finallyLoc)}else if(s){if(this.prev<d.catchLoc)return t(d.catchLoc,!0)}else{if(!i)throw new Error("try statement without catch or finally");if(this.prev<d.finallyLoc)return t(d.finallyLoc)}}}},abrupt:function(e,u){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc<=this.prev&&r.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var d=n;break}}d&&("break"===e||"continue"===e)&&d.tryLoc<=u&&u<=d.finallyLoc&&(d=null);var a=d?d.completion:{};return a.type=e,a.arg=u,d?(this.method="next",this.next=d.finallyLoc,c):this.complete(a)},complete:function(e,u){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&u&&(this.next=u),c},finish:function(e){for(var u=this.tryEntries.length-1;u>=0;--u){var r=this.tryEntries[u];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),w(r),c}},catch:function(e){for(var u=this.tryEntries.length-1;u>=0;--u){var r=this.tryEntries[u];if(r.tryLoc===e){var t=r.completion;if("throw"===t.type){var n=t.arg;w(r)}return n}}throw new Error("illegal catch attempt")},delegateYield:function(e,u,r){return this.delegate={iterator:S(e),resultName:u,nextLoc:r},"next"===this.method&&(this.arg=void 0),c}},e}function de(e,u,r,t,n,d,a){try{var s=e[d](a),i=s.value}catch(e){return void r(e)}s.done?u(i):Promise.resolve(i).then(t,n)}function ae(e,u){(null==u||u>e.length)&&(u=e.length);for(var r=0,t=new Array(u);r<u;r++)t[r]=e[r];return t}K.debug("Supported browsers",{supportedBrowsers:q});var se={name:"UnsupportedBrowser",components:{Web:ue.default,NcButton:X(),NcEmptyContent:ee()},data:function(){return{agents:{}}},computed:{isMobile:function(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)},filteredSupportedBrowsers:function(){var e=this;return q.filter((function(u){return!!u&&(e.isMobile?e.isMobileBrowser(u):!e.isMobileBrowser(u))}))},formattedBrowsersList:function(){var e=this,u={};return this.filteredSupportedBrowsers.forEach((function(e){var r,t,n=(r=e.split(" "),t=2,function(e){if(Array.isArray(e))return e}(r)||function(e,u){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var t,n,d,a,s=[],i=!0,o=!1;try{if(d=(r=r.call(e)).next,0===u){if(Object(r)!==r)return;i=!1}else for(;!(i=(t=d.call(r)).done)&&(s.push(t.value),s.length!==u);i=!0);}catch(e){o=!0,n=e}finally{try{if(!i&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(o)throw n}}return s}}(r,t)||function(e,u){if(e){if("string"==typeof e)return ae(e,u);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ae(e,u):void 0}}(r,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),d=n[0],a=n[1];(!u[d]||u[d]<parseFloat(a,10))&&(u[d]=parseFloat(a,10))})),Object.keys(u).map((function(r){var t,n;if(null===(t=e.agents[r])||void 0===t||!t.browser)return null;var d=u[r],a=null===(n=e.agents[r])||void 0===n?void 0:n.browser;return e.t("core","{name} version {version} and above",{name:a,version:d})})).filter((function(e){return null!==e}))}},beforeMount:function(){var e,u=this;return(e=ne().mark((function e(){var t,n;return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.e(614).then(r.t.bind(r,90614,19));case 2:t=e.sent,n=t.agents,u.agents=n;case 5:case"end":return e.stop()}}),e)})),function(){var u=this,r=arguments;return new Promise((function(t,n){var d=e.apply(u,r);function a(e){de(d,t,n,a,s,"next",e)}function s(e){de(d,t,n,a,s,"throw",e)}a(void 0)}))})()},methods:{t:z.Iu,n:z.uN,forceBrowsing:function(){$.setItem(Z,!0);var e=new URLSearchParams(window.location.search);if(e.has("redirect_url")){var u=re.from(e.get("redirect_url"),"base64").toString()||"/";if(u.startsWith("/"))return void(window.location=(0,t.generateUrl)(u))}window.location=(0,t.generateUrl)("/")},isMobileBrowser:function(e){return(e=e.toLowerCase()).includes("and_")||e.includes("android")||e.includes("ios_")||e.includes("mobile")||e.includes("_mob")||e.includes("samsung")}}},ie=se,oe=r(93379),fe=r.n(oe),ce=r(7795),le=r.n(ce),ve=r(90569),pe=r.n(ve),be=r(3565),he=r.n(be),me=r(19216),ye=r.n(me),ge=r(44589),Ce=r.n(ge),Be=r(19608),_e={};_e.styleTagTransform=Ce(),_e.setAttributes=he(),_e.insert=pe().bind(null,"head"),_e.domAPI=le(),_e.insertStyleElement=ye(),fe()(Be.Z,_e),Be.Z&&Be.Z.locals&&Be.Z.locals;var xe=(0,r(51900).Z)(ie,(function(){var e=this,u=e._self._c;return u("div",{staticClass:"content-unsupported-browser guest-box"},[u("NcEmptyContent",{scopedSlots:e._u([{key:"icon",fn:function(){return[u("Web")]},proxy:!0},{key:"action",fn:function(){return[u("div",[u("h2",[e._v("\n\t\t\t\t\t"+e._s(e.t("core","Your browser is not supported. Please upgrade to a newer version or a supported one."))+"\n\t\t\t\t")]),e._v(" "),u("NcButton",{staticClass:"content-unsupported-browser__continue",attrs:{type:"primary"},on:{click:e.forceBrowsing}},[e._v("\n\t\t\t\t\t"+e._s(e.t("core","Continue with this unsupported browser"))+"\n\t\t\t\t")])],1),e._v(" "),u("ul",{staticClass:"content-unsupported-browser__list"},[u("h3",[e._v(e._s(e.t("core","Supported versions")))]),e._v(" "),e._l(e.formattedBrowsersList,(function(r){return u("li",{key:r},[e._v("\n\t\t\t\t\t"+e._s(r)+"\n\t\t\t\t")])}))],2)]},proxy:!0}])},[e._v("\n\t\t"+e._s(e.t("core","This browser is not supported"))+"\n\t\t")])],1)}),[],!1,null,"3c1e6192",null).exports;"true"===$.getItem(Z)&&(window.location=(0,t.generateUrl)("/")),new n.default({el:"#unsupported-browser",name:"UnsupportedBrowserRoot",render:function(e){return e(xe)}})},84660:function(e,u,r){var t=r(9667);function n(){}e.exports={loadQueries:function(){throw new t("Sharable configs are not supported in client-side build of Browserslist")},getStat:function(e){return e.stats},loadConfig:function(e){if(e.config)throw new t("Browserslist config are not supported in client-side build")},loadCountry:function(){throw new t("Country statistics are not supported in client-side build of Browserslist")},loadFeature:function(){throw new t("Supports queries are not available in client-side build of Browserslist")},currentNode:function(e,u){return e(["maintained node versions"],u)[0]},parseConfig:n,readConfig:n,findConfig:n,clearCaches:n,oldDataWarning:n,env:{}}},9667:function(e){function u(e){this.name="BrowserslistError",this.message=e,this.browserslist=!0,Error.captureStackTrace&&Error.captureStackTrace(this,u)}u.prototype=Error.prototype,e.exports=u},31e3:function(e,u,r){var t=r(76052),n=r(95459).agents,d=r(78864),a=r(72950),s=r(76250),i=r(9667),o=r(65723),f=r(84660),c="37";function l(e,u){return 0===(e+".").indexOf(u+".")}function v(e){return e.filter((function(e){return"string"==typeof e}))}function p(e){var u=e;return 3===e.split(".").length&&(u=e.split(".").slice(0,-1).join(".")),u}function b(e){return function(u){return e+" "+u}}function h(e){return parseInt(e.split(".")[0])}function m(e,u){if(0===e.length)return[];var r=y(e.map(h)),t=r[r.length-u];if(!t)return e;for(var n=[],d=e.length-1;d>=0&&!(t>h(e[d]));d--)n.unshift(e[d]);return n}function y(e){for(var u=[],r=0;r<e.length;r++)-1===u.indexOf(e[r])&&u.push(e[r]);return u}function g(e,u,r){for(var t in r)e[u+" "+t]=r[t]}function C(e,u){return u=parseFloat(u),">"===e?function(e){return parseFloat(e)>u}:">="===e?function(e){return parseFloat(e)>=u}:"<"===e?function(e){return parseFloat(e)<u}:function(e){return parseFloat(e)<=u}}function B(e){return parseInt(e)}function _(e,u){return e<u?-1:e>u?1:0}function x(e,u){return _(parseInt(e[0]),parseInt(u[0]))||_(parseInt(e[1]||"0"),parseInt(u[1]||"0"))||_(parseInt(e[2]||"0"),parseInt(u[2]||"0"))}function w(e,u){return void 0===(u=u.split(".").map(B))[1]&&(u[1]="x"),"<="===e?function(e){return A(e=e.split(".").map(B),u)<=0}:function(e){return A(e=e.split(".").map(B),u)>=0}}function A(e,u){return e[0]!==u[0]?e[0]<u[0]?-1:1:"x"===u[1]?0:e[1]!==u[1]?e[1]<u[1]?-1:1:0}function S(e,u){var r=function(e,u){return-1!==e.versions.indexOf(u)?u:!!M.versionAliases[e.name][u]&&M.versionAliases[e.name][u]}(e,u);return r||1===e.versions.length&&e.versions[0]}function j(e,u){return e/=1e3,Object.keys(n).reduce((function(r,t){var n=E(t,u);if(!n)return r;var d=Object.keys(n.releaseDate).filter((function(u){var r=n.releaseDate[u];return null!==r&&r>=e}));return r.concat(d.map(b(n.name)))}),[])}function k(e){return{name:e.name,versions:e.versions,released:e.released,releaseDate:e.releaseDate}}function E(e,u){if(e=e.toLowerCase(),e=M.aliases[e]||e,u.mobileToDesktop&&M.desktopNames[e]){var r=M.data[M.desktopNames[e]];if("android"===e)return n=k(M.data[e]),d=r,n.released=P(n.released,d.released),n.versions=P(n.versions,d.versions),n.released.forEach((function(e){void 0===n.releaseDate[e]&&(n.releaseDate[e]=d.releaseDate[e])})),n;var t=k(r);return t.name=e,t}var n,d;return M.data[e]}function P(e,u){var r=u.indexOf(c);return e.filter((function(e){return/^(?:[2-4]\.|[34]$)/.test(e)})).concat(u.slice(r))}function O(e,u){var r=E(e,u);if(!r)throw new i("Unknown browser "+e);return r}function T(e,u,r,t){var n=1;switch(u){case"android":if(t.mobileToDesktop)return e;var d=M.data.chrome.released;n=d.length-d.indexOf(c);break;case"op_mob":n=h(M.data.op_mob.released.slice(-1)[0])-14+1;break;default:return e}return r<=n?e.slice(-1):e.slice(n-1-r)}function N(e){return"string"==typeof e&&(e.indexOf("y")>=0||e.indexOf("a")>=0)}function R(e,u){return o(V,e).reduce((function(e,r,t){if(r.not&&0===t)throw new i("Write any browsers query (for instance, `defaults`) before `"+r.query+"`");var n=V[r.type].select.call(M,u,r).map((function(e){var r=e.split(" ");return"0"===r[1]?r[0]+" "+E(r[0],u).versions[0]:e}));if("and"===r.compose)return r.not?e.filter((function(e){return-1===n.indexOf(e)})):e.filter((function(e){return-1!==n.indexOf(e)}));if(r.not){var d={};return n.forEach((function(e){d[e]=!0})),e.filter((function(e){return!d[e]}))}return e.concat(n)}),[])}function L(e){return void 0===e&&(e={}),void 0===e.path&&(e.path=a.resolve?a.resolve("."):"."),e}function D(e,u){null==e&&(e=M.loadConfig(u)||M.defaults);return e}function F(e){if("string"!=typeof e&&!Array.isArray(e))throw new i("Browser queries must be an array or string. Got "+typeof e+".")}var I={};function M(e,u){F(e=D(e,u=L(u)));var r={ignoreUnknownVersions:u.ignoreUnknownVersions,dangerousExtend:u.dangerousExtend,mobileToDesktop:u.mobileToDesktop,path:u.path,env:u.env};f.oldDataWarning(M.data);var t=f.getStat(u,M.data);if(t)for(var n in r.customUsage={},t)g(r.customUsage,n,t[n]);var d=JSON.stringify([e,r]);if(I[d])return I[d];var a=y(R(e,r)).sort((function(e,u){if(e=e.split(" "),u=u.split(" "),e[0]===u[0]){var r=e[1].split("-")[0];return x(u[1].split("-")[0].split("."),r.split("."))}return _(e[0],u[0])}));return f.env.BROWSERSLIST_DISABLE_CACHE||(I[d]=a),a}function U(e,u){var r=M.nodeVersions.filter((function(e){return l(e,u.version)}));if(0===r.length){if(e.ignoreUnknownVersions)return[];throw new i("Unknown version "+u.version+" of Node.js")}return["node "+r[r.length-1]]}function G(e,u){var r=parseInt(u.year),t=parseInt(u.month||"01")-1,n=parseInt(u.day||"01");return j(Date.UTC(r,t,n,0,0,0),e)}function H(e,u){var r=parseFloat(u.coverage),t=M.usage.global;if(u.place)if(u.place.match(/^my\s+stats$/i)){if(!e.customUsage)throw new i("Custom usage statistics was not provided");t=e.customUsage}else{var n;n=2===u.place.length?u.place.toUpperCase():u.place.toLowerCase(),f.loadCountry(M.usage,n,M.data),t=M.usage[n]}for(var d,a=Object.keys(t).sort((function(e,u){return t[u]-t[e]})),s=0,o=[],c=0;c<a.length&&(d=a[c],0!==t[d])&&(s+=t[d],o.push(d),!(s>=r));c++);return o}M.parse=function(e,u){return F(e=D(e,u=L(u))),o(V,e)},M.cache={},M.data={},M.usage={global:{},custom:null},M.defaults=["> 0.5%","last 2 versions","Firefox ESR","not dead"],M.aliases={fx:"firefox",ff:"firefox",ios:"ios_saf",explorer:"ie",blackberry:"bb",explorermobile:"ie_mob",operamini:"op_mini",operamobile:"op_mob",chromeandroid:"and_chr",firefoxandroid:"and_ff",ucandroid:"and_uc",qqandroid:"and_qq"},M.desktopNames={and_chr:"chrome",and_ff:"firefox",ie_mob:"ie",android:"chrome"},M.versionAliases={},M.clearCaches=f.clearCaches,M.parseConfig=f.parseConfig,M.readConfig=f.readConfig,M.findConfig=f.findConfig,M.loadConfig=f.loadConfig,M.coverage=function(e,u){var r;if(void 0===u)r=M.usage.global;else if("my stats"===u){var t={};t.path=a.resolve?a.resolve("."):".";var n=f.getStat(t);if(!n)throw new i("Custom usage statistics was not provided");for(var d in r={},n)g(r,d,n[d])}else if("string"==typeof u)u=u.length>2?u.toLowerCase():u.toUpperCase(),f.loadCountry(M.usage,u,M.data),r=M.usage[u];else for(var s in"dataByBrowser"in u&&(u=u.dataByBrowser),r={},u)for(var o in u[s])r[s+" "+o]=u[s][o];return e.reduce((function(e,u){var t=r[u];return void 0===t&&(t=r[u.replace(/ \S+$/," 0")]),e+(t||0)}),0)};var V={last_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+major\s+versions?$/i,select:function(e,u){return Object.keys(n).reduce((function(r,t){var n=E(t,e);if(!n)return r;var d=m(n.released,u.versions);return d=T(d=d.map(b(n.name)),n.name,u.versions,e),r.concat(d)}),[])}},last_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+versions?$/i,select:function(e,u){return Object.keys(n).reduce((function(r,t){var n=E(t,e);if(!n)return r;var d=n.released.slice(-u.versions);return d=T(d=d.map(b(n.name)),n.name,u.versions,e),r.concat(d)}),[])}},last_electron_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+electron\s+major\s+versions?$/i,select:function(e,u){return m(Object.keys(s),u.versions).map((function(e){return"chrome "+s[e]}))}},last_node_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+node\s+major\s+versions?$/i,select:function(e,u){return m(M.nodeVersions,u.versions).map((function(e){return"node "+e}))}},last_browser_major_versions:{matches:["versions","browser"],regexp:/^last\s+(\d+)\s+(\w+)\s+major\s+versions?$/i,select:function(e,u){var r=O(u.browser,e),t=m(r.released,u.versions).map(b(r.name));return T(t,r.name,u.versions,e)}},last_electron_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+electron\s+versions?$/i,select:function(e,u){return Object.keys(s).slice(-u.versions).map((function(e){return"chrome "+s[e]}))}},last_node_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+node\s+versions?$/i,select:function(e,u){return M.nodeVersions.slice(-u.versions).map((function(e){return"node "+e}))}},last_browser_versions:{matches:["versions","browser"],regexp:/^last\s+(\d+)\s+(\w+)\s+versions?$/i,select:function(e,u){var r=O(u.browser,e),t=r.released.slice(-u.versions).map(b(r.name));return T(t,r.name,u.versions,e)}},unreleased_versions:{matches:[],regexp:/^unreleased\s+versions$/i,select:function(e){return Object.keys(n).reduce((function(u,r){var t=E(r,e);if(!t)return u;var n=t.versions.filter((function(e){return-1===t.released.indexOf(e)}));return n=n.map(b(t.name)),u.concat(n)}),[])}},unreleased_electron_versions:{matches:[],regexp:/^unreleased\s+electron\s+versions?$/i,select:function(){return[]}},unreleased_browser_versions:{matches:["browser"],regexp:/^unreleased\s+(\w+)\s+versions?$/i,select:function(e,u){var r=O(u.browser,e);return r.versions.filter((function(e){return-1===r.released.indexOf(e)})).map(b(r.name))}},last_years:{matches:["years"],regexp:/^last\s+(\d*.?\d+)\s+years?$/i,select:function(e,u){return j(Date.now()-31558432982.4*u.years,e)}},since_y:{matches:["year"],regexp:/^since (\d+)$/i,select:G},since_y_m:{matches:["year","month"],regexp:/^since (\d+)-(\d+)$/i,select:G},since_y_m_d:{matches:["year","month","day"],regexp:/^since (\d+)-(\d+)-(\d+)$/i,select:G},popularity:{matches:["sign","popularity"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%$/,select:function(e,u){var r=parseFloat(u.popularity),t=M.usage.global;return Object.keys(t).reduce((function(e,n){return">"===u.sign?t[n]>r&&e.push(n):"<"===u.sign?t[n]<r&&e.push(n):"<="===u.sign?t[n]<=r&&e.push(n):t[n]>=r&&e.push(n),e}),[])}},popularity_in_my_stats:{matches:["sign","popularity"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+my\s+stats$/,select:function(e,u){var r=parseFloat(u.popularity);if(!e.customUsage)throw new i("Custom usage statistics was not provided");var t=e.customUsage;return Object.keys(t).reduce((function(e,n){var d=t[n];return null==d||(">"===u.sign?d>r&&e.push(n):"<"===u.sign?d<r&&e.push(n):"<="===u.sign?d<=r&&e.push(n):d>=r&&e.push(n)),e}),[])}},popularity_in_config_stats:{matches:["sign","popularity","config"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/,select:function(e,u){var r=parseFloat(u.popularity),t=f.loadStat(e,u.config,M.data);if(t)for(var n in e.customUsage={},t)g(e.customUsage,n,t[n]);if(!e.customUsage)throw new i("Custom usage statistics was not provided");var d=e.customUsage;return Object.keys(d).reduce((function(e,t){var n=d[t];return null==n||(">"===u.sign?n>r&&e.push(t):"<"===u.sign?n<r&&e.push(t):"<="===u.sign?n<=r&&e.push(t):n>=r&&e.push(t)),e}),[])}},popularity_in_place:{matches:["sign","popularity","place"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+((alt-)?\w\w)$/,select:function(e,u){var r=parseFloat(u.popularity),t=u.place;t=2===t.length?t.toUpperCase():t.toLowerCase(),f.loadCountry(M.usage,t,M.data);var n=M.usage[t];return Object.keys(n).reduce((function(e,t){var d=n[t];return null==d||(">"===u.sign?d>r&&e.push(t):"<"===u.sign?d<r&&e.push(t):"<="===u.sign?d<=r&&e.push(t):d>=r&&e.push(t)),e}),[])}},cover:{matches:["coverage"],regexp:/^cover\s+(\d+|\d+\.\d+|\.\d+)%$/i,select:H},cover_in:{matches:["coverage","place"],regexp:/^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(my\s+stats|(alt-)?\w\w)$/i,select:H},supports:{matches:["feature"],regexp:/^supports\s+([\w-]+)$/,select:function(e,u){f.loadFeature(M.cache,u.feature);var r=M.cache[u.feature],t=[];for(var n in r){var d=E(n,e),a=e.mobileToDesktop&&n in M.desktopNames&&N(r[n][d.released.slice(-1)[0]]);d.versions.forEach((function(e){var u=r[n][e];void 0===u&&a&&(u=r[M.desktopNames[n]][e]),N(u)&&t.push(n+" "+e)}))}return t}},electron_range:{matches:["from","to"],regexp:/^electron\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,u){var r=p(u.from),t=p(u.to),n=parseFloat(u.from),d=parseFloat(u.to);if(!s[r])throw new i("Unknown version "+n+" of electron");if(!s[t])throw new i("Unknown version "+d+" of electron");return Object.keys(s).filter((function(e){var u=parseFloat(e);return u>=n&&u<=d})).map((function(e){return"chrome "+s[e]}))}},node_range:{matches:["from","to"],regexp:/^node\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,u){return M.nodeVersions.filter(w(">=",u.from)).filter(w("<=",u.to)).map((function(e){return"node "+e}))}},browser_range:{matches:["browser","from","to"],regexp:/^(\w+)\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,u){var r=O(u.browser,e),t=parseFloat(S(r,u.from)||u.from),n=parseFloat(S(r,u.to)||u.to);return r.released.filter((function(e){var u=parseFloat(e);return u>=t&&u<=n})).map(b(r.name))}},electron_ray:{matches:["sign","version"],regexp:/^electron\s*(>=?|<=?)\s*([\d.]+)$/i,select:function(e,u){var r=p(u.version);return Object.keys(s).filter(C(u.sign,r)).map((function(e){return"chrome "+s[e]}))}},node_ray:{matches:["sign","version"],regexp:/^node\s*(>=?|<=?)\s*([\d.]+)$/i,select:function(e,u){return M.nodeVersions.filter((r=u.sign,t=u.version,(t=t.split(".").map(B))[1]=t[1]||0,t[2]=t[2]||0,">"===r?function(e){return x(e=e.split(".").map(B),t)>0}:">="===r?function(e){return x(e=e.split(".").map(B),t)>=0}:"<"===r?function(e){return e=e.split(".").map(B),x(t,e)>0}:function(e){return e=e.split(".").map(B),x(t,e)>=0})).map((function(e){return"node "+e}));var r,t}},browser_ray:{matches:["browser","sign","version"],regexp:/^(\w+)\s*(>=?|<=?)\s*([\d.]+)$/,select:function(e,u){var r=u.version,t=O(u.browser,e),n=M.versionAliases[t.name][r];return n&&(r=n),t.released.filter(C(u.sign,r)).map((function(e){return t.name+" "+e}))}},firefox_esr:{matches:[],regexp:/^(firefox|ff|fx)\s+esr$/i,select:function(){return["firefox 102","firefox 115"]}},opera_mini_all:{matches:[],regexp:/(operamini|op_mini)\s+all/i,select:function(){return["op_mini all"]}},electron_version:{matches:["version"],regexp:/^electron\s+([\d.]+)$/i,select:function(e,u){var r=p(u.version),t=s[r];if(!t)throw new i("Unknown version "+u.version+" of electron");return["chrome "+t]}},node_major_version:{matches:["version"],regexp:/^node\s+(\d+)$/i,select:U},node_minor_version:{matches:["version"],regexp:/^node\s+(\d+\.\d+)$/i,select:U},node_patch_version:{matches:["version"],regexp:/^node\s+(\d+\.\d+\.\d+)$/i,select:U},current_node:{matches:[],regexp:/^current\s+node$/i,select:function(e){return[f.currentNode(R,e)]}},maintained_node:{matches:[],regexp:/^maintained\s+node\s+versions$/i,select:function(e){var u=Date.now();return R(Object.keys(d).filter((function(e){return u<Date.parse(d[e].end)&&u>Date.parse(d[e].start)&&(r=e.slice(1),M.nodeVersions.some((function(e){return l(e,r)})));var r})).map((function(e){return"node "+e.slice(1)})),e)}},phantomjs_1_9:{matches:[],regexp:/^phantomjs\s+1.9$/i,select:function(){return["safari 5"]}},phantomjs_2_1:{matches:[],regexp:/^phantomjs\s+2.1$/i,select:function(){return["safari 6"]}},browser_version:{matches:["browser","version"],regexp:/^(\w+)\s+(tp|[\d.]+)$/i,select:function(e,u){var r=u.version;/^tp$/i.test(r)&&(r="TP");var t=O(u.browser,e),n=S(t,r);if(n)r=n;else{if(!(n=S(t,n=-1===r.indexOf(".")?r+".0":r.replace(/\.0$/,"")))){if(e.ignoreUnknownVersions)return[];throw new i("Unknown version "+r+" of "+u.browser)}r=n}return[t.name+" "+r]}},browserslist_config:{matches:[],regexp:/^browserslist config$/i,select:function(e){return M(void 0,e)}},extends:{matches:["config"],regexp:/^extends (.+)$/i,select:function(e,u){return R(f.loadQueries(e,u.config),e)}},defaults:{matches:[],regexp:/^defaults$/i,select:function(e){return R(M.defaults,e)}},dead:{matches:[],regexp:/^dead$/i,select:function(e){return R(["Baidu >= 0","ie <= 11","ie_mob <= 11","bb <= 10","op_mob <= 12.1","samsung 4"],e)}},unknown:{matches:[],regexp:/^(\w+)$/i,select:function(e,u){throw E(u.query,e)?new i("Specify versions in Browserslist query for browser "+u.query):(r=u.query,new i("Unknown browser query `"+r+"`. Maybe you are using old Browserslist or made typo in query."));var r}}};!function(){for(var e in n){var u=n[e];M.data[e]={name:e,versions:v(n[e].versions),released:v(n[e].versions.slice(0,-3)),releaseDate:n[e].release_date},g(M.usage.global,e,u.usage_global),M.versionAliases[e]={};for(var r=0;r<u.versions.length;r++){var d=u.versions[r];if(d&&-1!==d.indexOf("-"))for(var a=d.split("-"),s=0;s<a.length;s++)M.versionAliases[e][a[s]]=d}}M.nodeVersions=t.map((function(e){return e.version}))}(),e.exports=M},65723:function(e){var u=/^\s+and\s+(.*)/i,r=/^(?:,\s*|\s+or\s+)(.*)/i;function t(e){return Array.isArray(e)?e.reduce((function(e,u){return e.concat(t(u))}),[]):[e]}function n(e,u){var r={query:u};for(var t in 0===u.indexOf("not ")&&(r.not=!0,u=u.slice(4)),e){var n=e[t],d=u.match(n.regexp);if(d){r.type=t;for(var a=0;a<n.matches.length;a++)r[n.matches[a]]=d[a+1];return r}}return r.type="unknown",r}function d(e,t,d){var a;return function(e,u){for(var r=1,t=e.length;r<=t;r++)if(u(e.substr(-r,r),r,t))return e.slice(0,-r);return""}(t,(function(t,s,i){return u.test(t)?((a=n(e,t.match(u)[1])).compose="and",d.unshift(a),!0):r.test(t)?((a=n(e,t.match(r)[1])).compose="or",d.unshift(a),!0):s===i&&((a=n(e,t.trim())).compose="or",d.unshift(a),!0)}))}e.exports=function(e,u){return Array.isArray(u)||(u=[u]),t(u.map((function(u){var r=[];do{u=d(e,u,r)}while(u);return r})))}},66954:function(e){e.exports={A:{A:{K:0,F:0,G:.0326854,H:.0435805,A:0,B:.392224,JC:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","JC","K","F","G","H","A","B","","",""],E:"IE",F:{JC:962323200,K:998870400,F:1161129600,G:1237420800,H:1300060800,A:1346716800,B:1381968e3}},B:{A:{0:3.56904,C:0,L:0,M:0,I:.004259,N:0,D:.004259,O:.012777,P:0,Q:.004259,R:.004259,S:.004259,T:.008518,U:.004259,V:.004259,W:.004259,X:0,Y:.004259,Z:.004259,a:0,b:.012777,c:0,d:0,e:0,f:0,g:0,h:0,i:.008518,j:0,n:.008518,o:.008518,p:.004259,q:0,r:0,s:.004259,t:.008518,u:.012777,v:.076662,w:.021295,x:.029813,y:.579224,z:.745325,E:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","C","L","M","I","N","D","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","n","o","p","q","r","s","t","u","v","w","x","y","z","0","E","","",""],E:"Edge",F:{0:1685664e3,C:1438128e3,L:1447286400,M:1470096e3,I:1491868800,N:1508198400,D:1525046400,O:1542067200,P:1579046400,Q:1581033600,R:1586736e3,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:161136e4,Y:1614816e3,Z:1618358400,a:1622073600,b:1626912e3,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,n:1651190400,o:1653955200,p:1655942400,q:1659657600,r:1661990400,s:1664755200,t:1666915200,u:1670198400,v:1673481600,w:1675900800,x:1678665600,y:1680825600,z:1683158400,E:1689897600},D:{C:"ms",L:"ms",M:"ms",I:"ms",N:"ms",D:"ms",O:"ms"}},C:{A:{0:1.2564,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,KC:0,zB:0,J:0,K:0,F:0,G:0,H:0,A:0,B:.008518,C:0,L:0,M:0,I:0,N:0,D:0,O:0,k:0,l:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:.012777,PB:.004259,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:.051108,YB:0,ZB:0,aB:0,bB:.004259,cB:0,dB:0,"0B":.004259,eB:0,"1B":0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:.004259,mB:0,nB:0,oB:0,pB:.008518,m:0,qB:0,rB:0,sB:0,tB:0,uB:.051108,P:0,Q:0,R:0,"2B":0,S:0,T:.017036,U:0,V:0,W:.008518,X:.004259,Y:0,Z:0,a:.012777,b:0,c:0,d:.004259,e:0,f:0,g:0,h:0,i:0,j:0,n:0,o:.110734,p:.012777,q:0,r:.008518,s:.004259,t:.008518,u:.012777,v:.012777,w:.012777,x:.025554,y:.055367,z:.660145,E:.012777,"3B":0,"4B":0,LC:0,MC:0},B:"moz",C:["KC","zB","LC","MC","J","1","K","F","G","H","A","B","C","L","M","I","N","D","O","2","k","l","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","0B","eB","1B","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","m","qB","rB","sB","tB","uB","P","Q","R","2B","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","n","o","p","q","r","s","t","u","v","w","x","y","z","0","E","3B","4B",""],E:"Firefox",F:{0:1686009600,1:1308614400,2:1357603200,3:1368489600,4:1372118400,5:1375747200,6:1379376e3,7:1386633600,8:1391472e3,9:1395100800,KC:1161648e3,zB:1213660800,LC:124632e4,MC:1264032e3,J:1300752e3,K:1313452800,F:1317081600,G:1317081600,H:1320710400,A:1324339200,B:1327968e3,C:1331596800,L:1335225600,M:1338854400,I:1342483200,N:1346112e3,D:1349740800,O:1353628800,k:1361232e3,l:1364860800,AB:1398729600,BB:1402358400,CB:1405987200,DB:1409616e3,EB:1413244800,FB:1417392e3,GB:1421107200,HB:1424736e3,IB:1428278400,JB:1431475200,KB:1435881600,LB:1439251200,MB:144288e4,NB:1446508800,OB:1450137600,PB:1453852800,QB:1457395200,RB:1461628800,SB:1465257600,TB:1470096e3,UB:1474329600,VB:1479168e3,WB:1485216e3,XB:1488844800,YB:149256e4,ZB:1497312e3,aB:1502150400,bB:1506556800,cB:1510617600,dB:1516665600,"0B":1520985600,eB:1525824e3,"1B":1529971200,fB:1536105600,gB:1540252800,hB:1544486400,iB:154872e4,jB:1552953600,kB:1558396800,lB:1562630400,mB:1567468800,nB:1571788800,oB:1575331200,pB:1578355200,m:1581379200,qB:1583798400,rB:1586304e3,sB:1588636800,tB:1591056e3,uB:1593475200,P:1595894400,Q:1598313600,R:1600732800,"2B":1603152e3,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392e3,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536e3,n:1653955200,o:1656374400,p:1658793600,q:1661212800,r:1663632e3,s:1666051200,t:1668470400,u:1670889600,v:1673913600,w:1676332800,x:1678752e3,y:1681171200,z:1683590400,E:1688428800,"3B":null,"4B":null}},D:{A:{0:14.553,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,J:0,K:0,F:0,G:0,H:0,A:0,B:0,C:0,L:0,M:0,I:0,N:0,D:0,O:0,k:0,l:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:.008518,GB:0,HB:0,IB:0,JB:.017036,KB:0,LB:.012777,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:.008518,TB:.017036,UB:.038331,VB:.008518,WB:0,XB:.004259,YB:.008518,ZB:0,aB:.004259,bB:.051108,cB:0,dB:0,"0B":0,eB:.017036,"1B":.012777,fB:0,gB:.004259,hB:0,iB:.012777,jB:.029813,kB:.008518,lB:.025554,mB:.051108,nB:.04259,oB:.017036,pB:.025554,m:.012777,qB:.059626,rB:.059626,sB:.093698,tB:.025554,uB:.038331,P:.200173,Q:.051108,R:.051108,S:.110734,T:.029813,U:.089439,V:.072403,W:.089439,X:.046849,Y:.038331,Z:.055367,a:.089439,b:.038331,c:.17036,d:.034072,e:.021295,f:.025554,g:.025554,h:.063885,i:.055367,j:.046849,n:.04259,o:.051108,p:.268317,q:.063885,r:.076662,s:.051108,t:.059626,u:.149065,v:1.96766,w:.123511,x:.455713,y:.630332,z:3.9268,E:.021295,"3B":.021295,"4B":0,NC:0},B:"webkit",C:["","","","","","J","1","K","F","G","H","A","B","C","L","M","I","N","D","O","2","k","l","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","0B","eB","1B","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","m","qB","rB","sB","tB","uB","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","n","o","p","q","r","s","t","u","v","w","x","y","z","0","E","3B","4B","NC"],E:"Chrome",F:{0:1685404800,1:1274745600,2:1332892800,3:1343692800,4:1348531200,5:1352246400,6:1357862400,7:1361404800,8:1364428800,9:1369094400,J:1264377600,K:1283385600,F:1287619200,G:1291248e3,H:1296777600,A:1299542400,B:1303862400,C:1307404800,L:1312243200,M:1316131200,I:1316131200,N:1319500800,D:1323734400,O:1328659200,k:133704e4,l:1340668800,AB:1374105600,BB:1376956800,CB:1384214400,DB:1389657600,EB:1392940800,FB:1397001600,GB:1400544e3,HB:1405468800,IB:1409011200,JB:141264e4,KB:1416268800,LB:1421798400,MB:1425513600,NB:1429401600,OB:143208e4,PB:1437523200,QB:1441152e3,RB:1444780800,SB:1449014400,TB:1453248e3,UB:1456963200,VB:1460592e3,WB:1464134400,XB:1469059200,YB:1472601600,ZB:1476230400,aB:1480550400,bB:1485302400,cB:1489017600,dB:149256e4,"0B":1496707200,eB:1500940800,"1B":1504569600,fB:1508198400,gB:1512518400,hB:1516752e3,iB:1520294400,jB:1523923200,kB:1527552e3,lB:1532390400,mB:1536019200,nB:1539648e3,oB:1543968e3,pB:154872e4,m:1552348800,qB:1555977600,rB:1559606400,sB:1564444800,tB:1568073600,uB:1571702400,P:1575936e3,Q:1580860800,R:1586304e3,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272e3,a:1621987200,b:1626739200,c:1630368e3,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512e3,n:1650931200,o:1653350400,p:1655769600,q:1659398400,r:1661817600,s:1664236800,t:1666656e3,u:166968e4,v:1673308800,w:1675728e3,x:1678147200,y:1680566400,z:1682985600,E:1689724800,"3B":null,"4B":null,NC:null}},E:{A:{1:0,J:0,K:0,F:0,G:0,H:0,A:0,B:0,C:0,L:.025554,M:.12777,I:.029813,D:.008518,OC:0,"5B":0,PC:.008518,QC:0,RC:0,SC:.102216,"6B":0,vB:.008518,wB:.038331,"7B":.166101,TC:.332202,UC:.055367,"8B":.046849,"9B":.106475,xB:.191655,AC:.779397,yB:.080921,BC:.25554,CC:.289612,DC:.706994,EC:.498303,FC:2.00599,GC:.021295,VC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","OC","5B","J","1","PC","K","QC","F","RC","G","H","SC","A","6B","B","vB","C","wB","L","7B","M","TC","I","UC","8B","9B","xB","AC","yB","BC","CC","DC","EC","FC","GC","D","VC"],E:"Safari",F:{1:1275868800,OC:1205798400,"5B":1226534400,J:1244419200,PC:131112e4,K:1343174400,QC:13824e5,F:13824e5,RC:1410998400,G:1413417600,H:1443657600,SC:1458518400,A:1474329600,"6B":1490572800,B:1505779200,vB:1522281600,C:1537142400,wB:1553472e3,L:1568851200,"7B":1585008e3,M:1600214400,TC:1619395200,I:1632096e3,UC:1635292800,"8B":1639353600,"9B":1647216e3,xB:1652745600,AC:1658275200,yB:1662940800,BC:1666569600,CC:1670889600,DC:1674432e3,EC:1679875200,FC:1684368e3,GC:null,D:null,VC:null}},F:{A:{2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:.008518,H:0,B:.038331,C:0,I:0,N:0,D:0,O:0,k:0,l:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:.004259,MB:0,NB:0,OB:0,PB:0,QB:0,RB:.017036,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,m:0,qB:0,rB:0,sB:0,tB:0,uB:0,P:0,Q:0,R:0,"2B":0,S:0,T:0,U:.004259,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0,c:0,d:0,e:.059626,f:.012777,g:.021295,h:.664404,i:1.29048,j:.012777,WC:0,XC:0,YC:0,ZC:0,vB:0,HC:0,aC:0,wB:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","H","WC","XC","YC","ZC","B","vB","HC","aC","C","wB","I","N","D","O","2","k","l","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","m","qB","rB","sB","tB","uB","P","Q","R","2B","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","","",""],E:"Opera",F:{2:1390867200,3:1401753600,4:1405987200,5:1409616e3,6:1413331200,7:1417132800,8:1422316800,9:1425945600,H:1150761600,WC:1223424e3,XC:1251763200,YC:1267488e3,ZC:1277942400,B:1292457600,vB:1302566400,HC:1309219200,aC:1323129600,C:1323129600,wB:1352073600,I:1372723200,N:1377561600,D:1381104e3,O:1386288e3,k:1393891200,l:1399334400,AB:1430179200,BB:1433808e3,CB:1438646400,DB:1442448e3,EB:1445904e3,FB:1449100800,GB:1454371200,HB:1457308800,IB:146232e4,JB:1465344e3,KB:1470096e3,LB:1474329600,MB:1477267200,NB:1481587200,OB:1486425600,PB:1490054400,QB:1494374400,RB:1498003200,SB:1502236800,TB:1506470400,UB:1510099200,VB:1515024e3,WB:1517961600,XB:1521676800,YB:1525910400,ZB:1530144e3,aB:1534982400,bB:1537833600,cB:1543363200,dB:1548201600,eB:1554768e3,fB:1561593600,gB:1566259200,hB:1570406400,iB:1573689600,jB:1578441600,kB:1583971200,lB:1587513600,mB:1592956800,nB:1595894400,oB:1600128e3,pB:1603238400,m:161352e4,qB:1612224e3,rB:1616544e3,sB:1619568e3,tB:1623715200,uB:1627948800,P:1631577600,Q:1633392e3,R:1635984e3,"2B":1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152e3,Z:1660780800,a:1663113600,b:1668816e3,c:1668643200,d:1671062400,e:1675209600,f:1677024e3,g:1679529600,h:1681948800,i:1684195200,j:1687219200},D:{H:"o",B:"o",C:"o",WC:"o",XC:"o",YC:"o",ZC:"o",vB:"o",HC:"o",aC:"o",wB:"o"}},G:{A:{G:0,D:.0227641,"5B":0,bC:0,IC:.00303522,cC:.00303522,dC:.00455283,eC:.0121409,fC:.00455283,gC:.00910566,hC:.0440107,iC:.00455283,jC:.062222,kC:.0303522,lC:.0197289,mC:.0166937,nC:.321733,oC:.00910566,pC:.00910566,qC:.0227641,rC:.0773981,sC:.20336,tC:.374849,uC:.119891,"8B":.141138,"9B":.160867,xB:.239782,AC:.582762,yB:.648019,BC:1.23837,CC:.661678,DC:1.56617,EC:1.0259,FC:6.55152,GC:.0637396},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","5B","bC","IC","cC","dC","eC","G","fC","gC","hC","iC","jC","kC","lC","mC","nC","oC","pC","qC","rC","sC","tC","uC","8B","9B","xB","AC","yB","BC","CC","DC","EC","FC","GC","D",""],E:"Safari on iOS",F:{"5B":1270252800,bC:1283904e3,IC:1299628800,cC:1331078400,dC:1359331200,eC:1394409600,G:1410912e3,fC:1413763200,gC:1442361600,hC:1458518400,iC:1473724800,jC:1490572800,kC:1505779200,lC:1522281600,mC:1537142400,nC:1553472e3,oC:1568851200,pC:1572220800,qC:1580169600,rC:1585008e3,sC:1600214400,tC:1619395200,uC:1632096e3,"8B":1639353600,"9B":1647216e3,xB:1652659200,AC:1658275200,yB:1662940800,BC:1666569600,CC:1670889600,DC:1674432e3,EC:1679875200,FC:1684368e3,GC:null,D:null}},H:{A:{vC:.956597},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","vC","","",""],E:"Opera Mini",F:{vC:1426464e3}},I:{A:{zB:0,J:.0252848,E:0,wC:0,xC:.00842828,yC:0,zC:.0168566,IC:.092711,"0C":0,"1C":.252848},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","wC","xC","yC","zB","J","zC","IC","0C","1C","E","","",""],E:"Android Browser",F:{wC:1256515200,xC:1274313600,yC:1291593600,zB:1298332800,J:1318896e3,zC:1341792e3,IC:1374624e3,"0C":1386547200,"1C":1401667200,E:1690243200}},J:{A:{F:0,A:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","F","A","","",""],E:"Blackberry Browser",F:{F:1325376e3,A:1359504e3}},K:{A:{A:0,B:0,C:0,m:0,vB:0,HC:0,wB:0},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","vB","HC","C","wB","m","","",""],E:"Opera Mobile",F:{A:1287100800,B:1300752e3,vB:1314835200,HC:1318291200,C:1330300800,wB:1349740800,m:1673827200},D:{m:"webkit"}},L:{A:{E:38.2012},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","E","","",""],E:"Chrome for Android",F:{E:1690243200}},M:{A:{E:.281309},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","E","","",""],E:"Firefox for Android",F:{E:1688428800}},N:{A:{A:0,B:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","","",""],E:"IE Mobile",F:{A:1340150400,B:1353456e3}},O:{A:{xB:1.04486},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","xB","","",""],E:"UC Browser for Android",F:{xB:1687132800},D:{xB:"webkit"}},P:{A:{J:.156242,k:.229156,l:1.74991,"2C":0,"3C":0,"4C":.0520808,"5C":0,"6C":0,"6B":0,"7C":.0208323,"8C":0,"9C":.0208323,AD:.0208323,BD:.0104162,yB:.0416646,CD:.0416646,DD:.0416646,ED:.0833293},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","J","2C","3C","4C","5C","6C","6B","7C","8C","9C","AD","BD","yB","CD","DD","ED","k","l","","",""],E:"Samsung Internet",F:{J:1461024e3,"2C":1481846400,"3C":1509408e3,"4C":1528329600,"5C":1546128e3,"6C":1554163200,"6B":1567900800,"7C":1582588800,"8C":1593475200,"9C":1605657600,AD:1618531200,BD:1629072e3,yB:1640736e3,CD:1651708800,DD:1659657600,ED:1667260800,k:1677369600,l:1684454400}},Q:{A:{"7B":.155007},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","7B","","",""],E:"QQ Browser",F:{"7B":1663718400}},R:{A:{FD:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","FD","","",""],E:"Baidu Browser",F:{FD:1663027200}},S:{A:{GD:.103338,HD:0},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","GD","HD","","",""],E:"KaiOS Browser",F:{GD:1527811200,HD:1631664e3}}}},6974:function(e){e.exports={0:"114",1:"5",2:"19",3:"22",4:"23",5:"24",6:"25",7:"26",8:"27",9:"28",A:"10",B:"11",C:"12",D:"17",E:"115",F:"7",G:"8",H:"9",I:"15",J:"4",K:"6",L:"13",M:"14",N:"16",O:"18",P:"79",Q:"80",R:"81",S:"83",T:"84",U:"85",V:"86",W:"87",X:"88",Y:"89",Z:"90",a:"91",b:"92",c:"93",d:"94",e:"95",f:"96",g:"97",h:"98",i:"99",j:"100",k:"20",l:"21",m:"73",n:"101",o:"102",p:"103",q:"104",r:"105",s:"106",t:"107",u:"108",v:"109",w:"110",x:"111",y:"112",z:"113",AB:"29",BB:"30",CB:"31",DB:"32",EB:"33",FB:"34",GB:"35",HB:"36",IB:"37",JB:"38",KB:"39",LB:"40",MB:"41",NB:"42",OB:"43",PB:"44",QB:"45",RB:"46",SB:"47",TB:"48",UB:"49",VB:"50",WB:"51",XB:"52",YB:"53",ZB:"54",aB:"55",bB:"56",cB:"57",dB:"58",eB:"60",fB:"62",gB:"63",hB:"64",iB:"65",jB:"66",kB:"67",lB:"68",mB:"69",nB:"70",oB:"71",pB:"72",qB:"74",rB:"75",sB:"76",tB:"77",uB:"78",vB:"11.1",wB:"12.1",xB:"15.5",yB:"16.0",zB:"3","0B":"59","1B":"61","2B":"82","3B":"116","4B":"117","5B":"3.2","6B":"10.1","7B":"13.1","8B":"15.2-15.3","9B":"15.4",AC:"15.6",BC:"16.1",CC:"16.2",DC:"16.3",EC:"16.4",FC:"16.5",GC:"16.6",HC:"11.5",IC:"4.2-4.3",JC:"5.5",KC:"2",LC:"3.5",MC:"3.6",NC:"118",OC:"3.1",PC:"5.1",QC:"6.1",RC:"7.1",SC:"9.1",TC:"14.1",UC:"15.1",VC:"TP",WC:"9.5-9.6",XC:"10.0-10.1",YC:"10.5",ZC:"10.6",aC:"11.6",bC:"4.0-4.1",cC:"5.0-5.1",dC:"6.0-6.1",eC:"7.0-7.1",fC:"8.1-8.4",gC:"9.0-9.2",hC:"9.3",iC:"10.0-10.2",jC:"10.3",kC:"11.0-11.2",lC:"11.3-11.4",mC:"12.0-12.1",nC:"12.2-12.5",oC:"13.0-13.1",pC:"13.2",qC:"13.3",rC:"13.4-13.7",sC:"14.0-14.4",tC:"14.5-14.8",uC:"15.0-15.1",vC:"all",wC:"2.1",xC:"2.2",yC:"2.3",zC:"4.1","0C":"4.4","1C":"4.4.3-4.4.4","2C":"5.0-5.4","3C":"6.2-6.4","4C":"7.2-7.4","5C":"8.2","6C":"9.2","7C":"11.1-11.2","8C":"12.0","9C":"13.0",AD:"14.0",BD:"15.0",CD:"17.0",DD:"18.0",ED:"19.0",FD:"13.18",GD:"2.5",HD:"3.0-3.1"}},12757:function(e){e.exports={A:"ie",B:"edge",C:"firefox",D:"chrome",E:"safari",F:"opera",G:"ios_saf",H:"op_mini",I:"android",J:"bb",K:"op_mob",L:"and_chr",M:"and_ff",N:"ie_mob",O:"and_uc",P:"samsung",Q:"and_qq",R:"baidu",S:"kaios"}},95459:function(e,u,r){"use strict";const t=r(8833).browsers,n=r(28788).browserVersions,d=r(66954);function a(e){return Object.keys(e).reduce(((u,r)=>(u[n[r]]=e[r],u)),{})}e.exports.agents=Object.keys(d).reduce(((e,u)=>{let r=d[u];return e[t[u]]=Object.keys(r).reduce(((e,u)=>("A"===u?e.usage_global=a(r[u]):"C"===u?e.versions=r[u].reduce(((e,u)=>(""===u?e.push(null):e.push(n[u]),e)),[]):"D"===u?e.prefix_exceptions=a(r[u]):"E"===u?e.browser=r[u]:"F"===u?e.release_date=Object.keys(r[u]).reduce(((e,t)=>(e[n[t]]=r[u][t],e)),{}):e.prefix=r[u],e)),{}),e}),{})},28788:function(e,u,r){e.exports.browserVersions=r(6974)},8833:function(e,u,r){e.exports.browsers=r(12757)},19608:function(e,u,r){"use strict";var t=r(87537),n=r.n(t),d=r(23645),a=r.n(d)()(n());a.push([e.id,".content-unsupported-browser[data-v-3c1e6192]{display:flex;justify-content:center;width:400px;max-width:calc(90vw - 60px);margin:auto;padding:30px}.content-unsupported-browser .empty-content[data-v-3c1e6192]{margin:0}.content-unsupported-browser .empty-content[data-v-3c1e6192] .empty-content__icon{opacity:1}.content-unsupported-browser__continue[data-v-3c1e6192]{display:block;margin:30px auto}.content-unsupported-browser__list[data-v-3c1e6192]{margin-top:60px;margin-bottom:30px}.content-unsupported-browser__list li[data-v-3c1e6192]{text-align:left}","",{version:3,sources:["webpack://./core/src/views/UnsupportedBrowser.vue"],names:[],mappings:"AAGA,8CACC,YAAA,CACA,sBAAA,CACA,WAAA,CACA,2BAAA,CACA,WAAA,CACA,YARS,CAUT,6DACC,QAAA,CACA,kFACC,SAAA,CAIF,wDACC,aAAA,CACA,gBAAA,CAGD,oDACC,eAAA,CACA,kBAxBQ,CAyBR,uDACC,eAAA",sourcesContent:["\n$spacing: 30px;\n\n.content-unsupported-browser {\n\tdisplay: flex;\n\tjustify-content: center;\n\twidth: 400px;\n\tmax-width: calc(90vw - 2 * $spacing);\n\tmargin: auto;\n\tpadding: $spacing;\n\n\t.empty-content {\n\t\tmargin: 0;\n\t\t&::v-deep .empty-content__icon {\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t&__continue {\n\t\tdisplay: block;\n\t\tmargin: $spacing auto;\n\t}\n\n\t&__list {\n\t\tmargin-top: 2 * $spacing;\n\t\tmargin-bottom: $spacing;\n\t\tli {\n\t\t\ttext-align: left;\n\t\t}\n\t}\n}\n\n"],sourceRoot:""}]),u.Z=a},76250:function(e){e.exports={"0.20":"39",.21:"41",.22:"41",.23:"41",.24:"41",.25:"42",.26:"42",.27:"43",.28:"43",.29:"43","0.30":"44",.31:"45",.32:"45",.33:"45",.34:"45",.35:"45",.36:"47",.37:"49","1.0":"49",1.1:"50",1.2:"51",1.3:"52",1.4:"53",1.5:"54",1.6:"56",1.7:"58",1.8:"59","2.0":"61",2.1:"61","3.0":"66",3.1:"66","4.0":"69",4.1:"69",4.2:"69","5.0":"73","6.0":"76",6.1:"76","7.0":"78",7.1:"78",7.2:"78",7.3:"78","8.0":"80",8.1:"80",8.2:"80",8.3:"80",8.4:"80",8.5:"80","9.0":"83",9.1:"83",9.2:"83",9.3:"83",9.4:"83","10.0":"85",10.1:"85",10.2:"85",10.3:"85",10.4:"85","11.0":"87",11.1:"87",11.2:"87",11.3:"87",11.4:"87",11.5:"87","12.0":"89",12.1:"89",12.2:"89","13.0":"91",13.1:"91",13.2:"91",13.3:"91",13.4:"91",13.5:"91",13.6:"91","14.0":"93",14.1:"93",14.2:"93","15.0":"94",15.1:"94",15.2:"94",15.3:"94",15.4:"94",15.5:"94","16.0":"96",16.1:"96",16.2:"96","17.0":"98",17.1:"98",17.2:"98",17.3:"98",17.4:"98","18.0":"100",18.1:"100",18.2:"100",18.3:"100","19.0":"102",19.1:"102","20.0":"104",20.1:"104",20.2:"104",20.3:"104","21.0":"106",21.1:"106",21.2:"106",21.3:"106",21.4:"106","22.0":"108",22.1:"108",22.2:"108",22.3:"108","23.0":"110",23.1:"110",23.2:"110",23.3:"110","24.0":"112",24.1:"112",24.2:"112",24.3:"112",24.4:"112",24.5:"112",24.6:"112","25.0":"114",25.1:"114",25.2:"114",25.3:"114","26.0":"116"}},78355:function(e,u,r){"use strict";var t=r(1264),n=r(60045);e.exports={transform:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=u.length>0?u:Object.keys(t),d=void 0,a={};return r.forEach((function(u){if(!t.hasOwnProperty(u))throw new Error("Unknown compat-transform: "+u+". Available transforms are: "+Object.keys(t).join(", "));var r=t[u];d=n.transform(e,r),e=d.getAST(),"function"==typeof r.getExtra&&(a[u]=r.getExtra())})),d.setExtra(a),d}}},77460:function(e){"use strict";var u=function(){function e(e,u){for(var r=0;r<u.length;r++){var t=u[r];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}return function(u,r,t){return r&&e(u.prototype,r),t&&e(u,t),u}}(),r=function(){function e(u,r){var t=r.flags,n=r.groups,d=r.source;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._re=u,this._groups=n,this.flags=t,this.source=d||u.source,this.dotAll=t.includes("s"),this.global=u.global,this.ignoreCase=u.ignoreCase,this.multiline=u.multiline,this.sticky=u.sticky,this.unicode=u.unicode}return u(e,[{key:"test",value:function(e){return this._re.test(e)}},{key:"compile",value:function(e){return this._re.compile(e)}},{key:"toString",value:function(){return this._toStringResult||(this._toStringResult="/"+this.source+"/"+this.flags),this._toStringResult}},{key:"exec",value:function(e){var u=this._re.exec(e);if(!this._groups||!u)return u;for(var r in u.groups={},this._groups){var t=this._groups[r];u.groups[r]=u[t]}return u}}]),e}();e.exports={RegExpTree:r}},98708:function(e){"use strict";e.exports={_hasUFlag:!1,shouldRun:function(e){return!!e.flags.includes("s")&&(e.flags=e.flags.replace("s",""),this._hasUFlag=e.flags.includes("u"),!0)},Char:function(e){var u=e.node;if("meta"===u.kind&&"."===u.value){var r="\\uFFFF",t="￿";this._hasUFlag&&(r="\\u{10FFFF}",t="􏿿"),e.replace({type:"CharacterClass",expressions:[{type:"ClassRange",from:{type:"Char",value:"\\0",kind:"decimal",symbol:"\0"},to:{type:"Char",value:r,kind:"unicode",symbol:t}}]})}}}},305:function(e){"use strict";e.exports={_groupNames:{},init:function(){this._groupNames={}},getExtra:function(){return this._groupNames},Group:function(e){var u=e.node;u.name&&(this._groupNames[u.name]=u.number,delete u.name,delete u.nameRaw)},Backreference:function(e){var u=e.node;"name"===u.kind&&(u.kind="number",u.reference=u.number,delete u.referenceRaw)}}},96437:function(e){"use strict";e.exports={RegExp:function(e){var u=e.node;u.flags.includes("x")&&(u.flags=u.flags.replace("x",""))}}},1264:function(e,u,r){"use strict";e.exports={dotAll:r(98708),namedCapturingGroups:r(305),xFlag:r(96437)}},89702:function(e){"use strict";function u(e){return e?r[e.type](e):""}var r={RegExp:function(e){return"/"+u(e.body)+"/"+e.flags},Alternative:function(e){return(e.expressions||[]).map(u).join("")},Disjunction:function(e){return u(e.left)+"|"+u(e.right)},Group:function(e){var r=u(e.expression);return e.capturing?e.name?"(?<"+(e.nameRaw||e.name)+">"+r+")":"("+r+")":"(?:"+r+")"},Backreference:function(e){switch(e.kind){case"number":return"\\"+e.reference;case"name":return"\\k<"+(e.referenceRaw||e.reference)+">";default:throw new TypeError("Unknown Backreference kind: "+e.kind)}},Assertion:function(e){switch(e.kind){case"^":case"$":case"\\b":case"\\B":return e.kind;case"Lookahead":var r=u(e.assertion);return e.negative?"(?!"+r+")":"(?="+r+")";case"Lookbehind":var t=u(e.assertion);return e.negative?"(?<!"+t+")":"(?<="+t+")";default:throw new TypeError("Unknown Assertion kind: "+e.kind)}},CharacterClass:function(e){var r=e.expressions.map(u).join("");return e.negative?"[^"+r+"]":"["+r+"]"},ClassRange:function(e){return u(e.from)+"-"+u(e.to)},Repetition:function(e){return""+u(e.expression)+u(e.quantifier)},Quantifier:function(e){var u=void 0,r=e.greedy?"":"?";switch(e.kind){case"+":case"?":case"*":u=e.kind;break;case"Range":u=e.from===e.to?"{"+e.from+"}":e.to?"{"+e.from+","+e.to+"}":"{"+e.from+",}";break;default:throw new TypeError("Unknown Quantifier kind: "+e.kind)}return""+u+r},Char:function(e){var u=e.value;switch(e.kind){case"simple":return e.escaped?"\\"+u:u;case"hex":case"unicode":case"oct":case"decimal":case"control":case"meta":return u;default:throw new TypeError("Unknown Char kind: "+e.kind)}},UnicodeProperty:function(e){return"\\"+(e.negative?"P":"p")+"{"+(e.shorthand||e.binary?"":e.name+"=")+e.value+"}"}};e.exports={generate:u}},41693:function(e){"use strict";var u=function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,u){var r=[],t=!0,n=!1,d=void 0;try{for(var a,s=e[Symbol.iterator]();!(t=(a=s.next()).done)&&(r.push(a.value),!u||r.length!==u);t=!0);}catch(e){n=!0,d=e}finally{try{!t&&s.return&&s.return()}finally{if(n)throw d}}return r}(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")};function r(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var t=null;function n(e,u){if(!u)return!1;if(e.length!==u.length)return!1;for(var t=0;t<e.length;t++){var n=e[t],d=u[t];if(n.size!==d.size)return!1;if([].concat(r(n)).sort().join(",")!==[].concat(r(d)).sort().join(","))return!1}return!0}function d(e,u,r,t){var n=!0,d=!1,s=void 0;try{for(var i,o=t[Symbol.iterator]();!(n=(i=o.next()).done);n=!0)if(!a(e,u,r,i.value))return!1}catch(e){d=!0,s=e}finally{try{!n&&o.return&&o.return()}finally{if(d)throw s}}return!0}function a(e,u,r,n){if(!t[e]||!t[u])return!1;var d=r[e][n],a=r[u][n];return!d&&!a||t[e].has(d)&&t[u].has(a)}e.exports={minimize:function(e){var a=e.getTransitionTable(),s=Object.keys(a),i=e.getAlphabet(),o=e.getAcceptingStateNumbers();t={};var f=new Set;s.forEach((function(e){e=Number(e),o.has(e)?t[e]=o:(f.add(e),t[e]=f)}));var c=[[f,o].filter((function(e){return e.size>0}))],l=void 0,v=void 0;l=c[c.length-1],v=c[c.length-2];for(var p=function(){var e,u={},n=!0,s=!1,o=void 0;try{for(var f,p=l[Symbol.iterator]();!(n=(f=p.next()).done);n=!0){var b=f.value,h={},m=(e=b,Array.isArray(e)?e:Array.from(e)),y=m[0],g=m.slice(1);h[y]=new Set([y]);var C=!0,B=!1,_=void 0;try{e:for(var x,w=g[Symbol.iterator]();!(C=(x=w.next()).done);C=!0){var A=x.value,S=!0,j=!1,k=void 0;try{for(var E,P=Object.keys(h)[Symbol.iterator]();!(S=(E=P.next()).done);S=!0){var O=E.value;if(d(A,O,a,i)){h[O].add(A),h[A]=h[O];continue e}}}catch(e){j=!0,k=e}finally{try{!S&&P.return&&P.return()}finally{if(j)throw k}}h[A]=new Set([A])}}catch(e){B=!0,_=e}finally{try{!C&&w.return&&w.return()}finally{if(B)throw _}}Object.assign(u,h)}}catch(e){s=!0,o=e}finally{try{!n&&p.return&&p.return()}finally{if(s)throw o}}t=u;var T=new Set(Object.keys(u).map((function(e){return u[e]})));c.push([].concat(r(T))),l=c[c.length-1],v=c[c.length-2]};!n(l,v);)p();var b=new Map,h=1;l.forEach((function(e){return b.set(e,h++)}));var m={},y=new Set,g=function(e,u){var r=!0,t=!1,n=void 0;try{for(var d,a=e[Symbol.iterator]();!(r=(d=a.next()).done);r=!0){var s=d.value;o.has(s)&&y.add(u)}}catch(e){t=!0,n=e}finally{try{!r&&a.return&&a.return()}finally{if(t)throw n}}},C=!0,B=!1,_=void 0;try{for(var x,w=b.entries()[Symbol.iterator]();!(C=(x=w.next()).done);C=!0){var A=x.value,S=u(A,2),j=S[0],k=S[1];m[k]={};var E=!0,P=!1,O=void 0;try{for(var T,N=i[Symbol.iterator]();!(E=(T=N.next()).done);E=!0){var R=T.value;g(j,k);var L=void 0,D=!0,F=!1,I=void 0;try{for(var M,U=j[Symbol.iterator]();!(D=(M=U.next()).done);D=!0){var G=M.value;if(L=a[G][R])break}}catch(e){F=!0,I=e}finally{try{!D&&U.return&&U.return()}finally{if(F)throw I}}L&&(m[k][R]=b.get(t[L]))}}catch(e){P=!0,O=e}finally{try{!E&&N.return&&N.return()}finally{if(P)throw O}}}}catch(e){B=!0,_=e}finally{try{!C&&w.return&&w.return()}finally{if(B)throw _}}return e.setTransitionTable(m),e.setAcceptingStateNumbers(y),e}}},13158:function(e,u,r){"use strict";var t=function(){function e(e,u){for(var r=0;r<u.length;r++){var t=u[r];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}return function(u,r,t){return r&&e(u.prototype,r),t&&e(u,t),u}}();function n(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var d=r(41693),a=r(3341).EPSILON_CLOSURE,s=function(){function e(u){!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._nfa=u}return t(e,[{key:"minimize",value:function(){this.getTransitionTable(),this._originalAcceptingStateNumbers=this._acceptingStateNumbers,this._originalTransitionTable=this._transitionTable,d.minimize(this)}},{key:"getAlphabet",value:function(){return this._nfa.getAlphabet()}},{key:"getAcceptingStateNumbers",value:function(){return this._acceptingStateNumbers||this.getTransitionTable(),this._acceptingStateNumbers}},{key:"getOriginaAcceptingStateNumbers",value:function(){return this._originalAcceptingStateNumbers||this.getTransitionTable(),this._originalAcceptingStateNumbers}},{key:"setTransitionTable",value:function(e){this._transitionTable=e}},{key:"setAcceptingStateNumbers",value:function(e){this._acceptingStateNumbers=e}},{key:"getTransitionTable",value:function(){var e=this;if(this._transitionTable)return this._transitionTable;var u=this._nfa.getTransitionTable(),r=Object.keys(u);this._acceptingStateNumbers=new Set;for(var t=[u[r[0]][a]],d=this.getAlphabet(),s=this._nfa.getAcceptingStateNumbers(),i={},o=function(u){var r=!0,t=!1,n=void 0;try{for(var d,a=s[Symbol.iterator]();!(r=(d=a.next()).done);r=!0){var i=d.value;if(-1!==u.indexOf(i)){e._acceptingStateNumbers.add(u.join(","));break}}}catch(e){t=!0,n=e}finally{try{!r&&a.return&&a.return()}finally{if(t)throw n}}};t.length>0;){var f=t.shift(),c=f.join(",");i[c]={};var l=!0,v=!1,p=void 0;try{for(var b,h=d[Symbol.iterator]();!(l=(b=h.next()).done);l=!0){var m=b.value,y=[];o(f);var g=!0,C=!1,B=void 0;try{for(var _,x=f[Symbol.iterator]();!(g=(_=x.next()).done);g=!0){var w=u[_.value][m];if(w){var A=!0,S=!1,j=void 0;try{for(var k,E=w[Symbol.iterator]();!(A=(k=E.next()).done);A=!0){var P=k.value;u[P]&&y.push.apply(y,n(u[P][a]))}}catch(e){S=!0,j=e}finally{try{!A&&E.return&&E.return()}finally{if(S)throw j}}}}}catch(e){C=!0,B=e}finally{try{!g&&x.return&&x.return()}finally{if(C)throw B}}var O=new Set(y),T=[].concat(n(O));if(T.length>0){var N=T.join(",");i[c][m]=N,i.hasOwnProperty(N)||t.unshift(T)}}}catch(e){v=!0,p=e}finally{try{!l&&h.return&&h.return()}finally{if(v)throw p}}}return this._transitionTable=this._remapStateNumbers(i)}},{key:"_remapStateNumbers",value:function(e){var u={};this._originalTransitionTable=e;var r={};for(var t in Object.keys(e).forEach((function(e,r){u[e]=r+1})),e){var n=e[t],d={};for(var a in n)d[a]=u[n[a]];r[u[t]]=d}this._originalAcceptingStateNumbers=this._acceptingStateNumbers,this._acceptingStateNumbers=new Set;var s=!0,i=!1,o=void 0;try{for(var f,c=this._originalAcceptingStateNumbers[Symbol.iterator]();!(s=(f=c.next()).done);s=!0){var l=f.value;this._acceptingStateNumbers.add(u[l])}}catch(e){i=!0,o=e}finally{try{!s&&c.return&&c.return()}finally{if(i)throw o}}return r}},{key:"getOriginalTransitionTable",value:function(){return this._originalTransitionTable||this.getTransitionTable(),this._originalTransitionTable}},{key:"matches",value:function(e){for(var u=1,r=0,t=this.getTransitionTable();e[r];)if(!(u=t[u][e[r++]]))return!1;return!!this.getAcceptingStateNumbers().has(u)}}]),e}();e.exports=s},22722:function(e,u,r){"use strict";var t=r(95050),n=r(13158),d=r(39761),a=r(2970);e.exports={NFA:t,DFA:n,builders:a,toNFA:function(e){return d.build(e)},toDFA:function(e){return new n(this.toNFA(e))},test:function(e,u){return this.toDFA(e).matches(u)}}},2970:function(e,u,r){"use strict";var t=r(95050),n=r(81115),d=r(3341).EPSILON;function a(e){var u=new n,r=new n({accepting:!0});return new t(u.addTransition(e,r),r)}function s(e,u){return e.out.accepting=!1,u.out.accepting=!0,e.out.addTransition(d,u.in),new t(e.in,u.out)}function i(e,u){var r=new n,a=new n;return r.addTransition(d,e.in),r.addTransition(d,u.in),a.accepting=!0,e.out.accepting=!1,u.out.accepting=!1,e.out.addTransition(d,a),u.out.addTransition(d,a),new t(r,a)}e.exports={alt:function(e){for(var u=arguments.length,r=Array(u>1?u-1:0),t=1;t<u;t++)r[t-1]=arguments[t];var n=!0,d=!1,a=void 0;try{for(var i,o=r[Symbol.iterator]();!(n=(i=o.next()).done);n=!0)e=s(e,i.value)}catch(e){d=!0,a=e}finally{try{!n&&o.return&&o.return()}finally{if(d)throw a}}return e},char:a,e:function(){return a(d)},or:function(e){for(var u=arguments.length,r=Array(u>1?u-1:0),t=1;t<u;t++)r[t-1]=arguments[t];var n=!0,d=!1,a=void 0;try{for(var s,o=r[Symbol.iterator]();!(n=(s=o.next()).done);n=!0)e=i(e,s.value)}catch(e){d=!0,a=e}finally{try{!n&&o.return&&o.return()}finally{if(d)throw a}}return e},rep:function(e){return e.in.addTransition(d,e.out),e.out.addTransition(d,e.in),e},repExplicit:function(e){var u=new n,r=new n({accepting:!0});return u.addTransition(d,e.in),u.addTransition(d,r),e.out.accepting=!1,e.out.addTransition(d,r),r.addTransition(d,e.in),new t(u,r)},plusRep:function(e){return e.out.addTransition(d,e.in),e},questionRep:function(e){return e.in.addTransition(d,e.out),e}}},39761:function(e,u,r){"use strict";var t=r(37112),n=r(2970),d=n.alt,a=n.char,s=n.or,i=n.rep,o=n.plusRep,f=n.questionRep;function c(e){if(e&&!l[e.type])throw new Error(e.type+" is not supported in NFA/DFA interpreter.");return e?l[e.type](e):""}var l={RegExp:function(e){if(""!==e.flags)throw new Error("NFA/DFA: Flags are not supported yet.");return c(e.body)},Alternative:function(e){var u=(e.expressions||[]).map(c);return d.apply(void 0,function(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}(u))},Disjunction:function(e){return s(c(e.left),c(e.right))},Repetition:function(e){switch(e.quantifier.kind){case"*":return i(c(e.expression));case"+":return o(c(e.expression));case"?":return f(c(e.expression));default:throw new Error("Unknown repeatition: "+e.quantifier.kind+".")}},Char:function(e){if("simple"!==e.kind)throw new Error("NFA/DFA: Only simple chars are supported yet.");return a(e.value)},Group:function(e){return c(e.expression)}};e.exports={build:function(e){var u=e;return e instanceof RegExp&&(e=""+e),"string"==typeof e&&(u=t.parse(e,{captureLocations:!0})),c(u)}}},81115:function(e,u,r){"use strict";var t=function(){function e(e,u){for(var r=0;r<u.length;r++){var t=u[r];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}return function(u,r,t){return r&&e(u.prototype,r),t&&e(u,t),u}}(),n=r(74128),d=r(3341).EPSILON,a=function(e){function u(){return function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,u),function(e,u){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!u||"object"!=typeof u&&"function"!=typeof u?e:u}(this,(u.__proto__||Object.getPrototypeOf(u)).apply(this,arguments))}return function(e,u){if("function"!=typeof u&&null!==u)throw new TypeError("Super expression must either be null or a function, not "+typeof u);e.prototype=Object.create(u&&u.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),u&&(Object.setPrototypeOf?Object.setPrototypeOf(e,u):e.__proto__=u)}(u,e),t(u,[{key:"matches",value:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Set;if(u.has(this))return!1;if(u.add(this),0===e.length){if(this.accepting)return!0;var r=!0,t=!1,n=void 0;try{for(var a,s=this.getTransitionsOnSymbol(d)[Symbol.iterator]();!(r=(a=s.next()).done);r=!0)if(a.value.matches("",u))return!0}catch(e){t=!0,n=e}finally{try{!r&&s.return&&s.return()}finally{if(t)throw n}}return!1}var i=e[0],o=e.slice(1),f=this.getTransitionsOnSymbol(i),c=!0,l=!1,v=void 0;try{for(var p,b=f[Symbol.iterator]();!(c=(p=b.next()).done);c=!0)if(p.value.matches(o))return!0}catch(e){l=!0,v=e}finally{try{!c&&b.return&&b.return()}finally{if(l)throw v}}var h=!0,m=!1,y=void 0;try{for(var g,C=this.getTransitionsOnSymbol(d)[Symbol.iterator]();!(h=(g=C.next()).done);h=!0)if(g.value.matches(e,u))return!0}catch(e){m=!0,y=e}finally{try{!h&&C.return&&C.return()}finally{if(m)throw y}}return!1}},{key:"getEpsilonClosure",value:function(){var e=this;return this._epsilonClosure||function(){var u=e.getTransitionsOnSymbol(d),r=e._epsilonClosure=new Set;r.add(e);var t=!0,n=!1,a=void 0;try{for(var s,i=u[Symbol.iterator]();!(t=(s=i.next()).done);t=!0){var o=s.value;r.has(o)||(r.add(o),o.getEpsilonClosure().forEach((function(e){return r.add(e)})))}}catch(e){n=!0,a=e}finally{try{!t&&i.return&&i.return()}finally{if(n)throw a}}}(),this._epsilonClosure}}]),u}(n);e.exports=a},95050:function(e,u,r){"use strict";var t=function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,u){var r=[],t=!0,n=!1,d=void 0;try{for(var a,s=e[Symbol.iterator]();!(t=(a=s.next()).done)&&(r.push(a.value),!u||r.length!==u);t=!0);}catch(e){n=!0,d=e}finally{try{!t&&s.return&&s.return()}finally{if(n)throw d}}return r}(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")},n=function(){function e(e,u){for(var r=0;r<u.length;r++){var t=u[r];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}return function(u,r,t){return r&&e(u.prototype,r),t&&e(u,t),u}}(),d=r(3341),a=d.EPSILON,s=d.EPSILON_CLOSURE,i=function(){function e(u,r){!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this.in=u,this.out=r}return n(e,[{key:"matches",value:function(e){return this.in.matches(e)}},{key:"getAlphabet",value:function(){if(!this._alphabet){this._alphabet=new Set;var e=this.getTransitionTable();for(var u in e){var r=e[u];for(var t in r)t!==s&&this._alphabet.add(t)}}return this._alphabet}},{key:"getAcceptingStates",value:function(){return this._acceptingStates||this.getTransitionTable(),this._acceptingStates}},{key:"getAcceptingStateNumbers",value:function(){if(!this._acceptingStateNumbers){this._acceptingStateNumbers=new Set;var e=!0,u=!1,r=void 0;try{for(var t,n=this.getAcceptingStates()[Symbol.iterator]();!(e=(t=n.next()).done);e=!0){var d=t.value;this._acceptingStateNumbers.add(d.number)}}catch(e){u=!0,r=e}finally{try{!e&&n.return&&n.return()}finally{if(u)throw r}}}return this._acceptingStateNumbers}},{key:"getTransitionTable",value:function(){var e=this;if(!this._transitionTable){this._transitionTable={},this._acceptingStates=new Set;var u=new Set,r=new Set;!function n(d){if(!u.has(d)){u.add(d),d.number=u.size,e._transitionTable[d.number]={},d.accepting&&e._acceptingStates.add(d);var a=d.getTransitions(),s=!0,i=!1,o=void 0;try{for(var f,c=a[Symbol.iterator]();!(s=(f=c.next()).done);s=!0){var l=f.value,v=t(l,2),p=v[0],b=v[1],h=[];r.add(p);var m=!0,y=!1,g=void 0;try{for(var C,B=b[Symbol.iterator]();!(m=(C=B.next()).done);m=!0){var _=C.value;n(_),h.push(_.number)}}catch(e){y=!0,g=e}finally{try{!m&&B.return&&B.return()}finally{if(y)throw g}}e._transitionTable[d.number][p]=h}}catch(e){i=!0,o=e}finally{try{!s&&c.return&&c.return()}finally{if(i)throw o}}}}(this.in),u.forEach((function(u){delete e._transitionTable[u.number][a],e._transitionTable[u.number][s]=[].concat(function(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}(u.getEpsilonClosure())).map((function(e){return e.number}))}))}return this._transitionTable}}]),e}();e.exports=i},3341:function(e){"use strict";e.exports={EPSILON:"ε",EPSILON_CLOSURE:"ε*"}},74128:function(e){"use strict";var u=function(){function e(e,u){for(var r=0;r<u.length;r++){var t=u[r];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}return function(u,r,t){return r&&e(u.prototype,r),t&&e(u,t),u}}(),r=function(){function e(){var u=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).accepting,r=void 0!==u&&u;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._transitions=new Map,this.accepting=r}return u(e,[{key:"getTransitions",value:function(){return this._transitions}},{key:"addTransition",value:function(e,u){return this.getTransitionsOnSymbol(e).add(u),this}},{key:"getTransitionsOnSymbol",value:function(e){var u=this._transitions.get(e);return u||(u=new Set,this._transitions.set(e,u)),u}}]),e}();e.exports=r},47393:function(e,u,r){"use strict";var t=r(60689),n=r(37112),d=r(60045),a=r(55319);e.exports={optimize:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=u.whitelist,s=void 0===r?[]:r,i=u.blacklist,o=void 0===i?[]:i,f=(s.length>0?s:Array.from(a.keys())).filter((function(e){return!o.includes(e)})),c=e;e instanceof RegExp&&(e=""+e),"string"==typeof e&&(c=n.parse(e));var l=new d.TransformResult(c),v=void 0;do{v=l.toString(),c=t(l.getAST()),f.forEach((function(e){if(!a.has(e))throw new Error("Unknown optimization-transform: "+e+". Available transforms are: "+Array.from(a.keys()).join(", "));var u=a.get(e),r=d.transform(c,u);r.toString()!==l.toString()&&(r.toString().length<=l.toString().length?l=r:c=t(l.getAST()))}))}while(l.toString()!==v);return l}}},98327:function(e){"use strict";var u="A".codePointAt(0),r="Z".codePointAt(0);e.exports={_AZClassRanges:null,_hasUFlag:!1,init:function(e){this._AZClassRanges=new Set,this._hasUFlag=e.flags.includes("u")},shouldRun:function(e){return e.flags.includes("i")},Char:function(e){var t=e.node,n=e.parent;if(!isNaN(t.codePoint)&&(this._hasUFlag||!(t.codePoint>=4096))){if("ClassRange"===n.type){if(!(this._AZClassRanges.has(n)||(d=n,a=d.from,s=d.to,a.codePoint>=u&&a.codePoint<=r&&s.codePoint>=u&&s.codePoint<=r)))return;this._AZClassRanges.add(n)}var d,a,s,i=t.symbol.toLowerCase();i!==t.symbol&&(t.value=function(e,u){var r=e.codePointAt(0);if("decimal"===u.kind)return"\\"+r;if("oct"===u.kind)return"\\0"+r.toString(8);if("hex"===u.kind)return"\\x"+r.toString(16);if("unicode"===u.kind){if(u.isSurrogatePair){var t=function(e){var u=(e-65536)%1024+56320;return{lead:(Math.floor((e-65536)/1024)+55296).toString(16),trail:u.toString(16)}}(r),n=t.lead,d=t.trail;return"\\u"+"0".repeat(4-n.length)+n+"\\u"+"0".repeat(4-d.length)+d}if(u.value.includes("{"))return"\\u{"+r.toString(16)+"}";var a=r.toString(16);return"\\u"+"0".repeat(4-a.length)+a}return e}(i,t),t.symbol=i,t.codePoint=i.codePointAt(0))}}}},52445:function(e){"use strict";function u(e,u){var d=r(e),a=r(u);if(d===a){if("ClassRange"===e.type&&"ClassRange"!==u.type)return-1;if("ClassRange"===u.type&&"ClassRange"!==e.type)return 1;if("ClassRange"===e.type&&"ClassRange"===u.type)return r(e.to)-r(u.to);if(t(e)&&t(u)||n(e)&&n(u))return e.value<u.value?-1:1}return d-a}function r(e){return"Char"===e.type?"-"===e.value||"control"===e.kind?1/0:"meta"===e.kind&&isNaN(e.codePoint)?-1:e.codePoint:e.from.codePoint}function t(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return"Char"===e.type&&"meta"===e.kind&&(u?e.value===u:/^\\[dws]$/i.test(e.value))}function n(e){return"Char"===e.type&&"control"===e.kind}function d(e,u,r){for(var t=0;t<u.length;t++)if(a(e,u[t],r))return!0;return!1}function a(e,u,r){return"ClassRange"===e.type?a(e.from,u,r)&&a(e.to,u,r):!("\\S"!==u||!t(e,"\\w")&&!t(e,"\\d"))||!("\\D"!==u||!t(e,"\\W")&&!t(e,"\\s"))||!("\\w"!==u||!t(e,"\\d"))||!("\\W"!==u||!t(e,"\\s"))||"Char"===e.type&&!isNaN(e.codePoint)&&("\\s"===u?s(e):"\\S"===u?!s(e):"\\d"===u?i(e):"\\D"===u?!i(e):"\\w"===u?o(e,r):"\\W"===u&&!o(e,r))}function s(e){return 9===e.codePoint||10===e.codePoint||11===e.codePoint||12===e.codePoint||13===e.codePoint||32===e.codePoint||160===e.codePoint||5760===e.codePoint||e.codePoint>=8192&&e.codePoint<=8202||8232===e.codePoint||8233===e.codePoint||8239===e.codePoint||8287===e.codePoint||12288===e.codePoint||65279===e.codePoint}function i(e){return e.codePoint>=48&&e.codePoint<=57}function o(e,u){return i(e)||e.codePoint>=65&&e.codePoint<=90||e.codePoint>=97&&e.codePoint<=122||"_"===e.value||u&&(383===e.codePoint||8490===e.codePoint)}function f(e,u){if(u&&"ClassRange"===u.type){if(l(e,u))return!0;if(p(e)&&u.to.codePoint===e.codePoint-1)return u.to=e,!0;if("ClassRange"===e.type&&e.from.codePoint<=u.to.codePoint+1&&e.to.codePoint>=u.from.codePoint-1)return e.from.codePoint<u.from.codePoint&&(u.from=e.from),e.to.codePoint>u.to.codePoint&&(u.to=e.to),!0}return!1}function c(e,u){return!(!u||"ClassRange"!==u.type||!p(e)||u.from.codePoint!==e.codePoint+1||(u.from=e,0))}function l(e,u){return("Char"!==e.type||!isNaN(e.codePoint))&&("ClassRange"===e.type?l(e.from,u)&&l(e.to,u):e.codePoint>=u.from.codePoint&&e.codePoint<=u.to.codePoint)}function v(e,u,r){if(!p(e))return 0;for(var t=0;u>0;){var n=r[u],d=r[u-1];if(!p(d)||d.codePoint!==n.codePoint-1)break;t++,u--}return t>1?(r[u]={type:"ClassRange",from:r[u],to:e},t):0}function p(e){return e&&"Char"===e.type&&!isNaN(e.codePoint)&&(o(e,!1)||"unicode"===e.kind||"hex"===e.kind||"oct"===e.kind||"decimal"===e.kind)}e.exports={_hasIUFlags:!1,init:function(e){this._hasIUFlags=e.flags.includes("i")&&e.flags.includes("u")},CharacterClass:function(e){var r=e.node.expressions,n=[];r.forEach((function(e){t(e)&&n.push(e.value)})),r.sort(u);for(var a=0;a<r.length;a++){var s=r[a];if(d(s,n,this._hasIUFlags)||f(s,r[a-1])||c(s,r[a+1]))r.splice(a,1),a--;else{var i=v(s,a,r);r.splice(a-i+1,i),a-=i}}}}},54122:function(e){"use strict";e.exports={ClassRange:function(e){var u=e.node;u.from.codePoint===u.to.codePoint?e.replace(u.from):u.from.codePoint===u.to.codePoint-1&&(e.getParent().insertChildAt(u.to,e.index+1),e.replace(u.from))}}},71216:function(e){"use strict";e.exports={CharacterClass:function(e){for(var u=e.node,r={},t=0;t<u.expressions.length;t++){var n=e.getChild(t),d=n.jsonEncode();r.hasOwnProperty(d)&&(n.remove(),t--),r[d]=!0}}}},94126:function(e){"use strict";function u(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}e.exports={_hasIFlag:!1,_hasUFlag:!1,init:function(e){this._hasIFlag=e.flags.includes("i"),this._hasUFlag=e.flags.includes("u")},CharacterClass:function(e){!function(e){e.node.expressions.forEach((function(u,r){(function(e){return"ClassRange"===e.type&&"0"===e.from.value&&"9"===e.to.value})(u)&&e.getChild(r).replace({type:"Char",value:"\\d",kind:"meta"})}))}(e),function(e,u,r){var t=e.node,a=null,s=null,i=null,o=null,f=null,c=null;t.expressions.forEach((function(t,l){n(t,"\\d")?a=e.getChild(l):function(e){return"ClassRange"===e.type&&"a"===e.from.value&&"z"===e.to.value}(t)?s=e.getChild(l):function(e){return"ClassRange"===e.type&&"A"===e.from.value&&"Z"===e.to.value}(t)?i=e.getChild(l):function(e){return"Char"===e.type&&"_"===e.value&&"simple"===e.kind}(t)?o=e.getChild(l):u&&r&&d(t,383)?f=e.getChild(l):u&&r&&d(t,8490)&&(c=e.getChild(l))})),a&&(s&&i||u&&(s||i))&&o&&(!r||!u||f&&c)&&(a.replace({type:"Char",value:"\\w",kind:"meta"}),s&&s.remove(),i&&i.remove(),o.remove(),f&&f.remove(),c&&c.remove())}(e,this._hasIFlag,this._hasUFlag),function(e){var u=e.node;if(!(u.expressions.length<r.length)&&r.every((function(e){return u.expressions.some((function(u){return e(u)}))}))){var t=u.expressions.find((function(e){return n(e,"\\n")}));t.value="\\s",t.symbol=void 0,t.codePoint=NaN,u.expressions.map((function(u,t){return r.some((function(e){return e(u)}))?e.getChild(t):void 0})).filter(Boolean).forEach((function(e){return e.remove()}))}}(e)}};var r=[function(e){return t(e," ")}].concat(u(["\\f","\\n","\\r","\\t","\\v"].map((function(e){return function(u){return n(u,e)}}))),u([160,5760,8232,8233,8239,8287,12288,65279].map((function(e){return function(u){return d(u,e)}}))),[function(e){return"ClassRange"===e.type&&d(e.from,8192)&&d(e.to,8202)}]);function t(e,u){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"simple";return"Char"===e.type&&e.value===u&&e.kind===r}function n(e,u){return t(e,u,"meta")}function d(e,u){return"Char"===e.type&&"unicode"===e.kind&&e.codePoint===u}},1949:function(e){"use strict";function u(e){return/[*[()+?$./{}|]/.test(e)}e.exports={CharacterClass:function(e){var r=e.node;if(1===r.expressions.length&&function(e){var u=e.parent,r=e.index;if("Alternative"!==u.type)return!0;var t=u.expressions[r-1];return null==t||("Backreference"!==t.type||"number"!==t.kind)&&("Char"!==t.type||"decimal"!==t.kind)}(e)&&function(e){return"Char"===e.type&&"\\b"!==e.value}(r.expressions[0])){var t=r.expressions[0],n=t.value,d=t.kind,a=t.escaped;if(r.negative){if(!function(e){return/^\\[dwsDWS]$/.test(e)}(n))return;n=function(e){return/[dws]/.test(e)?e.toUpperCase():e.toLowerCase()}(n)}e.replace({type:"Char",value:n,kind:d,escaped:a||u(n)})}}}},57335:function(e){"use strict";var u="A".codePointAt(0),r="Z".codePointAt(0),t="a".codePointAt(0),n="z".codePointAt(0),d="0".codePointAt(0),a="9".codePointAt(0);e.exports={Char:function(e){var s,i,o,f=e.node,c=e.parent;if(!isNaN(f.codePoint)&&"simple"!==f.kind&&("ClassRange"!==c.type||(i=(s=c).from,o=s.to,i.codePoint>=d&&i.codePoint<=a&&o.codePoint>=d&&o.codePoint<=a||i.codePoint>=u&&i.codePoint<=r&&o.codePoint>=u&&o.codePoint<=r||i.codePoint>=t&&i.codePoint<=n&&o.codePoint>=t&&o.codePoint<=n))&&(l=f.codePoint)>=32&&l<=126){var l,v=String.fromCodePoint(f.codePoint),p={type:"Char",kind:"simple",value:v,symbol:v,codePoint:f.codePoint};(function(e,u){return"ClassRange"===u||"CharacterClass"===u?/[\]\\^-]/.test(e):/[*[()+?^$./\\|{}]/.test(e)})(v,c.type)&&(p.escaped=!0),e.replace(p)}}}},29141:function(e){"use strict";function u(e,u,r){for(var t=e,n=(r?t>=0:t<u.expressions.length)&&u.expressions[t];n&&"Char"===n.type&&"simple"===n.kind&&!n.escaped&&/\d/.test(n.value);)r?t--:t++,n=(r?t>=0:t<u.expressions.length)&&u.expressions[t];return Math.abs(e-t)}function r(e,u){return e&&"Char"===e.type&&"simple"===e.kind&&!e.escaped&&e.value===u}e.exports={_hasXFlag:!1,init:function(e){this._hasXFlag=e.flags.includes("x")},Char:function(e){var t=e.node;t.escaped&&function(e,t){var n=e.node.value,d=e.index,a=e.parent;return"CharacterClass"!==a.type&&"ClassRange"!==a.type?!function(e,t,n,d){return"{"===e?function(e,t){if(null==e)return!1;var n=u(e+1,t),d=e+n+1,a=d<t.expressions.length&&t.expressions[d];if(n){if(r(a,"}"))return!0;if(r(a,","))return r(a=(d=d+(n=u(d+1,t))+1)<t.expressions.length&&t.expressions[d],"}")}return!1}(t,n):"}"===e?function(e,t){if(null==e)return!1;var n=u(e-1,t,!0),d=e-n-1,a=d>=0&&t.expressions[d];return!(!n||!r(a,"{"))||!!r(a,",")&&(a=(d=d-(n=u(d-1,t,!0))-1)<t.expressions.length&&t.expressions[d],n&&r(a,"{"))}(t,n):!(!d||!/[ #]/.test(e))||/[*[()+?^$./\\|]/.test(e)}(n,d,a,t):!function(e,u,r){return"^"===e?0===u&&!r.negative:"-"===e||/[\]\\]/.test(e)}(n,d,a)}(e,this._hasXFlag)&&delete t.escaped}}},93843:function(e){"use strict";e.exports={shouldRun:function(e){return e.flags.includes("u")},Char:function(e){var u=e.node;"unicode"===u.kind&&u.isSurrogatePair&&!isNaN(u.codePoint)&&(u.value="\\u{"+u.codePoint.toString(16)+"}",delete u.isSurrogatePair)}}},61143:function(e,u,r){"use strict";function t(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var n=r(27762),d=r(26554).increaseQuantifierByOne;function a(e,u,r){for(var d=e.node,a=Math.ceil(r/2),s=0;s<a;){var i=r-2*s-1,o=void 0,f=void 0;if(0===s?(o=u,f=e.getChild(i)):(o=n.getForNode({type:"Alternative",expressions:[].concat(t(d.expressions.slice(r-s,r)),[u.node])}),f=n.getForNode({type:"Alternative",expressions:[].concat(t(d.expressions.slice(i,r-s)))})),o.hasEqualSource(f)){for(var c=0;c<2*s+1;c++)e.getChild(i).remove();return u.replace({type:"Repetition",expression:0===s&&"Repetition"!==o.node.type?o.node:{type:"Group",capturing:!1,expression:o.node},quantifier:{type:"Quantifier",kind:"Range",from:2,to:2,greedy:!0}}),i}s++}return r}function s(e,u,r){for(var a=e.node,s=0;s<r;){var i=e.getChild(s);if("Repetition"===i.node.type&&i.node.quantifier.greedy){var o=i.getChild(),f=void 0;if("Group"!==o.node.type||o.node.capturing||(o=o.getChild()),s+1===r?"Group"!==(f=u).node.type||f.node.capturing||(f=f.getChild()):f=n.getForNode({type:"Alternative",expressions:[].concat(t(a.expressions.slice(s+1,r+1)))}),o.hasEqualSource(f)){for(var c=s;c<r;c++)e.getChild(s+1).remove();return d(i.node.quantifier),s}}s++}return r}function i(e,u,r){var a=e.node;if("Repetition"===u.node.type&&u.node.quantifier.greedy){var s=u.getChild(),i=void 0;"Group"!==s.node.type||s.node.capturing||(s=s.getChild());var o=void 0;if("Alternative"===s.node.type?(o=s.node.expressions.length,i=n.getForNode({type:"Alternative",expressions:[].concat(t(a.expressions.slice(r-o,r)))})):(o=1,"Group"!==(i=e.getChild(r-1)).node.type||i.node.capturing||(i=i.getChild())),i.hasEqualSource(s)){for(var f=r-o;f<r;f++)e.getChild(r-o).remove();return d(u.node.quantifier),r-o}}return r}e.exports={Alternative:function(e){for(var u=e.node,r=1;r<u.expressions.length;){var t=e.getChild(r);if((r=Math.max(1,a(e,t,r)))>=u.expressions.length)break;if(t=e.getChild(r),(r=Math.max(1,s(e,t,r)))>=u.expressions.length)break;t=e.getChild(r),r=Math.max(1,i(e,t,r)),r++}}}},49895:function(e,u,r){"use strict";var t=r(27762),n=r(26554),d=n.disjunctionToList,a=n.listToDisjunction;e.exports={Disjunction:function(e){var u=e.node,r={},n=d(u).filter((function(e){var u=e?t.getForNode(e).jsonEncode():"null";return!r.hasOwnProperty(u)&&(r[u]=e,!0)}));e.replace(a(n))}}},40623:function(e){"use strict";e.exports={Disjunction:function(e){var t=e.node,n=e.parent;if(u[n.type]){var d=new Map;if(r(t,d)&&d.size){var a={type:"CharacterClass",expressions:Array.from(d.keys()).sort().map((function(e){return d.get(e)}))};u[n.type](e.getParent(),a)}}}};var u={RegExp:function(e,u){e.node.body=u},Group:function(e,u){var r=e.node;r.capturing?r.expression=u:e.replace(u)}};function r(e,u){if(!e)return!1;var t=e.type;if("Disjunction"===t){var n=e.left,d=e.right;return r(n,u)&&r(d,u)}if("Char"===t){if("meta"===e.kind&&"."===e.symbol)return!1;var a=e.value;return u.set(a,e),!0}return"CharacterClass"===t&&!e.negative&&e.expressions.every((function(e){return r(e,u)}))}},55319:function(e,u,r){"use strict";e.exports=new Map([["charSurrogatePairToSingleUnicode",r(93843)],["charCodeToSimpleChar",r(57335)],["charCaseInsensitiveLowerCaseTransform",r(98327)],["charClassRemoveDuplicates",r(71216)],["quantifiersMerge",r(58124)],["quantifierRangeToSymbol",r(81280)],["charClassClassrangesToChars",r(54122)],["charClassToMeta",r(94126)],["charClassToSingleChar",r(1949)],["charEscapeUnescape",r(29141)],["charClassClassrangesMerge",r(52445)],["disjunctionRemoveDuplicates",r(49895)],["groupSingleCharsToCharClass",r(40623)],["removeEmptyGroup",r(22223)],["ungroup",r(14952)],["combineRepeatingPatterns",r(61143)]])},81280:function(e){"use strict";e.exports={Quantifier:function(e){"Range"===e.node.kind&&(function(e){var u=e.node;0!==u.from||u.to||(u.kind="*",delete u.from)}(e),function(e){var u=e.node;1!==u.from||u.to||(u.kind="+",delete u.from)}(e),function(e){var u=e.node;1===u.from&&1===u.to&&e.parentPath.replace(e.parentPath.node.expression)}(e))}}},58124:function(e,u,r){"use strict";var t=r(26554).increaseQuantifierByOne;function n(e){return e.greedy&&("+"===e.kind||"*"===e.kind||"Range"===e.kind&&!e.to)}function d(e){var u=void 0,r=void 0;return"*"===e.kind?u=0:"+"===e.kind?u=1:"?"===e.kind?(u=0,r=1):(u=e.from,e.to&&(r=e.to)),{from:u,to:r}}e.exports={Repetition:function(e){var u=e.node;if("Alternative"===e.parent.type&&e.index){var r=e.getPreviousSibling();if(r)if("Repetition"===r.node.type){if(!r.getChild().hasEqualSource(e.getChild()))return;var a=d(r.node.quantifier),s=a.from,i=a.to,o=d(u.quantifier),f=o.from,c=o.to;if(r.node.quantifier.greedy!==u.quantifier.greedy&&!n(r.node.quantifier)&&!n(u.quantifier))return;u.quantifier.kind="Range",u.quantifier.from=s+f,i&&c?u.quantifier.to=i+c:delete u.quantifier.to,(n(r.node.quantifier)||n(u.quantifier))&&(u.quantifier.greedy=!0),r.remove()}else{if(!r.hasEqualSource(e.getChild()))return;t(u.quantifier),r.remove()}}}}},22223:function(e){"use strict";e.exports={Group:function(e){var u=e.node,r=e.parent,t=e.getChild();u.capturing||t||("Repetition"===r.type?e.getParent().replace(u):"RegExp"!==r.type&&e.remove())}}},14952:function(e){"use strict";function u(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}e.exports={Group:function(e){var r=e.node,t=e.parent,n=e.getChild();if(!r.capturing&&n&&function(e){var u=e.parent,r=e.index;if("Alternative"!==u.type)return!0;var t=u.expressions[r-1];return null==t||("Backreference"!==t.type||"number"!==t.kind)&&("Char"!==t.type||"decimal"!==t.kind)}(e)&&!("Disjunction"===n.node.type&&"RegExp"!==t.type||"Repetition"===t.type&&"Char"!==n.node.type&&"CharacterClass"!==n.node.type))if("Alternative"===n.node.type){var d=e.getParent();"Alternative"===d.node.type&&d.replace({type:"Alternative",expressions:[].concat(u(t.expressions.slice(0,e.index)),u(n.node.expressions),u(t.expressions.slice(e.index+1)))})}else e.replace(n.node)}}},42669:function(e,u,r){"use strict";function t(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var n=void 0,d={},a=void 0,s=void 0;function i(e,u){return d.options.captureLocations?e&&u?{startOffset:e.startOffset,endOffset:u.endOffset,startLine:e.startLine,endLine:u.endLine,startColumn:e.startColumn,endColumn:u.endColumn}:e||u:null}var o=[[-1,1,function(e,u){s=i(u,u),a=e}],[0,4,function(e,u,r,t,n,d,o,f){s=i(n,f),a=N({type:"RegExp",body:u,flags:S(t)},R(n,f||o))}],[1,1,function(e,u){s=i(u,u),a=e}],[1,0,function(){s=null,a=""}],[2,1,function(e,u){s=i(u,u),a=e}],[2,2,function(e,u,r,t){s=i(r,t),a=e+u}],[3,1,function(e,u){s=i(u,u),a=e}],[4,1,function(e,u){s=i(u,u),a=e}],[4,3,function(e,u,r,t,n,d){s=i(t,d);var o=null;n&&(o=R(t||n,d||n)),a=N({type:"Disjunction",left:e,right:r},o)}],[5,1,function(e,u){s=i(u,u),a=0!==e.length?1===e.length?N(e[0],s):N({type:"Alternative",expressions:e},s):null}],[6,0,function(){s=null,a=[]}],[6,2,function(e,u,r,t){s=i(r,t),a=e.concat(u)}],[7,1,function(e,u){s=i(u,u),a=N(Object.assign({type:"Assertion"},e),s)}],[7,2,function(e,u,r,t){s=i(r,t),a=e,u&&(a=N({type:"Repetition",expression:e,quantifier:u},s))}],[8,1,function(e,u){s=i(u,u),a={kind:"^"}}],[8,1,function(e,u){s=i(u,u),a={kind:"$"}}],[8,1,function(e,u){s=i(u,u),a={kind:"\\b"}}],[8,1,function(e,u){s=i(u,u),a={kind:"\\B"}}],[8,3,function(e,u,r,t,n,d){s=i(t,d),a={kind:"Lookahead",assertion:u}}],[8,3,function(e,u,r,t,n,d){s=i(t,d),a={kind:"Lookahead",negative:!0,assertion:u}}],[8,3,function(e,u,r,t,n,d){s=i(t,d),a={kind:"Lookbehind",assertion:u}}],[8,3,function(e,u,r,t,n,d){s=i(t,d),a={kind:"Lookbehind",negative:!0,assertion:u}}],[9,1,function(e,u){s=i(u,u),a=e}],[9,1,function(e,u){s=i(u,u),a=e}],[9,1,function(e,u){s=i(u,u),a=e}],[10,1,function(e,u){s=i(u,u),a=w(e,"simple",s)}],[10,1,function(e,u){s=i(u,u),(a=w(e.slice(1),"simple",s)).escaped=!0}],[10,1,function(e,u){s=i(u,u),(a=w(e,"unicode",s)).isSurrogatePair=!0}],[10,1,function(e,u){s=i(u,u),a=w(e,"unicode",s)}],[10,1,function(e,u){s=i(u,u),a=function(e,u){var r="P"===e[1],t=e.indexOf("="),n=e.slice(3,-1!==t?t:-1),d=void 0,a=-1===t&&x.isGeneralCategoryValue(n),s=-1===t&&x.isBinaryPropertyName(n);if(a)d=n,n="General_Category";else if(s)d=n;else{if(!x.isValidName(n))throw new SyntaxError("Invalid unicode property name: "+n+".");if(d=e.slice(t+1,-1),!x.isValidValue(n,d))throw new SyntaxError("Invalid "+n+" unicode property value: "+d+".")}return N({type:"UnicodeProperty",name:n,value:d,negative:r,shorthand:a,binary:s,canonicalName:x.getCanonicalName(n)||n,canonicalValue:x.getCanonicalValue(d)||d},u)}(e,s)}],[10,1,function(e,u){s=i(u,u),a=w(e,"control",s)}],[10,1,function(e,u){s=i(u,u),a=w(e,"hex",s)}],[10,1,function(e,u){s=i(u,u),a=w(e,"oct",s)}],[10,1,function(e,u){var r,t,n;s=i(u,u),r=e,t=s,n=Number(r.slice(1)),a=n>0&&n<=y?N({type:"Backreference",kind:"number",number:n,reference:n},t):w(r,"decimal",t)}],[10,1,function(e,u){s=i(u,u),a=w(e,"meta",s)}],[10,1,function(e,u){s=i(u,u),a=w(e,"meta",s)}],[10,1,function(e,u){s=i(u,u),a=function(e,u){var r=e.slice(3,-1),t=T(r);if(g.hasOwnProperty(t))return N({type:"Backreference",kind:"name",number:g[t],reference:t,referenceRaw:r},u);var n=null,d=null,a=null,s=null;u&&(n=u.startOffset,d=u.startLine,a=u.endLine,s=u.startColumn);var i=/^[\w$<>]/,o=void 0,f=[w(e.slice(1,2),"simple",n?{startLine:d,endLine:a,startColumn:s,startOffset:n,endOffset:n+=2,endColumn:s+=2}:null)];for(f[0].escaped=!0,e=e.slice(2);e.length>0;){var c=null;(c=e.match(j))||(c=e.match(k))?(n&&(o={startLine:d,endLine:a,startColumn:s,startOffset:n,endOffset:n+=c[0].length,endColumn:s+=c[0].length}),f.push(w(c[0],"unicode",o)),e=e.slice(c[0].length)):(c=e.match(i))&&(n&&(o={startLine:d,endLine:a,startColumn:s,startOffset:n,endOffset:++n,endColumn:++s}),f.push(w(c[0],"simple",o)),e=e.slice(1))}return f}(e,u)}],[11,1,function(e,u){s=i(u,u),a=e}],[11,0],[12,1,function(e,u){s=i(u,u),a=e}],[12,2,function(e,u,r,t){s=i(r,t),e.greedy=!1,a=e}],[13,1,function(e,u){s=i(u,u),a=N({type:"Quantifier",kind:e,greedy:!0},s)}],[13,1,function(e,u){s=i(u,u),a=N({type:"Quantifier",kind:e,greedy:!0},s)}],[13,1,function(e,u){s=i(u,u),a=N({type:"Quantifier",kind:e,greedy:!0},s)}],[13,1,function(e,u){s=i(u,u);var r=B(e);a=N({type:"Quantifier",kind:"Range",from:r[0],to:r[0],greedy:!0},s)}],[13,1,function(e,u){s=i(u,u),a=N({type:"Quantifier",kind:"Range",from:B(e)[0],greedy:!0},s)}],[13,1,function(e,u){s=i(u,u);var r=B(e);a=N({type:"Quantifier",kind:"Range",from:r[0],to:r[1],greedy:!0},s)}],[14,1,function(e,u){s=i(u,u),a=e}],[14,1,function(e,u){s=i(u,u),a=e}],[15,3,function(e,u,r,t,n,o){s=i(t,o);var f=String(e),c=T(f);if(!d.options.allowGroupNameDuplicates&&g.hasOwnProperty(c))throw new SyntaxError('Duplicate of the named group "'+c+'".');g[c]=e.groupNumber,a=N({type:"Group",capturing:!0,name:c,nameRaw:f,number:e.groupNumber,expression:u},s)}],[15,3,function(e,u,r,t,n,d){s=i(t,d),a=N({type:"Group",capturing:!0,number:e.groupNumber,expression:u},s)}],[16,3,function(e,u,r,t,n,d){s=i(t,d),a=N({type:"Group",capturing:!1,expression:u},s)}],[17,3,function(e,u,r,t,n,d){s=i(t,d),a=N({type:"CharacterClass",negative:!0,expressions:u},s)}],[17,3,function(e,u,r,t,n,d){s=i(t,d),a=N({type:"CharacterClass",expressions:u},s)}],[18,0,function(){s=null,a=[]}],[18,1,function(e,u){s=i(u,u),a=e}],[19,1,function(e,u){s=i(u,u),a=[e]}],[19,2,function(e,u,r,t){s=i(r,t),a=[e].concat(u)}],[19,4,function(e,u,r,t,n,d,o,f){s=i(n,f),_(e,r),a=[N({type:"ClassRange",from:e,to:r},R(n,o))],t&&(a=a.concat(t))}],[20,1,function(e,u){s=i(u,u),a=e}],[20,2,function(e,u,r,t){s=i(r,t),a=[e].concat(u)}],[20,4,function(e,u,r,t,n,d,o,f){s=i(n,f),_(e,r),a=[N({type:"ClassRange",from:e,to:r},R(n,o))],t&&(a=a.concat(t))}],[21,1,function(e,u){s=i(u,u),a=w(e,"simple",s)}],[21,1,function(e,u){s=i(u,u),a=e}],[22,1,function(e,u){s=i(u,u),a=e}],[22,1,function(e,u){s=i(u,u),a=w(e,"meta",s)}]],f={SLASH:"23",CHAR:"24",BAR:"25",BOS:"26",EOS:"27",ESC_b:"28",ESC_B:"29",POS_LA_ASSERT:"30",R_PAREN:"31",NEG_LA_ASSERT:"32",POS_LB_ASSERT:"33",NEG_LB_ASSERT:"34",ESC_CHAR:"35",U_CODE_SURROGATE:"36",U_CODE:"37",U_PROP_VALUE_EXP:"38",CTRL_CH:"39",HEX_CODE:"40",OCT_CODE:"41",DEC_CODE:"42",META_CHAR:"43",ANY:"44",NAMED_GROUP_REF:"45",Q_MARK:"46",STAR:"47",PLUS:"48",RANGE_EXACT:"49",RANGE_OPEN:"50",RANGE_CLOSED:"51",NAMED_CAPTURE_GROUP:"52",L_PAREN:"53",NON_CAPTURE_GROUP:"54",NEG_CLASS:"55",R_BRACKET:"56",L_BRACKET:"57",DASH:"58",$:"59"},c=[{0:1,23:"s2"},{59:"acc"},{3:3,4:4,5:5,6:6,23:"r10",24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"s7"},{23:"r6",25:"s12"},{23:"r7",25:"r7",31:"r7"},{7:14,8:15,9:16,10:25,14:27,15:42,16:43,17:26,23:"r9",24:"s28",25:"r9",26:"s17",27:"s18",28:"s19",29:"s20",30:"s21",31:"r9",32:"s22",33:"s23",34:"s24",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",52:"s44",53:"s45",54:"s46",55:"s40",57:"s41"},{1:8,2:9,24:"s10",59:"r3"},{59:"r1"},{24:"s11",59:"r2"},{24:"r4",59:"r4"},{24:"r5",59:"r5"},{5:13,6:6,23:"r10",24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"r8",25:"r8",31:"r8"},{23:"r11",24:"r11",25:"r11",26:"r11",27:"r11",28:"r11",29:"r11",30:"r11",31:"r11",32:"r11",33:"r11",34:"r11",35:"r11",36:"r11",37:"r11",38:"r11",39:"r11",40:"r11",41:"r11",42:"r11",43:"r11",44:"r11",45:"r11",52:"r11",53:"r11",54:"r11",55:"r11",57:"r11"},{23:"r12",24:"r12",25:"r12",26:"r12",27:"r12",28:"r12",29:"r12",30:"r12",31:"r12",32:"r12",33:"r12",34:"r12",35:"r12",36:"r12",37:"r12",38:"r12",39:"r12",40:"r12",41:"r12",42:"r12",43:"r12",44:"r12",45:"r12",52:"r12",53:"r12",54:"r12",55:"r12",57:"r12"},{11:47,12:48,13:49,23:"r38",24:"r38",25:"r38",26:"r38",27:"r38",28:"r38",29:"r38",30:"r38",31:"r38",32:"r38",33:"r38",34:"r38",35:"r38",36:"r38",37:"r38",38:"r38",39:"r38",40:"r38",41:"r38",42:"r38",43:"r38",44:"r38",45:"r38",46:"s52",47:"s50",48:"s51",49:"s53",50:"s54",51:"s55",52:"r38",53:"r38",54:"r38",55:"r38",57:"r38"},{23:"r14",24:"r14",25:"r14",26:"r14",27:"r14",28:"r14",29:"r14",30:"r14",31:"r14",32:"r14",33:"r14",34:"r14",35:"r14",36:"r14",37:"r14",38:"r14",39:"r14",40:"r14",41:"r14",42:"r14",43:"r14",44:"r14",45:"r14",52:"r14",53:"r14",54:"r14",55:"r14",57:"r14"},{23:"r15",24:"r15",25:"r15",26:"r15",27:"r15",28:"r15",29:"r15",30:"r15",31:"r15",32:"r15",33:"r15",34:"r15",35:"r15",36:"r15",37:"r15",38:"r15",39:"r15",40:"r15",41:"r15",42:"r15",43:"r15",44:"r15",45:"r15",52:"r15",53:"r15",54:"r15",55:"r15",57:"r15"},{23:"r16",24:"r16",25:"r16",26:"r16",27:"r16",28:"r16",29:"r16",30:"r16",31:"r16",32:"r16",33:"r16",34:"r16",35:"r16",36:"r16",37:"r16",38:"r16",39:"r16",40:"r16",41:"r16",42:"r16",43:"r16",44:"r16",45:"r16",52:"r16",53:"r16",54:"r16",55:"r16",57:"r16"},{23:"r17",24:"r17",25:"r17",26:"r17",27:"r17",28:"r17",29:"r17",30:"r17",31:"r17",32:"r17",33:"r17",34:"r17",35:"r17",36:"r17",37:"r17",38:"r17",39:"r17",40:"r17",41:"r17",42:"r17",43:"r17",44:"r17",45:"r17",52:"r17",53:"r17",54:"r17",55:"r17",57:"r17"},{4:57,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:59,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:61,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:63,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"r22",24:"r22",25:"r22",26:"r22",27:"r22",28:"r22",29:"r22",30:"r22",31:"r22",32:"r22",33:"r22",34:"r22",35:"r22",36:"r22",37:"r22",38:"r22",39:"r22",40:"r22",41:"r22",42:"r22",43:"r22",44:"r22",45:"r22",46:"r22",47:"r22",48:"r22",49:"r22",50:"r22",51:"r22",52:"r22",53:"r22",54:"r22",55:"r22",57:"r22"},{23:"r23",24:"r23",25:"r23",26:"r23",27:"r23",28:"r23",29:"r23",30:"r23",31:"r23",32:"r23",33:"r23",34:"r23",35:"r23",36:"r23",37:"r23",38:"r23",39:"r23",40:"r23",41:"r23",42:"r23",43:"r23",44:"r23",45:"r23",46:"r23",47:"r23",48:"r23",49:"r23",50:"r23",51:"r23",52:"r23",53:"r23",54:"r23",55:"r23",57:"r23"},{23:"r24",24:"r24",25:"r24",26:"r24",27:"r24",28:"r24",29:"r24",30:"r24",31:"r24",32:"r24",33:"r24",34:"r24",35:"r24",36:"r24",37:"r24",38:"r24",39:"r24",40:"r24",41:"r24",42:"r24",43:"r24",44:"r24",45:"r24",46:"r24",47:"r24",48:"r24",49:"r24",50:"r24",51:"r24",52:"r24",53:"r24",54:"r24",55:"r24",57:"r24"},{23:"r25",24:"r25",25:"r25",26:"r25",27:"r25",28:"r25",29:"r25",30:"r25",31:"r25",32:"r25",33:"r25",34:"r25",35:"r25",36:"r25",37:"r25",38:"r25",39:"r25",40:"r25",41:"r25",42:"r25",43:"r25",44:"r25",45:"r25",46:"r25",47:"r25",48:"r25",49:"r25",50:"r25",51:"r25",52:"r25",53:"r25",54:"r25",55:"r25",56:"r25",57:"r25",58:"r25"},{23:"r26",24:"r26",25:"r26",26:"r26",27:"r26",28:"r26",29:"r26",30:"r26",31:"r26",32:"r26",33:"r26",34:"r26",35:"r26",36:"r26",37:"r26",38:"r26",39:"r26",40:"r26",41:"r26",42:"r26",43:"r26",44:"r26",45:"r26",46:"r26",47:"r26",48:"r26",49:"r26",50:"r26",51:"r26",52:"r26",53:"r26",54:"r26",55:"r26",56:"r26",57:"r26",58:"r26"},{23:"r27",24:"r27",25:"r27",26:"r27",27:"r27",28:"r27",29:"r27",30:"r27",31:"r27",32:"r27",33:"r27",34:"r27",35:"r27",36:"r27",37:"r27",38:"r27",39:"r27",40:"r27",41:"r27",42:"r27",43:"r27",44:"r27",45:"r27",46:"r27",47:"r27",48:"r27",49:"r27",50:"r27",51:"r27",52:"r27",53:"r27",54:"r27",55:"r27",56:"r27",57:"r27",58:"r27"},{23:"r28",24:"r28",25:"r28",26:"r28",27:"r28",28:"r28",29:"r28",30:"r28",31:"r28",32:"r28",33:"r28",34:"r28",35:"r28",36:"r28",37:"r28",38:"r28",39:"r28",40:"r28",41:"r28",42:"r28",43:"r28",44:"r28",45:"r28",46:"r28",47:"r28",48:"r28",49:"r28",50:"r28",51:"r28",52:"r28",53:"r28",54:"r28",55:"r28",56:"r28",57:"r28",58:"r28"},{23:"r29",24:"r29",25:"r29",26:"r29",27:"r29",28:"r29",29:"r29",30:"r29",31:"r29",32:"r29",33:"r29",34:"r29",35:"r29",36:"r29",37:"r29",38:"r29",39:"r29",40:"r29",41:"r29",42:"r29",43:"r29",44:"r29",45:"r29",46:"r29",47:"r29",48:"r29",49:"r29",50:"r29",51:"r29",52:"r29",53:"r29",54:"r29",55:"r29",56:"r29",57:"r29",58:"r29"},{23:"r30",24:"r30",25:"r30",26:"r30",27:"r30",28:"r30",29:"r30",30:"r30",31:"r30",32:"r30",33:"r30",34:"r30",35:"r30",36:"r30",37:"r30",38:"r30",39:"r30",40:"r30",41:"r30",42:"r30",43:"r30",44:"r30",45:"r30",46:"r30",47:"r30",48:"r30",49:"r30",50:"r30",51:"r30",52:"r30",53:"r30",54:"r30",55:"r30",56:"r30",57:"r30",58:"r30"},{23:"r31",24:"r31",25:"r31",26:"r31",27:"r31",28:"r31",29:"r31",30:"r31",31:"r31",32:"r31",33:"r31",34:"r31",35:"r31",36:"r31",37:"r31",38:"r31",39:"r31",40:"r31",41:"r31",42:"r31",43:"r31",44:"r31",45:"r31",46:"r31",47:"r31",48:"r31",49:"r31",50:"r31",51:"r31",52:"r31",53:"r31",54:"r31",55:"r31",56:"r31",57:"r31",58:"r31"},{23:"r32",24:"r32",25:"r32",26:"r32",27:"r32",28:"r32",29:"r32",30:"r32",31:"r32",32:"r32",33:"r32",34:"r32",35:"r32",36:"r32",37:"r32",38:"r32",39:"r32",40:"r32",41:"r32",42:"r32",43:"r32",44:"r32",45:"r32",46:"r32",47:"r32",48:"r32",49:"r32",50:"r32",51:"r32",52:"r32",53:"r32",54:"r32",55:"r32",56:"r32",57:"r32",58:"r32"},{23:"r33",24:"r33",25:"r33",26:"r33",27:"r33",28:"r33",29:"r33",30:"r33",31:"r33",32:"r33",33:"r33",34:"r33",35:"r33",36:"r33",37:"r33",38:"r33",39:"r33",40:"r33",41:"r33",42:"r33",43:"r33",44:"r33",45:"r33",46:"r33",47:"r33",48:"r33",49:"r33",50:"r33",51:"r33",52:"r33",53:"r33",54:"r33",55:"r33",56:"r33",57:"r33",58:"r33"},{23:"r34",24:"r34",25:"r34",26:"r34",27:"r34",28:"r34",29:"r34",30:"r34",31:"r34",32:"r34",33:"r34",34:"r34",35:"r34",36:"r34",37:"r34",38:"r34",39:"r34",40:"r34",41:"r34",42:"r34",43:"r34",44:"r34",45:"r34",46:"r34",47:"r34",48:"r34",49:"r34",50:"r34",51:"r34",52:"r34",53:"r34",54:"r34",55:"r34",56:"r34",57:"r34",58:"r34"},{23:"r35",24:"r35",25:"r35",26:"r35",27:"r35",28:"r35",29:"r35",30:"r35",31:"r35",32:"r35",33:"r35",34:"r35",35:"r35",36:"r35",37:"r35",38:"r35",39:"r35",40:"r35",41:"r35",42:"r35",43:"r35",44:"r35",45:"r35",46:"r35",47:"r35",48:"r35",49:"r35",50:"r35",51:"r35",52:"r35",53:"r35",54:"r35",55:"r35",56:"r35",57:"r35",58:"r35"},{23:"r36",24:"r36",25:"r36",26:"r36",27:"r36",28:"r36",29:"r36",30:"r36",31:"r36",32:"r36",33:"r36",34:"r36",35:"r36",36:"r36",37:"r36",38:"r36",39:"r36",40:"r36",41:"r36",42:"r36",43:"r36",44:"r36",45:"r36",46:"r36",47:"r36",48:"r36",49:"r36",50:"r36",51:"r36",52:"r36",53:"r36",54:"r36",55:"r36",56:"r36",57:"r36",58:"r36"},{10:70,18:65,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{10:70,18:83,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{23:"r47",24:"r47",25:"r47",26:"r47",27:"r47",28:"r47",29:"r47",30:"r47",31:"r47",32:"r47",33:"r47",34:"r47",35:"r47",36:"r47",37:"r47",38:"r47",39:"r47",40:"r47",41:"r47",42:"r47",43:"r47",44:"r47",45:"r47",46:"r47",47:"r47",48:"r47",49:"r47",50:"r47",51:"r47",52:"r47",53:"r47",54:"r47",55:"r47",57:"r47"},{23:"r48",24:"r48",25:"r48",26:"r48",27:"r48",28:"r48",29:"r48",30:"r48",31:"r48",32:"r48",33:"r48",34:"r48",35:"r48",36:"r48",37:"r48",38:"r48",39:"r48",40:"r48",41:"r48",42:"r48",43:"r48",44:"r48",45:"r48",46:"r48",47:"r48",48:"r48",49:"r48",50:"r48",51:"r48",52:"r48",53:"r48",54:"r48",55:"r48",57:"r48"},{4:85,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:87,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:89,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"r13",24:"r13",25:"r13",26:"r13",27:"r13",28:"r13",29:"r13",30:"r13",31:"r13",32:"r13",33:"r13",34:"r13",35:"r13",36:"r13",37:"r13",38:"r13",39:"r13",40:"r13",41:"r13",42:"r13",43:"r13",44:"r13",45:"r13",52:"r13",53:"r13",54:"r13",55:"r13",57:"r13"},{23:"r37",24:"r37",25:"r37",26:"r37",27:"r37",28:"r37",29:"r37",30:"r37",31:"r37",32:"r37",33:"r37",34:"r37",35:"r37",36:"r37",37:"r37",38:"r37",39:"r37",40:"r37",41:"r37",42:"r37",43:"r37",44:"r37",45:"r37",52:"r37",53:"r37",54:"r37",55:"r37",57:"r37"},{23:"r39",24:"r39",25:"r39",26:"r39",27:"r39",28:"r39",29:"r39",30:"r39",31:"r39",32:"r39",33:"r39",34:"r39",35:"r39",36:"r39",37:"r39",38:"r39",39:"r39",40:"r39",41:"r39",42:"r39",43:"r39",44:"r39",45:"r39",46:"s56",52:"r39",53:"r39",54:"r39",55:"r39",57:"r39"},{23:"r41",24:"r41",25:"r41",26:"r41",27:"r41",28:"r41",29:"r41",30:"r41",31:"r41",32:"r41",33:"r41",34:"r41",35:"r41",36:"r41",37:"r41",38:"r41",39:"r41",40:"r41",41:"r41",42:"r41",43:"r41",44:"r41",45:"r41",46:"r41",52:"r41",53:"r41",54:"r41",55:"r41",57:"r41"},{23:"r42",24:"r42",25:"r42",26:"r42",27:"r42",28:"r42",29:"r42",30:"r42",31:"r42",32:"r42",33:"r42",34:"r42",35:"r42",36:"r42",37:"r42",38:"r42",39:"r42",40:"r42",41:"r42",42:"r42",43:"r42",44:"r42",45:"r42",46:"r42",52:"r42",53:"r42",54:"r42",55:"r42",57:"r42"},{23:"r43",24:"r43",25:"r43",26:"r43",27:"r43",28:"r43",29:"r43",30:"r43",31:"r43",32:"r43",33:"r43",34:"r43",35:"r43",36:"r43",37:"r43",38:"r43",39:"r43",40:"r43",41:"r43",42:"r43",43:"r43",44:"r43",45:"r43",46:"r43",52:"r43",53:"r43",54:"r43",55:"r43",57:"r43"},{23:"r44",24:"r44",25:"r44",26:"r44",27:"r44",28:"r44",29:"r44",30:"r44",31:"r44",32:"r44",33:"r44",34:"r44",35:"r44",36:"r44",37:"r44",38:"r44",39:"r44",40:"r44",41:"r44",42:"r44",43:"r44",44:"r44",45:"r44",46:"r44",52:"r44",53:"r44",54:"r44",55:"r44",57:"r44"},{23:"r45",24:"r45",25:"r45",26:"r45",27:"r45",28:"r45",29:"r45",30:"r45",31:"r45",32:"r45",33:"r45",34:"r45",35:"r45",36:"r45",37:"r45",38:"r45",39:"r45",40:"r45",41:"r45",42:"r45",43:"r45",44:"r45",45:"r45",46:"r45",52:"r45",53:"r45",54:"r45",55:"r45",57:"r45"},{23:"r46",24:"r46",25:"r46",26:"r46",27:"r46",28:"r46",29:"r46",30:"r46",31:"r46",32:"r46",33:"r46",34:"r46",35:"r46",36:"r46",37:"r46",38:"r46",39:"r46",40:"r46",41:"r46",42:"r46",43:"r46",44:"r46",45:"r46",46:"r46",52:"r46",53:"r46",54:"r46",55:"r46",57:"r46"},{23:"r40",24:"r40",25:"r40",26:"r40",27:"r40",28:"r40",29:"r40",30:"r40",31:"r40",32:"r40",33:"r40",34:"r40",35:"r40",36:"r40",37:"r40",38:"r40",39:"r40",40:"r40",41:"r40",42:"r40",43:"r40",44:"r40",45:"r40",52:"r40",53:"r40",54:"r40",55:"r40",57:"r40"},{25:"s12",31:"s58"},{23:"r18",24:"r18",25:"r18",26:"r18",27:"r18",28:"r18",29:"r18",30:"r18",31:"r18",32:"r18",33:"r18",34:"r18",35:"r18",36:"r18",37:"r18",38:"r18",39:"r18",40:"r18",41:"r18",42:"r18",43:"r18",44:"r18",45:"r18",52:"r18",53:"r18",54:"r18",55:"r18",57:"r18"},{25:"s12",31:"s60"},{23:"r19",24:"r19",25:"r19",26:"r19",27:"r19",28:"r19",29:"r19",30:"r19",31:"r19",32:"r19",33:"r19",34:"r19",35:"r19",36:"r19",37:"r19",38:"r19",39:"r19",40:"r19",41:"r19",42:"r19",43:"r19",44:"r19",45:"r19",52:"r19",53:"r19",54:"r19",55:"r19",57:"r19"},{25:"s12",31:"s62"},{23:"r20",24:"r20",25:"r20",26:"r20",27:"r20",28:"r20",29:"r20",30:"r20",31:"r20",32:"r20",33:"r20",34:"r20",35:"r20",36:"r20",37:"r20",38:"r20",39:"r20",40:"r20",41:"r20",42:"r20",43:"r20",44:"r20",45:"r20",52:"r20",53:"r20",54:"r20",55:"r20",57:"r20"},{25:"s12",31:"s64"},{23:"r21",24:"r21",25:"r21",26:"r21",27:"r21",28:"r21",29:"r21",30:"r21",31:"r21",32:"r21",33:"r21",34:"r21",35:"r21",36:"r21",37:"r21",38:"r21",39:"r21",40:"r21",41:"r21",42:"r21",43:"r21",44:"r21",45:"r21",52:"r21",53:"r21",54:"r21",55:"r21",57:"r21"},{56:"s72"},{56:"r55"},{10:70,20:73,21:75,22:76,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r56",58:"s74"},{24:"r62",28:"r62",35:"r62",36:"r62",37:"r62",38:"r62",39:"r62",40:"r62",41:"r62",42:"r62",43:"r62",44:"r62",45:"r62",56:"r62",58:"r62"},{24:"r63",28:"r63",35:"r63",36:"r63",37:"r63",38:"r63",39:"r63",40:"r63",41:"r63",42:"r63",43:"r63",44:"r63",45:"r63",56:"r63",58:"r63"},{24:"r64",28:"r64",35:"r64",36:"r64",37:"r64",38:"r64",39:"r64",40:"r64",41:"r64",42:"r64",43:"r64",44:"r64",45:"r64",56:"r64",58:"r64"},{24:"r65",28:"r65",35:"r65",36:"r65",37:"r65",38:"r65",39:"r65",40:"r65",41:"r65",42:"r65",43:"r65",44:"r65",45:"r65",56:"r65",58:"r65"},{23:"r52",24:"r52",25:"r52",26:"r52",27:"r52",28:"r52",29:"r52",30:"r52",31:"r52",32:"r52",33:"r52",34:"r52",35:"r52",36:"r52",37:"r52",38:"r52",39:"r52",40:"r52",41:"r52",42:"r52",43:"r52",44:"r52",45:"r52",46:"r52",47:"r52",48:"r52",49:"r52",50:"r52",51:"r52",52:"r52",53:"r52",54:"r52",55:"r52",57:"r52"},{56:"r57"},{10:70,21:77,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r62",58:"s68"},{56:"r59"},{10:70,20:79,21:75,22:76,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r63",58:"s80"},{10:70,18:78,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{56:"r58"},{56:"r60"},{10:70,21:81,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r62",58:"s68"},{10:70,18:82,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{56:"r61"},{56:"s84"},{23:"r53",24:"r53",25:"r53",26:"r53",27:"r53",28:"r53",29:"r53",30:"r53",31:"r53",32:"r53",33:"r53",34:"r53",35:"r53",36:"r53",37:"r53",38:"r53",39:"r53",40:"r53",41:"r53",42:"r53",43:"r53",44:"r53",45:"r53",46:"r53",47:"r53",48:"r53",49:"r53",50:"r53",51:"r53",52:"r53",53:"r53",54:"r53",55:"r53",57:"r53"},{25:"s12",31:"s86"},{23:"r49",24:"r49",25:"r49",26:"r49",27:"r49",28:"r49",29:"r49",30:"r49",31:"r49",32:"r49",33:"r49",34:"r49",35:"r49",36:"r49",37:"r49",38:"r49",39:"r49",40:"r49",41:"r49",42:"r49",43:"r49",44:"r49",45:"r49",46:"r49",47:"r49",48:"r49",49:"r49",50:"r49",51:"r49",52:"r49",53:"r49",54:"r49",55:"r49",57:"r49"},{25:"s12",31:"s88"},{23:"r50",24:"r50",25:"r50",26:"r50",27:"r50",28:"r50",29:"r50",30:"r50",31:"r50",32:"r50",33:"r50",34:"r50",35:"r50",36:"r50",37:"r50",38:"r50",39:"r50",40:"r50",41:"r50",42:"r50",43:"r50",44:"r50",45:"r50",46:"r50",47:"r50",48:"r50",49:"r50",50:"r50",51:"r50",52:"r50",53:"r50",54:"r50",55:"r50",57:"r50"},{25:"s12",31:"s90"},{23:"r51",24:"r51",25:"r51",26:"r51",27:"r51",28:"r51",29:"r51",30:"r51",31:"r51",32:"r51",33:"r51",34:"r51",35:"r51",36:"r51",37:"r51",38:"r51",39:"r51",40:"r51",41:"r51",42:"r51",43:"r51",44:"r51",45:"r51",46:"r51",47:"r51",48:"r51",49:"r51",50:"r51",51:"r51",52:"r51",53:"r51",54:"r51",55:"r51",57:"r51"}],l=[],v=void 0,p=[[/^#[^\n]+/,function(){}],[/^\s+/,function(){}],[/^-/,function(){return"DASH"}],[/^\//,function(){return"CHAR"}],[/^#/,function(){return"CHAR"}],[/^\|/,function(){return"CHAR"}],[/^\./,function(){return"CHAR"}],[/^\{/,function(){return"CHAR"}],[/^\{\d+\}/,function(){return"RANGE_EXACT"}],[/^\{\d+,\}/,function(){return"RANGE_OPEN"}],[/^\{\d+,\d+\}/,function(){return"RANGE_CLOSED"}],[/^\\k<(([\u0041-\u005a\u0061-\u007a\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e-\u066f\u0671-\u06d3\u06d5\u06e5-\u06e6\u06ee-\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4-\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0-\u0ae1\u0af9\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60-\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e46\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2-\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065-\u1066\u106e-\u1070\u1075-\u1081\u108e\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\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5-\u1cf6\u1cfa\u1d00-\u1dbf\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\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\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\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a-\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\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]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf75\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\ude10-\ude13\ude15-\ude17\ude19-\ude35\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd23\udf00-\udf1c\udf27\udf30-\udf45\udfe0-\udff6]|\ud804[\udc03-\udc37\udc83-\udcaf\udcd0-\udce8\udd03-\udd26\udd44\udd50-\udd72\udd76\udd83-\uddb2\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude2b\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udede\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3d\udf50\udf5d-\udf61]|\ud805[\udc00-\udc34\udc47-\udc4a\udc5f\udc80-\udcaf\udcc4-\udcc5\udcc7\udd80-\uddae\uddd8-\udddb\ude00-\ude2f\ude44\ude80-\udeaa\udeb8\udf00-\udf1a]|\ud806[\udc00-\udc2b\udca0-\udcdf\udcff\udda0-\udda7\uddaa-\uddd0\udde1\udde3\ude00\ude0b-\ude32\ude3a\ude50\ude5c-\ude89\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc2e\udc40\udc72-\udc8f\udd00-\udd06\udd08-\udd09\udd0b-\udd30\udd46\udd60-\udd65\udd67-\udd68\udd6a-\udd89\udd98\udee0-\udef2]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf2f\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf50\udf93-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99]|\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[\udd00-\udd2c\udd37-\udd3d\udd4e\udec0-\udeeb]|\ud83a[\udc00-\udcc4\udd00-\udd43\udd4b]|\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]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\}))(([\u0030-\u0039\u0041-\u005a\u005f\u0061-\u007a\u00aa\u00b5\u00b7\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u05d0-\u05ea\u05ef-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u07fd\u0800-\u082d\u0840-\u085b\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u08d3-\u08e1\u08e3-\u0963\u0966-\u096f\u0971-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09f1\u09fc\u09fe\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\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0af9-\u0aff\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-\u0b6f\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-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c60-\u0c63\u0c66-\u0c6f\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\u0d00-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d54-\u0d57\u0d5f-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18-\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\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\u135d-\u135f\u1369-\u1371\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17d3\u17d7\u17dc-\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1ab0-\u1abd\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1cd0-\u1cd2\u1cd4-\u1cfa\u1d00-\u1df9\u1dfb-\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\u203f-\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua827\ua840-\ua873\ua880-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua8fd-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\ua9e0-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabea\uabec-\uabed\uabf0-\uabf9\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\ufe00-\ufe0f\ufe20-\ufe2f\ufe33-\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\uddfd\ude80-\ude9c\udea0-\uded0\udee0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf7a\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udca0-\udca9\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-\ude35\ude38-\ude3a\ude3f\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee6\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd27\udd30-\udd39\udf00-\udf1c\udf27\udf30-\udf50\udfe0-\udff6]|\ud804[\udc00-\udc46\udc66-\udc6f\udc7f-\udcba\udcd0-\udce8\udcf0-\udcf9\udd00-\udd34\udd36-\udd3f\udd44-\udd46\udd50-\udd73\udd76\udd80-\uddc4\uddc9-\uddcc\uddd0-\uddda\udddc\ude00-\ude11\ude13-\ude37\ude3e\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udeea\udef0-\udef9\udf00-\udf03\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3b-\udf44\udf47-\udf48\udf4b-\udf4d\udf50\udf57\udf5d-\udf63\udf66-\udf6c\udf70-\udf74]|\ud805[\udc00-\udc4a\udc50-\udc59\udc5e-\udc5f\udc80-\udcc5\udcc7\udcd0-\udcd9\udd80-\uddb5\uddb8-\uddc0\uddd8-\udddd\ude00-\ude40\ude44\ude50-\ude59\ude80-\udeb8\udec0-\udec9\udf00-\udf1a\udf1d-\udf2b\udf30-\udf39]|\ud806[\udc00-\udc3a\udca0-\udce9\udcff\udda0-\udda7\uddaa-\uddd7\uddda-\udde1\udde3-\udde4\ude00-\ude3e\ude47\ude50-\ude99\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc36\udc38-\udc40\udc50-\udc59\udc72-\udc8f\udc92-\udca7\udca9-\udcb6\udd00-\udd06\udd08-\udd09\udd0b-\udd36\udd3a\udd3c-\udd3d\udd3f-\udd47\udd50-\udd59\udd60-\udd65\udd67-\udd68\udd6a-\udd8e\udd90-\udd91\udd93-\udd98\udda0-\udda9\udee0-\udef6]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\ude60-\ude69\uded0-\udeed\udef0-\udef4\udf00-\udf36\udf40-\udf43\udf50-\udf59\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf4f-\udf87\udf8f-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99\udc9d-\udc9e]|\ud834[\udd65-\udd69\udd6d-\udd72\udd7b-\udd82\udd85-\udd8b\uddaa-\uddad\ude42-\ude44]|\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\udfce-\udfff]|\ud836[\ude00-\ude36\ude3b-\ude6c\ude75\ude84\ude9b-\ude9f\udea1-\udeaf]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23-\udc24\udc26-\udc2a\udd00-\udd2c\udd30-\udd3d\udd40-\udd49\udd4e\udec0-\udef9]|\ud83a[\udc00-\udcc4\udcd0-\udcd6\udd00-\udd4b\udd50-\udd59]|\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]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d]|\udb40[\udd00-\uddef])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\})|[\u200c\u200d])*>/,function(){return P(n.slice(3,-1),this.getCurrentState()),"NAMED_GROUP_REF"}],[/^\\b/,function(){return"ESC_b"}],[/^\\B/,function(){return"ESC_B"}],[/^\\c[a-zA-Z]/,function(){return"CTRL_CH"}],[/^\\0\d{1,2}/,function(){return"OCT_CODE"}],[/^\\0/,function(){return"DEC_CODE"}],[/^\\\d{1,3}/,function(){return"DEC_CODE"}],[/^\\u[dD][89abAB][0-9a-fA-F]{2}\\u[dD][c-fC-F][0-9a-fA-F]{2}/,function(){return"U_CODE_SURROGATE"}],[/^\\u\{[0-9a-fA-F]{1,}\}/,function(){return"U_CODE"}],[/^\\u[0-9a-fA-F]{4}/,function(){return"U_CODE"}],[/^\\[pP]\{\w+(?:=\w+)?\}/,function(){return"U_PROP_VALUE_EXP"}],[/^\\x[0-9a-fA-F]{2}/,function(){return"HEX_CODE"}],[/^\\[tnrdDsSwWvf]/,function(){return"META_CHAR"}],[/^\\\//,function(){return"ESC_CHAR"}],[/^\\[ #]/,function(){return"ESC_CHAR"}],[/^\\[\^\$\.\*\+\?\(\)\\\[\]\{\}\|\/]/,function(){return"ESC_CHAR"}],[/^\\[^*?+\[()\\|]/,function(){var e=this.getCurrentState();if("u_class"===e&&"\\-"===n)return"ESC_CHAR";if("u"===e||"xu"===e||"u_class"===e)throw new SyntaxError("invalid Unicode escape "+n);return"ESC_CHAR"}],[/^\(/,function(){return"CHAR"}],[/^\)/,function(){return"CHAR"}],[/^\(\?=/,function(){return"POS_LA_ASSERT"}],[/^\(\?!/,function(){return"NEG_LA_ASSERT"}],[/^\(\?<=/,function(){return"POS_LB_ASSERT"}],[/^\(\?<!/,function(){return"NEG_LB_ASSERT"}],[/^\(\?:/,function(){return"NON_CAPTURE_GROUP"}],[/^\(\?<(([\u0041-\u005a\u0061-\u007a\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e-\u066f\u0671-\u06d3\u06d5\u06e5-\u06e6\u06ee-\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4-\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0-\u0ae1\u0af9\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60-\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e46\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2-\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065-\u1066\u106e-\u1070\u1075-\u1081\u108e\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\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5-\u1cf6\u1cfa\u1d00-\u1dbf\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\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\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\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a-\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\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]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf75\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\ude10-\ude13\ude15-\ude17\ude19-\ude35\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd23\udf00-\udf1c\udf27\udf30-\udf45\udfe0-\udff6]|\ud804[\udc03-\udc37\udc83-\udcaf\udcd0-\udce8\udd03-\udd26\udd44\udd50-\udd72\udd76\udd83-\uddb2\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude2b\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udede\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3d\udf50\udf5d-\udf61]|\ud805[\udc00-\udc34\udc47-\udc4a\udc5f\udc80-\udcaf\udcc4-\udcc5\udcc7\udd80-\uddae\uddd8-\udddb\ude00-\ude2f\ude44\ude80-\udeaa\udeb8\udf00-\udf1a]|\ud806[\udc00-\udc2b\udca0-\udcdf\udcff\udda0-\udda7\uddaa-\uddd0\udde1\udde3\ude00\ude0b-\ude32\ude3a\ude50\ude5c-\ude89\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc2e\udc40\udc72-\udc8f\udd00-\udd06\udd08-\udd09\udd0b-\udd30\udd46\udd60-\udd65\udd67-\udd68\udd6a-\udd89\udd98\udee0-\udef2]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf2f\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf50\udf93-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99]|\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[\udd00-\udd2c\udd37-\udd3d\udd4e\udec0-\udeeb]|\ud83a[\udc00-\udcc4\udd00-\udd43\udd4b]|\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]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\}))(([\u0030-\u0039\u0041-\u005a\u005f\u0061-\u007a\u00aa\u00b5\u00b7\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u05d0-\u05ea\u05ef-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u07fd\u0800-\u082d\u0840-\u085b\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u08d3-\u08e1\u08e3-\u0963\u0966-\u096f\u0971-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09f1\u09fc\u09fe\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\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0af9-\u0aff\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-\u0b6f\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-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c60-\u0c63\u0c66-\u0c6f\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\u0d00-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d54-\u0d57\u0d5f-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18-\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\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\u135d-\u135f\u1369-\u1371\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17d3\u17d7\u17dc-\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1ab0-\u1abd\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1cd0-\u1cd2\u1cd4-\u1cfa\u1d00-\u1df9\u1dfb-\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\u203f-\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua827\ua840-\ua873\ua880-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua8fd-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\ua9e0-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabea\uabec-\uabed\uabf0-\uabf9\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\ufe00-\ufe0f\ufe20-\ufe2f\ufe33-\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\uddfd\ude80-\ude9c\udea0-\uded0\udee0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf7a\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udca0-\udca9\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-\ude35\ude38-\ude3a\ude3f\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee6\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd27\udd30-\udd39\udf00-\udf1c\udf27\udf30-\udf50\udfe0-\udff6]|\ud804[\udc00-\udc46\udc66-\udc6f\udc7f-\udcba\udcd0-\udce8\udcf0-\udcf9\udd00-\udd34\udd36-\udd3f\udd44-\udd46\udd50-\udd73\udd76\udd80-\uddc4\uddc9-\uddcc\uddd0-\uddda\udddc\ude00-\ude11\ude13-\ude37\ude3e\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udeea\udef0-\udef9\udf00-\udf03\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3b-\udf44\udf47-\udf48\udf4b-\udf4d\udf50\udf57\udf5d-\udf63\udf66-\udf6c\udf70-\udf74]|\ud805[\udc00-\udc4a\udc50-\udc59\udc5e-\udc5f\udc80-\udcc5\udcc7\udcd0-\udcd9\udd80-\uddb5\uddb8-\uddc0\uddd8-\udddd\ude00-\ude40\ude44\ude50-\ude59\ude80-\udeb8\udec0-\udec9\udf00-\udf1a\udf1d-\udf2b\udf30-\udf39]|\ud806[\udc00-\udc3a\udca0-\udce9\udcff\udda0-\udda7\uddaa-\uddd7\uddda-\udde1\udde3-\udde4\ude00-\ude3e\ude47\ude50-\ude99\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc36\udc38-\udc40\udc50-\udc59\udc72-\udc8f\udc92-\udca7\udca9-\udcb6\udd00-\udd06\udd08-\udd09\udd0b-\udd36\udd3a\udd3c-\udd3d\udd3f-\udd47\udd50-\udd59\udd60-\udd65\udd67-\udd68\udd6a-\udd8e\udd90-\udd91\udd93-\udd98\udda0-\udda9\udee0-\udef6]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\ude60-\ude69\uded0-\udeed\udef0-\udef4\udf00-\udf36\udf40-\udf43\udf50-\udf59\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf4f-\udf87\udf8f-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99\udc9d-\udc9e]|\ud834[\udd65-\udd69\udd6d-\udd72\udd7b-\udd82\udd85-\udd8b\uddaa-\uddad\ude42-\ude44]|\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\udfce-\udfff]|\ud836[\ude00-\ude36\ude3b-\ude6c\ude75\ude84\ude9b-\ude9f\udea1-\udeaf]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23-\udc24\udc26-\udc2a\udd00-\udd2c\udd30-\udd3d\udd40-\udd49\udd4e\udec0-\udef9]|\ud83a[\udc00-\udcc4\udcd0-\udcd6\udd00-\udd4b\udd50-\udd59]|\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]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d]|\udb40[\udd00-\uddef])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\})|[\u200c\u200d])*>/,function(){return P(n=n.slice(3,-1),this.getCurrentState()),"NAMED_CAPTURE_GROUP"}],[/^\(/,function(){return"L_PAREN"}],[/^\)/,function(){return"R_PAREN"}],[/^[*?+[^$]/,function(){return"CHAR"}],[/^\\\]/,function(){return"ESC_CHAR"}],[/^\]/,function(){return this.popState(),"R_BRACKET"}],[/^\^/,function(){return"BOS"}],[/^\$/,function(){return"EOS"}],[/^\*/,function(){return"STAR"}],[/^\?/,function(){return"Q_MARK"}],[/^\+/,function(){return"PLUS"}],[/^\|/,function(){return"BAR"}],[/^\./,function(){return"ANY"}],[/^\//,function(){return"SLASH"}],[/^[^*?+\[()\\|]/,function(){return"CHAR"}],[/^\[\^/,function(){var e=this.getCurrentState();return this.pushState("u"===e||"xu"===e?"u_class":"class"),"NEG_CLASS"}],[/^\[/,function(){var e=this.getCurrentState();return this.pushState("u"===e||"xu"===e?"u_class":"class"),"L_BRACKET"}]],b={INITIAL:[8,9,10,11,12,13,14,15,16,17,20,22,23,24,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],u:[8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],xu:[0,1,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],x:[0,1,8,9,10,11,12,13,14,15,16,17,20,22,23,24,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],u_class:[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],class:[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,20,22,23,24,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51]},h={type:"$",value:""};v={initString:function(e){return this._string=e,this._cursor=0,this._states=["INITIAL"],this._tokensQueue=[],this._currentLine=1,this._currentColumn=0,this._currentLineBeginOffset=0,this._tokenStartOffset=0,this._tokenEndOffset=0,this._tokenStartLine=1,this._tokenEndLine=1,this._tokenStartColumn=0,this._tokenEndColumn=0,this},getStates:function(){return this._states},getCurrentState:function(){return this._states[this._states.length-1]},pushState:function(e){this._states.push(e)},begin:function(e){this.pushState(e)},popState:function(){return this._states.length>1?this._states.pop():this._states[0]},getNextToken:function(){if(this._tokensQueue.length>0)return this.onToken(this._toToken(this._tokensQueue.shift()));if(!this.hasMoreTokens())return this.onToken(h);for(var e=this._string.slice(this._cursor),u=b[this.getCurrentState()],r=0;r<u.length;r++){var d=u[r],a=p[d],s=this._match(e,a[0]);if(""===e&&""===s&&this._cursor++,null!==s){(n=s).length;var i=a[1].call(this);if(!i)return this.getNextToken();if(Array.isArray(i)){var o,f=i.slice(1);i=i[0],f.length>0&&(o=this._tokensQueue).unshift.apply(o,t(f))}return this.onToken(this._toToken(i,n))}}if(this.isEOF())return this._cursor++,h;this.throwUnexpectedToken(e[0],this._currentLine,this._currentColumn)},throwUnexpectedToken:function(e,u,r){var t=this._string.split("\n")[u-1],n="";throw t&&(n="\n\n"+t+"\n"+" ".repeat(r)+"^\n"),new SyntaxError(n+'Unexpected token: "'+e+'" at '+u+":"+r+".")},getCursor:function(){return this._cursor},getCurrentLine:function(){return this._currentLine},getCurrentColumn:function(){return this._currentColumn},_captureLocation:function(e){var u=/\n/g;this._tokenStartOffset=this._cursor,this._tokenStartLine=this._currentLine,this._tokenStartColumn=this._tokenStartOffset-this._currentLineBeginOffset;for(var r=void 0;null!==(r=u.exec(e));)this._currentLine++,this._currentLineBeginOffset=this._tokenStartOffset+r.index+1;this._tokenEndOffset=this._cursor+e.length,this._tokenEndLine=this._currentLine,this._tokenEndColumn=this._currentColumn=this._tokenEndOffset-this._currentLineBeginOffset},_toToken:function(e){return{type:e,value:arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",startOffset:this._tokenStartOffset,endOffset:this._tokenEndOffset,startLine:this._tokenStartLine,endLine:this._tokenEndLine,startColumn:this._tokenStartColumn,endColumn:this._tokenEndColumn}},isEOF:function(){return this._cursor===this._string.length},hasMoreTokens:function(){return this._cursor<=this._string.length},_match:function(e,u){var r=e.match(u);return r?(this._captureLocation(r[0]),this._cursor+=r[0].length,r[0]):null},onToken:function(e){return e}},d.lexer=v,d.tokenizer=v,d.options={captureLocations:!0};var m={setOptions:function(e){return d.options=e,this},getOptions:function(){return d.options},parse:function(e,u){if(!v)throw new Error("Tokenizer instance wasn't specified.");v.initString(e);var r=d.options;u&&(d.options=Object.assign({},d.options,u)),m.onParseBegin(e,v,d.options),l.length=0,l.push(0);var i=v.getNextToken(),p=null;do{i||(d.options=r,D());var b=l[l.length-1],h=f[i.type];c[b].hasOwnProperty(h)||(d.options=r,L(i));var y=c[b][h];if("s"===y[0]){var g=null;d.options.captureLocations&&(g={startOffset:i.startOffset,endOffset:i.endOffset,startLine:i.startLine,endLine:i.endLine,startColumn:i.startColumn,endColumn:i.endColumn}),p=this.onShift(i),l.push({symbol:f[p.type],semanticValue:p.value,loc:g},Number(y.slice(1))),i=v.getNextToken()}else if("r"===y[0]){var C=y.slice(1),B=o[C],_="function"==typeof B[2],x=_?[]:null,w=_&&d.options.captureLocations?[]:null;if(0!==B[1])for(var A=B[1];A-- >0;){l.pop();var S=l.pop();_&&(x.unshift(S.semanticValue),w&&w.unshift(S.loc))}var j={symbol:B[0]};if(_){n=p?p.value:null,p&&p.value.length;var k=null!==w?x.concat(w):x;B[2].apply(B,t(k)),j.semanticValue=a,w&&(j.loc=s)}var E=l[l.length-1],P=B[0];l.push(j,c[E][P])}else if("acc"===y){l.pop();var O=l.pop();return(1!==l.length||0!==l[0]||v.hasMoreTokens())&&(d.options=r,L(i)),O.hasOwnProperty("semanticValue")?(d.options=r,m.onParseEnd(O.semanticValue),O.semanticValue):(m.onParseEnd(),d.options=r,!0)}}while(v.hasMoreTokens()||l.length>1)},setTokenizer:function(e){return v=e,m},getTokenizer:function(){return v},onParseBegin:function(e,u,r){},onParseEnd:function(e){},onShift:function(e){return e}},y=0,g={},C="";function B(e){var u=e.match(/\d+/g).map(Number);if(Number.isFinite(u[1])&&u[1]<u[0])throw new SyntaxError("Numbers out of order in "+e+" quantifier");return u}function _(e,u){if("control"===e.kind||"control"===u.kind||!isNaN(e.codePoint)&&!isNaN(u.codePoint)&&e.codePoint>u.codePoint)throw new SyntaxError("Range "+e.value+"-"+u.value+" out of order in character class")}m.onParseBegin=function(e,u){C=e,y=0,g={};var r=e.lastIndexOf("/"),t=e.slice(r);t.includes("x")&&t.includes("u")?u.pushState("xu"):(t.includes("x")&&u.pushState("x"),t.includes("u")&&u.pushState("u"))},m.onShift=function(e){return"L_PAREN"!==e.type&&"NAMED_CAPTURE_GROUP"!==e.type||(e.value=new String(e.value),e.value.groupNumber=++y),e};var x=r(24876);function w(e,u,r){var t=void 0,n=void 0;switch(u){case"decimal":n=Number(e.slice(1)),t=String.fromCodePoint(n);break;case"oct":n=parseInt(e.slice(1),8),t=String.fromCodePoint(n);break;case"hex":case"unicode":if(e.lastIndexOf("\\u")>0){var d=function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,u){var r=[],t=!0,n=!1,d=void 0;try{for(var a,s=e[Symbol.iterator]();!(t=(a=s.next()).done)&&(r.push(a.value),!u||r.length!==u);t=!0);}catch(e){n=!0,d=e}finally{try{!t&&s.return&&s.return()}finally{if(n)throw d}}return r}(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")}(e.split("\\u").slice(1),2),a=d[0],s=d[1];n=1024*((a=parseInt(a,16))-55296)+((s=parseInt(s,16))-56320)+65536,t=String.fromCodePoint(n)}else{var i=e.slice(2).replace("{","");if((n=parseInt(i,16))>1114111)throw new SyntaxError("Bad character escape sequence: "+e);t=String.fromCodePoint(n)}break;case"meta":switch(e){case"\\t":n=(t="\t").codePointAt(0);break;case"\\n":n=(t="\n").codePointAt(0);break;case"\\r":n=(t="\r").codePointAt(0);break;case"\\v":n=(t="\v").codePointAt(0);break;case"\\f":n=(t="\f").codePointAt(0);break;case"\\b":n=(t="\b").codePointAt(0);case"\\0":t="\0",n=0;case".":t=".",n=NaN;break;default:n=NaN}break;case"simple":n=(t=e).codePointAt(0)}return N({type:"Char",value:e,kind:u,symbol:t,codePoint:n},r)}var A="gimsuxy";function S(e){var u=new Set,r=!0,t=!1,n=void 0;try{for(var d,a=e[Symbol.iterator]();!(r=(d=a.next()).done);r=!0){var s=d.value;if(u.has(s)||!A.includes(s))throw new SyntaxError("Invalid flags: "+e);u.add(s)}}catch(e){t=!0,n=e}finally{try{!r&&a.return&&a.return()}finally{if(t)throw n}}return e.split("").sort().join("")}var j=/^\\u[0-9a-fA-F]{4}/,k=/^\\u\{[0-9a-fA-F]{1,}\}/,E=/\\u\{[0-9a-fA-F]{1,}\}/;function P(e,u){if(E.test(e)&&"u"!==u&&"xu"!==u&&"u_class"!==u)throw new SyntaxError('invalid group Unicode name "'+e+'", use `u` flag.');return e}var O=/\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\})/;function T(e){return e.replace(new RegExp(O,"g"),(function(e,u,r,t,n,d,a){return u?String.fromCodePoint(parseInt(u,16),parseInt(r,16)):t?String.fromCodePoint(parseInt(t,16)):n?String.fromCodePoint(parseInt(n,16)):d?String.fromCodePoint(parseInt(d,16)):a?String.fromCodePoint(parseInt(a,16)):e}))}function N(e,u){return d.options.captureLocations&&(e.loc={source:C.slice(u.startOffset,u.endOffset),start:{line:u.startLine,column:u.startColumn,offset:u.startOffset},end:{line:u.endLine,column:u.endColumn,offset:u.endOffset}}),e}function R(e,u){return d.options.captureLocations?{startOffset:e.startOffset,endOffset:u.endOffset,startLine:e.startLine,endLine:u.endLine,startColumn:e.startColumn,endColumn:u.endColumn}:null}function L(e){"$"===e.type&&D(),v.throwUnexpectedToken(e.value,e.startLine,e.startColumn)}function D(){!function(e){throw new SyntaxError("Unexpected end of input.")}()}e.exports=m},37112:function(e,u,r){"use strict";var t=r(42669),n=t.parse.bind(t);t.parse=function(e,u){return n(""+e,u)},t.setOptions({captureLocations:!1}),e.exports=t},24876:function(e){"use strict";var u={General_Category:"gc",Script:"sc",Script_Extensions:"scx"},r=o(u),t={ASCII:"ASCII",ASCII_Hex_Digit:"AHex",Alphabetic:"Alpha",Any:"Any",Assigned:"Assigned",Bidi_Control:"Bidi_C",Bidi_Mirrored:"Bidi_M",Case_Ignorable:"CI",Cased:"Cased",Changes_When_Casefolded:"CWCF",Changes_When_Casemapped:"CWCM",Changes_When_Lowercased:"CWL",Changes_When_NFKC_Casefolded:"CWKCF",Changes_When_Titlecased:"CWT",Changes_When_Uppercased:"CWU",Dash:"Dash",Default_Ignorable_Code_Point:"DI",Deprecated:"Dep",Diacritic:"Dia",Emoji:"Emoji",Emoji_Component:"Emoji_Component",Emoji_Modifier:"Emoji_Modifier",Emoji_Modifier_Base:"Emoji_Modifier_Base",Emoji_Presentation:"Emoji_Presentation",Extended_Pictographic:"Extended_Pictographic",Extender:"Ext",Grapheme_Base:"Gr_Base",Grapheme_Extend:"Gr_Ext",Hex_Digit:"Hex",IDS_Binary_Operator:"IDSB",IDS_Trinary_Operator:"IDST",ID_Continue:"IDC",ID_Start:"IDS",Ideographic:"Ideo",Join_Control:"Join_C",Logical_Order_Exception:"LOE",Lowercase:"Lower",Math:"Math",Noncharacter_Code_Point:"NChar",Pattern_Syntax:"Pat_Syn",Pattern_White_Space:"Pat_WS",Quotation_Mark:"QMark",Radical:"Radical",Regional_Indicator:"RI",Sentence_Terminal:"STerm",Soft_Dotted:"SD",Terminal_Punctuation:"Term",Unified_Ideograph:"UIdeo",Uppercase:"Upper",Variation_Selector:"VS",White_Space:"space",XID_Continue:"XIDC",XID_Start:"XIDS"},n=o(t),d={Cased_Letter:"LC",Close_Punctuation:"Pe",Connector_Punctuation:"Pc",Control:["Cc","cntrl"],Currency_Symbol:"Sc",Dash_Punctuation:"Pd",Decimal_Number:["Nd","digit"],Enclosing_Mark:"Me",Final_Punctuation:"Pf",Format:"Cf",Initial_Punctuation:"Pi",Letter:"L",Letter_Number:"Nl",Line_Separator:"Zl",Lowercase_Letter:"Ll",Mark:["M","Combining_Mark"],Math_Symbol:"Sm",Modifier_Letter:"Lm",Modifier_Symbol:"Sk",Nonspacing_Mark:"Mn",Number:"N",Open_Punctuation:"Ps",Other:"C",Other_Letter:"Lo",Other_Number:"No",Other_Punctuation:"Po",Other_Symbol:"So",Paragraph_Separator:"Zp",Private_Use:"Co",Punctuation:["P","punct"],Separator:"Z",Space_Separator:"Zs",Spacing_Mark:"Mc",Surrogate:"Cs",Symbol:"S",Titlecase_Letter:"Lt",Unassigned:"Cn",Uppercase_Letter:"Lu"},a=o(d),s={Adlam:"Adlm",Ahom:"Ahom",Anatolian_Hieroglyphs:"Hluw",Arabic:"Arab",Armenian:"Armn",Avestan:"Avst",Balinese:"Bali",Bamum:"Bamu",Bassa_Vah:"Bass",Batak:"Batk",Bengali:"Beng",Bhaiksuki:"Bhks",Bopomofo:"Bopo",Brahmi:"Brah",Braille:"Brai",Buginese:"Bugi",Buhid:"Buhd",Canadian_Aboriginal:"Cans",Carian:"Cari",Caucasian_Albanian:"Aghb",Chakma:"Cakm",Cham:"Cham",Cherokee:"Cher",Common:"Zyyy",Coptic:["Copt","Qaac"],Cuneiform:"Xsux",Cypriot:"Cprt",Cyrillic:"Cyrl",Deseret:"Dsrt",Devanagari:"Deva",Dogra:"Dogr",Duployan:"Dupl",Egyptian_Hieroglyphs:"Egyp",Elbasan:"Elba",Ethiopic:"Ethi",Georgian:"Geor",Glagolitic:"Glag",Gothic:"Goth",Grantha:"Gran",Greek:"Grek",Gujarati:"Gujr",Gunjala_Gondi:"Gong",Gurmukhi:"Guru",Han:"Hani",Hangul:"Hang",Hanifi_Rohingya:"Rohg",Hanunoo:"Hano",Hatran:"Hatr",Hebrew:"Hebr",Hiragana:"Hira",Imperial_Aramaic:"Armi",Inherited:["Zinh","Qaai"],Inscriptional_Pahlavi:"Phli",Inscriptional_Parthian:"Prti",Javanese:"Java",Kaithi:"Kthi",Kannada:"Knda",Katakana:"Kana",Kayah_Li:"Kali",Kharoshthi:"Khar",Khmer:"Khmr",Khojki:"Khoj",Khudawadi:"Sind",Lao:"Laoo",Latin:"Latn",Lepcha:"Lepc",Limbu:"Limb",Linear_A:"Lina",Linear_B:"Linb",Lisu:"Lisu",Lycian:"Lyci",Lydian:"Lydi",Mahajani:"Mahj",Makasar:"Maka",Malayalam:"Mlym",Mandaic:"Mand",Manichaean:"Mani",Marchen:"Marc",Medefaidrin:"Medf",Masaram_Gondi:"Gonm",Meetei_Mayek:"Mtei",Mende_Kikakui:"Mend",Meroitic_Cursive:"Merc",Meroitic_Hieroglyphs:"Mero",Miao:"Plrd",Modi:"Modi",Mongolian:"Mong",Mro:"Mroo",Multani:"Mult",Myanmar:"Mymr",Nabataean:"Nbat",New_Tai_Lue:"Talu",Newa:"Newa",Nko:"Nkoo",Nushu:"Nshu",Ogham:"Ogam",Ol_Chiki:"Olck",Old_Hungarian:"Hung",Old_Italic:"Ital",Old_North_Arabian:"Narb",Old_Permic:"Perm",Old_Persian:"Xpeo",Old_Sogdian:"Sogo",Old_South_Arabian:"Sarb",Old_Turkic:"Orkh",Oriya:"Orya",Osage:"Osge",Osmanya:"Osma",Pahawh_Hmong:"Hmng",Palmyrene:"Palm",Pau_Cin_Hau:"Pauc",Phags_Pa:"Phag",Phoenician:"Phnx",Psalter_Pahlavi:"Phlp",Rejang:"Rjng",Runic:"Runr",Samaritan:"Samr",Saurashtra:"Saur",Sharada:"Shrd",Shavian:"Shaw",Siddham:"Sidd",SignWriting:"Sgnw",Sinhala:"Sinh",Sogdian:"Sogd",Sora_Sompeng:"Sora",Soyombo:"Soyo",Sundanese:"Sund",Syloti_Nagri:"Sylo",Syriac:"Syrc",Tagalog:"Tglg",Tagbanwa:"Tagb",Tai_Le:"Tale",Tai_Tham:"Lana",Tai_Viet:"Tavt",Takri:"Takr",Tamil:"Taml",Tangut:"Tang",Telugu:"Telu",Thaana:"Thaa",Thai:"Thai",Tibetan:"Tibt",Tifinagh:"Tfng",Tirhuta:"Tirh",Ugaritic:"Ugar",Vai:"Vaii",Warang_Citi:"Wara",Yi:"Yiii",Zanabazar_Square:"Zanb"},i=o(s);function o(e){var u={};for(var r in e)if(e.hasOwnProperty(r)){var t=e[r];if(Array.isArray(t))for(var n=0;n<t.length;n++)u[t[n]]=r;else u[t]=r}return u}function f(e){return d.hasOwnProperty(e)||a.hasOwnProperty(e)}function c(e){return s.hasOwnProperty(e)||i.hasOwnProperty(e)}e.exports={isAlias:function(e){return r.hasOwnProperty(e)||n.hasOwnProperty(e)},isValidName:function(e){return u.hasOwnProperty(e)||r.hasOwnProperty(e)||t.hasOwnProperty(e)||n.hasOwnProperty(e)},isValidValue:function(e,u){return function(e){return"General_Category"===e||"gc"==e}(e)?f(u):!!function(e){return"Script"===e||"Script_Extensions"===e||"sc"===e||"scx"===e}(e)&&c(u)},isGeneralCategoryValue:f,isScriptCategoryValue:c,isBinaryPropertyName:function(e){return t.hasOwnProperty(e)||n.hasOwnProperty(e)},getCanonicalName:function(e){return r.hasOwnProperty(e)?r[e]:n.hasOwnProperty(e)?n[e]:null},getCanonicalValue:function(e){return a.hasOwnProperty(e)?a[e]:i.hasOwnProperty(e)?i[e]:n.hasOwnProperty(e)?n[e]:null},NON_BINARY_PROP_NAMES_TO_ALIASES:u,NON_BINARY_ALIASES_TO_PROP_NAMES:r,BINARY_PROP_NAMES_TO_ALIASES:t,BINARY_ALIASES_TO_PROP_NAMES:n,GENERAL_CATEGORY_VALUE_TO_ALIASES:d,GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES:a,SCRIPT_VALUE_TO_ALIASES:s,SCRIPT_VALUE_ALIASES_TO_VALUE:i}},51474:function(e,u,r){"use strict";var t=r(78355),n=r(89702),d=r(47393),a=r(37112),s=r(60045),i=r(8785),o=r(22722),f=r(77460).RegExpTree,c={parser:a,fa:o,TransformResult:s.TransformResult,parse:function(e,u){return a.parse(""+e,u)},traverse:function(e,u,r){return i.traverse(e,u,r)},transform:function(e,u){return s.transform(e,u)},generate:function(e){return n.generate(e)},toRegExp:function(e){var u=this.compatTranspile(e);return new RegExp(u.getSource(),u.getFlags())},optimize:function(e,u){var r=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).blacklist;return d.optimize(e,{whitelist:u,blacklist:r})},compatTranspile:function(e,u){return t.transform(e,u)},exec:function(e,u){if("string"==typeof e){var r=this.compatTranspile(e),t=r.getExtra();e=t.namedCapturingGroups?new f(r.toRegExp(),{flags:r.getFlags(),source:r.getSource(),groups:t.namedCapturingGroups}):r.toRegExp()}return e.exec(u)}};e.exports=c},60045:function(e,u,r){"use strict";var t=function(){function e(e,u){for(var r=0;r<u.length;r++){var t=u[r];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}return function(u,r,t){return r&&e(u.prototype,r),t&&e(u,t),u}}(),n=r(89702),d=r(37112),a=r(8785),s=function(){function e(u){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._ast=u,this._source=null,this._string=null,this._regexp=null,this._extra=r}return t(e,[{key:"getAST",value:function(){return this._ast}},{key:"setExtra",value:function(e){this._extra=e}},{key:"getExtra",value:function(){return this._extra}},{key:"toRegExp",value:function(){return this._regexp||(this._regexp=new RegExp(this.getSource(),this._ast.flags)),this._regexp}},{key:"getSource",value:function(){return this._source||(this._source=n.generate(this._ast.body)),this._source}},{key:"getFlags",value:function(){return this._ast.flags}},{key:"toString",value:function(){return this._string||(this._string=n.generate(this._ast)),this._string}}]),e}();e.exports={TransformResult:s,transform:function(e,u){var r=e;return e instanceof RegExp&&(e=""+e),"string"==typeof e&&(r=d.parse(e,{captureLocations:!0})),a.traverse(r,u),new s(r)}}},26554:function(e){"use strict";e.exports={disjunctionToList:function e(u){if("Disjunction"!==u.type)throw new TypeError('Expected "Disjunction" node, got "'+u.type+'"');var r=[];return u.left&&"Disjunction"===u.left.type?r.push.apply(r,function(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}(e(u.left)).concat([u.right])):r.push(u.left,u.right),r},listToDisjunction:function(e){return e.reduce((function(e,u){return{type:"Disjunction",left:e,right:u}}))},increaseQuantifierByOne:function(e){"*"===e.kind?e.kind="+":"+"===e.kind?(e.kind="Range",e.from=2,delete e.to):"?"===e.kind?(e.kind="Range",e.from=1,e.to=2):"Range"===e.kind&&(e.from+=1,e.to&&(e.to+=1))}}},8785:function(e,u,r){"use strict";var t=r(27762);e.exports={traverse:function(e,u){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{asNodes:!1};function n(e,u,r,n){var d=t.getForNode(u);return t.getForNode(e,d,r,n)}Array.isArray(u)||(u=[u]),u=u.filter((function(u){return"function"!=typeof u.shouldRun||u.shouldRun(e)})),t.initRegistry(),u.forEach((function(u){"function"==typeof u.init&&u.init(e)})),function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=u.pre,n=u.post,d=u.skipProperty;!function e(u,a,s,i){if(u&&"string"==typeof u.type){var o=void 0;if(r&&(o=r(u,a,s,i)),!1!==o)for(var f in a&&a[s]&&(u=isNaN(i)?a[s]:a[s][i]),u)if(u.hasOwnProperty(f)){if(d?d(f,u):"$"===f[0])continue;var c=u[f];if(Array.isArray(c)){var l=0;for(t.traversingIndexStack.push(l);l<c.length;)e(c[l],u,f,l),l=t.updateTraversingIndex(1);t.traversingIndexStack.pop()}else e(c,u,f)}n&&n(u,a,s,i)}}(e,null)}(e,{pre:function(e,t,d,a){var s=void 0;r.asNodes||(s=n(e,t,d,a));var i=!0,o=!1,f=void 0;try{for(var c,l=u[Symbol.iterator]();!(i=(c=l.next()).done);i=!0){var v=c.value;if("function"==typeof v["*"])if(s){if(!s.isRemoved()&&!1===v["*"](s))return!1}else v["*"](e,t,d,a);var p=void 0;if("function"==typeof v[e.type]?p=v[e.type]:"object"==typeof v[e.type]&&"function"==typeof v[e.type].pre&&(p=v[e.type].pre),p)if(s){if(!s.isRemoved()&&!1===p.call(v,s))return!1}else p.call(v,e,t,d,a)}}catch(e){o=!0,f=e}finally{try{!i&&l.return&&l.return()}finally{if(o)throw f}}},post:function(e,t,d,a){if(e){var s=void 0;r.asNodes||(s=n(e,t,d,a));var i=!0,o=!1,f=void 0;try{for(var c,l=u[Symbol.iterator]();!(i=(c=l.next()).done);i=!0){var v=c.value,p=void 0;if("object"==typeof v[e.type]&&"function"==typeof v[e.type].post&&(p=v[e.type].post),p)if(s){if(!s.isRemoved()&&!1===p.call(v,s))return!1}else p.call(v,e,t,d,a)}}catch(e){o=!0,f=e}finally{try{!i&&l.return&&l.return()}finally{if(o)throw f}}}},skipProperty:function(e){return"loc"===e}})}}},27762:function(e){"use strict";var u=function(){function e(e,u){for(var r=0;r<u.length;r++){var t=u[r];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}return function(u,r,t){return r&&e(u.prototype,r),t&&e(u,t),u}}(),r="expressions",t="expression",n=function(){function e(u){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this.node=u,this.parentPath=r,this.parent=r?r.node:null,this.property=t,this.index=n}return u(e,[{key:"_enforceProp",value:function(e){if(!this.node.hasOwnProperty(e))throw new Error("Node of type "+this.node.type+" doesn't have \""+e+'" collection.')}},{key:"setChild",value:function(u){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,d=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=void 0;return null!=n?(d||(d=r),this._enforceProp(d),this.node[d][n]=u,a=e.getForNode(u,this,d,n)):(d||(d=t),this._enforceProp(d),this.node[d]=u,a=e.getForNode(u,this,d,null)),a}},{key:"appendChild",value:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;u||(u=r),this._enforceProp(u);var t=this.node[u].length;return this.setChild(e,t,u)}},{key:"insertChildAt",value:function(u,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:r;this._enforceProp(n),this.node[n].splice(t,0,u),t<=e.getTraversingIndex()&&e.updateTraversingIndex(1),this._rebuildIndex(this.node,n)}},{key:"remove",value:function(){if(!this.isRemoved()&&(e.registry.delete(this.node),this.node=null,this.parent)){if(null!==this.index)return this.parent[this.property].splice(this.index,1),this.index<=e.getTraversingIndex()&&e.updateTraversingIndex(-1),this._rebuildIndex(this.parent,this.property),this.index=null,void(this.property=null);delete this.parent[this.property],this.property=null}}},{key:"_rebuildIndex",value:function(u,r){for(var t=e.getForNode(u),n=0;n<u[r].length;n++)e.getForNode(u[r][n],t,r,n).index=n}},{key:"isRemoved",value:function(){return null===this.node}},{key:"replace",value:function(u){return e.registry.delete(this.node),this.node=u,this.parent?(null!==this.index?this.parent[this.property][this.index]=u:this.parent[this.property]=u,e.getForNode(u,this.parentPath,this.property,this.index)):null}},{key:"update",value:function(e){Object.assign(this.node,e)}},{key:"getParent",value:function(){return this.parentPath}},{key:"getChild",value:function(){var u=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.node.expressions?e.getForNode(this.node.expressions[u],this,r,u):this.node.expression&&0==u?e.getForNode(this.node.expression,this,t):null}},{key:"hasEqualSource",value:function(e){return JSON.stringify(this.node,d)===JSON.stringify(e.node,d)}},{key:"jsonEncode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},u=e.format,r=e.useLoc;return JSON.stringify(this.node,r?null:d,u)}},{key:"getPreviousSibling",value:function(){return this.parent&&null!=this.index?e.getForNode(this.parent[this.property][this.index-1],e.getForNode(this.parent),this.property,this.index-1):null}},{key:"getNextSibling",value:function(){return this.parent&&null!=this.index?e.getForNode(this.parent[this.property][this.index+1],e.getForNode(this.parent),this.property,this.index+1):null}}],[{key:"getForNode",value:function(u){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1;if(!u)return null;e.registry.has(u)||e.registry.set(u,new e(u,r,t,-1==n?null:n));var d=e.registry.get(u);return null!==r&&(d.parentPath=r,d.parent=d.parentPath.node),null!==t&&(d.property=t),n>=0&&(d.index=n),d}},{key:"initRegistry",value:function(){e.registry||(e.registry=new Map),e.registry.clear()}},{key:"updateTraversingIndex",value:function(u){return e.traversingIndexStack[e.traversingIndexStack.length-1]+=u}},{key:"getTraversingIndex",value:function(){return e.traversingIndexStack[e.traversingIndexStack.length-1]}}]),e}();function d(e,u){if("loc"!==e)return u}n.initRegistry(),n.traversingIndexStack=[],e.exports=n},60689:function(e){"use strict";e.exports=function e(u){if(null===u||"object"!=typeof u)return u;var r=void 0;for(var t in r=Array.isArray(u)?[]:{},u)r[t]=e(u[t]);return r}},16262:function(e,u,r){"use strict";e.exports=r(51474)},72950:function(){},76052:function(e){"use strict";e.exports=JSON.parse('[{"name":"nodejs","version":"0.2.0","date":"2011-08-26","lts":false,"security":false,"v8":"2.3.8.0"},{"name":"nodejs","version":"0.3.0","date":"2011-08-26","lts":false,"security":false,"v8":"2.5.1.0"},{"name":"nodejs","version":"0.4.0","date":"2011-08-26","lts":false,"security":false,"v8":"3.1.2.0"},{"name":"nodejs","version":"0.5.0","date":"2011-08-26","lts":false,"security":false,"v8":"3.1.8.25"},{"name":"nodejs","version":"0.6.0","date":"2011-11-04","lts":false,"security":false,"v8":"3.6.6.6"},{"name":"nodejs","version":"0.7.0","date":"2012-01-17","lts":false,"security":false,"v8":"3.8.6.0"},{"name":"nodejs","version":"0.8.0","date":"2012-06-22","lts":false,"security":false,"v8":"3.11.10.10"},{"name":"nodejs","version":"0.9.0","date":"2012-07-20","lts":false,"security":false,"v8":"3.11.10.15"},{"name":"nodejs","version":"0.10.0","date":"2013-03-11","lts":false,"security":false,"v8":"3.14.5.8"},{"name":"nodejs","version":"0.11.0","date":"2013-03-28","lts":false,"security":false,"v8":"3.17.13.0"},{"name":"nodejs","version":"0.12.0","date":"2015-02-06","lts":false,"security":false,"v8":"3.28.73.0"},{"name":"nodejs","version":"4.0.0","date":"2015-09-08","lts":false,"security":false,"v8":"4.5.103.30"},{"name":"nodejs","version":"4.1.0","date":"2015-09-17","lts":false,"security":false,"v8":"4.5.103.33"},{"name":"nodejs","version":"4.2.0","date":"2015-10-12","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.3.0","date":"2016-02-09","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.4.0","date":"2016-03-08","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.5.0","date":"2016-08-16","lts":"Argon","security":false,"v8":"4.5.103.37"},{"name":"nodejs","version":"4.6.0","date":"2016-09-27","lts":"Argon","security":true,"v8":"4.5.103.37"},{"name":"nodejs","version":"4.7.0","date":"2016-12-06","lts":"Argon","security":false,"v8":"4.5.103.43"},{"name":"nodejs","version":"4.8.0","date":"2017-02-21","lts":"Argon","security":false,"v8":"4.5.103.45"},{"name":"nodejs","version":"4.9.0","date":"2018-03-28","lts":"Argon","security":true,"v8":"4.5.103.53"},{"name":"nodejs","version":"5.0.0","date":"2015-10-29","lts":false,"security":false,"v8":"4.6.85.28"},{"name":"nodejs","version":"5.1.0","date":"2015-11-17","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.2.0","date":"2015-12-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.3.0","date":"2015-12-15","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.4.0","date":"2016-01-06","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.5.0","date":"2016-01-21","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.6.0","date":"2016-02-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.7.0","date":"2016-02-23","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.8.0","date":"2016-03-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.9.0","date":"2016-03-16","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.10.0","date":"2016-04-01","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.11.0","date":"2016-04-21","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.12.0","date":"2016-06-23","lts":false,"security":false,"v8":"4.6.85.32"},{"name":"nodejs","version":"6.0.0","date":"2016-04-26","lts":false,"security":false,"v8":"5.0.71.35"},{"name":"nodejs","version":"6.1.0","date":"2016-05-05","lts":false,"security":false,"v8":"5.0.71.35"},{"name":"nodejs","version":"6.2.0","date":"2016-05-17","lts":false,"security":false,"v8":"5.0.71.47"},{"name":"nodejs","version":"6.3.0","date":"2016-07-06","lts":false,"security":false,"v8":"5.0.71.52"},{"name":"nodejs","version":"6.4.0","date":"2016-08-12","lts":false,"security":false,"v8":"5.0.71.60"},{"name":"nodejs","version":"6.5.0","date":"2016-08-26","lts":false,"security":false,"v8":"5.1.281.81"},{"name":"nodejs","version":"6.6.0","date":"2016-09-14","lts":false,"security":false,"v8":"5.1.281.83"},{"name":"nodejs","version":"6.7.0","date":"2016-09-27","lts":false,"security":true,"v8":"5.1.281.83"},{"name":"nodejs","version":"6.8.0","date":"2016-10-12","lts":false,"security":false,"v8":"5.1.281.84"},{"name":"nodejs","version":"6.9.0","date":"2016-10-18","lts":"Boron","security":false,"v8":"5.1.281.84"},{"name":"nodejs","version":"6.10.0","date":"2017-02-21","lts":"Boron","security":false,"v8":"5.1.281.93"},{"name":"nodejs","version":"6.11.0","date":"2017-06-06","lts":"Boron","security":false,"v8":"5.1.281.102"},{"name":"nodejs","version":"6.12.0","date":"2017-11-06","lts":"Boron","security":false,"v8":"5.1.281.108"},{"name":"nodejs","version":"6.13.0","date":"2018-02-10","lts":"Boron","security":false,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.14.0","date":"2018-03-28","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.15.0","date":"2018-11-27","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.16.0","date":"2018-12-26","lts":"Boron","security":false,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.17.0","date":"2019-02-28","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"7.0.0","date":"2016-10-25","lts":false,"security":false,"v8":"5.4.500.36"},{"name":"nodejs","version":"7.1.0","date":"2016-11-08","lts":false,"security":false,"v8":"5.4.500.36"},{"name":"nodejs","version":"7.2.0","date":"2016-11-22","lts":false,"security":false,"v8":"5.4.500.43"},{"name":"nodejs","version":"7.3.0","date":"2016-12-20","lts":false,"security":false,"v8":"5.4.500.45"},{"name":"nodejs","version":"7.4.0","date":"2017-01-04","lts":false,"security":false,"v8":"5.4.500.45"},{"name":"nodejs","version":"7.5.0","date":"2017-01-31","lts":false,"security":false,"v8":"5.4.500.48"},{"name":"nodejs","version":"7.6.0","date":"2017-02-21","lts":false,"security":false,"v8":"5.5.372.40"},{"name":"nodejs","version":"7.7.0","date":"2017-02-28","lts":false,"security":false,"v8":"5.5.372.41"},{"name":"nodejs","version":"7.8.0","date":"2017-03-29","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"7.9.0","date":"2017-04-11","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"7.10.0","date":"2017-05-02","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"8.0.0","date":"2017-05-30","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.1.0","date":"2017-06-08","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.2.0","date":"2017-07-19","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.3.0","date":"2017-08-08","lts":false,"security":false,"v8":"6.0.286.52"},{"name":"nodejs","version":"8.4.0","date":"2017-08-15","lts":false,"security":false,"v8":"6.0.286.52"},{"name":"nodejs","version":"8.5.0","date":"2017-09-12","lts":false,"security":false,"v8":"6.0.287.53"},{"name":"nodejs","version":"8.6.0","date":"2017-09-26","lts":false,"security":false,"v8":"6.0.287.53"},{"name":"nodejs","version":"8.7.0","date":"2017-10-11","lts":false,"security":false,"v8":"6.1.534.42"},{"name":"nodejs","version":"8.8.0","date":"2017-10-24","lts":false,"security":false,"v8":"6.1.534.42"},{"name":"nodejs","version":"8.9.0","date":"2017-10-31","lts":"Carbon","security":false,"v8":"6.1.534.46"},{"name":"nodejs","version":"8.10.0","date":"2018-03-06","lts":"Carbon","security":false,"v8":"6.2.414.50"},{"name":"nodejs","version":"8.11.0","date":"2018-03-28","lts":"Carbon","security":true,"v8":"6.2.414.50"},{"name":"nodejs","version":"8.12.0","date":"2018-09-10","lts":"Carbon","security":false,"v8":"6.2.414.66"},{"name":"nodejs","version":"8.13.0","date":"2018-11-20","lts":"Carbon","security":false,"v8":"6.2.414.72"},{"name":"nodejs","version":"8.14.0","date":"2018-11-27","lts":"Carbon","security":true,"v8":"6.2.414.72"},{"name":"nodejs","version":"8.15.0","date":"2018-12-26","lts":"Carbon","security":false,"v8":"6.2.414.75"},{"name":"nodejs","version":"8.16.0","date":"2019-04-16","lts":"Carbon","security":false,"v8":"6.2.414.77"},{"name":"nodejs","version":"8.17.0","date":"2019-12-17","lts":"Carbon","security":true,"v8":"6.2.414.78"},{"name":"nodejs","version":"9.0.0","date":"2017-10-31","lts":false,"security":false,"v8":"6.2.414.32"},{"name":"nodejs","version":"9.1.0","date":"2017-11-07","lts":false,"security":false,"v8":"6.2.414.32"},{"name":"nodejs","version":"9.2.0","date":"2017-11-14","lts":false,"security":false,"v8":"6.2.414.44"},{"name":"nodejs","version":"9.3.0","date":"2017-12-12","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.4.0","date":"2018-01-10","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.5.0","date":"2018-01-31","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.6.0","date":"2018-02-21","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.7.0","date":"2018-03-01","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.8.0","date":"2018-03-07","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.9.0","date":"2018-03-21","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.10.0","date":"2018-03-28","lts":false,"security":true,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.11.0","date":"2018-04-04","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"10.0.0","date":"2018-04-24","lts":false,"security":false,"v8":"6.6.346.24"},{"name":"nodejs","version":"10.1.0","date":"2018-05-08","lts":false,"security":false,"v8":"6.6.346.27"},{"name":"nodejs","version":"10.2.0","date":"2018-05-23","lts":false,"security":false,"v8":"6.6.346.32"},{"name":"nodejs","version":"10.3.0","date":"2018-05-29","lts":false,"security":false,"v8":"6.6.346.32"},{"name":"nodejs","version":"10.4.0","date":"2018-06-06","lts":false,"security":false,"v8":"6.7.288.43"},{"name":"nodejs","version":"10.5.0","date":"2018-06-20","lts":false,"security":false,"v8":"6.7.288.46"},{"name":"nodejs","version":"10.6.0","date":"2018-07-04","lts":false,"security":false,"v8":"6.7.288.46"},{"name":"nodejs","version":"10.7.0","date":"2018-07-18","lts":false,"security":false,"v8":"6.7.288.49"},{"name":"nodejs","version":"10.8.0","date":"2018-08-01","lts":false,"security":false,"v8":"6.7.288.49"},{"name":"nodejs","version":"10.9.0","date":"2018-08-15","lts":false,"security":false,"v8":"6.8.275.24"},{"name":"nodejs","version":"10.10.0","date":"2018-09-06","lts":false,"security":false,"v8":"6.8.275.30"},{"name":"nodejs","version":"10.11.0","date":"2018-09-19","lts":false,"security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.12.0","date":"2018-10-10","lts":false,"security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.13.0","date":"2018-10-30","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.14.0","date":"2018-11-27","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.15.0","date":"2018-12-26","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.16.0","date":"2019-05-28","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.17.0","date":"2019-10-22","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.18.0","date":"2019-12-17","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.19.0","date":"2020-02-05","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.20.0","date":"2020-03-26","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.21.0","date":"2020-06-02","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.22.0","date":"2020-07-21","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.23.0","date":"2020-10-27","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.24.0","date":"2021-02-23","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"11.0.0","date":"2018-10-23","lts":false,"security":false,"v8":"7.0.276.28"},{"name":"nodejs","version":"11.1.0","date":"2018-10-30","lts":false,"security":false,"v8":"7.0.276.32"},{"name":"nodejs","version":"11.2.0","date":"2018-11-15","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.3.0","date":"2018-11-27","lts":false,"security":true,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.4.0","date":"2018-12-07","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.5.0","date":"2018-12-18","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.6.0","date":"2018-12-26","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.7.0","date":"2019-01-17","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.8.0","date":"2019-01-24","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.9.0","date":"2019-01-30","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.10.0","date":"2019-02-14","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.11.0","date":"2019-03-05","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.12.0","date":"2019-03-14","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.13.0","date":"2019-03-28","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.14.0","date":"2019-04-10","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.15.0","date":"2019-04-30","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"12.0.0","date":"2019-04-23","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.1.0","date":"2019-04-29","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.2.0","date":"2019-05-07","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.3.0","date":"2019-05-21","lts":false,"security":false,"v8":"7.4.288.27"},{"name":"nodejs","version":"12.4.0","date":"2019-06-04","lts":false,"security":false,"v8":"7.4.288.27"},{"name":"nodejs","version":"12.5.0","date":"2019-06-26","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.6.0","date":"2019-07-03","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.7.0","date":"2019-07-23","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.8.0","date":"2019-08-06","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.9.0","date":"2019-08-20","lts":false,"security":false,"v8":"7.6.303.29"},{"name":"nodejs","version":"12.10.0","date":"2019-09-04","lts":false,"security":false,"v8":"7.6.303.29"},{"name":"nodejs","version":"12.11.0","date":"2019-09-25","lts":false,"security":false,"v8":"7.7.299.11"},{"name":"nodejs","version":"12.12.0","date":"2019-10-11","lts":false,"security":false,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.13.0","date":"2019-10-21","lts":"Erbium","security":false,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.14.0","date":"2019-12-17","lts":"Erbium","security":true,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.15.0","date":"2020-02-05","lts":"Erbium","security":true,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.16.0","date":"2020-02-11","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.17.0","date":"2020-05-26","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.18.0","date":"2020-06-02","lts":"Erbium","security":true,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.19.0","date":"2020-10-06","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.20.0","date":"2020-11-24","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.21.0","date":"2021-02-23","lts":"Erbium","security":true,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.22.0","date":"2021-03-30","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"13.0.0","date":"2019-10-22","lts":false,"security":false,"v8":"7.8.279.17"},{"name":"nodejs","version":"13.1.0","date":"2019-11-05","lts":false,"security":false,"v8":"7.8.279.17"},{"name":"nodejs","version":"13.2.0","date":"2019-11-21","lts":false,"security":false,"v8":"7.9.317.23"},{"name":"nodejs","version":"13.3.0","date":"2019-12-03","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.4.0","date":"2019-12-17","lts":false,"security":true,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.5.0","date":"2019-12-18","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.6.0","date":"2020-01-07","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.7.0","date":"2020-01-21","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.8.0","date":"2020-02-05","lts":false,"security":true,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.9.0","date":"2020-02-18","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.10.0","date":"2020-03-04","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.11.0","date":"2020-03-12","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.12.0","date":"2020-03-26","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.13.0","date":"2020-04-14","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.14.0","date":"2020-04-29","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"14.0.0","date":"2020-04-21","lts":false,"security":false,"v8":"8.1.307.30"},{"name":"nodejs","version":"14.1.0","date":"2020-04-29","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.2.0","date":"2020-05-05","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.3.0","date":"2020-05-19","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.4.0","date":"2020-06-02","lts":false,"security":true,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.5.0","date":"2020-06-30","lts":false,"security":false,"v8":"8.3.110.9"},{"name":"nodejs","version":"14.6.0","date":"2020-07-20","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.7.0","date":"2020-07-29","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.8.0","date":"2020-08-11","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.9.0","date":"2020-08-27","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.10.0","date":"2020-09-08","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.11.0","date":"2020-09-15","lts":false,"security":true,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.12.0","date":"2020-09-22","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.13.0","date":"2020-09-29","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.14.0","date":"2020-10-15","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.15.0","date":"2020-10-27","lts":"Fermium","security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.16.0","date":"2021-02-23","lts":"Fermium","security":true,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.17.0","date":"2021-05-11","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.18.0","date":"2021-09-28","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.19.0","date":"2022-02-01","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.20.0","date":"2022-07-07","lts":"Fermium","security":true,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.21.0","date":"2022-11-01","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"15.0.0","date":"2020-10-20","lts":false,"security":false,"v8":"8.6.395.16"},{"name":"nodejs","version":"15.1.0","date":"2020-11-04","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.2.0","date":"2020-11-10","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.3.0","date":"2020-11-24","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.4.0","date":"2020-12-09","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.5.0","date":"2020-12-22","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.6.0","date":"2021-01-14","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.7.0","date":"2021-01-25","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.8.0","date":"2021-02-02","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.9.0","date":"2021-02-18","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.10.0","date":"2021-02-23","lts":false,"security":true,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.11.0","date":"2021-03-03","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.12.0","date":"2021-03-17","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.13.0","date":"2021-03-31","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.14.0","date":"2021-04-06","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"16.0.0","date":"2021-04-20","lts":false,"security":false,"v8":"9.0.257.17"},{"name":"nodejs","version":"16.1.0","date":"2021-05-04","lts":false,"security":false,"v8":"9.0.257.24"},{"name":"nodejs","version":"16.2.0","date":"2021-05-19","lts":false,"security":false,"v8":"9.0.257.25"},{"name":"nodejs","version":"16.3.0","date":"2021-06-03","lts":false,"security":false,"v8":"9.0.257.25"},{"name":"nodejs","version":"16.4.0","date":"2021-06-23","lts":false,"security":false,"v8":"9.1.269.36"},{"name":"nodejs","version":"16.5.0","date":"2021-07-14","lts":false,"security":false,"v8":"9.1.269.38"},{"name":"nodejs","version":"16.6.0","date":"2021-07-29","lts":false,"security":true,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.7.0","date":"2021-08-18","lts":false,"security":false,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.8.0","date":"2021-08-25","lts":false,"security":false,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.9.0","date":"2021-09-07","lts":false,"security":false,"v8":"9.3.345.16"},{"name":"nodejs","version":"16.10.0","date":"2021-09-22","lts":false,"security":false,"v8":"9.3.345.19"},{"name":"nodejs","version":"16.11.0","date":"2021-10-08","lts":false,"security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.12.0","date":"2021-10-20","lts":false,"security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.13.0","date":"2021-10-26","lts":"Gallium","security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.14.0","date":"2022-02-08","lts":"Gallium","security":false,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.15.0","date":"2022-04-26","lts":"Gallium","security":false,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.16.0","date":"2022-07-07","lts":"Gallium","security":true,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.17.0","date":"2022-08-16","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.18.0","date":"2022-10-12","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.19.0","date":"2022-12-13","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.20.0","date":"2023-03-28","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"17.0.0","date":"2021-10-19","lts":false,"security":false,"v8":"9.5.172.21"},{"name":"nodejs","version":"17.1.0","date":"2021-11-09","lts":false,"security":false,"v8":"9.5.172.25"},{"name":"nodejs","version":"17.2.0","date":"2021-11-30","lts":false,"security":false,"v8":"9.6.180.14"},{"name":"nodejs","version":"17.3.0","date":"2021-12-17","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.4.0","date":"2022-01-18","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.5.0","date":"2022-02-10","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.6.0","date":"2022-02-22","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.7.0","date":"2022-03-09","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.8.0","date":"2022-03-22","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.9.0","date":"2022-04-07","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"18.0.0","date":"2022-04-18","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.1.0","date":"2022-05-03","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.2.0","date":"2022-05-17","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.3.0","date":"2022-06-02","lts":false,"security":false,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.4.0","date":"2022-06-16","lts":false,"security":false,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.5.0","date":"2022-07-06","lts":false,"security":true,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.6.0","date":"2022-07-13","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.7.0","date":"2022-07-26","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.8.0","date":"2022-08-24","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.9.0","date":"2022-09-07","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.10.0","date":"2022-09-28","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.11.0","date":"2022-10-13","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.12.0","date":"2022-10-25","lts":"Hydrogen","security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.13.0","date":"2023-01-05","lts":"Hydrogen","security":false,"v8":"10.2.154.23"},{"name":"nodejs","version":"18.14.0","date":"2023-02-01","lts":"Hydrogen","security":false,"v8":"10.2.154.23"},{"name":"nodejs","version":"18.15.0","date":"2023-03-05","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.16.0","date":"2023-04-12","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"19.0.0","date":"2022-10-17","lts":false,"security":false,"v8":"10.7.193.13"},{"name":"nodejs","version":"19.1.0","date":"2022-11-14","lts":false,"security":false,"v8":"10.7.193.20"},{"name":"nodejs","version":"19.2.0","date":"2022-11-29","lts":false,"security":false,"v8":"10.8.168.20"},{"name":"nodejs","version":"19.3.0","date":"2022-12-14","lts":false,"security":false,"v8":"10.8.168.21"},{"name":"nodejs","version":"19.4.0","date":"2023-01-05","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.5.0","date":"2023-01-24","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.6.0","date":"2023-02-01","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.7.0","date":"2023-02-21","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.8.0","date":"2023-03-14","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.9.0","date":"2023-04-10","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"20.0.0","date":"2023-04-17","lts":false,"security":false,"v8":"11.3.244.4"},{"name":"nodejs","version":"20.1.0","date":"2023-05-03","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.2.0","date":"2023-05-16","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.3.0","date":"2023-06-08","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.4.0","date":"2023-07-04","lts":false,"security":false,"v8":"11.3.244.8"}]')},78864:function(e){"use strict";e.exports=JSON.parse('{"v0.8":{"start":"2012-06-25","end":"2014-07-31"},"v0.10":{"start":"2013-03-11","end":"2016-10-31"},"v0.12":{"start":"2015-02-06","end":"2016-12-31"},"v4":{"start":"2015-09-08","lts":"2015-10-12","maintenance":"2017-04-01","end":"2018-04-30","codename":"Argon"},"v5":{"start":"2015-10-29","maintenance":"2016-04-30","end":"2016-06-30"},"v6":{"start":"2016-04-26","lts":"2016-10-18","maintenance":"2018-04-30","end":"2019-04-30","codename":"Boron"},"v7":{"start":"2016-10-25","maintenance":"2017-04-30","end":"2017-06-30"},"v8":{"start":"2017-05-30","lts":"2017-10-31","maintenance":"2019-01-01","end":"2019-12-31","codename":"Carbon"},"v9":{"start":"2017-10-01","maintenance":"2018-04-01","end":"2018-06-30"},"v10":{"start":"2018-04-24","lts":"2018-10-30","maintenance":"2020-05-19","end":"2021-04-30","codename":"Dubnium"},"v11":{"start":"2018-10-23","maintenance":"2019-04-22","end":"2019-06-01"},"v12":{"start":"2019-04-23","lts":"2019-10-21","maintenance":"2020-11-30","end":"2022-04-30","codename":"Erbium"},"v13":{"start":"2019-10-22","maintenance":"2020-04-01","end":"2020-06-01"},"v14":{"start":"2020-04-21","lts":"2020-10-27","maintenance":"2021-10-19","end":"2023-04-30","codename":"Fermium"},"v15":{"start":"2020-10-20","maintenance":"2021-04-01","end":"2021-06-01"},"v16":{"start":"2021-04-20","lts":"2021-10-26","maintenance":"2022-10-18","end":"2023-09-11","codename":"Gallium"},"v17":{"start":"2021-10-19","maintenance":"2022-04-01","end":"2022-06-01"},"v18":{"start":"2022-04-19","lts":"2022-10-25","maintenance":"2023-10-18","end":"2025-04-30","codename":"Hydrogen"},"v19":{"start":"2022-10-18","maintenance":"2023-04-01","end":"2023-06-01"},"v20":{"start":"2023-04-18","lts":"2023-10-24","maintenance":"2024-10-22","end":"2026-04-30","codename":""}}')}},a={};function s(e){var u=a[e];if(void 0!==u)return u.exports;var r=a[e]={id:e,loaded:!1,exports:{}};return d[e].call(r.exports,r,r.exports,s),r.loaded=!0,r.exports}s.m=d,e=[],s.O=function(u,r,t,n){if(!r){var d=1/0;for(f=0;f<e.length;f++){r=e[f][0],t=e[f][1],n=e[f][2];for(var a=!0,i=0;i<r.length;i++)(!1&n||d>=n)&&Object.keys(s.O).every((function(e){return s.O[e](r[i])}))?r.splice(i--,1):(a=!1,n<d&&(d=n));if(a){e.splice(f--,1);var o=t();void 0!==o&&(u=o)}}return u}n=n||0;for(var f=e.length;f>0&&e[f-1][2]>n;f--)e[f]=e[f-1];e[f]=[r,t,n]},s.n=function(e){var u=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(u,{a:u}),u},r=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},s.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var n=Object.create(null);s.r(n);var d={};u=u||[null,r({}),r([]),r(r)];for(var a=2&t&&e;"object"==typeof a&&!~u.indexOf(a);a=r(a))Object.getOwnPropertyNames(a).forEach((function(u){d[u]=function(){return e[u]}}));return d.default=function(){return e},s.d(n,d),n},s.d=function(e,u){for(var r in u)s.o(u,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:u[r]})},s.f={},s.e=function(e){return Promise.all(Object.keys(s.f).reduce((function(u,r){return s.f[r](e,u),u}),[]))},s.u=function(e){return e+"-"+e+".js?v=6b30aac3d0fa7ab83001"},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=function(e,u){return Object.prototype.hasOwnProperty.call(e,u)},t={},n="nextcloud:",s.l=function(e,u,r,d){if(t[e])t[e].push(u);else{var a,i;if(void 0!==r)for(var o=document.getElementsByTagName("script"),f=0;f<o.length;f++){var c=o[f];if(c.getAttribute("src")==e||c.getAttribute("data-webpack")==n+r){a=c;break}}a||(i=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,s.nc&&a.setAttribute("nonce",s.nc),a.setAttribute("data-webpack",n+r),a.src=e),t[e]=[u];var l=function(u,r){a.onerror=a.onload=null,clearTimeout(v);var n=t[e];if(delete t[e],a.parentNode&&a.parentNode.removeChild(a),n&&n.forEach((function(e){return e(r)})),u)return u(r)},v=setTimeout(l.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=l.bind(null,a.onerror),a.onload=l.bind(null,a.onload),i&&document.head.appendChild(a)}},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},s.j=9315,function(){var e;s.g.importScripts&&(e=s.g.location+"");var u=s.g.document;if(!e&&u&&(u.currentScript&&(e=u.currentScript.src),!e)){var r=u.getElementsByTagName("script");if(r.length)for(var t=r.length-1;t>-1&&!e;)e=r[t--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),s.p=e}(),function(){s.b=document.baseURI||self.location.href;var e={9315:0};s.f.j=function(u,r){var t=s.o(e,u)?e[u]:void 0;if(0!==t)if(t)r.push(t[2]);else{var n=new Promise((function(r,n){t=e[u]=[r,n]}));r.push(t[2]=n);var d=s.p+s.u(u),a=new Error;s.l(d,(function(r){if(s.o(e,u)&&(0!==(t=e[u])&&(e[u]=void 0),t)){var n=r&&("load"===r.type?"missing":r.type),d=r&&r.target&&r.target.src;a.message="Loading chunk "+u+" failed.\n("+n+": "+d+")",a.name="ChunkLoadError",a.type=n,a.request=d,t[1](a)}}),"chunk-"+u,u)}},s.O.j=function(u){return 0===e[u]};var u=function(u,r){var t,n,d=r[0],a=r[1],i=r[2],o=0;if(d.some((function(u){return 0!==e[u]}))){for(t in a)s.o(a,t)&&(s.m[t]=a[t]);if(i)var f=i(s)}for(u&&u(r);o<d.length;o++)n=d[o],s.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return s.O(f)},r=self.webpackChunknextcloud=self.webpackChunknextcloud||[];r.forEach(u.bind(null,0)),r.push=u.bind(null,r.push.bind(r))}(),s.nc=void 0;var i=s.O(void 0,[7874],(function(){return s(27979)}));i=s.O(i)}();
-//# sourceMappingURL=core-unsupported-browser.js.map?v=99011768d4ccc58ff183 \ No newline at end of file
+!function(){var e,u,r,t,n,d={77727:function(e){e.exports=[">0.25%","not op_mini all","not dead","Firefox ESR"]},27979:function(e,u,r){"use strict";var t=r(79753),n=r(20144),d=r(31e3),a=r.n(d),s=r(16262);const i=[{regex:/IE (\d+)\.(\d+)/,family:"ie",maxVersion:[7,1/0,1/0]},{regex:/Trident\/4\.0/,family:"ie",version:[8,0,0]},{regex:/Trident\/5\.0/,family:"ie",version:[9,0,0]},{regex:/Trident\/6\.0/,family:"ie",version:[10,0,0]},{regex:/Trident\/[78]\.0/,family:"ie",version:[11,0,0]},{regex:/Edge?\/(\d+)(\.(\d+)|)(\.(\d+)|)/,family:"edge"},{regex:/Firefox\/(\d+)\.(\d+)(\.(\d+)|)/,family:"firefox"},{regex:/Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)/,family:"chrome"},{regex:/Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))/,family:"chrome",maxVersion:[70,1/0,1/0]},{regex:/Maci.+ Version\/(\d+)\.(\d+)([.,](\d+)|)( \(\w+\)|)( Mobile\/\w+|) Safari\//,family:"safari"},{regex:/Opera\/9\.80.+Version\/(\d+)\.(\d+)(\.(\d+)|)/,family:"opera",maxVersion:[12,15,0]},{regex:/Chrome.+OPR\/(\d+)\.(\d+)\.(\d+)/,family:"opera",minVersion:[15,0,0]},{regex:/(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\d+)[_.](\d+)([_.](\d+)|)/,family:"ios_saf"},{regex:/[^e] (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\d+)[_.](\d+)([_.](\d+)|)/,family:"ios_saf",version:[7,0,3]},{regex:/Opera Mini/,family:"op_mini"},{regex:/Android Donut/,family:"android",version:[1,2,0]},{regex:/Android Eclair/,family:"android",version:[2,1,0]},{regex:/Android Froyo/,family:"android",version:[2,2,0]},{regex:/Android Gingerbread/,family:"android",version:[2,3,0]},{regex:/Android Honeycomb/,family:"android",version:[3,0,0]},{regex:/Android:?[ /-](\d+)(\.(\d+)|)(\.(\d+)|)/,family:"android"},{regex:/Android:?[ /-](\d+)(\.(\d+)|)(\.(\d+)|);(?! ARM; Trident)/,family:"android",version:[4,0,0]},{regex:/PlayBook.+RIM Tablet OS (\d+)\.(\d+)\.(\d+)/,family:"bb"},{regex:/(Black[bB]erry|BB10).+Version\/(\d+)\.(\d+)\.(\d+)/,family:"bb"},{regex:/Opera\/.+Opera Mobi.+Version\/(\d+)\.(\d+)/,family:"op_mob",maxVersion:[12,16,0]},{regex:/Mobile Safari.+OPR\/(\d+)\.(\d+)\.(\d+)/,family:"op_mob",minVersion:[14,0,0]},{regex:/Android.+Firefox\/(\d+)\.(\d+)(\.(\d+)|)/,family:"and_ff"},{regex:/Android.+Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)/,family:"and_chr"},{regex:/IEMobile[ /](\d+)\.(\d+)/,family:"ie_mob"},{regex:/Android.+(UC? ?Browser|UCWEB|U3)[ /]?(\d+)\.(\d+)\.(\d+)/,family:"and_uc"},{regex:/SamsungBrowser\/(\d+)\.(\d+)/,family:"samsung"},{regex:/Android.+MQQBrowser\/(\d+)(\.(\d+)|)(\.(\d+)|)/,family:"and_qq"},{regex:/baidubrowser[/\s](\d+)(\.(\d+)|)(\.(\d+)|)/,family:"baidu"},{regex:/K[Aa][Ii]OS\/(\d+)\.(\d+)(\.(\d+)|)/,family:"kaios"}];function o(e){return"number"==typeof e?e:1===e.length?e[0]:[e[0],e[e.length-1]]}var f;function c(e){const u=Array.isArray(e)?e:e.toString().split(".");if("all"===u[0])return[1/0,0,0];let r=null,t=null;const n=[0,0,0];for(let e=0;e<3;e++)if(r=u[e],void 0!==r){if(t="number"==typeof r?r:parseInt(r,10),isNaN(t))return null;n[e]=t}return n}function l(e,u,r){const[t,n,d]=e,[a,s,i]=u,{ignoreMinor:o,ignorePatch:f,allowHigherVersions:c}=r;if(a===1/0)return!0;const l=!o,v=l&&!f;return c?!(v&&d<i||l&&n<s)&&t>=a:!(v&&d!==i||l&&n!==s)&&t===a}function v(e,u,r=0){const t=e.length;for(let n=r;n<t;n++)if(e[n]!==u[n])return!1;return!0}function p(e){if(null===e||"object"!=typeof e)return e;const u=Array.isArray(e)?[]:{};let r;for(r in e)u[r]=p(e[r]);return u}function b(e){return[].concat(...e)}function h(...e){const u=b(e).filter(Boolean);return 1===u.length?u[0]:{type:"Alternative",expressions:u}}function m(e){return{type:"Char",kind:"simple",value:String(e),codePoint:NaN}}function y(e,u){return{type:"ClassRange",from:e,to:u}}function g(...e){return{type:"CharacterClass",expressions:b(e).filter(Boolean)}}function C(e){return{type:"Group",capturing:!0,expression:e,number:null}}function B(...e){const u=function(...e){const u=b(e).filter(Boolean);if(1===u.length)return u[0];const r={type:"Disjunction",left:null,right:u.pop()};return u.reduceRight(((e,u,r)=>0===r?(e.left=u,e):(e.left={type:"Disjunction",left:null,right:u},e.left)),r),r}(...e);return"Disjunction"===u.type?C(u):u}function _(){return{type:"Char",kind:"meta",value:"\\d",codePoint:NaN}}function x(e={type:"Quantifier",kind:"+",greedy:!0}){const u=function(e,u){return{type:"Repetition",expression:{type:"Char",kind:"meta",value:"\\d",codePoint:NaN},quantifier:u}}(0,e);return u}function w(e){return h(Array.from(String(e),m))}function A(e){if("Group"===e.type&&"Repetition"===e.expression.type){const{expression:u,quantifier:r}=e.expression;return"Char"===u.type&&"\\d"===u.value&&"+"===r.kind&&r.greedy}return!1}function S(e,u){return!(!e||"Char"!==e.type)&&(void 0===u||u instanceof RegExp&&u.test(e.value)||String(u)===e.value)}function j(e){if("CharacterClass"===e.type&&1===e.expressions.length){const[u]=e.expressions;return"ClassRange"===u.type&&S(u.from,/\d/)&&S(u.to,/\d/)}return!1}function k(e){return"RegExp"!==e.type&&"ClassRange"!==e.type&&"Quantifier"!==e.type}function E(e){return"string"==typeof e?s.parse(e.replace(/^([^/])/,"/$1").replace(/([^/])$/,"$1/")):e instanceof RegExp?s.parse(e):e}!function(e){e[e.Major=0]="Major",e[e.Minor=1]="Minor",e[e.Patch=2]="Patch"}(f||(f={}));const P=["RegExp","Disjunction","Alternative","Assertion","Char","CharacterClass","ClassRange","Backreference","Group","Repetition","Quantifier"];function O(e){const{every:u}=e;return u?"function"==typeof u?{"*":u,...e}:P.reduce(((r,t)=>{const n=e[t],d=n?"pre"in n?n.pre:n:null,a=n&&"post"in n?n.post:null;return r[t]={pre(e){return!1===u.pre(e)||!d||d(e)},post(e){return!1===u.post(e)||!a||a(e)}},r}),{}):e}function T(e){return Array.from(e.toString(),Number)}function N(e,u){const r=e+Number(!u);return 0===r?{type:"Char",kind:"meta",value:"\\d",codePoint:NaN}:9===r?m("9"):r>9?null:g(y(m(r),m("9")))}function R(e,u,r){if(u<e)return null;const t=m(e),n=m(u),d="number"==typeof r&&r>0?Array.from({length:r},(()=>m(0))):[];return(d.length?e=>h(d,e):e=>e)(e===u?t:0===e&&9===u?{type:"Char",kind:"meta",value:"\\d",codePoint:NaN}:u-e==1?g(t,n):g(y(t,n)))}function L(e,u,r=0){const t=T(e),n=t.length;if(e<10&&u<10||e===u)return[R(e,u,r-n)];const d=T(u);if(n!==d.length){const t=function(e,u){const r=[];let t=e,n=1;do{n*=10,t<n&&(r.push([t,Math.min(n-1,u)]),t=n)}while(n<=u);return r}(e,u),n=b(t.map((([e,u])=>L(e,u,r))));return n}const a=function(e,u){const r=e.length;if(r!==u.length||e[0]!==u[0])return null;let t=e[0].toString(),n=0,d=0,a="",s="";for(let i=1;i<r;i++)n=e[i],d=u[i],n===d?t+=n:(a+=n,s+=d);return[t,parseInt(a,10),parseInt(s,10)]}(t,d);if(Array.isArray(a)){const[e,u,r]=a,t=L(u,r,n-e.length);return[h(Array.from(e,m),B(t))]}const s=Array.from({length:n-1}),i=R(t[0]+1,d[0]-1);return[...s.map(((e,u)=>{const r=n-u-1,d=Number(u>0);return h(t.map(((e,u)=>u<r?m(e):R(u>r?0:e+d,9))))})),...i?[h(i,Array.from({length:n-1},(()=>({type:"Char",kind:"meta",value:"\\d",codePoint:NaN}))))]:[],...s.map(((e,u)=>{const r=n-u-1,t=Number(u>0);return h(d.map(((e,u)=>u<r?m(e):R(0,u>r?9:e-t))))}))].reduce(((e,u)=>{const r=e[e.length-1];if(r&&"Alternative"===u.type&&"Alternative"===r.type&&u.expressions.length===r.expressions.length){const t=r.expressions.reduceRight(((e,r,t)=>{if(!e)return e;const n=(d=r,a=u.expressions[t],S(d)&&S(a)&&d.value===a.value?a:S(d,/\d/)&&j(a)&&Number(a.expressions[0].from.value)-Number(d.value)==1?{...a,expressions:[{...a.expressions[0],from:d}]}:j(d)&&S(a,/\d/)&&Number(a.value)-Number(d.expressions[0].to.value)==1?{...d,expressions:[{...d.expressions[0],to:a}]}:null);var d,a;return n?(e.unshift(n),e):null}),[]);t&&(u.expressions=t,e.pop())}return e.push(u),e}),[])}function D(e,u=1/0){return e===1/0?x():B(u===1/0?function(e){if(0===e)return[x()];const u=T(e),r=u.length,t=x(function(e,u){return{type:"Quantifier",kind:"Range",from:e,to:void 0,greedy:!0}}(r+1)),n=r-1;if(e/Math.pow(10,n)===u[0])return[h(N(u[0],!0),Array.from({length:n},_)),t];const d=u.reduce(((e,t,n)=>{const d=r-n-1,a=0===n;let s=m("");const i=u.reduce(((e,u,r)=>{if(r<d)e.push(m(u));else if(s)if(r>d)e.push({type:"Char",kind:"meta",value:"\\d",codePoint:NaN});else{if(s=N(u,a),!s)return[];e.push(s)}return e}),[]);return i.length&&e.push(i),e}),[]).map((e=>h(e)));return d.push(t),d}(e):L(e,u))}function F(e,u){const r=E(e),t=Math.min(function(e){const u=E(e);let r=0;return s.traverse(u,{Group(e){A(e.node)&&r++}}),r}(r),u||1/0),n=[];let d=0,a=!1;return s.traverse(r,O({every:{pre({node:e,parent:u}){return e===r||!!k(e)&&(u===r&&(a=!1),d<t)},post({node:e,parent:u}){e!==r&&u===r&&k(e)&&(a||d>0&&d<t)&&n.push(e)}},Group(e){return!(A(e.node)&&d<t&&(a=!0,d++,1))}})),1!==n.length||A(n[0])?n:F(n[0],t)}function I(e,u,r){const{allowHigherVersions:t}=r,n=E(e),d=t&&u.length?[u[0]]:u,a=d.reduce(((e,u)=>Math.max(e,function(e,u){const{ignoreMinor:r,ignorePatch:t,allowZeroSubversions:n}=u;let d=r?1:t?2:3;if(n)for(let u=d-1;u>0&&0===e[u]&&1!==d;u--)d--;return d}(u,r))),1),i=F(n,a),o=B(...d.map((e=>function(e,u){const{ignoreMinor:r,ignorePatch:t,allowHigherVersions:n}=u,d=e[0]===1/0?0:r?1:t?2:3;if(n){const u=[];let r=!0,t=0,n=0;const a=e=>(u,r)=>r>=d?x():(n=Array.isArray(u)?u[0]:u,r<e?w(n):r>e?x():D(n+t));for(let n=d-1;n>=0;n--)r&&!e[n]||(r=!1,u.push(e.map(a(n))),t=1);return u}return[e.map(((e,u)=>u>=d?x():Array.isArray(e)?D(e[0],e[1]):w(e)))]}(e,r).map((e=>function(e,u,r){let t=E(e);const n="number"==typeof r&&r<u.length?u.slice(0,r):u.slice();return s.traverse(t,O({every(){return Boolean(n.length)},Group(e){return!A(e.node)||!n.length||(t===e.node?t=n.shift():e.replace(n.shift()),!1)}})),t}(h(p(i)),e,a))))));return s.traverse(n,O({every(e){return!!i.length&&(e.node===i[0]&&(1===i.length?e.replace(o):e.remove(),i.shift()),!0)}})),n}const M={ignoreMinor:!1,ignorePatch:!0,allowZeroSubversions:!1,allowHigherVersions:!1};function U(e={}){const u={...M,...e};return function(e,u){return e.map((({regex:e,version:r,maxVersion:t,matchedVersions:n,...d})=>{let a=E(e);return r||(a=I(a,function(e){if(e.length<2)return e;const u=e.length+1,r=[];let t=null,n=e[0],d=[n[f.Major]],a=[n[f.Minor]],s=[n[f.Patch]],i=null;for(let c=1;c<u;c++){t=e[c-1],n=e[c]||[];for(let e=f.Major;e<=f.Patch;e++){if((e===i||null===i)&&t[e]+1===n[e]&&v(t,n,e+1)){i=e,e===f.Major?d.push(n[f.Major]):d=n[f.Major],e===f.Minor?a.push(n[f.Minor]):a=n[f.Minor],e===f.Patch?s.push(n[f.Patch]):s=n[f.Patch];break}if(i===e||t[e]!==n[e]){r.push([o(d),o(a),o(s)]),d=[n[f.Major]],a=[n[f.Minor]],s=[n[f.Patch]],i=null;break}}}return r}(n),{...u,allowHigherVersions:!t&&u.allowHigherVersions})),{regex:null,sourceRegex:e,regexAst:a,version:r,maxVersion:t,matchedVersions:n,...d}}))}(function(e,u,r=i){const t=[];let n="",d=!1;return r.forEach((r=>{const a=e.get(r.family);if(!a)return;let{version:s,minVersion:i,maxVersion:o}=r;s&&(i=s,o=s);let f=function(e,u,r,t){const n={...t,allowHigherVersions:!0},d=u=>l(u,e,n),a=e=>l(u,e,n),s=e&&u?e=>d(e)&&a(e):e?d:u?a:()=>!0;return r.filter(s)}(i,o,a,u);f.length&&(n===r.family&&d&&(s=void 0,i=void 0,o=void 0,f=a,t.pop()),t.push({...r,version:s,minVersion:i,maxVersion:o,requestVersions:a,matchedVersions:f})),d=!s&&!i&&!o,n=r.family})),t}(function(e){const u=new Map;return e.forEach((({family:e,version:r})=>{const t=u.get(e);if(t){const e=r.join(".");t.every((u=>u.join(".")!==e))&&t.push(r)}else u.set(e,[r])})),u.forEach((e=>{e.sort(((e,u)=>{for(const r in e)if(e[r]!==u[r])return e[r]-u[r];return 0}))})),u}(function(e={}){const{browsers:u,...r}=e;return d(u,r).reduce(((e,u)=>{const[r,t,n]=u.split(/ |-/),d=c(t);return(d?n?function(e,u){let r=0;const t=[];for(let t=2;t>=0;t--)if(e[t]!==u[t]){r=t;break}for(let n=e[r],d=u[r];n<=d;n++)t.push(e.map(((e,u)=>u===r?n:e)));return t}(d,c(n)):[d]:[]).reduce(((e,u)=>(u&&e.push({family:r,version:u}),e)),e)}),[])}(u)),u),u)}var G,H=r(77727),V=r.n(H),q=(function(e={}){!function(e){const u=e.map((({regexAst:e})=>C(e.body)));var r;"string"==typeof(r=function(e){const u=s.optimize(E((r=e,"string"==typeof r?r:r instanceof RegExp?r.toString():s.generate(r)))).getAST();var r;return s.traverse(u,{Group(e){const{parent:u,node:r}=e,{expression:t}=r;r.capturing=!0,("RegExp"===u.type||"Disjunction"!==t.type&&"Repetition"!==u.type||"Disjunction"===t.type&&"Disjunction"===u.type)&&e.replace(e.node.expression)}}),u}({type:"RegExp",body:B(u),flags:""}))?new RegExp(r):new RegExp(s.generate(r.body),r.flags)}(U(e))}({allowHigherVersions:!0,browsers:V()}),a()(V())),$=(0,r(62556).getBuilder)("core").clearOnLogout().persist().build(),Q=r(77958),W=r(17499),K=null===(G=(0,Q.ts)())?(0,W.IY)().setApp("core").build():(0,W.IY)().setApp("core").setUid(G.uid).build(),Z=(r(23085).lW,"unsupported-browser-ignore"),z=((0,t.generateUrl)("/unsupported"),$.getItem(Z),r(31352)),Y=r(10861),X=r.n(Y),J=r(93455),ee=r.n(J),ue=r(97859),re=r(23085).lW;function te(e){return te="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},te(e)}function ne(){ne=function(){return e};var e={},u=Object.prototype,r=u.hasOwnProperty,t=Object.defineProperty||function(e,u,r){e[u]=r.value},n="function"==typeof Symbol?Symbol:{},d=n.iterator||"@@iterator",a=n.asyncIterator||"@@asyncIterator",s=n.toStringTag||"@@toStringTag";function i(e,u,r){return Object.defineProperty(e,u,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[u]}try{i({},"")}catch(e){i=function(e,u,r){return e[u]=r}}function o(e,u,r,n){var d=u&&u.prototype instanceof l?u:l,a=Object.create(d.prototype),s=new A(n||[]);return t(a,"_invoke",{value:B(e,r,s)}),a}function f(e,u,r){try{return{type:"normal",arg:e.call(u,r)}}catch(e){return{type:"throw",arg:e}}}e.wrap=o;var c={};function l(){}function v(){}function p(){}var b={};i(b,d,(function(){return this}));var h=Object.getPrototypeOf,m=h&&h(h(S([])));m&&m!==u&&r.call(m,d)&&(b=m);var y=p.prototype=l.prototype=Object.create(b);function g(e){["next","throw","return"].forEach((function(u){i(e,u,(function(e){return this._invoke(u,e)}))}))}function C(e,u){function n(t,d,a,s){var i=f(e[t],e,d);if("throw"!==i.type){var o=i.arg,c=o.value;return c&&"object"==te(c)&&r.call(c,"__await")?u.resolve(c.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):u.resolve(c).then((function(e){o.value=e,a(o)}),(function(e){return n("throw",e,a,s)}))}s(i.arg)}var d;t(this,"_invoke",{value:function(e,r){function t(){return new u((function(u,t){n(e,r,u,t)}))}return d=d?d.then(t,t):t()}})}function B(e,u,r){var t="suspendedStart";return function(n,d){if("executing"===t)throw new Error("Generator is already running");if("completed"===t){if("throw"===n)throw d;return{value:void 0,done:!0}}for(r.method=n,r.arg=d;;){var a=r.delegate;if(a){var s=_(a,r);if(s){if(s===c)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===t)throw t="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);t="executing";var i=f(e,u,r);if("normal"===i.type){if(t=r.done?"completed":"suspendedYield",i.arg===c)continue;return{value:i.arg,done:r.done}}"throw"===i.type&&(t="completed",r.method="throw",r.arg=i.arg)}}}function _(e,u){var r=u.method,t=e.iterator[r];if(void 0===t)return u.delegate=null,"throw"===r&&e.iterator.return&&(u.method="return",u.arg=void 0,_(e,u),"throw"===u.method)||"return"!==r&&(u.method="throw",u.arg=new TypeError("The iterator does not provide a '"+r+"' method")),c;var n=f(t,e.iterator,u.arg);if("throw"===n.type)return u.method="throw",u.arg=n.arg,u.delegate=null,c;var d=n.arg;return d?d.done?(u[e.resultName]=d.value,u.next=e.nextLoc,"return"!==u.method&&(u.method="next",u.arg=void 0),u.delegate=null,c):d:(u.method="throw",u.arg=new TypeError("iterator result is not an object"),u.delegate=null,c)}function x(e){var u={tryLoc:e[0]};1 in e&&(u.catchLoc=e[1]),2 in e&&(u.finallyLoc=e[2],u.afterLoc=e[3]),this.tryEntries.push(u)}function w(e){var u=e.completion||{};u.type="normal",delete u.arg,e.completion=u}function A(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(x,this),this.reset(!0)}function S(e){if(e){var u=e[d];if(u)return u.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var t=-1,n=function u(){for(;++t<e.length;)if(r.call(e,t))return u.value=e[t],u.done=!1,u;return u.value=void 0,u.done=!0,u};return n.next=n}}return{next:j}}function j(){return{value:void 0,done:!0}}return v.prototype=p,t(y,"constructor",{value:p,configurable:!0}),t(p,"constructor",{value:v,configurable:!0}),v.displayName=i(p,s,"GeneratorFunction"),e.isGeneratorFunction=function(e){var u="function"==typeof e&&e.constructor;return!!u&&(u===v||"GeneratorFunction"===(u.displayName||u.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,i(e,s,"GeneratorFunction")),e.prototype=Object.create(y),e},e.awrap=function(e){return{__await:e}},g(C.prototype),i(C.prototype,a,(function(){return this})),e.AsyncIterator=C,e.async=function(u,r,t,n,d){void 0===d&&(d=Promise);var a=new C(o(u,r,t,n),d);return e.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},g(y),i(y,s,"Generator"),i(y,d,(function(){return this})),i(y,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var u=Object(e),r=[];for(var t in u)r.push(t);return r.reverse(),function e(){for(;r.length;){var t=r.pop();if(t in u)return e.value=t,e.done=!1,e}return e.done=!0,e}},e.values=S,A.prototype={constructor:A,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(w),!e)for(var u in this)"t"===u.charAt(0)&&r.call(this,u)&&!isNaN(+u.slice(1))&&(this[u]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var u=this;function t(r,t){return a.type="throw",a.arg=e,u.next=r,t&&(u.method="next",u.arg=void 0),!!t}for(var n=this.tryEntries.length-1;n>=0;--n){var d=this.tryEntries[n],a=d.completion;if("root"===d.tryLoc)return t("end");if(d.tryLoc<=this.prev){var s=r.call(d,"catchLoc"),i=r.call(d,"finallyLoc");if(s&&i){if(this.prev<d.catchLoc)return t(d.catchLoc,!0);if(this.prev<d.finallyLoc)return t(d.finallyLoc)}else if(s){if(this.prev<d.catchLoc)return t(d.catchLoc,!0)}else{if(!i)throw new Error("try statement without catch or finally");if(this.prev<d.finallyLoc)return t(d.finallyLoc)}}}},abrupt:function(e,u){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc<=this.prev&&r.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var d=n;break}}d&&("break"===e||"continue"===e)&&d.tryLoc<=u&&u<=d.finallyLoc&&(d=null);var a=d?d.completion:{};return a.type=e,a.arg=u,d?(this.method="next",this.next=d.finallyLoc,c):this.complete(a)},complete:function(e,u){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&u&&(this.next=u),c},finish:function(e){for(var u=this.tryEntries.length-1;u>=0;--u){var r=this.tryEntries[u];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),w(r),c}},catch:function(e){for(var u=this.tryEntries.length-1;u>=0;--u){var r=this.tryEntries[u];if(r.tryLoc===e){var t=r.completion;if("throw"===t.type){var n=t.arg;w(r)}return n}}throw new Error("illegal catch attempt")},delegateYield:function(e,u,r){return this.delegate={iterator:S(e),resultName:u,nextLoc:r},"next"===this.method&&(this.arg=void 0),c}},e}function de(e,u,r,t,n,d,a){try{var s=e[d](a),i=s.value}catch(e){return void r(e)}s.done?u(i):Promise.resolve(i).then(t,n)}function ae(e,u){(null==u||u>e.length)&&(u=e.length);for(var r=0,t=new Array(u);r<u;r++)t[r]=e[r];return t}K.debug("Supported browsers",{supportedBrowsers:q});var se={name:"UnsupportedBrowser",components:{Web:ue.default,NcButton:X(),NcEmptyContent:ee()},data:function(){return{agents:{}}},computed:{isMobile:function(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)},filteredSupportedBrowsers:function(){var e=this;return q.filter((function(u){return!!u&&(e.isMobile?e.isMobileBrowser(u):!e.isMobileBrowser(u))}))},formattedBrowsersList:function(){var e=this,u={};return this.filteredSupportedBrowsers.forEach((function(e){var r,t,n=(r=e.split(" "),t=2,function(e){if(Array.isArray(e))return e}(r)||function(e,u){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var t,n,d,a,s=[],i=!0,o=!1;try{if(d=(r=r.call(e)).next,0===u){if(Object(r)!==r)return;i=!1}else for(;!(i=(t=d.call(r)).done)&&(s.push(t.value),s.length!==u);i=!0);}catch(e){o=!0,n=e}finally{try{if(!i&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(o)throw n}}return s}}(r,t)||function(e,u){if(e){if("string"==typeof e)return ae(e,u);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ae(e,u):void 0}}(r,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),d=n[0],a=n[1];(!u[d]||u[d]<parseFloat(a,10))&&(u[d]=parseFloat(a,10))})),Object.keys(u).map((function(r){var t,n;if(null===(t=e.agents[r])||void 0===t||!t.browser)return null;var d=u[r],a=null===(n=e.agents[r])||void 0===n?void 0:n.browser;return e.t("core","{name} version {version} and above",{name:a,version:d})})).filter((function(e){return null!==e}))}},beforeMount:function(){var e,u=this;return(e=ne().mark((function e(){var t,n;return ne().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.e(614).then(r.t.bind(r,90614,19));case 2:t=e.sent,n=t.agents,u.agents=n;case 5:case"end":return e.stop()}}),e)})),function(){var u=this,r=arguments;return new Promise((function(t,n){var d=e.apply(u,r);function a(e){de(d,t,n,a,s,"next",e)}function s(e){de(d,t,n,a,s,"throw",e)}a(void 0)}))})()},methods:{t:z.Iu,n:z.uN,forceBrowsing:function(){$.setItem(Z,!0);var e=new URLSearchParams(window.location.search);if(e.has("redirect_url")){var u=re.from(e.get("redirect_url"),"base64").toString()||"/";if(u.startsWith("/"))return void(window.location=(0,t.generateUrl)(u))}window.location=(0,t.generateUrl)("/")},isMobileBrowser:function(e){return(e=e.toLowerCase()).includes("and_")||e.includes("android")||e.includes("ios_")||e.includes("mobile")||e.includes("_mob")||e.includes("samsung")}}},ie=se,oe=r(93379),fe=r.n(oe),ce=r(7795),le=r.n(ce),ve=r(90569),pe=r.n(ve),be=r(3565),he=r.n(be),me=r(19216),ye=r.n(me),ge=r(44589),Ce=r.n(ge),Be=r(19608),_e={};_e.styleTagTransform=Ce(),_e.setAttributes=he(),_e.insert=pe().bind(null,"head"),_e.domAPI=le(),_e.insertStyleElement=ye(),fe()(Be.Z,_e),Be.Z&&Be.Z.locals&&Be.Z.locals;var xe=(0,r(51900).Z)(ie,(function(){var e=this,u=e._self._c;return u("div",{staticClass:"content-unsupported-browser guest-box"},[u("NcEmptyContent",{scopedSlots:e._u([{key:"icon",fn:function(){return[u("Web")]},proxy:!0},{key:"action",fn:function(){return[u("div",[u("h2",[e._v("\n\t\t\t\t\t"+e._s(e.t("core","Your browser is not supported. Please upgrade to a newer version or a supported one."))+"\n\t\t\t\t")]),e._v(" "),u("NcButton",{staticClass:"content-unsupported-browser__continue",attrs:{type:"primary"},on:{click:e.forceBrowsing}},[e._v("\n\t\t\t\t\t"+e._s(e.t("core","Continue with this unsupported browser"))+"\n\t\t\t\t")])],1),e._v(" "),u("ul",{staticClass:"content-unsupported-browser__list"},[u("h3",[e._v(e._s(e.t("core","Supported versions")))]),e._v(" "),e._l(e.formattedBrowsersList,(function(r){return u("li",{key:r},[e._v("\n\t\t\t\t\t"+e._s(r)+"\n\t\t\t\t")])}))],2)]},proxy:!0}])},[e._v("\n\t\t"+e._s(e.t("core","This browser is not supported"))+"\n\t\t")])],1)}),[],!1,null,"3c1e6192",null).exports;"true"===$.getItem(Z)&&(window.location=(0,t.generateUrl)("/")),new n.default({el:"#unsupported-browser",name:"UnsupportedBrowserRoot",render:function(e){return e(xe)}})},84660:function(e,u,r){var t=r(9667);function n(){}e.exports={loadQueries:function(){throw new t("Sharable configs are not supported in client-side build of Browserslist")},getStat:function(e){return e.stats},loadConfig:function(e){if(e.config)throw new t("Browserslist config are not supported in client-side build")},loadCountry:function(){throw new t("Country statistics are not supported in client-side build of Browserslist")},loadFeature:function(){throw new t("Supports queries are not available in client-side build of Browserslist")},currentNode:function(e,u){return e(["maintained node versions"],u)[0]},parseConfig:n,readConfig:n,findConfig:n,clearCaches:n,oldDataWarning:n,env:{}}},9667:function(e){function u(e){this.name="BrowserslistError",this.message=e,this.browserslist=!0,Error.captureStackTrace&&Error.captureStackTrace(this,u)}u.prototype=Error.prototype,e.exports=u},31e3:function(e,u,r){var t=r(76052),n=r(95459).agents,d=r(78864),a=r(72950),s=r(76250),i=r(9667),o=r(65723),f=r(84660),c="37";function l(e,u){return 0===(e+".").indexOf(u+".")}function v(e){return e.filter((function(e){return"string"==typeof e}))}function p(e){var u=e;return 3===e.split(".").length&&(u=e.split(".").slice(0,-1).join(".")),u}function b(e){return function(u){return e+" "+u}}function h(e){return parseInt(e.split(".")[0])}function m(e,u){if(0===e.length)return[];var r=y(e.map(h)),t=r[r.length-u];if(!t)return e;for(var n=[],d=e.length-1;d>=0&&!(t>h(e[d]));d--)n.unshift(e[d]);return n}function y(e){for(var u=[],r=0;r<e.length;r++)-1===u.indexOf(e[r])&&u.push(e[r]);return u}function g(e,u,r){for(var t in r)e[u+" "+t]=r[t]}function C(e,u){return u=parseFloat(u),">"===e?function(e){return parseFloat(e)>u}:">="===e?function(e){return parseFloat(e)>=u}:"<"===e?function(e){return parseFloat(e)<u}:function(e){return parseFloat(e)<=u}}function B(e){return parseInt(e)}function _(e,u){return e<u?-1:e>u?1:0}function x(e,u){return _(parseInt(e[0]),parseInt(u[0]))||_(parseInt(e[1]||"0"),parseInt(u[1]||"0"))||_(parseInt(e[2]||"0"),parseInt(u[2]||"0"))}function w(e,u){return void 0===(u=u.split(".").map(B))[1]&&(u[1]="x"),"<="===e?function(e){return A(e=e.split(".").map(B),u)<=0}:function(e){return A(e=e.split(".").map(B),u)>=0}}function A(e,u){return e[0]!==u[0]?e[0]<u[0]?-1:1:"x"===u[1]?0:e[1]!==u[1]?e[1]<u[1]?-1:1:0}function S(e,u){var r=function(e,u){return-1!==e.versions.indexOf(u)?u:!!M.versionAliases[e.name][u]&&M.versionAliases[e.name][u]}(e,u);return r||1===e.versions.length&&e.versions[0]}function j(e,u){return e/=1e3,Object.keys(n).reduce((function(r,t){var n=E(t,u);if(!n)return r;var d=Object.keys(n.releaseDate).filter((function(u){var r=n.releaseDate[u];return null!==r&&r>=e}));return r.concat(d.map(b(n.name)))}),[])}function k(e){return{name:e.name,versions:e.versions,released:e.released,releaseDate:e.releaseDate}}function E(e,u){if(e=e.toLowerCase(),e=M.aliases[e]||e,u.mobileToDesktop&&M.desktopNames[e]){var r=M.data[M.desktopNames[e]];if("android"===e)return n=k(M.data[e]),d=r,n.released=P(n.released,d.released),n.versions=P(n.versions,d.versions),n.released.forEach((function(e){void 0===n.releaseDate[e]&&(n.releaseDate[e]=d.releaseDate[e])})),n;var t=k(r);return t.name=e,t}var n,d;return M.data[e]}function P(e,u){var r=u.indexOf(c);return e.filter((function(e){return/^(?:[2-4]\.|[34]$)/.test(e)})).concat(u.slice(r))}function O(e,u){var r=E(e,u);if(!r)throw new i("Unknown browser "+e);return r}function T(e,u,r,t){var n=1;switch(u){case"android":if(t.mobileToDesktop)return e;var d=M.data.chrome.released;n=d.length-d.indexOf(c);break;case"op_mob":n=h(M.data.op_mob.released.slice(-1)[0])-14+1;break;default:return e}return r<=n?e.slice(-1):e.slice(n-1-r)}function N(e){return"string"==typeof e&&(e.indexOf("y")>=0||e.indexOf("a")>=0)}function R(e,u){return o(V,e).reduce((function(e,r,t){if(r.not&&0===t)throw new i("Write any browsers query (for instance, `defaults`) before `"+r.query+"`");var n=V[r.type].select.call(M,u,r).map((function(e){var r=e.split(" ");return"0"===r[1]?r[0]+" "+E(r[0],u).versions[0]:e}));if("and"===r.compose)return r.not?e.filter((function(e){return-1===n.indexOf(e)})):e.filter((function(e){return-1!==n.indexOf(e)}));if(r.not){var d={};return n.forEach((function(e){d[e]=!0})),e.filter((function(e){return!d[e]}))}return e.concat(n)}),[])}function L(e){return void 0===e&&(e={}),void 0===e.path&&(e.path=a.resolve?a.resolve("."):"."),e}function D(e,u){null==e&&(e=M.loadConfig(u)||M.defaults);return e}function F(e){if("string"!=typeof e&&!Array.isArray(e))throw new i("Browser queries must be an array or string. Got "+typeof e+".")}var I={};function M(e,u){F(e=D(e,u=L(u)));var r={ignoreUnknownVersions:u.ignoreUnknownVersions,dangerousExtend:u.dangerousExtend,mobileToDesktop:u.mobileToDesktop,path:u.path,env:u.env};f.oldDataWarning(M.data);var t=f.getStat(u,M.data);if(t)for(var n in r.customUsage={},t)g(r.customUsage,n,t[n]);var d=JSON.stringify([e,r]);if(I[d])return I[d];var a=y(R(e,r)).sort((function(e,u){if(e=e.split(" "),u=u.split(" "),e[0]===u[0]){var r=e[1].split("-")[0];return x(u[1].split("-")[0].split("."),r.split("."))}return _(e[0],u[0])}));return f.env.BROWSERSLIST_DISABLE_CACHE||(I[d]=a),a}function U(e,u){var r=M.nodeVersions.filter((function(e){return l(e,u.version)}));if(0===r.length){if(e.ignoreUnknownVersions)return[];throw new i("Unknown version "+u.version+" of Node.js")}return["node "+r[r.length-1]]}function G(e,u){var r=parseInt(u.year),t=parseInt(u.month||"01")-1,n=parseInt(u.day||"01");return j(Date.UTC(r,t,n,0,0,0),e)}function H(e,u){var r=parseFloat(u.coverage),t=M.usage.global;if(u.place)if(u.place.match(/^my\s+stats$/i)){if(!e.customUsage)throw new i("Custom usage statistics was not provided");t=e.customUsage}else{var n;n=2===u.place.length?u.place.toUpperCase():u.place.toLowerCase(),f.loadCountry(M.usage,n,M.data),t=M.usage[n]}for(var d,a=Object.keys(t).sort((function(e,u){return t[u]-t[e]})),s=0,o=[],c=0;c<a.length&&(d=a[c],0!==t[d])&&(s+=t[d],o.push(d),!(s>=r));c++);return o}M.parse=function(e,u){return F(e=D(e,u=L(u))),o(V,e)},M.cache={},M.data={},M.usage={global:{},custom:null},M.defaults=["> 0.5%","last 2 versions","Firefox ESR","not dead"],M.aliases={fx:"firefox",ff:"firefox",ios:"ios_saf",explorer:"ie",blackberry:"bb",explorermobile:"ie_mob",operamini:"op_mini",operamobile:"op_mob",chromeandroid:"and_chr",firefoxandroid:"and_ff",ucandroid:"and_uc",qqandroid:"and_qq"},M.desktopNames={and_chr:"chrome",and_ff:"firefox",ie_mob:"ie",android:"chrome"},M.versionAliases={},M.clearCaches=f.clearCaches,M.parseConfig=f.parseConfig,M.readConfig=f.readConfig,M.findConfig=f.findConfig,M.loadConfig=f.loadConfig,M.coverage=function(e,u){var r;if(void 0===u)r=M.usage.global;else if("my stats"===u){var t={};t.path=a.resolve?a.resolve("."):".";var n=f.getStat(t);if(!n)throw new i("Custom usage statistics was not provided");for(var d in r={},n)g(r,d,n[d])}else if("string"==typeof u)u=u.length>2?u.toLowerCase():u.toUpperCase(),f.loadCountry(M.usage,u,M.data),r=M.usage[u];else for(var s in"dataByBrowser"in u&&(u=u.dataByBrowser),r={},u)for(var o in u[s])r[s+" "+o]=u[s][o];return e.reduce((function(e,u){var t=r[u];return void 0===t&&(t=r[u.replace(/ \S+$/," 0")]),e+(t||0)}),0)};var V={last_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+major\s+versions?$/i,select:function(e,u){return Object.keys(n).reduce((function(r,t){var n=E(t,e);if(!n)return r;var d=m(n.released,u.versions);return d=T(d=d.map(b(n.name)),n.name,u.versions,e),r.concat(d)}),[])}},last_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+versions?$/i,select:function(e,u){return Object.keys(n).reduce((function(r,t){var n=E(t,e);if(!n)return r;var d=n.released.slice(-u.versions);return d=T(d=d.map(b(n.name)),n.name,u.versions,e),r.concat(d)}),[])}},last_electron_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+electron\s+major\s+versions?$/i,select:function(e,u){return m(Object.keys(s),u.versions).map((function(e){return"chrome "+s[e]}))}},last_node_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+node\s+major\s+versions?$/i,select:function(e,u){return m(M.nodeVersions,u.versions).map((function(e){return"node "+e}))}},last_browser_major_versions:{matches:["versions","browser"],regexp:/^last\s+(\d+)\s+(\w+)\s+major\s+versions?$/i,select:function(e,u){var r=O(u.browser,e),t=m(r.released,u.versions).map(b(r.name));return T(t,r.name,u.versions,e)}},last_electron_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+electron\s+versions?$/i,select:function(e,u){return Object.keys(s).slice(-u.versions).map((function(e){return"chrome "+s[e]}))}},last_node_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+node\s+versions?$/i,select:function(e,u){return M.nodeVersions.slice(-u.versions).map((function(e){return"node "+e}))}},last_browser_versions:{matches:["versions","browser"],regexp:/^last\s+(\d+)\s+(\w+)\s+versions?$/i,select:function(e,u){var r=O(u.browser,e),t=r.released.slice(-u.versions).map(b(r.name));return T(t,r.name,u.versions,e)}},unreleased_versions:{matches:[],regexp:/^unreleased\s+versions$/i,select:function(e){return Object.keys(n).reduce((function(u,r){var t=E(r,e);if(!t)return u;var n=t.versions.filter((function(e){return-1===t.released.indexOf(e)}));return n=n.map(b(t.name)),u.concat(n)}),[])}},unreleased_electron_versions:{matches:[],regexp:/^unreleased\s+electron\s+versions?$/i,select:function(){return[]}},unreleased_browser_versions:{matches:["browser"],regexp:/^unreleased\s+(\w+)\s+versions?$/i,select:function(e,u){var r=O(u.browser,e);return r.versions.filter((function(e){return-1===r.released.indexOf(e)})).map(b(r.name))}},last_years:{matches:["years"],regexp:/^last\s+(\d*.?\d+)\s+years?$/i,select:function(e,u){return j(Date.now()-31558432982.4*u.years,e)}},since_y:{matches:["year"],regexp:/^since (\d+)$/i,select:G},since_y_m:{matches:["year","month"],regexp:/^since (\d+)-(\d+)$/i,select:G},since_y_m_d:{matches:["year","month","day"],regexp:/^since (\d+)-(\d+)-(\d+)$/i,select:G},popularity:{matches:["sign","popularity"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%$/,select:function(e,u){var r=parseFloat(u.popularity),t=M.usage.global;return Object.keys(t).reduce((function(e,n){return">"===u.sign?t[n]>r&&e.push(n):"<"===u.sign?t[n]<r&&e.push(n):"<="===u.sign?t[n]<=r&&e.push(n):t[n]>=r&&e.push(n),e}),[])}},popularity_in_my_stats:{matches:["sign","popularity"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+my\s+stats$/,select:function(e,u){var r=parseFloat(u.popularity);if(!e.customUsage)throw new i("Custom usage statistics was not provided");var t=e.customUsage;return Object.keys(t).reduce((function(e,n){var d=t[n];return null==d||(">"===u.sign?d>r&&e.push(n):"<"===u.sign?d<r&&e.push(n):"<="===u.sign?d<=r&&e.push(n):d>=r&&e.push(n)),e}),[])}},popularity_in_config_stats:{matches:["sign","popularity","config"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/,select:function(e,u){var r=parseFloat(u.popularity),t=f.loadStat(e,u.config,M.data);if(t)for(var n in e.customUsage={},t)g(e.customUsage,n,t[n]);if(!e.customUsage)throw new i("Custom usage statistics was not provided");var d=e.customUsage;return Object.keys(d).reduce((function(e,t){var n=d[t];return null==n||(">"===u.sign?n>r&&e.push(t):"<"===u.sign?n<r&&e.push(t):"<="===u.sign?n<=r&&e.push(t):n>=r&&e.push(t)),e}),[])}},popularity_in_place:{matches:["sign","popularity","place"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+((alt-)?\w\w)$/,select:function(e,u){var r=parseFloat(u.popularity),t=u.place;t=2===t.length?t.toUpperCase():t.toLowerCase(),f.loadCountry(M.usage,t,M.data);var n=M.usage[t];return Object.keys(n).reduce((function(e,t){var d=n[t];return null==d||(">"===u.sign?d>r&&e.push(t):"<"===u.sign?d<r&&e.push(t):"<="===u.sign?d<=r&&e.push(t):d>=r&&e.push(t)),e}),[])}},cover:{matches:["coverage"],regexp:/^cover\s+(\d+|\d+\.\d+|\.\d+)%$/i,select:H},cover_in:{matches:["coverage","place"],regexp:/^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(my\s+stats|(alt-)?\w\w)$/i,select:H},supports:{matches:["feature"],regexp:/^supports\s+([\w-]+)$/,select:function(e,u){f.loadFeature(M.cache,u.feature);var r=M.cache[u.feature],t=[];for(var n in r){var d=E(n,e),a=e.mobileToDesktop&&n in M.desktopNames&&N(r[n][d.released.slice(-1)[0]]);d.versions.forEach((function(e){var u=r[n][e];void 0===u&&a&&(u=r[M.desktopNames[n]][e]),N(u)&&t.push(n+" "+e)}))}return t}},electron_range:{matches:["from","to"],regexp:/^electron\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,u){var r=p(u.from),t=p(u.to),n=parseFloat(u.from),d=parseFloat(u.to);if(!s[r])throw new i("Unknown version "+n+" of electron");if(!s[t])throw new i("Unknown version "+d+" of electron");return Object.keys(s).filter((function(e){var u=parseFloat(e);return u>=n&&u<=d})).map((function(e){return"chrome "+s[e]}))}},node_range:{matches:["from","to"],regexp:/^node\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,u){return M.nodeVersions.filter(w(">=",u.from)).filter(w("<=",u.to)).map((function(e){return"node "+e}))}},browser_range:{matches:["browser","from","to"],regexp:/^(\w+)\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,u){var r=O(u.browser,e),t=parseFloat(S(r,u.from)||u.from),n=parseFloat(S(r,u.to)||u.to);return r.released.filter((function(e){var u=parseFloat(e);return u>=t&&u<=n})).map(b(r.name))}},electron_ray:{matches:["sign","version"],regexp:/^electron\s*(>=?|<=?)\s*([\d.]+)$/i,select:function(e,u){var r=p(u.version);return Object.keys(s).filter(C(u.sign,r)).map((function(e){return"chrome "+s[e]}))}},node_ray:{matches:["sign","version"],regexp:/^node\s*(>=?|<=?)\s*([\d.]+)$/i,select:function(e,u){return M.nodeVersions.filter((r=u.sign,t=u.version,(t=t.split(".").map(B))[1]=t[1]||0,t[2]=t[2]||0,">"===r?function(e){return x(e=e.split(".").map(B),t)>0}:">="===r?function(e){return x(e=e.split(".").map(B),t)>=0}:"<"===r?function(e){return e=e.split(".").map(B),x(t,e)>0}:function(e){return e=e.split(".").map(B),x(t,e)>=0})).map((function(e){return"node "+e}));var r,t}},browser_ray:{matches:["browser","sign","version"],regexp:/^(\w+)\s*(>=?|<=?)\s*([\d.]+)$/,select:function(e,u){var r=u.version,t=O(u.browser,e),n=M.versionAliases[t.name][r];return n&&(r=n),t.released.filter(C(u.sign,r)).map((function(e){return t.name+" "+e}))}},firefox_esr:{matches:[],regexp:/^(firefox|ff|fx)\s+esr$/i,select:function(){return["firefox 102","firefox 115"]}},opera_mini_all:{matches:[],regexp:/(operamini|op_mini)\s+all/i,select:function(){return["op_mini all"]}},electron_version:{matches:["version"],regexp:/^electron\s+([\d.]+)$/i,select:function(e,u){var r=p(u.version),t=s[r];if(!t)throw new i("Unknown version "+u.version+" of electron");return["chrome "+t]}},node_major_version:{matches:["version"],regexp:/^node\s+(\d+)$/i,select:U},node_minor_version:{matches:["version"],regexp:/^node\s+(\d+\.\d+)$/i,select:U},node_patch_version:{matches:["version"],regexp:/^node\s+(\d+\.\d+\.\d+)$/i,select:U},current_node:{matches:[],regexp:/^current\s+node$/i,select:function(e){return[f.currentNode(R,e)]}},maintained_node:{matches:[],regexp:/^maintained\s+node\s+versions$/i,select:function(e){var u=Date.now();return R(Object.keys(d).filter((function(e){return u<Date.parse(d[e].end)&&u>Date.parse(d[e].start)&&(r=e.slice(1),M.nodeVersions.some((function(e){return l(e,r)})));var r})).map((function(e){return"node "+e.slice(1)})),e)}},phantomjs_1_9:{matches:[],regexp:/^phantomjs\s+1.9$/i,select:function(){return["safari 5"]}},phantomjs_2_1:{matches:[],regexp:/^phantomjs\s+2.1$/i,select:function(){return["safari 6"]}},browser_version:{matches:["browser","version"],regexp:/^(\w+)\s+(tp|[\d.]+)$/i,select:function(e,u){var r=u.version;/^tp$/i.test(r)&&(r="TP");var t=O(u.browser,e),n=S(t,r);if(n)r=n;else{if(!(n=S(t,n=-1===r.indexOf(".")?r+".0":r.replace(/\.0$/,"")))){if(e.ignoreUnknownVersions)return[];throw new i("Unknown version "+r+" of "+u.browser)}r=n}return[t.name+" "+r]}},browserslist_config:{matches:[],regexp:/^browserslist config$/i,select:function(e){return M(void 0,e)}},extends:{matches:["config"],regexp:/^extends (.+)$/i,select:function(e,u){return R(f.loadQueries(e,u.config),e)}},defaults:{matches:[],regexp:/^defaults$/i,select:function(e){return R(M.defaults,e)}},dead:{matches:[],regexp:/^dead$/i,select:function(e){return R(["Baidu >= 0","ie <= 11","ie_mob <= 11","bb <= 10","op_mob <= 12.1","samsung 4"],e)}},unknown:{matches:[],regexp:/^(\w+)$/i,select:function(e,u){throw E(u.query,e)?new i("Specify versions in Browserslist query for browser "+u.query):(r=u.query,new i("Unknown browser query `"+r+"`. Maybe you are using old Browserslist or made typo in query."));var r}}};!function(){for(var e in n){var u=n[e];M.data[e]={name:e,versions:v(n[e].versions),released:v(n[e].versions.slice(0,-3)),releaseDate:n[e].release_date},g(M.usage.global,e,u.usage_global),M.versionAliases[e]={};for(var r=0;r<u.versions.length;r++){var d=u.versions[r];if(d&&-1!==d.indexOf("-"))for(var a=d.split("-"),s=0;s<a.length;s++)M.versionAliases[e][a[s]]=d}}M.nodeVersions=t.map((function(e){return e.version}))}(),e.exports=M},65723:function(e){var u=/^\s+and\s+(.*)/i,r=/^(?:,\s*|\s+or\s+)(.*)/i;function t(e){return Array.isArray(e)?e.reduce((function(e,u){return e.concat(t(u))}),[]):[e]}function n(e,u){var r={query:u};for(var t in 0===u.indexOf("not ")&&(r.not=!0,u=u.slice(4)),e){var n=e[t],d=u.match(n.regexp);if(d){r.type=t;for(var a=0;a<n.matches.length;a++)r[n.matches[a]]=d[a+1];return r}}return r.type="unknown",r}function d(e,t,d){var a;return function(e,u){for(var r=1,t=e.length;r<=t;r++)if(u(e.substr(-r,r),r,t))return e.slice(0,-r);return""}(t,(function(t,s,i){return u.test(t)?((a=n(e,t.match(u)[1])).compose="and",d.unshift(a),!0):r.test(t)?((a=n(e,t.match(r)[1])).compose="or",d.unshift(a),!0):s===i&&((a=n(e,t.trim())).compose="or",d.unshift(a),!0)}))}e.exports=function(e,u){return Array.isArray(u)||(u=[u]),t(u.map((function(u){var r=[];do{u=d(e,u,r)}while(u);return r})))}},66954:function(e){e.exports={A:{A:{K:0,F:0,G:.0326854,H:.0435805,A:0,B:.392224,JC:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","JC","K","F","G","H","A","B","","",""],E:"IE",F:{JC:962323200,K:998870400,F:1161129600,G:1237420800,H:1300060800,A:1346716800,B:1381968e3}},B:{A:{0:3.56904,C:0,L:0,M:0,I:.004259,N:0,D:.004259,O:.012777,P:0,Q:.004259,R:.004259,S:.004259,T:.008518,U:.004259,V:.004259,W:.004259,X:0,Y:.004259,Z:.004259,a:0,b:.012777,c:0,d:0,e:0,f:0,g:0,h:0,i:.008518,j:0,n:.008518,o:.008518,p:.004259,q:0,r:0,s:.004259,t:.008518,u:.012777,v:.076662,w:.021295,x:.029813,y:.579224,z:.745325,E:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","C","L","M","I","N","D","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","n","o","p","q","r","s","t","u","v","w","x","y","z","0","E","","",""],E:"Edge",F:{0:1685664e3,C:1438128e3,L:1447286400,M:1470096e3,I:1491868800,N:1508198400,D:1525046400,O:1542067200,P:1579046400,Q:1581033600,R:1586736e3,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:161136e4,Y:1614816e3,Z:1618358400,a:1622073600,b:1626912e3,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,n:1651190400,o:1653955200,p:1655942400,q:1659657600,r:1661990400,s:1664755200,t:1666915200,u:1670198400,v:1673481600,w:1675900800,x:1678665600,y:1680825600,z:1683158400,E:1689897600},D:{C:"ms",L:"ms",M:"ms",I:"ms",N:"ms",D:"ms",O:"ms"}},C:{A:{0:1.2564,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,KC:0,zB:0,J:0,K:0,F:0,G:0,H:0,A:0,B:.008518,C:0,L:0,M:0,I:0,N:0,D:0,O:0,k:0,l:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:.012777,PB:.004259,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:.051108,YB:0,ZB:0,aB:0,bB:.004259,cB:0,dB:0,"0B":.004259,eB:0,"1B":0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:.004259,mB:0,nB:0,oB:0,pB:.008518,m:0,qB:0,rB:0,sB:0,tB:0,uB:.051108,P:0,Q:0,R:0,"2B":0,S:0,T:.017036,U:0,V:0,W:.008518,X:.004259,Y:0,Z:0,a:.012777,b:0,c:0,d:.004259,e:0,f:0,g:0,h:0,i:0,j:0,n:0,o:.110734,p:.012777,q:0,r:.008518,s:.004259,t:.008518,u:.012777,v:.012777,w:.012777,x:.025554,y:.055367,z:.660145,E:.012777,"3B":0,"4B":0,LC:0,MC:0},B:"moz",C:["KC","zB","LC","MC","J","1","K","F","G","H","A","B","C","L","M","I","N","D","O","2","k","l","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","0B","eB","1B","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","m","qB","rB","sB","tB","uB","P","Q","R","2B","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","n","o","p","q","r","s","t","u","v","w","x","y","z","0","E","3B","4B",""],E:"Firefox",F:{0:1686009600,1:1308614400,2:1357603200,3:1368489600,4:1372118400,5:1375747200,6:1379376e3,7:1386633600,8:1391472e3,9:1395100800,KC:1161648e3,zB:1213660800,LC:124632e4,MC:1264032e3,J:1300752e3,K:1313452800,F:1317081600,G:1317081600,H:1320710400,A:1324339200,B:1327968e3,C:1331596800,L:1335225600,M:1338854400,I:1342483200,N:1346112e3,D:1349740800,O:1353628800,k:1361232e3,l:1364860800,AB:1398729600,BB:1402358400,CB:1405987200,DB:1409616e3,EB:1413244800,FB:1417392e3,GB:1421107200,HB:1424736e3,IB:1428278400,JB:1431475200,KB:1435881600,LB:1439251200,MB:144288e4,NB:1446508800,OB:1450137600,PB:1453852800,QB:1457395200,RB:1461628800,SB:1465257600,TB:1470096e3,UB:1474329600,VB:1479168e3,WB:1485216e3,XB:1488844800,YB:149256e4,ZB:1497312e3,aB:1502150400,bB:1506556800,cB:1510617600,dB:1516665600,"0B":1520985600,eB:1525824e3,"1B":1529971200,fB:1536105600,gB:1540252800,hB:1544486400,iB:154872e4,jB:1552953600,kB:1558396800,lB:1562630400,mB:1567468800,nB:1571788800,oB:1575331200,pB:1578355200,m:1581379200,qB:1583798400,rB:1586304e3,sB:1588636800,tB:1591056e3,uB:1593475200,P:1595894400,Q:1598313600,R:1600732800,"2B":1603152e3,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392e3,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536e3,n:1653955200,o:1656374400,p:1658793600,q:1661212800,r:1663632e3,s:1666051200,t:1668470400,u:1670889600,v:1673913600,w:1676332800,x:1678752e3,y:1681171200,z:1683590400,E:1688428800,"3B":null,"4B":null}},D:{A:{0:14.553,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,J:0,K:0,F:0,G:0,H:0,A:0,B:0,C:0,L:0,M:0,I:0,N:0,D:0,O:0,k:0,l:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:.008518,GB:0,HB:0,IB:0,JB:.017036,KB:0,LB:.012777,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:.008518,TB:.017036,UB:.038331,VB:.008518,WB:0,XB:.004259,YB:.008518,ZB:0,aB:.004259,bB:.051108,cB:0,dB:0,"0B":0,eB:.017036,"1B":.012777,fB:0,gB:.004259,hB:0,iB:.012777,jB:.029813,kB:.008518,lB:.025554,mB:.051108,nB:.04259,oB:.017036,pB:.025554,m:.012777,qB:.059626,rB:.059626,sB:.093698,tB:.025554,uB:.038331,P:.200173,Q:.051108,R:.051108,S:.110734,T:.029813,U:.089439,V:.072403,W:.089439,X:.046849,Y:.038331,Z:.055367,a:.089439,b:.038331,c:.17036,d:.034072,e:.021295,f:.025554,g:.025554,h:.063885,i:.055367,j:.046849,n:.04259,o:.051108,p:.268317,q:.063885,r:.076662,s:.051108,t:.059626,u:.149065,v:1.96766,w:.123511,x:.455713,y:.630332,z:3.9268,E:.021295,"3B":.021295,"4B":0,NC:0},B:"webkit",C:["","","","","","J","1","K","F","G","H","A","B","C","L","M","I","N","D","O","2","k","l","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","0B","eB","1B","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","m","qB","rB","sB","tB","uB","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","n","o","p","q","r","s","t","u","v","w","x","y","z","0","E","3B","4B","NC"],E:"Chrome",F:{0:1685404800,1:1274745600,2:1332892800,3:1343692800,4:1348531200,5:1352246400,6:1357862400,7:1361404800,8:1364428800,9:1369094400,J:1264377600,K:1283385600,F:1287619200,G:1291248e3,H:1296777600,A:1299542400,B:1303862400,C:1307404800,L:1312243200,M:1316131200,I:1316131200,N:1319500800,D:1323734400,O:1328659200,k:133704e4,l:1340668800,AB:1374105600,BB:1376956800,CB:1384214400,DB:1389657600,EB:1392940800,FB:1397001600,GB:1400544e3,HB:1405468800,IB:1409011200,JB:141264e4,KB:1416268800,LB:1421798400,MB:1425513600,NB:1429401600,OB:143208e4,PB:1437523200,QB:1441152e3,RB:1444780800,SB:1449014400,TB:1453248e3,UB:1456963200,VB:1460592e3,WB:1464134400,XB:1469059200,YB:1472601600,ZB:1476230400,aB:1480550400,bB:1485302400,cB:1489017600,dB:149256e4,"0B":1496707200,eB:1500940800,"1B":1504569600,fB:1508198400,gB:1512518400,hB:1516752e3,iB:1520294400,jB:1523923200,kB:1527552e3,lB:1532390400,mB:1536019200,nB:1539648e3,oB:1543968e3,pB:154872e4,m:1552348800,qB:1555977600,rB:1559606400,sB:1564444800,tB:1568073600,uB:1571702400,P:1575936e3,Q:1580860800,R:1586304e3,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272e3,a:1621987200,b:1626739200,c:1630368e3,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512e3,n:1650931200,o:1653350400,p:1655769600,q:1659398400,r:1661817600,s:1664236800,t:1666656e3,u:166968e4,v:1673308800,w:1675728e3,x:1678147200,y:1680566400,z:1682985600,E:1689724800,"3B":null,"4B":null,NC:null}},E:{A:{1:0,J:0,K:0,F:0,G:0,H:0,A:0,B:0,C:0,L:.025554,M:.12777,I:.029813,D:.008518,OC:0,"5B":0,PC:.008518,QC:0,RC:0,SC:.102216,"6B":0,vB:.008518,wB:.038331,"7B":.166101,TC:.332202,UC:.055367,"8B":.046849,"9B":.106475,xB:.191655,AC:.779397,yB:.080921,BC:.25554,CC:.289612,DC:.706994,EC:.498303,FC:2.00599,GC:.021295,VC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","OC","5B","J","1","PC","K","QC","F","RC","G","H","SC","A","6B","B","vB","C","wB","L","7B","M","TC","I","UC","8B","9B","xB","AC","yB","BC","CC","DC","EC","FC","GC","D","VC"],E:"Safari",F:{1:1275868800,OC:1205798400,"5B":1226534400,J:1244419200,PC:131112e4,K:1343174400,QC:13824e5,F:13824e5,RC:1410998400,G:1413417600,H:1443657600,SC:1458518400,A:1474329600,"6B":1490572800,B:1505779200,vB:1522281600,C:1537142400,wB:1553472e3,L:1568851200,"7B":1585008e3,M:1600214400,TC:1619395200,I:1632096e3,UC:1635292800,"8B":1639353600,"9B":1647216e3,xB:1652745600,AC:1658275200,yB:1662940800,BC:1666569600,CC:1670889600,DC:1674432e3,EC:1679875200,FC:1684368e3,GC:null,D:null,VC:null}},F:{A:{2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:.008518,H:0,B:.038331,C:0,I:0,N:0,D:0,O:0,k:0,l:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:.004259,MB:0,NB:0,OB:0,PB:0,QB:0,RB:.017036,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,m:0,qB:0,rB:0,sB:0,tB:0,uB:0,P:0,Q:0,R:0,"2B":0,S:0,T:0,U:.004259,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0,c:0,d:0,e:.059626,f:.012777,g:.021295,h:.664404,i:1.29048,j:.012777,WC:0,XC:0,YC:0,ZC:0,vB:0,HC:0,aC:0,wB:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","H","WC","XC","YC","ZC","B","vB","HC","aC","C","wB","I","N","D","O","2","k","l","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","m","qB","rB","sB","tB","uB","P","Q","R","2B","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","","",""],E:"Opera",F:{2:1390867200,3:1401753600,4:1405987200,5:1409616e3,6:1413331200,7:1417132800,8:1422316800,9:1425945600,H:1150761600,WC:1223424e3,XC:1251763200,YC:1267488e3,ZC:1277942400,B:1292457600,vB:1302566400,HC:1309219200,aC:1323129600,C:1323129600,wB:1352073600,I:1372723200,N:1377561600,D:1381104e3,O:1386288e3,k:1393891200,l:1399334400,AB:1430179200,BB:1433808e3,CB:1438646400,DB:1442448e3,EB:1445904e3,FB:1449100800,GB:1454371200,HB:1457308800,IB:146232e4,JB:1465344e3,KB:1470096e3,LB:1474329600,MB:1477267200,NB:1481587200,OB:1486425600,PB:1490054400,QB:1494374400,RB:1498003200,SB:1502236800,TB:1506470400,UB:1510099200,VB:1515024e3,WB:1517961600,XB:1521676800,YB:1525910400,ZB:1530144e3,aB:1534982400,bB:1537833600,cB:1543363200,dB:1548201600,eB:1554768e3,fB:1561593600,gB:1566259200,hB:1570406400,iB:1573689600,jB:1578441600,kB:1583971200,lB:1587513600,mB:1592956800,nB:1595894400,oB:1600128e3,pB:1603238400,m:161352e4,qB:1612224e3,rB:1616544e3,sB:1619568e3,tB:1623715200,uB:1627948800,P:1631577600,Q:1633392e3,R:1635984e3,"2B":1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152e3,Z:1660780800,a:1663113600,b:1668816e3,c:1668643200,d:1671062400,e:1675209600,f:1677024e3,g:1679529600,h:1681948800,i:1684195200,j:1687219200},D:{H:"o",B:"o",C:"o",WC:"o",XC:"o",YC:"o",ZC:"o",vB:"o",HC:"o",aC:"o",wB:"o"}},G:{A:{G:0,D:.0227641,"5B":0,bC:0,IC:.00303522,cC:.00303522,dC:.00455283,eC:.0121409,fC:.00455283,gC:.00910566,hC:.0440107,iC:.00455283,jC:.062222,kC:.0303522,lC:.0197289,mC:.0166937,nC:.321733,oC:.00910566,pC:.00910566,qC:.0227641,rC:.0773981,sC:.20336,tC:.374849,uC:.119891,"8B":.141138,"9B":.160867,xB:.239782,AC:.582762,yB:.648019,BC:1.23837,CC:.661678,DC:1.56617,EC:1.0259,FC:6.55152,GC:.0637396},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","5B","bC","IC","cC","dC","eC","G","fC","gC","hC","iC","jC","kC","lC","mC","nC","oC","pC","qC","rC","sC","tC","uC","8B","9B","xB","AC","yB","BC","CC","DC","EC","FC","GC","D",""],E:"Safari on iOS",F:{"5B":1270252800,bC:1283904e3,IC:1299628800,cC:1331078400,dC:1359331200,eC:1394409600,G:1410912e3,fC:1413763200,gC:1442361600,hC:1458518400,iC:1473724800,jC:1490572800,kC:1505779200,lC:1522281600,mC:1537142400,nC:1553472e3,oC:1568851200,pC:1572220800,qC:1580169600,rC:1585008e3,sC:1600214400,tC:1619395200,uC:1632096e3,"8B":1639353600,"9B":1647216e3,xB:1652659200,AC:1658275200,yB:1662940800,BC:1666569600,CC:1670889600,DC:1674432e3,EC:1679875200,FC:1684368e3,GC:null,D:null}},H:{A:{vC:.956597},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","vC","","",""],E:"Opera Mini",F:{vC:1426464e3}},I:{A:{zB:0,J:.0252848,E:0,wC:0,xC:.00842828,yC:0,zC:.0168566,IC:.092711,"0C":0,"1C":.252848},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","wC","xC","yC","zB","J","zC","IC","0C","1C","E","","",""],E:"Android Browser",F:{wC:1256515200,xC:1274313600,yC:1291593600,zB:1298332800,J:1318896e3,zC:1341792e3,IC:1374624e3,"0C":1386547200,"1C":1401667200,E:1690243200}},J:{A:{F:0,A:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","F","A","","",""],E:"Blackberry Browser",F:{F:1325376e3,A:1359504e3}},K:{A:{A:0,B:0,C:0,m:0,vB:0,HC:0,wB:0},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","vB","HC","C","wB","m","","",""],E:"Opera Mobile",F:{A:1287100800,B:1300752e3,vB:1314835200,HC:1318291200,C:1330300800,wB:1349740800,m:1673827200},D:{m:"webkit"}},L:{A:{E:38.2012},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","E","","",""],E:"Chrome for Android",F:{E:1690243200}},M:{A:{E:.281309},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","E","","",""],E:"Firefox for Android",F:{E:1688428800}},N:{A:{A:0,B:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","","",""],E:"IE Mobile",F:{A:1340150400,B:1353456e3}},O:{A:{xB:1.04486},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","xB","","",""],E:"UC Browser for Android",F:{xB:1687132800},D:{xB:"webkit"}},P:{A:{J:.156242,k:.229156,l:1.74991,"2C":0,"3C":0,"4C":.0520808,"5C":0,"6C":0,"6B":0,"7C":.0208323,"8C":0,"9C":.0208323,AD:.0208323,BD:.0104162,yB:.0416646,CD:.0416646,DD:.0416646,ED:.0833293},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","J","2C","3C","4C","5C","6C","6B","7C","8C","9C","AD","BD","yB","CD","DD","ED","k","l","","",""],E:"Samsung Internet",F:{J:1461024e3,"2C":1481846400,"3C":1509408e3,"4C":1528329600,"5C":1546128e3,"6C":1554163200,"6B":1567900800,"7C":1582588800,"8C":1593475200,"9C":1605657600,AD:1618531200,BD:1629072e3,yB:1640736e3,CD:1651708800,DD:1659657600,ED:1667260800,k:1677369600,l:1684454400}},Q:{A:{"7B":.155007},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","7B","","",""],E:"QQ Browser",F:{"7B":1663718400}},R:{A:{FD:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","FD","","",""],E:"Baidu Browser",F:{FD:1663027200}},S:{A:{GD:.103338,HD:0},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","GD","HD","","",""],E:"KaiOS Browser",F:{GD:1527811200,HD:1631664e3}}}},6974:function(e){e.exports={0:"114",1:"5",2:"19",3:"22",4:"23",5:"24",6:"25",7:"26",8:"27",9:"28",A:"10",B:"11",C:"12",D:"17",E:"115",F:"7",G:"8",H:"9",I:"15",J:"4",K:"6",L:"13",M:"14",N:"16",O:"18",P:"79",Q:"80",R:"81",S:"83",T:"84",U:"85",V:"86",W:"87",X:"88",Y:"89",Z:"90",a:"91",b:"92",c:"93",d:"94",e:"95",f:"96",g:"97",h:"98",i:"99",j:"100",k:"20",l:"21",m:"73",n:"101",o:"102",p:"103",q:"104",r:"105",s:"106",t:"107",u:"108",v:"109",w:"110",x:"111",y:"112",z:"113",AB:"29",BB:"30",CB:"31",DB:"32",EB:"33",FB:"34",GB:"35",HB:"36",IB:"37",JB:"38",KB:"39",LB:"40",MB:"41",NB:"42",OB:"43",PB:"44",QB:"45",RB:"46",SB:"47",TB:"48",UB:"49",VB:"50",WB:"51",XB:"52",YB:"53",ZB:"54",aB:"55",bB:"56",cB:"57",dB:"58",eB:"60",fB:"62",gB:"63",hB:"64",iB:"65",jB:"66",kB:"67",lB:"68",mB:"69",nB:"70",oB:"71",pB:"72",qB:"74",rB:"75",sB:"76",tB:"77",uB:"78",vB:"11.1",wB:"12.1",xB:"15.5",yB:"16.0",zB:"3","0B":"59","1B":"61","2B":"82","3B":"116","4B":"117","5B":"3.2","6B":"10.1","7B":"13.1","8B":"15.2-15.3","9B":"15.4",AC:"15.6",BC:"16.1",CC:"16.2",DC:"16.3",EC:"16.4",FC:"16.5",GC:"16.6",HC:"11.5",IC:"4.2-4.3",JC:"5.5",KC:"2",LC:"3.5",MC:"3.6",NC:"118",OC:"3.1",PC:"5.1",QC:"6.1",RC:"7.1",SC:"9.1",TC:"14.1",UC:"15.1",VC:"TP",WC:"9.5-9.6",XC:"10.0-10.1",YC:"10.5",ZC:"10.6",aC:"11.6",bC:"4.0-4.1",cC:"5.0-5.1",dC:"6.0-6.1",eC:"7.0-7.1",fC:"8.1-8.4",gC:"9.0-9.2",hC:"9.3",iC:"10.0-10.2",jC:"10.3",kC:"11.0-11.2",lC:"11.3-11.4",mC:"12.0-12.1",nC:"12.2-12.5",oC:"13.0-13.1",pC:"13.2",qC:"13.3",rC:"13.4-13.7",sC:"14.0-14.4",tC:"14.5-14.8",uC:"15.0-15.1",vC:"all",wC:"2.1",xC:"2.2",yC:"2.3",zC:"4.1","0C":"4.4","1C":"4.4.3-4.4.4","2C":"5.0-5.4","3C":"6.2-6.4","4C":"7.2-7.4","5C":"8.2","6C":"9.2","7C":"11.1-11.2","8C":"12.0","9C":"13.0",AD:"14.0",BD:"15.0",CD:"17.0",DD:"18.0",ED:"19.0",FD:"13.18",GD:"2.5",HD:"3.0-3.1"}},12757:function(e){e.exports={A:"ie",B:"edge",C:"firefox",D:"chrome",E:"safari",F:"opera",G:"ios_saf",H:"op_mini",I:"android",J:"bb",K:"op_mob",L:"and_chr",M:"and_ff",N:"ie_mob",O:"and_uc",P:"samsung",Q:"and_qq",R:"baidu",S:"kaios"}},95459:function(e,u,r){"use strict";const t=r(8833).browsers,n=r(28788).browserVersions,d=r(66954);function a(e){return Object.keys(e).reduce(((u,r)=>(u[n[r]]=e[r],u)),{})}e.exports.agents=Object.keys(d).reduce(((e,u)=>{let r=d[u];return e[t[u]]=Object.keys(r).reduce(((e,u)=>("A"===u?e.usage_global=a(r[u]):"C"===u?e.versions=r[u].reduce(((e,u)=>(""===u?e.push(null):e.push(n[u]),e)),[]):"D"===u?e.prefix_exceptions=a(r[u]):"E"===u?e.browser=r[u]:"F"===u?e.release_date=Object.keys(r[u]).reduce(((e,t)=>(e[n[t]]=r[u][t],e)),{}):e.prefix=r[u],e)),{}),e}),{})},28788:function(e,u,r){e.exports.browserVersions=r(6974)},8833:function(e,u,r){e.exports.browsers=r(12757)},19608:function(e,u,r){"use strict";var t=r(87537),n=r.n(t),d=r(23645),a=r.n(d)()(n());a.push([e.id,".content-unsupported-browser[data-v-3c1e6192]{display:flex;justify-content:center;width:400px;max-width:calc(90vw - 60px);margin:auto;padding:30px}.content-unsupported-browser .empty-content[data-v-3c1e6192]{margin:0}.content-unsupported-browser .empty-content[data-v-3c1e6192] .empty-content__icon{opacity:1}.content-unsupported-browser__continue[data-v-3c1e6192]{display:block;margin:30px auto}.content-unsupported-browser__list[data-v-3c1e6192]{margin-top:60px;margin-bottom:30px}.content-unsupported-browser__list li[data-v-3c1e6192]{text-align:left}","",{version:3,sources:["webpack://./core/src/views/UnsupportedBrowser.vue"],names:[],mappings:"AAGA,8CACC,YAAA,CACA,sBAAA,CACA,WAAA,CACA,2BAAA,CACA,WAAA,CACA,YARS,CAUT,6DACC,QAAA,CACA,kFACC,SAAA,CAIF,wDACC,aAAA,CACA,gBAAA,CAGD,oDACC,eAAA,CACA,kBAxBQ,CAyBR,uDACC,eAAA",sourcesContent:["\n$spacing: 30px;\n\n.content-unsupported-browser {\n\tdisplay: flex;\n\tjustify-content: center;\n\twidth: 400px;\n\tmax-width: calc(90vw - 2 * $spacing);\n\tmargin: auto;\n\tpadding: $spacing;\n\n\t.empty-content {\n\t\tmargin: 0;\n\t\t&::v-deep .empty-content__icon {\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t&__continue {\n\t\tdisplay: block;\n\t\tmargin: $spacing auto;\n\t}\n\n\t&__list {\n\t\tmargin-top: 2 * $spacing;\n\t\tmargin-bottom: $spacing;\n\t\tli {\n\t\t\ttext-align: left;\n\t\t}\n\t}\n}\n\n"],sourceRoot:""}]),u.Z=a},76250:function(e){e.exports={"0.20":"39",.21:"41",.22:"41",.23:"41",.24:"41",.25:"42",.26:"42",.27:"43",.28:"43",.29:"43","0.30":"44",.31:"45",.32:"45",.33:"45",.34:"45",.35:"45",.36:"47",.37:"49","1.0":"49",1.1:"50",1.2:"51",1.3:"52",1.4:"53",1.5:"54",1.6:"56",1.7:"58",1.8:"59","2.0":"61",2.1:"61","3.0":"66",3.1:"66","4.0":"69",4.1:"69",4.2:"69","5.0":"73","6.0":"76",6.1:"76","7.0":"78",7.1:"78",7.2:"78",7.3:"78","8.0":"80",8.1:"80",8.2:"80",8.3:"80",8.4:"80",8.5:"80","9.0":"83",9.1:"83",9.2:"83",9.3:"83",9.4:"83","10.0":"85",10.1:"85",10.2:"85",10.3:"85",10.4:"85","11.0":"87",11.1:"87",11.2:"87",11.3:"87",11.4:"87",11.5:"87","12.0":"89",12.1:"89",12.2:"89","13.0":"91",13.1:"91",13.2:"91",13.3:"91",13.4:"91",13.5:"91",13.6:"91","14.0":"93",14.1:"93",14.2:"93","15.0":"94",15.1:"94",15.2:"94",15.3:"94",15.4:"94",15.5:"94","16.0":"96",16.1:"96",16.2:"96","17.0":"98",17.1:"98",17.2:"98",17.3:"98",17.4:"98","18.0":"100",18.1:"100",18.2:"100",18.3:"100","19.0":"102",19.1:"102","20.0":"104",20.1:"104",20.2:"104",20.3:"104","21.0":"106",21.1:"106",21.2:"106",21.3:"106",21.4:"106","22.0":"108",22.1:"108",22.2:"108",22.3:"108","23.0":"110",23.1:"110",23.2:"110",23.3:"110","24.0":"112",24.1:"112",24.2:"112",24.3:"112",24.4:"112",24.5:"112",24.6:"112","25.0":"114",25.1:"114",25.2:"114",25.3:"114","26.0":"116"}},78355:function(e,u,r){"use strict";var t=r(1264),n=r(60045);e.exports={transform:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=u.length>0?u:Object.keys(t),d=void 0,a={};return r.forEach((function(u){if(!t.hasOwnProperty(u))throw new Error("Unknown compat-transform: "+u+". Available transforms are: "+Object.keys(t).join(", "));var r=t[u];d=n.transform(e,r),e=d.getAST(),"function"==typeof r.getExtra&&(a[u]=r.getExtra())})),d.setExtra(a),d}}},77460:function(e){"use strict";var u=function(){function e(e,u){for(var r=0;r<u.length;r++){var t=u[r];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}return function(u,r,t){return r&&e(u.prototype,r),t&&e(u,t),u}}(),r=function(){function e(u,r){var t=r.flags,n=r.groups,d=r.source;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._re=u,this._groups=n,this.flags=t,this.source=d||u.source,this.dotAll=t.includes("s"),this.global=u.global,this.ignoreCase=u.ignoreCase,this.multiline=u.multiline,this.sticky=u.sticky,this.unicode=u.unicode}return u(e,[{key:"test",value:function(e){return this._re.test(e)}},{key:"compile",value:function(e){return this._re.compile(e)}},{key:"toString",value:function(){return this._toStringResult||(this._toStringResult="/"+this.source+"/"+this.flags),this._toStringResult}},{key:"exec",value:function(e){var u=this._re.exec(e);if(!this._groups||!u)return u;for(var r in u.groups={},this._groups){var t=this._groups[r];u.groups[r]=u[t]}return u}}]),e}();e.exports={RegExpTree:r}},98708:function(e){"use strict";e.exports={_hasUFlag:!1,shouldRun:function(e){return!!e.flags.includes("s")&&(e.flags=e.flags.replace("s",""),this._hasUFlag=e.flags.includes("u"),!0)},Char:function(e){var u=e.node;if("meta"===u.kind&&"."===u.value){var r="\\uFFFF",t="￿";this._hasUFlag&&(r="\\u{10FFFF}",t="􏿿"),e.replace({type:"CharacterClass",expressions:[{type:"ClassRange",from:{type:"Char",value:"\\0",kind:"decimal",symbol:"\0"},to:{type:"Char",value:r,kind:"unicode",symbol:t}}]})}}}},305:function(e){"use strict";e.exports={_groupNames:{},init:function(){this._groupNames={}},getExtra:function(){return this._groupNames},Group:function(e){var u=e.node;u.name&&(this._groupNames[u.name]=u.number,delete u.name,delete u.nameRaw)},Backreference:function(e){var u=e.node;"name"===u.kind&&(u.kind="number",u.reference=u.number,delete u.referenceRaw)}}},96437:function(e){"use strict";e.exports={RegExp:function(e){var u=e.node;u.flags.includes("x")&&(u.flags=u.flags.replace("x",""))}}},1264:function(e,u,r){"use strict";e.exports={dotAll:r(98708),namedCapturingGroups:r(305),xFlag:r(96437)}},89702:function(e){"use strict";function u(e){return e?r[e.type](e):""}var r={RegExp:function(e){return"/"+u(e.body)+"/"+e.flags},Alternative:function(e){return(e.expressions||[]).map(u).join("")},Disjunction:function(e){return u(e.left)+"|"+u(e.right)},Group:function(e){var r=u(e.expression);return e.capturing?e.name?"(?<"+(e.nameRaw||e.name)+">"+r+")":"("+r+")":"(?:"+r+")"},Backreference:function(e){switch(e.kind){case"number":return"\\"+e.reference;case"name":return"\\k<"+(e.referenceRaw||e.reference)+">";default:throw new TypeError("Unknown Backreference kind: "+e.kind)}},Assertion:function(e){switch(e.kind){case"^":case"$":case"\\b":case"\\B":return e.kind;case"Lookahead":var r=u(e.assertion);return e.negative?"(?!"+r+")":"(?="+r+")";case"Lookbehind":var t=u(e.assertion);return e.negative?"(?<!"+t+")":"(?<="+t+")";default:throw new TypeError("Unknown Assertion kind: "+e.kind)}},CharacterClass:function(e){var r=e.expressions.map(u).join("");return e.negative?"[^"+r+"]":"["+r+"]"},ClassRange:function(e){return u(e.from)+"-"+u(e.to)},Repetition:function(e){return""+u(e.expression)+u(e.quantifier)},Quantifier:function(e){var u=void 0,r=e.greedy?"":"?";switch(e.kind){case"+":case"?":case"*":u=e.kind;break;case"Range":u=e.from===e.to?"{"+e.from+"}":e.to?"{"+e.from+","+e.to+"}":"{"+e.from+",}";break;default:throw new TypeError("Unknown Quantifier kind: "+e.kind)}return""+u+r},Char:function(e){var u=e.value;switch(e.kind){case"simple":return e.escaped?"\\"+u:u;case"hex":case"unicode":case"oct":case"decimal":case"control":case"meta":return u;default:throw new TypeError("Unknown Char kind: "+e.kind)}},UnicodeProperty:function(e){return"\\"+(e.negative?"P":"p")+"{"+(e.shorthand||e.binary?"":e.name+"=")+e.value+"}"}};e.exports={generate:u}},41693:function(e){"use strict";var u=function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,u){var r=[],t=!0,n=!1,d=void 0;try{for(var a,s=e[Symbol.iterator]();!(t=(a=s.next()).done)&&(r.push(a.value),!u||r.length!==u);t=!0);}catch(e){n=!0,d=e}finally{try{!t&&s.return&&s.return()}finally{if(n)throw d}}return r}(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")};function r(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var t=null;function n(e,u){if(!u)return!1;if(e.length!==u.length)return!1;for(var t=0;t<e.length;t++){var n=e[t],d=u[t];if(n.size!==d.size)return!1;if([].concat(r(n)).sort().join(",")!==[].concat(r(d)).sort().join(","))return!1}return!0}function d(e,u,r,t){var n=!0,d=!1,s=void 0;try{for(var i,o=t[Symbol.iterator]();!(n=(i=o.next()).done);n=!0)if(!a(e,u,r,i.value))return!1}catch(e){d=!0,s=e}finally{try{!n&&o.return&&o.return()}finally{if(d)throw s}}return!0}function a(e,u,r,n){if(!t[e]||!t[u])return!1;var d=r[e][n],a=r[u][n];return!d&&!a||t[e].has(d)&&t[u].has(a)}e.exports={minimize:function(e){var a=e.getTransitionTable(),s=Object.keys(a),i=e.getAlphabet(),o=e.getAcceptingStateNumbers();t={};var f=new Set;s.forEach((function(e){e=Number(e),o.has(e)?t[e]=o:(f.add(e),t[e]=f)}));var c=[[f,o].filter((function(e){return e.size>0}))],l=void 0,v=void 0;l=c[c.length-1],v=c[c.length-2];for(var p=function(){var e,u={},n=!0,s=!1,o=void 0;try{for(var f,p=l[Symbol.iterator]();!(n=(f=p.next()).done);n=!0){var b=f.value,h={},m=(e=b,Array.isArray(e)?e:Array.from(e)),y=m[0],g=m.slice(1);h[y]=new Set([y]);var C=!0,B=!1,_=void 0;try{e:for(var x,w=g[Symbol.iterator]();!(C=(x=w.next()).done);C=!0){var A=x.value,S=!0,j=!1,k=void 0;try{for(var E,P=Object.keys(h)[Symbol.iterator]();!(S=(E=P.next()).done);S=!0){var O=E.value;if(d(A,O,a,i)){h[O].add(A),h[A]=h[O];continue e}}}catch(e){j=!0,k=e}finally{try{!S&&P.return&&P.return()}finally{if(j)throw k}}h[A]=new Set([A])}}catch(e){B=!0,_=e}finally{try{!C&&w.return&&w.return()}finally{if(B)throw _}}Object.assign(u,h)}}catch(e){s=!0,o=e}finally{try{!n&&p.return&&p.return()}finally{if(s)throw o}}t=u;var T=new Set(Object.keys(u).map((function(e){return u[e]})));c.push([].concat(r(T))),l=c[c.length-1],v=c[c.length-2]};!n(l,v);)p();var b=new Map,h=1;l.forEach((function(e){return b.set(e,h++)}));var m={},y=new Set,g=function(e,u){var r=!0,t=!1,n=void 0;try{for(var d,a=e[Symbol.iterator]();!(r=(d=a.next()).done);r=!0){var s=d.value;o.has(s)&&y.add(u)}}catch(e){t=!0,n=e}finally{try{!r&&a.return&&a.return()}finally{if(t)throw n}}},C=!0,B=!1,_=void 0;try{for(var x,w=b.entries()[Symbol.iterator]();!(C=(x=w.next()).done);C=!0){var A=x.value,S=u(A,2),j=S[0],k=S[1];m[k]={};var E=!0,P=!1,O=void 0;try{for(var T,N=i[Symbol.iterator]();!(E=(T=N.next()).done);E=!0){var R=T.value;g(j,k);var L=void 0,D=!0,F=!1,I=void 0;try{for(var M,U=j[Symbol.iterator]();!(D=(M=U.next()).done);D=!0){var G=M.value;if(L=a[G][R])break}}catch(e){F=!0,I=e}finally{try{!D&&U.return&&U.return()}finally{if(F)throw I}}L&&(m[k][R]=b.get(t[L]))}}catch(e){P=!0,O=e}finally{try{!E&&N.return&&N.return()}finally{if(P)throw O}}}}catch(e){B=!0,_=e}finally{try{!C&&w.return&&w.return()}finally{if(B)throw _}}return e.setTransitionTable(m),e.setAcceptingStateNumbers(y),e}}},13158:function(e,u,r){"use strict";var t=function(){function e(e,u){for(var r=0;r<u.length;r++){var t=u[r];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}return function(u,r,t){return r&&e(u.prototype,r),t&&e(u,t),u}}();function n(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var d=r(41693),a=r(3341).EPSILON_CLOSURE,s=function(){function e(u){!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._nfa=u}return t(e,[{key:"minimize",value:function(){this.getTransitionTable(),this._originalAcceptingStateNumbers=this._acceptingStateNumbers,this._originalTransitionTable=this._transitionTable,d.minimize(this)}},{key:"getAlphabet",value:function(){return this._nfa.getAlphabet()}},{key:"getAcceptingStateNumbers",value:function(){return this._acceptingStateNumbers||this.getTransitionTable(),this._acceptingStateNumbers}},{key:"getOriginaAcceptingStateNumbers",value:function(){return this._originalAcceptingStateNumbers||this.getTransitionTable(),this._originalAcceptingStateNumbers}},{key:"setTransitionTable",value:function(e){this._transitionTable=e}},{key:"setAcceptingStateNumbers",value:function(e){this._acceptingStateNumbers=e}},{key:"getTransitionTable",value:function(){var e=this;if(this._transitionTable)return this._transitionTable;var u=this._nfa.getTransitionTable(),r=Object.keys(u);this._acceptingStateNumbers=new Set;for(var t=[u[r[0]][a]],d=this.getAlphabet(),s=this._nfa.getAcceptingStateNumbers(),i={},o=function(u){var r=!0,t=!1,n=void 0;try{for(var d,a=s[Symbol.iterator]();!(r=(d=a.next()).done);r=!0){var i=d.value;if(-1!==u.indexOf(i)){e._acceptingStateNumbers.add(u.join(","));break}}}catch(e){t=!0,n=e}finally{try{!r&&a.return&&a.return()}finally{if(t)throw n}}};t.length>0;){var f=t.shift(),c=f.join(",");i[c]={};var l=!0,v=!1,p=void 0;try{for(var b,h=d[Symbol.iterator]();!(l=(b=h.next()).done);l=!0){var m=b.value,y=[];o(f);var g=!0,C=!1,B=void 0;try{for(var _,x=f[Symbol.iterator]();!(g=(_=x.next()).done);g=!0){var w=u[_.value][m];if(w){var A=!0,S=!1,j=void 0;try{for(var k,E=w[Symbol.iterator]();!(A=(k=E.next()).done);A=!0){var P=k.value;u[P]&&y.push.apply(y,n(u[P][a]))}}catch(e){S=!0,j=e}finally{try{!A&&E.return&&E.return()}finally{if(S)throw j}}}}}catch(e){C=!0,B=e}finally{try{!g&&x.return&&x.return()}finally{if(C)throw B}}var O=new Set(y),T=[].concat(n(O));if(T.length>0){var N=T.join(",");i[c][m]=N,i.hasOwnProperty(N)||t.unshift(T)}}}catch(e){v=!0,p=e}finally{try{!l&&h.return&&h.return()}finally{if(v)throw p}}}return this._transitionTable=this._remapStateNumbers(i)}},{key:"_remapStateNumbers",value:function(e){var u={};this._originalTransitionTable=e;var r={};for(var t in Object.keys(e).forEach((function(e,r){u[e]=r+1})),e){var n=e[t],d={};for(var a in n)d[a]=u[n[a]];r[u[t]]=d}this._originalAcceptingStateNumbers=this._acceptingStateNumbers,this._acceptingStateNumbers=new Set;var s=!0,i=!1,o=void 0;try{for(var f,c=this._originalAcceptingStateNumbers[Symbol.iterator]();!(s=(f=c.next()).done);s=!0){var l=f.value;this._acceptingStateNumbers.add(u[l])}}catch(e){i=!0,o=e}finally{try{!s&&c.return&&c.return()}finally{if(i)throw o}}return r}},{key:"getOriginalTransitionTable",value:function(){return this._originalTransitionTable||this.getTransitionTable(),this._originalTransitionTable}},{key:"matches",value:function(e){for(var u=1,r=0,t=this.getTransitionTable();e[r];)if(!(u=t[u][e[r++]]))return!1;return!!this.getAcceptingStateNumbers().has(u)}}]),e}();e.exports=s},22722:function(e,u,r){"use strict";var t=r(95050),n=r(13158),d=r(39761),a=r(2970);e.exports={NFA:t,DFA:n,builders:a,toNFA:function(e){return d.build(e)},toDFA:function(e){return new n(this.toNFA(e))},test:function(e,u){return this.toDFA(e).matches(u)}}},2970:function(e,u,r){"use strict";var t=r(95050),n=r(81115),d=r(3341).EPSILON;function a(e){var u=new n,r=new n({accepting:!0});return new t(u.addTransition(e,r),r)}function s(e,u){return e.out.accepting=!1,u.out.accepting=!0,e.out.addTransition(d,u.in),new t(e.in,u.out)}function i(e,u){var r=new n,a=new n;return r.addTransition(d,e.in),r.addTransition(d,u.in),a.accepting=!0,e.out.accepting=!1,u.out.accepting=!1,e.out.addTransition(d,a),u.out.addTransition(d,a),new t(r,a)}e.exports={alt:function(e){for(var u=arguments.length,r=Array(u>1?u-1:0),t=1;t<u;t++)r[t-1]=arguments[t];var n=!0,d=!1,a=void 0;try{for(var i,o=r[Symbol.iterator]();!(n=(i=o.next()).done);n=!0)e=s(e,i.value)}catch(e){d=!0,a=e}finally{try{!n&&o.return&&o.return()}finally{if(d)throw a}}return e},char:a,e:function(){return a(d)},or:function(e){for(var u=arguments.length,r=Array(u>1?u-1:0),t=1;t<u;t++)r[t-1]=arguments[t];var n=!0,d=!1,a=void 0;try{for(var s,o=r[Symbol.iterator]();!(n=(s=o.next()).done);n=!0)e=i(e,s.value)}catch(e){d=!0,a=e}finally{try{!n&&o.return&&o.return()}finally{if(d)throw a}}return e},rep:function(e){return e.in.addTransition(d,e.out),e.out.addTransition(d,e.in),e},repExplicit:function(e){var u=new n,r=new n({accepting:!0});return u.addTransition(d,e.in),u.addTransition(d,r),e.out.accepting=!1,e.out.addTransition(d,r),r.addTransition(d,e.in),new t(u,r)},plusRep:function(e){return e.out.addTransition(d,e.in),e},questionRep:function(e){return e.in.addTransition(d,e.out),e}}},39761:function(e,u,r){"use strict";var t=r(37112),n=r(2970),d=n.alt,a=n.char,s=n.or,i=n.rep,o=n.plusRep,f=n.questionRep;function c(e){if(e&&!l[e.type])throw new Error(e.type+" is not supported in NFA/DFA interpreter.");return e?l[e.type](e):""}var l={RegExp:function(e){if(""!==e.flags)throw new Error("NFA/DFA: Flags are not supported yet.");return c(e.body)},Alternative:function(e){var u=(e.expressions||[]).map(c);return d.apply(void 0,function(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}(u))},Disjunction:function(e){return s(c(e.left),c(e.right))},Repetition:function(e){switch(e.quantifier.kind){case"*":return i(c(e.expression));case"+":return o(c(e.expression));case"?":return f(c(e.expression));default:throw new Error("Unknown repeatition: "+e.quantifier.kind+".")}},Char:function(e){if("simple"!==e.kind)throw new Error("NFA/DFA: Only simple chars are supported yet.");return a(e.value)},Group:function(e){return c(e.expression)}};e.exports={build:function(e){var u=e;return e instanceof RegExp&&(e=""+e),"string"==typeof e&&(u=t.parse(e,{captureLocations:!0})),c(u)}}},81115:function(e,u,r){"use strict";var t=function(){function e(e,u){for(var r=0;r<u.length;r++){var t=u[r];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}return function(u,r,t){return r&&e(u.prototype,r),t&&e(u,t),u}}(),n=r(74128),d=r(3341).EPSILON,a=function(e){function u(){return function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,u),function(e,u){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!u||"object"!=typeof u&&"function"!=typeof u?e:u}(this,(u.__proto__||Object.getPrototypeOf(u)).apply(this,arguments))}return function(e,u){if("function"!=typeof u&&null!==u)throw new TypeError("Super expression must either be null or a function, not "+typeof u);e.prototype=Object.create(u&&u.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),u&&(Object.setPrototypeOf?Object.setPrototypeOf(e,u):e.__proto__=u)}(u,e),t(u,[{key:"matches",value:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Set;if(u.has(this))return!1;if(u.add(this),0===e.length){if(this.accepting)return!0;var r=!0,t=!1,n=void 0;try{for(var a,s=this.getTransitionsOnSymbol(d)[Symbol.iterator]();!(r=(a=s.next()).done);r=!0)if(a.value.matches("",u))return!0}catch(e){t=!0,n=e}finally{try{!r&&s.return&&s.return()}finally{if(t)throw n}}return!1}var i=e[0],o=e.slice(1),f=this.getTransitionsOnSymbol(i),c=!0,l=!1,v=void 0;try{for(var p,b=f[Symbol.iterator]();!(c=(p=b.next()).done);c=!0)if(p.value.matches(o))return!0}catch(e){l=!0,v=e}finally{try{!c&&b.return&&b.return()}finally{if(l)throw v}}var h=!0,m=!1,y=void 0;try{for(var g,C=this.getTransitionsOnSymbol(d)[Symbol.iterator]();!(h=(g=C.next()).done);h=!0)if(g.value.matches(e,u))return!0}catch(e){m=!0,y=e}finally{try{!h&&C.return&&C.return()}finally{if(m)throw y}}return!1}},{key:"getEpsilonClosure",value:function(){var e=this;return this._epsilonClosure||function(){var u=e.getTransitionsOnSymbol(d),r=e._epsilonClosure=new Set;r.add(e);var t=!0,n=!1,a=void 0;try{for(var s,i=u[Symbol.iterator]();!(t=(s=i.next()).done);t=!0){var o=s.value;r.has(o)||(r.add(o),o.getEpsilonClosure().forEach((function(e){return r.add(e)})))}}catch(e){n=!0,a=e}finally{try{!t&&i.return&&i.return()}finally{if(n)throw a}}}(),this._epsilonClosure}}]),u}(n);e.exports=a},95050:function(e,u,r){"use strict";var t=function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,u){var r=[],t=!0,n=!1,d=void 0;try{for(var a,s=e[Symbol.iterator]();!(t=(a=s.next()).done)&&(r.push(a.value),!u||r.length!==u);t=!0);}catch(e){n=!0,d=e}finally{try{!t&&s.return&&s.return()}finally{if(n)throw d}}return r}(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")},n=function(){function e(e,u){for(var r=0;r<u.length;r++){var t=u[r];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}return function(u,r,t){return r&&e(u.prototype,r),t&&e(u,t),u}}(),d=r(3341),a=d.EPSILON,s=d.EPSILON_CLOSURE,i=function(){function e(u,r){!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this.in=u,this.out=r}return n(e,[{key:"matches",value:function(e){return this.in.matches(e)}},{key:"getAlphabet",value:function(){if(!this._alphabet){this._alphabet=new Set;var e=this.getTransitionTable();for(var u in e){var r=e[u];for(var t in r)t!==s&&this._alphabet.add(t)}}return this._alphabet}},{key:"getAcceptingStates",value:function(){return this._acceptingStates||this.getTransitionTable(),this._acceptingStates}},{key:"getAcceptingStateNumbers",value:function(){if(!this._acceptingStateNumbers){this._acceptingStateNumbers=new Set;var e=!0,u=!1,r=void 0;try{for(var t,n=this.getAcceptingStates()[Symbol.iterator]();!(e=(t=n.next()).done);e=!0){var d=t.value;this._acceptingStateNumbers.add(d.number)}}catch(e){u=!0,r=e}finally{try{!e&&n.return&&n.return()}finally{if(u)throw r}}}return this._acceptingStateNumbers}},{key:"getTransitionTable",value:function(){var e=this;if(!this._transitionTable){this._transitionTable={},this._acceptingStates=new Set;var u=new Set,r=new Set;!function n(d){if(!u.has(d)){u.add(d),d.number=u.size,e._transitionTable[d.number]={},d.accepting&&e._acceptingStates.add(d);var a=d.getTransitions(),s=!0,i=!1,o=void 0;try{for(var f,c=a[Symbol.iterator]();!(s=(f=c.next()).done);s=!0){var l=f.value,v=t(l,2),p=v[0],b=v[1],h=[];r.add(p);var m=!0,y=!1,g=void 0;try{for(var C,B=b[Symbol.iterator]();!(m=(C=B.next()).done);m=!0){var _=C.value;n(_),h.push(_.number)}}catch(e){y=!0,g=e}finally{try{!m&&B.return&&B.return()}finally{if(y)throw g}}e._transitionTable[d.number][p]=h}}catch(e){i=!0,o=e}finally{try{!s&&c.return&&c.return()}finally{if(i)throw o}}}}(this.in),u.forEach((function(u){delete e._transitionTable[u.number][a],e._transitionTable[u.number][s]=[].concat(function(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}(u.getEpsilonClosure())).map((function(e){return e.number}))}))}return this._transitionTable}}]),e}();e.exports=i},3341:function(e){"use strict";e.exports={EPSILON:"ε",EPSILON_CLOSURE:"ε*"}},74128:function(e){"use strict";var u=function(){function e(e,u){for(var r=0;r<u.length;r++){var t=u[r];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}return function(u,r,t){return r&&e(u.prototype,r),t&&e(u,t),u}}(),r=function(){function e(){var u=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).accepting,r=void 0!==u&&u;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._transitions=new Map,this.accepting=r}return u(e,[{key:"getTransitions",value:function(){return this._transitions}},{key:"addTransition",value:function(e,u){return this.getTransitionsOnSymbol(e).add(u),this}},{key:"getTransitionsOnSymbol",value:function(e){var u=this._transitions.get(e);return u||(u=new Set,this._transitions.set(e,u)),u}}]),e}();e.exports=r},47393:function(e,u,r){"use strict";var t=r(60689),n=r(37112),d=r(60045),a=r(55319);e.exports={optimize:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=u.whitelist,s=void 0===r?[]:r,i=u.blacklist,o=void 0===i?[]:i,f=(s.length>0?s:Array.from(a.keys())).filter((function(e){return!o.includes(e)})),c=e;e instanceof RegExp&&(e=""+e),"string"==typeof e&&(c=n.parse(e));var l=new d.TransformResult(c),v=void 0;do{v=l.toString(),c=t(l.getAST()),f.forEach((function(e){if(!a.has(e))throw new Error("Unknown optimization-transform: "+e+". Available transforms are: "+Array.from(a.keys()).join(", "));var u=a.get(e),r=d.transform(c,u);r.toString()!==l.toString()&&(r.toString().length<=l.toString().length?l=r:c=t(l.getAST()))}))}while(l.toString()!==v);return l}}},98327:function(e){"use strict";var u="A".codePointAt(0),r="Z".codePointAt(0);e.exports={_AZClassRanges:null,_hasUFlag:!1,init:function(e){this._AZClassRanges=new Set,this._hasUFlag=e.flags.includes("u")},shouldRun:function(e){return e.flags.includes("i")},Char:function(e){var t=e.node,n=e.parent;if(!isNaN(t.codePoint)&&(this._hasUFlag||!(t.codePoint>=4096))){if("ClassRange"===n.type){if(!(this._AZClassRanges.has(n)||(d=n,a=d.from,s=d.to,a.codePoint>=u&&a.codePoint<=r&&s.codePoint>=u&&s.codePoint<=r)))return;this._AZClassRanges.add(n)}var d,a,s,i=t.symbol.toLowerCase();i!==t.symbol&&(t.value=function(e,u){var r=e.codePointAt(0);if("decimal"===u.kind)return"\\"+r;if("oct"===u.kind)return"\\0"+r.toString(8);if("hex"===u.kind)return"\\x"+r.toString(16);if("unicode"===u.kind){if(u.isSurrogatePair){var t=function(e){var u=(e-65536)%1024+56320;return{lead:(Math.floor((e-65536)/1024)+55296).toString(16),trail:u.toString(16)}}(r),n=t.lead,d=t.trail;return"\\u"+"0".repeat(4-n.length)+n+"\\u"+"0".repeat(4-d.length)+d}if(u.value.includes("{"))return"\\u{"+r.toString(16)+"}";var a=r.toString(16);return"\\u"+"0".repeat(4-a.length)+a}return e}(i,t),t.symbol=i,t.codePoint=i.codePointAt(0))}}}},52445:function(e){"use strict";function u(e,u){var d=r(e),a=r(u);if(d===a){if("ClassRange"===e.type&&"ClassRange"!==u.type)return-1;if("ClassRange"===u.type&&"ClassRange"!==e.type)return 1;if("ClassRange"===e.type&&"ClassRange"===u.type)return r(e.to)-r(u.to);if(t(e)&&t(u)||n(e)&&n(u))return e.value<u.value?-1:1}return d-a}function r(e){return"Char"===e.type?"-"===e.value||"control"===e.kind?1/0:"meta"===e.kind&&isNaN(e.codePoint)?-1:e.codePoint:e.from.codePoint}function t(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return"Char"===e.type&&"meta"===e.kind&&(u?e.value===u:/^\\[dws]$/i.test(e.value))}function n(e){return"Char"===e.type&&"control"===e.kind}function d(e,u,r){for(var t=0;t<u.length;t++)if(a(e,u[t],r))return!0;return!1}function a(e,u,r){return"ClassRange"===e.type?a(e.from,u,r)&&a(e.to,u,r):!("\\S"!==u||!t(e,"\\w")&&!t(e,"\\d"))||!("\\D"!==u||!t(e,"\\W")&&!t(e,"\\s"))||!("\\w"!==u||!t(e,"\\d"))||!("\\W"!==u||!t(e,"\\s"))||"Char"===e.type&&!isNaN(e.codePoint)&&("\\s"===u?s(e):"\\S"===u?!s(e):"\\d"===u?i(e):"\\D"===u?!i(e):"\\w"===u?o(e,r):"\\W"===u&&!o(e,r))}function s(e){return 9===e.codePoint||10===e.codePoint||11===e.codePoint||12===e.codePoint||13===e.codePoint||32===e.codePoint||160===e.codePoint||5760===e.codePoint||e.codePoint>=8192&&e.codePoint<=8202||8232===e.codePoint||8233===e.codePoint||8239===e.codePoint||8287===e.codePoint||12288===e.codePoint||65279===e.codePoint}function i(e){return e.codePoint>=48&&e.codePoint<=57}function o(e,u){return i(e)||e.codePoint>=65&&e.codePoint<=90||e.codePoint>=97&&e.codePoint<=122||"_"===e.value||u&&(383===e.codePoint||8490===e.codePoint)}function f(e,u){if(u&&"ClassRange"===u.type){if(l(e,u))return!0;if(p(e)&&u.to.codePoint===e.codePoint-1)return u.to=e,!0;if("ClassRange"===e.type&&e.from.codePoint<=u.to.codePoint+1&&e.to.codePoint>=u.from.codePoint-1)return e.from.codePoint<u.from.codePoint&&(u.from=e.from),e.to.codePoint>u.to.codePoint&&(u.to=e.to),!0}return!1}function c(e,u){return!(!u||"ClassRange"!==u.type||!p(e)||u.from.codePoint!==e.codePoint+1||(u.from=e,0))}function l(e,u){return("Char"!==e.type||!isNaN(e.codePoint))&&("ClassRange"===e.type?l(e.from,u)&&l(e.to,u):e.codePoint>=u.from.codePoint&&e.codePoint<=u.to.codePoint)}function v(e,u,r){if(!p(e))return 0;for(var t=0;u>0;){var n=r[u],d=r[u-1];if(!p(d)||d.codePoint!==n.codePoint-1)break;t++,u--}return t>1?(r[u]={type:"ClassRange",from:r[u],to:e},t):0}function p(e){return e&&"Char"===e.type&&!isNaN(e.codePoint)&&(o(e,!1)||"unicode"===e.kind||"hex"===e.kind||"oct"===e.kind||"decimal"===e.kind)}e.exports={_hasIUFlags:!1,init:function(e){this._hasIUFlags=e.flags.includes("i")&&e.flags.includes("u")},CharacterClass:function(e){var r=e.node.expressions,n=[];r.forEach((function(e){t(e)&&n.push(e.value)})),r.sort(u);for(var a=0;a<r.length;a++){var s=r[a];if(d(s,n,this._hasIUFlags)||f(s,r[a-1])||c(s,r[a+1]))r.splice(a,1),a--;else{var i=v(s,a,r);r.splice(a-i+1,i),a-=i}}}}},54122:function(e){"use strict";e.exports={ClassRange:function(e){var u=e.node;u.from.codePoint===u.to.codePoint?e.replace(u.from):u.from.codePoint===u.to.codePoint-1&&(e.getParent().insertChildAt(u.to,e.index+1),e.replace(u.from))}}},71216:function(e){"use strict";e.exports={CharacterClass:function(e){for(var u=e.node,r={},t=0;t<u.expressions.length;t++){var n=e.getChild(t),d=n.jsonEncode();r.hasOwnProperty(d)&&(n.remove(),t--),r[d]=!0}}}},94126:function(e){"use strict";function u(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}e.exports={_hasIFlag:!1,_hasUFlag:!1,init:function(e){this._hasIFlag=e.flags.includes("i"),this._hasUFlag=e.flags.includes("u")},CharacterClass:function(e){!function(e){e.node.expressions.forEach((function(u,r){(function(e){return"ClassRange"===e.type&&"0"===e.from.value&&"9"===e.to.value})(u)&&e.getChild(r).replace({type:"Char",value:"\\d",kind:"meta"})}))}(e),function(e,u,r){var t=e.node,a=null,s=null,i=null,o=null,f=null,c=null;t.expressions.forEach((function(t,l){n(t,"\\d")?a=e.getChild(l):function(e){return"ClassRange"===e.type&&"a"===e.from.value&&"z"===e.to.value}(t)?s=e.getChild(l):function(e){return"ClassRange"===e.type&&"A"===e.from.value&&"Z"===e.to.value}(t)?i=e.getChild(l):function(e){return"Char"===e.type&&"_"===e.value&&"simple"===e.kind}(t)?o=e.getChild(l):u&&r&&d(t,383)?f=e.getChild(l):u&&r&&d(t,8490)&&(c=e.getChild(l))})),a&&(s&&i||u&&(s||i))&&o&&(!r||!u||f&&c)&&(a.replace({type:"Char",value:"\\w",kind:"meta"}),s&&s.remove(),i&&i.remove(),o.remove(),f&&f.remove(),c&&c.remove())}(e,this._hasIFlag,this._hasUFlag),function(e){var u=e.node;if(!(u.expressions.length<r.length)&&r.every((function(e){return u.expressions.some((function(u){return e(u)}))}))){var t=u.expressions.find((function(e){return n(e,"\\n")}));t.value="\\s",t.symbol=void 0,t.codePoint=NaN,u.expressions.map((function(u,t){return r.some((function(e){return e(u)}))?e.getChild(t):void 0})).filter(Boolean).forEach((function(e){return e.remove()}))}}(e)}};var r=[function(e){return t(e," ")}].concat(u(["\\f","\\n","\\r","\\t","\\v"].map((function(e){return function(u){return n(u,e)}}))),u([160,5760,8232,8233,8239,8287,12288,65279].map((function(e){return function(u){return d(u,e)}}))),[function(e){return"ClassRange"===e.type&&d(e.from,8192)&&d(e.to,8202)}]);function t(e,u){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"simple";return"Char"===e.type&&e.value===u&&e.kind===r}function n(e,u){return t(e,u,"meta")}function d(e,u){return"Char"===e.type&&"unicode"===e.kind&&e.codePoint===u}},1949:function(e){"use strict";function u(e){return/[*[()+?$./{}|]/.test(e)}e.exports={CharacterClass:function(e){var r=e.node;if(1===r.expressions.length&&function(e){var u=e.parent,r=e.index;if("Alternative"!==u.type)return!0;var t=u.expressions[r-1];return null==t||("Backreference"!==t.type||"number"!==t.kind)&&("Char"!==t.type||"decimal"!==t.kind)}(e)&&function(e){return"Char"===e.type&&"\\b"!==e.value}(r.expressions[0])){var t=r.expressions[0],n=t.value,d=t.kind,a=t.escaped;if(r.negative){if(!function(e){return/^\\[dwsDWS]$/.test(e)}(n))return;n=function(e){return/[dws]/.test(e)?e.toUpperCase():e.toLowerCase()}(n)}e.replace({type:"Char",value:n,kind:d,escaped:a||u(n)})}}}},57335:function(e){"use strict";var u="A".codePointAt(0),r="Z".codePointAt(0),t="a".codePointAt(0),n="z".codePointAt(0),d="0".codePointAt(0),a="9".codePointAt(0);e.exports={Char:function(e){var s,i,o,f=e.node,c=e.parent;if(!isNaN(f.codePoint)&&"simple"!==f.kind&&("ClassRange"!==c.type||(i=(s=c).from,o=s.to,i.codePoint>=d&&i.codePoint<=a&&o.codePoint>=d&&o.codePoint<=a||i.codePoint>=u&&i.codePoint<=r&&o.codePoint>=u&&o.codePoint<=r||i.codePoint>=t&&i.codePoint<=n&&o.codePoint>=t&&o.codePoint<=n))&&(l=f.codePoint)>=32&&l<=126){var l,v=String.fromCodePoint(f.codePoint),p={type:"Char",kind:"simple",value:v,symbol:v,codePoint:f.codePoint};(function(e,u){return"ClassRange"===u||"CharacterClass"===u?/[\]\\^-]/.test(e):/[*[()+?^$./\\|{}]/.test(e)})(v,c.type)&&(p.escaped=!0),e.replace(p)}}}},29141:function(e){"use strict";function u(e,u,r){for(var t=e,n=(r?t>=0:t<u.expressions.length)&&u.expressions[t];n&&"Char"===n.type&&"simple"===n.kind&&!n.escaped&&/\d/.test(n.value);)r?t--:t++,n=(r?t>=0:t<u.expressions.length)&&u.expressions[t];return Math.abs(e-t)}function r(e,u){return e&&"Char"===e.type&&"simple"===e.kind&&!e.escaped&&e.value===u}e.exports={_hasXFlag:!1,init:function(e){this._hasXFlag=e.flags.includes("x")},Char:function(e){var t=e.node;t.escaped&&function(e,t){var n=e.node.value,d=e.index,a=e.parent;return"CharacterClass"!==a.type&&"ClassRange"!==a.type?!function(e,t,n,d){return"{"===e?function(e,t){if(null==e)return!1;var n=u(e+1,t),d=e+n+1,a=d<t.expressions.length&&t.expressions[d];if(n){if(r(a,"}"))return!0;if(r(a,","))return r(a=(d=d+(n=u(d+1,t))+1)<t.expressions.length&&t.expressions[d],"}")}return!1}(t,n):"}"===e?function(e,t){if(null==e)return!1;var n=u(e-1,t,!0),d=e-n-1,a=d>=0&&t.expressions[d];return!(!n||!r(a,"{"))||!!r(a,",")&&(a=(d=d-(n=u(d-1,t,!0))-1)<t.expressions.length&&t.expressions[d],n&&r(a,"{"))}(t,n):!(!d||!/[ #]/.test(e))||/[*[()+?^$./\\|]/.test(e)}(n,d,a,t):!function(e,u,r){return"^"===e?0===u&&!r.negative:"-"===e||/[\]\\]/.test(e)}(n,d,a)}(e,this._hasXFlag)&&delete t.escaped}}},93843:function(e){"use strict";e.exports={shouldRun:function(e){return e.flags.includes("u")},Char:function(e){var u=e.node;"unicode"===u.kind&&u.isSurrogatePair&&!isNaN(u.codePoint)&&(u.value="\\u{"+u.codePoint.toString(16)+"}",delete u.isSurrogatePair)}}},61143:function(e,u,r){"use strict";function t(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var n=r(27762),d=r(26554).increaseQuantifierByOne;function a(e,u,r){for(var d=e.node,a=Math.ceil(r/2),s=0;s<a;){var i=r-2*s-1,o=void 0,f=void 0;if(0===s?(o=u,f=e.getChild(i)):(o=n.getForNode({type:"Alternative",expressions:[].concat(t(d.expressions.slice(r-s,r)),[u.node])}),f=n.getForNode({type:"Alternative",expressions:[].concat(t(d.expressions.slice(i,r-s)))})),o.hasEqualSource(f)){for(var c=0;c<2*s+1;c++)e.getChild(i).remove();return u.replace({type:"Repetition",expression:0===s&&"Repetition"!==o.node.type?o.node:{type:"Group",capturing:!1,expression:o.node},quantifier:{type:"Quantifier",kind:"Range",from:2,to:2,greedy:!0}}),i}s++}return r}function s(e,u,r){for(var a=e.node,s=0;s<r;){var i=e.getChild(s);if("Repetition"===i.node.type&&i.node.quantifier.greedy){var o=i.getChild(),f=void 0;if("Group"!==o.node.type||o.node.capturing||(o=o.getChild()),s+1===r?"Group"!==(f=u).node.type||f.node.capturing||(f=f.getChild()):f=n.getForNode({type:"Alternative",expressions:[].concat(t(a.expressions.slice(s+1,r+1)))}),o.hasEqualSource(f)){for(var c=s;c<r;c++)e.getChild(s+1).remove();return d(i.node.quantifier),s}}s++}return r}function i(e,u,r){var a=e.node;if("Repetition"===u.node.type&&u.node.quantifier.greedy){var s=u.getChild(),i=void 0;"Group"!==s.node.type||s.node.capturing||(s=s.getChild());var o=void 0;if("Alternative"===s.node.type?(o=s.node.expressions.length,i=n.getForNode({type:"Alternative",expressions:[].concat(t(a.expressions.slice(r-o,r)))})):(o=1,"Group"!==(i=e.getChild(r-1)).node.type||i.node.capturing||(i=i.getChild())),i.hasEqualSource(s)){for(var f=r-o;f<r;f++)e.getChild(r-o).remove();return d(u.node.quantifier),r-o}}return r}e.exports={Alternative:function(e){for(var u=e.node,r=1;r<u.expressions.length;){var t=e.getChild(r);if((r=Math.max(1,a(e,t,r)))>=u.expressions.length)break;if(t=e.getChild(r),(r=Math.max(1,s(e,t,r)))>=u.expressions.length)break;t=e.getChild(r),r=Math.max(1,i(e,t,r)),r++}}}},49895:function(e,u,r){"use strict";var t=r(27762),n=r(26554),d=n.disjunctionToList,a=n.listToDisjunction;e.exports={Disjunction:function(e){var u=e.node,r={},n=d(u).filter((function(e){var u=e?t.getForNode(e).jsonEncode():"null";return!r.hasOwnProperty(u)&&(r[u]=e,!0)}));e.replace(a(n))}}},40623:function(e){"use strict";e.exports={Disjunction:function(e){var t=e.node,n=e.parent;if(u[n.type]){var d=new Map;if(r(t,d)&&d.size){var a={type:"CharacterClass",expressions:Array.from(d.keys()).sort().map((function(e){return d.get(e)}))};u[n.type](e.getParent(),a)}}}};var u={RegExp:function(e,u){e.node.body=u},Group:function(e,u){var r=e.node;r.capturing?r.expression=u:e.replace(u)}};function r(e,u){if(!e)return!1;var t=e.type;if("Disjunction"===t){var n=e.left,d=e.right;return r(n,u)&&r(d,u)}if("Char"===t){if("meta"===e.kind&&"."===e.symbol)return!1;var a=e.value;return u.set(a,e),!0}return"CharacterClass"===t&&!e.negative&&e.expressions.every((function(e){return r(e,u)}))}},55319:function(e,u,r){"use strict";e.exports=new Map([["charSurrogatePairToSingleUnicode",r(93843)],["charCodeToSimpleChar",r(57335)],["charCaseInsensitiveLowerCaseTransform",r(98327)],["charClassRemoveDuplicates",r(71216)],["quantifiersMerge",r(58124)],["quantifierRangeToSymbol",r(81280)],["charClassClassrangesToChars",r(54122)],["charClassToMeta",r(94126)],["charClassToSingleChar",r(1949)],["charEscapeUnescape",r(29141)],["charClassClassrangesMerge",r(52445)],["disjunctionRemoveDuplicates",r(49895)],["groupSingleCharsToCharClass",r(40623)],["removeEmptyGroup",r(22223)],["ungroup",r(14952)],["combineRepeatingPatterns",r(61143)]])},81280:function(e){"use strict";e.exports={Quantifier:function(e){"Range"===e.node.kind&&(function(e){var u=e.node;0!==u.from||u.to||(u.kind="*",delete u.from)}(e),function(e){var u=e.node;1!==u.from||u.to||(u.kind="+",delete u.from)}(e),function(e){var u=e.node;1===u.from&&1===u.to&&e.parentPath.replace(e.parentPath.node.expression)}(e))}}},58124:function(e,u,r){"use strict";var t=r(26554).increaseQuantifierByOne;function n(e){return e.greedy&&("+"===e.kind||"*"===e.kind||"Range"===e.kind&&!e.to)}function d(e){var u=void 0,r=void 0;return"*"===e.kind?u=0:"+"===e.kind?u=1:"?"===e.kind?(u=0,r=1):(u=e.from,e.to&&(r=e.to)),{from:u,to:r}}e.exports={Repetition:function(e){var u=e.node;if("Alternative"===e.parent.type&&e.index){var r=e.getPreviousSibling();if(r)if("Repetition"===r.node.type){if(!r.getChild().hasEqualSource(e.getChild()))return;var a=d(r.node.quantifier),s=a.from,i=a.to,o=d(u.quantifier),f=o.from,c=o.to;if(r.node.quantifier.greedy!==u.quantifier.greedy&&!n(r.node.quantifier)&&!n(u.quantifier))return;u.quantifier.kind="Range",u.quantifier.from=s+f,i&&c?u.quantifier.to=i+c:delete u.quantifier.to,(n(r.node.quantifier)||n(u.quantifier))&&(u.quantifier.greedy=!0),r.remove()}else{if(!r.hasEqualSource(e.getChild()))return;t(u.quantifier),r.remove()}}}}},22223:function(e){"use strict";e.exports={Group:function(e){var u=e.node,r=e.parent,t=e.getChild();u.capturing||t||("Repetition"===r.type?e.getParent().replace(u):"RegExp"!==r.type&&e.remove())}}},14952:function(e){"use strict";function u(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}e.exports={Group:function(e){var r=e.node,t=e.parent,n=e.getChild();if(!r.capturing&&n&&function(e){var u=e.parent,r=e.index;if("Alternative"!==u.type)return!0;var t=u.expressions[r-1];return null==t||("Backreference"!==t.type||"number"!==t.kind)&&("Char"!==t.type||"decimal"!==t.kind)}(e)&&!("Disjunction"===n.node.type&&"RegExp"!==t.type||"Repetition"===t.type&&"Char"!==n.node.type&&"CharacterClass"!==n.node.type))if("Alternative"===n.node.type){var d=e.getParent();"Alternative"===d.node.type&&d.replace({type:"Alternative",expressions:[].concat(u(t.expressions.slice(0,e.index)),u(n.node.expressions),u(t.expressions.slice(e.index+1)))})}else e.replace(n.node)}}},42669:function(e,u,r){"use strict";function t(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}var n=void 0,d={},a=void 0,s=void 0;function i(e,u){return d.options.captureLocations?e&&u?{startOffset:e.startOffset,endOffset:u.endOffset,startLine:e.startLine,endLine:u.endLine,startColumn:e.startColumn,endColumn:u.endColumn}:e||u:null}var o=[[-1,1,function(e,u){s=i(u,u),a=e}],[0,4,function(e,u,r,t,n,d,o,f){s=i(n,f),a=N({type:"RegExp",body:u,flags:S(t)},R(n,f||o))}],[1,1,function(e,u){s=i(u,u),a=e}],[1,0,function(){s=null,a=""}],[2,1,function(e,u){s=i(u,u),a=e}],[2,2,function(e,u,r,t){s=i(r,t),a=e+u}],[3,1,function(e,u){s=i(u,u),a=e}],[4,1,function(e,u){s=i(u,u),a=e}],[4,3,function(e,u,r,t,n,d){s=i(t,d);var o=null;n&&(o=R(t||n,d||n)),a=N({type:"Disjunction",left:e,right:r},o)}],[5,1,function(e,u){s=i(u,u),a=0!==e.length?1===e.length?N(e[0],s):N({type:"Alternative",expressions:e},s):null}],[6,0,function(){s=null,a=[]}],[6,2,function(e,u,r,t){s=i(r,t),a=e.concat(u)}],[7,1,function(e,u){s=i(u,u),a=N(Object.assign({type:"Assertion"},e),s)}],[7,2,function(e,u,r,t){s=i(r,t),a=e,u&&(a=N({type:"Repetition",expression:e,quantifier:u},s))}],[8,1,function(e,u){s=i(u,u),a={kind:"^"}}],[8,1,function(e,u){s=i(u,u),a={kind:"$"}}],[8,1,function(e,u){s=i(u,u),a={kind:"\\b"}}],[8,1,function(e,u){s=i(u,u),a={kind:"\\B"}}],[8,3,function(e,u,r,t,n,d){s=i(t,d),a={kind:"Lookahead",assertion:u}}],[8,3,function(e,u,r,t,n,d){s=i(t,d),a={kind:"Lookahead",negative:!0,assertion:u}}],[8,3,function(e,u,r,t,n,d){s=i(t,d),a={kind:"Lookbehind",assertion:u}}],[8,3,function(e,u,r,t,n,d){s=i(t,d),a={kind:"Lookbehind",negative:!0,assertion:u}}],[9,1,function(e,u){s=i(u,u),a=e}],[9,1,function(e,u){s=i(u,u),a=e}],[9,1,function(e,u){s=i(u,u),a=e}],[10,1,function(e,u){s=i(u,u),a=w(e,"simple",s)}],[10,1,function(e,u){s=i(u,u),(a=w(e.slice(1),"simple",s)).escaped=!0}],[10,1,function(e,u){s=i(u,u),(a=w(e,"unicode",s)).isSurrogatePair=!0}],[10,1,function(e,u){s=i(u,u),a=w(e,"unicode",s)}],[10,1,function(e,u){s=i(u,u),a=function(e,u){var r="P"===e[1],t=e.indexOf("="),n=e.slice(3,-1!==t?t:-1),d=void 0,a=-1===t&&x.isGeneralCategoryValue(n),s=-1===t&&x.isBinaryPropertyName(n);if(a)d=n,n="General_Category";else if(s)d=n;else{if(!x.isValidName(n))throw new SyntaxError("Invalid unicode property name: "+n+".");if(d=e.slice(t+1,-1),!x.isValidValue(n,d))throw new SyntaxError("Invalid "+n+" unicode property value: "+d+".")}return N({type:"UnicodeProperty",name:n,value:d,negative:r,shorthand:a,binary:s,canonicalName:x.getCanonicalName(n)||n,canonicalValue:x.getCanonicalValue(d)||d},u)}(e,s)}],[10,1,function(e,u){s=i(u,u),a=w(e,"control",s)}],[10,1,function(e,u){s=i(u,u),a=w(e,"hex",s)}],[10,1,function(e,u){s=i(u,u),a=w(e,"oct",s)}],[10,1,function(e,u){var r,t,n;s=i(u,u),r=e,t=s,n=Number(r.slice(1)),a=n>0&&n<=y?N({type:"Backreference",kind:"number",number:n,reference:n},t):w(r,"decimal",t)}],[10,1,function(e,u){s=i(u,u),a=w(e,"meta",s)}],[10,1,function(e,u){s=i(u,u),a=w(e,"meta",s)}],[10,1,function(e,u){s=i(u,u),a=function(e,u){var r=e.slice(3,-1),t=T(r);if(g.hasOwnProperty(t))return N({type:"Backreference",kind:"name",number:g[t],reference:t,referenceRaw:r},u);var n=null,d=null,a=null,s=null;u&&(n=u.startOffset,d=u.startLine,a=u.endLine,s=u.startColumn);var i=/^[\w$<>]/,o=void 0,f=[w(e.slice(1,2),"simple",n?{startLine:d,endLine:a,startColumn:s,startOffset:n,endOffset:n+=2,endColumn:s+=2}:null)];for(f[0].escaped=!0,e=e.slice(2);e.length>0;){var c=null;(c=e.match(j))||(c=e.match(k))?(n&&(o={startLine:d,endLine:a,startColumn:s,startOffset:n,endOffset:n+=c[0].length,endColumn:s+=c[0].length}),f.push(w(c[0],"unicode",o)),e=e.slice(c[0].length)):(c=e.match(i))&&(n&&(o={startLine:d,endLine:a,startColumn:s,startOffset:n,endOffset:++n,endColumn:++s}),f.push(w(c[0],"simple",o)),e=e.slice(1))}return f}(e,u)}],[11,1,function(e,u){s=i(u,u),a=e}],[11,0],[12,1,function(e,u){s=i(u,u),a=e}],[12,2,function(e,u,r,t){s=i(r,t),e.greedy=!1,a=e}],[13,1,function(e,u){s=i(u,u),a=N({type:"Quantifier",kind:e,greedy:!0},s)}],[13,1,function(e,u){s=i(u,u),a=N({type:"Quantifier",kind:e,greedy:!0},s)}],[13,1,function(e,u){s=i(u,u),a=N({type:"Quantifier",kind:e,greedy:!0},s)}],[13,1,function(e,u){s=i(u,u);var r=B(e);a=N({type:"Quantifier",kind:"Range",from:r[0],to:r[0],greedy:!0},s)}],[13,1,function(e,u){s=i(u,u),a=N({type:"Quantifier",kind:"Range",from:B(e)[0],greedy:!0},s)}],[13,1,function(e,u){s=i(u,u);var r=B(e);a=N({type:"Quantifier",kind:"Range",from:r[0],to:r[1],greedy:!0},s)}],[14,1,function(e,u){s=i(u,u),a=e}],[14,1,function(e,u){s=i(u,u),a=e}],[15,3,function(e,u,r,t,n,o){s=i(t,o);var f=String(e),c=T(f);if(!d.options.allowGroupNameDuplicates&&g.hasOwnProperty(c))throw new SyntaxError('Duplicate of the named group "'+c+'".');g[c]=e.groupNumber,a=N({type:"Group",capturing:!0,name:c,nameRaw:f,number:e.groupNumber,expression:u},s)}],[15,3,function(e,u,r,t,n,d){s=i(t,d),a=N({type:"Group",capturing:!0,number:e.groupNumber,expression:u},s)}],[16,3,function(e,u,r,t,n,d){s=i(t,d),a=N({type:"Group",capturing:!1,expression:u},s)}],[17,3,function(e,u,r,t,n,d){s=i(t,d),a=N({type:"CharacterClass",negative:!0,expressions:u},s)}],[17,3,function(e,u,r,t,n,d){s=i(t,d),a=N({type:"CharacterClass",expressions:u},s)}],[18,0,function(){s=null,a=[]}],[18,1,function(e,u){s=i(u,u),a=e}],[19,1,function(e,u){s=i(u,u),a=[e]}],[19,2,function(e,u,r,t){s=i(r,t),a=[e].concat(u)}],[19,4,function(e,u,r,t,n,d,o,f){s=i(n,f),_(e,r),a=[N({type:"ClassRange",from:e,to:r},R(n,o))],t&&(a=a.concat(t))}],[20,1,function(e,u){s=i(u,u),a=e}],[20,2,function(e,u,r,t){s=i(r,t),a=[e].concat(u)}],[20,4,function(e,u,r,t,n,d,o,f){s=i(n,f),_(e,r),a=[N({type:"ClassRange",from:e,to:r},R(n,o))],t&&(a=a.concat(t))}],[21,1,function(e,u){s=i(u,u),a=w(e,"simple",s)}],[21,1,function(e,u){s=i(u,u),a=e}],[22,1,function(e,u){s=i(u,u),a=e}],[22,1,function(e,u){s=i(u,u),a=w(e,"meta",s)}]],f={SLASH:"23",CHAR:"24",BAR:"25",BOS:"26",EOS:"27",ESC_b:"28",ESC_B:"29",POS_LA_ASSERT:"30",R_PAREN:"31",NEG_LA_ASSERT:"32",POS_LB_ASSERT:"33",NEG_LB_ASSERT:"34",ESC_CHAR:"35",U_CODE_SURROGATE:"36",U_CODE:"37",U_PROP_VALUE_EXP:"38",CTRL_CH:"39",HEX_CODE:"40",OCT_CODE:"41",DEC_CODE:"42",META_CHAR:"43",ANY:"44",NAMED_GROUP_REF:"45",Q_MARK:"46",STAR:"47",PLUS:"48",RANGE_EXACT:"49",RANGE_OPEN:"50",RANGE_CLOSED:"51",NAMED_CAPTURE_GROUP:"52",L_PAREN:"53",NON_CAPTURE_GROUP:"54",NEG_CLASS:"55",R_BRACKET:"56",L_BRACKET:"57",DASH:"58",$:"59"},c=[{0:1,23:"s2"},{59:"acc"},{3:3,4:4,5:5,6:6,23:"r10",24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"s7"},{23:"r6",25:"s12"},{23:"r7",25:"r7",31:"r7"},{7:14,8:15,9:16,10:25,14:27,15:42,16:43,17:26,23:"r9",24:"s28",25:"r9",26:"s17",27:"s18",28:"s19",29:"s20",30:"s21",31:"r9",32:"s22",33:"s23",34:"s24",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",52:"s44",53:"s45",54:"s46",55:"s40",57:"s41"},{1:8,2:9,24:"s10",59:"r3"},{59:"r1"},{24:"s11",59:"r2"},{24:"r4",59:"r4"},{24:"r5",59:"r5"},{5:13,6:6,23:"r10",24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"r8",25:"r8",31:"r8"},{23:"r11",24:"r11",25:"r11",26:"r11",27:"r11",28:"r11",29:"r11",30:"r11",31:"r11",32:"r11",33:"r11",34:"r11",35:"r11",36:"r11",37:"r11",38:"r11",39:"r11",40:"r11",41:"r11",42:"r11",43:"r11",44:"r11",45:"r11",52:"r11",53:"r11",54:"r11",55:"r11",57:"r11"},{23:"r12",24:"r12",25:"r12",26:"r12",27:"r12",28:"r12",29:"r12",30:"r12",31:"r12",32:"r12",33:"r12",34:"r12",35:"r12",36:"r12",37:"r12",38:"r12",39:"r12",40:"r12",41:"r12",42:"r12",43:"r12",44:"r12",45:"r12",52:"r12",53:"r12",54:"r12",55:"r12",57:"r12"},{11:47,12:48,13:49,23:"r38",24:"r38",25:"r38",26:"r38",27:"r38",28:"r38",29:"r38",30:"r38",31:"r38",32:"r38",33:"r38",34:"r38",35:"r38",36:"r38",37:"r38",38:"r38",39:"r38",40:"r38",41:"r38",42:"r38",43:"r38",44:"r38",45:"r38",46:"s52",47:"s50",48:"s51",49:"s53",50:"s54",51:"s55",52:"r38",53:"r38",54:"r38",55:"r38",57:"r38"},{23:"r14",24:"r14",25:"r14",26:"r14",27:"r14",28:"r14",29:"r14",30:"r14",31:"r14",32:"r14",33:"r14",34:"r14",35:"r14",36:"r14",37:"r14",38:"r14",39:"r14",40:"r14",41:"r14",42:"r14",43:"r14",44:"r14",45:"r14",52:"r14",53:"r14",54:"r14",55:"r14",57:"r14"},{23:"r15",24:"r15",25:"r15",26:"r15",27:"r15",28:"r15",29:"r15",30:"r15",31:"r15",32:"r15",33:"r15",34:"r15",35:"r15",36:"r15",37:"r15",38:"r15",39:"r15",40:"r15",41:"r15",42:"r15",43:"r15",44:"r15",45:"r15",52:"r15",53:"r15",54:"r15",55:"r15",57:"r15"},{23:"r16",24:"r16",25:"r16",26:"r16",27:"r16",28:"r16",29:"r16",30:"r16",31:"r16",32:"r16",33:"r16",34:"r16",35:"r16",36:"r16",37:"r16",38:"r16",39:"r16",40:"r16",41:"r16",42:"r16",43:"r16",44:"r16",45:"r16",52:"r16",53:"r16",54:"r16",55:"r16",57:"r16"},{23:"r17",24:"r17",25:"r17",26:"r17",27:"r17",28:"r17",29:"r17",30:"r17",31:"r17",32:"r17",33:"r17",34:"r17",35:"r17",36:"r17",37:"r17",38:"r17",39:"r17",40:"r17",41:"r17",42:"r17",43:"r17",44:"r17",45:"r17",52:"r17",53:"r17",54:"r17",55:"r17",57:"r17"},{4:57,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:59,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:61,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:63,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"r22",24:"r22",25:"r22",26:"r22",27:"r22",28:"r22",29:"r22",30:"r22",31:"r22",32:"r22",33:"r22",34:"r22",35:"r22",36:"r22",37:"r22",38:"r22",39:"r22",40:"r22",41:"r22",42:"r22",43:"r22",44:"r22",45:"r22",46:"r22",47:"r22",48:"r22",49:"r22",50:"r22",51:"r22",52:"r22",53:"r22",54:"r22",55:"r22",57:"r22"},{23:"r23",24:"r23",25:"r23",26:"r23",27:"r23",28:"r23",29:"r23",30:"r23",31:"r23",32:"r23",33:"r23",34:"r23",35:"r23",36:"r23",37:"r23",38:"r23",39:"r23",40:"r23",41:"r23",42:"r23",43:"r23",44:"r23",45:"r23",46:"r23",47:"r23",48:"r23",49:"r23",50:"r23",51:"r23",52:"r23",53:"r23",54:"r23",55:"r23",57:"r23"},{23:"r24",24:"r24",25:"r24",26:"r24",27:"r24",28:"r24",29:"r24",30:"r24",31:"r24",32:"r24",33:"r24",34:"r24",35:"r24",36:"r24",37:"r24",38:"r24",39:"r24",40:"r24",41:"r24",42:"r24",43:"r24",44:"r24",45:"r24",46:"r24",47:"r24",48:"r24",49:"r24",50:"r24",51:"r24",52:"r24",53:"r24",54:"r24",55:"r24",57:"r24"},{23:"r25",24:"r25",25:"r25",26:"r25",27:"r25",28:"r25",29:"r25",30:"r25",31:"r25",32:"r25",33:"r25",34:"r25",35:"r25",36:"r25",37:"r25",38:"r25",39:"r25",40:"r25",41:"r25",42:"r25",43:"r25",44:"r25",45:"r25",46:"r25",47:"r25",48:"r25",49:"r25",50:"r25",51:"r25",52:"r25",53:"r25",54:"r25",55:"r25",56:"r25",57:"r25",58:"r25"},{23:"r26",24:"r26",25:"r26",26:"r26",27:"r26",28:"r26",29:"r26",30:"r26",31:"r26",32:"r26",33:"r26",34:"r26",35:"r26",36:"r26",37:"r26",38:"r26",39:"r26",40:"r26",41:"r26",42:"r26",43:"r26",44:"r26",45:"r26",46:"r26",47:"r26",48:"r26",49:"r26",50:"r26",51:"r26",52:"r26",53:"r26",54:"r26",55:"r26",56:"r26",57:"r26",58:"r26"},{23:"r27",24:"r27",25:"r27",26:"r27",27:"r27",28:"r27",29:"r27",30:"r27",31:"r27",32:"r27",33:"r27",34:"r27",35:"r27",36:"r27",37:"r27",38:"r27",39:"r27",40:"r27",41:"r27",42:"r27",43:"r27",44:"r27",45:"r27",46:"r27",47:"r27",48:"r27",49:"r27",50:"r27",51:"r27",52:"r27",53:"r27",54:"r27",55:"r27",56:"r27",57:"r27",58:"r27"},{23:"r28",24:"r28",25:"r28",26:"r28",27:"r28",28:"r28",29:"r28",30:"r28",31:"r28",32:"r28",33:"r28",34:"r28",35:"r28",36:"r28",37:"r28",38:"r28",39:"r28",40:"r28",41:"r28",42:"r28",43:"r28",44:"r28",45:"r28",46:"r28",47:"r28",48:"r28",49:"r28",50:"r28",51:"r28",52:"r28",53:"r28",54:"r28",55:"r28",56:"r28",57:"r28",58:"r28"},{23:"r29",24:"r29",25:"r29",26:"r29",27:"r29",28:"r29",29:"r29",30:"r29",31:"r29",32:"r29",33:"r29",34:"r29",35:"r29",36:"r29",37:"r29",38:"r29",39:"r29",40:"r29",41:"r29",42:"r29",43:"r29",44:"r29",45:"r29",46:"r29",47:"r29",48:"r29",49:"r29",50:"r29",51:"r29",52:"r29",53:"r29",54:"r29",55:"r29",56:"r29",57:"r29",58:"r29"},{23:"r30",24:"r30",25:"r30",26:"r30",27:"r30",28:"r30",29:"r30",30:"r30",31:"r30",32:"r30",33:"r30",34:"r30",35:"r30",36:"r30",37:"r30",38:"r30",39:"r30",40:"r30",41:"r30",42:"r30",43:"r30",44:"r30",45:"r30",46:"r30",47:"r30",48:"r30",49:"r30",50:"r30",51:"r30",52:"r30",53:"r30",54:"r30",55:"r30",56:"r30",57:"r30",58:"r30"},{23:"r31",24:"r31",25:"r31",26:"r31",27:"r31",28:"r31",29:"r31",30:"r31",31:"r31",32:"r31",33:"r31",34:"r31",35:"r31",36:"r31",37:"r31",38:"r31",39:"r31",40:"r31",41:"r31",42:"r31",43:"r31",44:"r31",45:"r31",46:"r31",47:"r31",48:"r31",49:"r31",50:"r31",51:"r31",52:"r31",53:"r31",54:"r31",55:"r31",56:"r31",57:"r31",58:"r31"},{23:"r32",24:"r32",25:"r32",26:"r32",27:"r32",28:"r32",29:"r32",30:"r32",31:"r32",32:"r32",33:"r32",34:"r32",35:"r32",36:"r32",37:"r32",38:"r32",39:"r32",40:"r32",41:"r32",42:"r32",43:"r32",44:"r32",45:"r32",46:"r32",47:"r32",48:"r32",49:"r32",50:"r32",51:"r32",52:"r32",53:"r32",54:"r32",55:"r32",56:"r32",57:"r32",58:"r32"},{23:"r33",24:"r33",25:"r33",26:"r33",27:"r33",28:"r33",29:"r33",30:"r33",31:"r33",32:"r33",33:"r33",34:"r33",35:"r33",36:"r33",37:"r33",38:"r33",39:"r33",40:"r33",41:"r33",42:"r33",43:"r33",44:"r33",45:"r33",46:"r33",47:"r33",48:"r33",49:"r33",50:"r33",51:"r33",52:"r33",53:"r33",54:"r33",55:"r33",56:"r33",57:"r33",58:"r33"},{23:"r34",24:"r34",25:"r34",26:"r34",27:"r34",28:"r34",29:"r34",30:"r34",31:"r34",32:"r34",33:"r34",34:"r34",35:"r34",36:"r34",37:"r34",38:"r34",39:"r34",40:"r34",41:"r34",42:"r34",43:"r34",44:"r34",45:"r34",46:"r34",47:"r34",48:"r34",49:"r34",50:"r34",51:"r34",52:"r34",53:"r34",54:"r34",55:"r34",56:"r34",57:"r34",58:"r34"},{23:"r35",24:"r35",25:"r35",26:"r35",27:"r35",28:"r35",29:"r35",30:"r35",31:"r35",32:"r35",33:"r35",34:"r35",35:"r35",36:"r35",37:"r35",38:"r35",39:"r35",40:"r35",41:"r35",42:"r35",43:"r35",44:"r35",45:"r35",46:"r35",47:"r35",48:"r35",49:"r35",50:"r35",51:"r35",52:"r35",53:"r35",54:"r35",55:"r35",56:"r35",57:"r35",58:"r35"},{23:"r36",24:"r36",25:"r36",26:"r36",27:"r36",28:"r36",29:"r36",30:"r36",31:"r36",32:"r36",33:"r36",34:"r36",35:"r36",36:"r36",37:"r36",38:"r36",39:"r36",40:"r36",41:"r36",42:"r36",43:"r36",44:"r36",45:"r36",46:"r36",47:"r36",48:"r36",49:"r36",50:"r36",51:"r36",52:"r36",53:"r36",54:"r36",55:"r36",56:"r36",57:"r36",58:"r36"},{10:70,18:65,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{10:70,18:83,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{23:"r47",24:"r47",25:"r47",26:"r47",27:"r47",28:"r47",29:"r47",30:"r47",31:"r47",32:"r47",33:"r47",34:"r47",35:"r47",36:"r47",37:"r47",38:"r47",39:"r47",40:"r47",41:"r47",42:"r47",43:"r47",44:"r47",45:"r47",46:"r47",47:"r47",48:"r47",49:"r47",50:"r47",51:"r47",52:"r47",53:"r47",54:"r47",55:"r47",57:"r47"},{23:"r48",24:"r48",25:"r48",26:"r48",27:"r48",28:"r48",29:"r48",30:"r48",31:"r48",32:"r48",33:"r48",34:"r48",35:"r48",36:"r48",37:"r48",38:"r48",39:"r48",40:"r48",41:"r48",42:"r48",43:"r48",44:"r48",45:"r48",46:"r48",47:"r48",48:"r48",49:"r48",50:"r48",51:"r48",52:"r48",53:"r48",54:"r48",55:"r48",57:"r48"},{4:85,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:87,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{4:89,5:5,6:6,24:"r10",25:"r10",26:"r10",27:"r10",28:"r10",29:"r10",30:"r10",31:"r10",32:"r10",33:"r10",34:"r10",35:"r10",36:"r10",37:"r10",38:"r10",39:"r10",40:"r10",41:"r10",42:"r10",43:"r10",44:"r10",45:"r10",52:"r10",53:"r10",54:"r10",55:"r10",57:"r10"},{23:"r13",24:"r13",25:"r13",26:"r13",27:"r13",28:"r13",29:"r13",30:"r13",31:"r13",32:"r13",33:"r13",34:"r13",35:"r13",36:"r13",37:"r13",38:"r13",39:"r13",40:"r13",41:"r13",42:"r13",43:"r13",44:"r13",45:"r13",52:"r13",53:"r13",54:"r13",55:"r13",57:"r13"},{23:"r37",24:"r37",25:"r37",26:"r37",27:"r37",28:"r37",29:"r37",30:"r37",31:"r37",32:"r37",33:"r37",34:"r37",35:"r37",36:"r37",37:"r37",38:"r37",39:"r37",40:"r37",41:"r37",42:"r37",43:"r37",44:"r37",45:"r37",52:"r37",53:"r37",54:"r37",55:"r37",57:"r37"},{23:"r39",24:"r39",25:"r39",26:"r39",27:"r39",28:"r39",29:"r39",30:"r39",31:"r39",32:"r39",33:"r39",34:"r39",35:"r39",36:"r39",37:"r39",38:"r39",39:"r39",40:"r39",41:"r39",42:"r39",43:"r39",44:"r39",45:"r39",46:"s56",52:"r39",53:"r39",54:"r39",55:"r39",57:"r39"},{23:"r41",24:"r41",25:"r41",26:"r41",27:"r41",28:"r41",29:"r41",30:"r41",31:"r41",32:"r41",33:"r41",34:"r41",35:"r41",36:"r41",37:"r41",38:"r41",39:"r41",40:"r41",41:"r41",42:"r41",43:"r41",44:"r41",45:"r41",46:"r41",52:"r41",53:"r41",54:"r41",55:"r41",57:"r41"},{23:"r42",24:"r42",25:"r42",26:"r42",27:"r42",28:"r42",29:"r42",30:"r42",31:"r42",32:"r42",33:"r42",34:"r42",35:"r42",36:"r42",37:"r42",38:"r42",39:"r42",40:"r42",41:"r42",42:"r42",43:"r42",44:"r42",45:"r42",46:"r42",52:"r42",53:"r42",54:"r42",55:"r42",57:"r42"},{23:"r43",24:"r43",25:"r43",26:"r43",27:"r43",28:"r43",29:"r43",30:"r43",31:"r43",32:"r43",33:"r43",34:"r43",35:"r43",36:"r43",37:"r43",38:"r43",39:"r43",40:"r43",41:"r43",42:"r43",43:"r43",44:"r43",45:"r43",46:"r43",52:"r43",53:"r43",54:"r43",55:"r43",57:"r43"},{23:"r44",24:"r44",25:"r44",26:"r44",27:"r44",28:"r44",29:"r44",30:"r44",31:"r44",32:"r44",33:"r44",34:"r44",35:"r44",36:"r44",37:"r44",38:"r44",39:"r44",40:"r44",41:"r44",42:"r44",43:"r44",44:"r44",45:"r44",46:"r44",52:"r44",53:"r44",54:"r44",55:"r44",57:"r44"},{23:"r45",24:"r45",25:"r45",26:"r45",27:"r45",28:"r45",29:"r45",30:"r45",31:"r45",32:"r45",33:"r45",34:"r45",35:"r45",36:"r45",37:"r45",38:"r45",39:"r45",40:"r45",41:"r45",42:"r45",43:"r45",44:"r45",45:"r45",46:"r45",52:"r45",53:"r45",54:"r45",55:"r45",57:"r45"},{23:"r46",24:"r46",25:"r46",26:"r46",27:"r46",28:"r46",29:"r46",30:"r46",31:"r46",32:"r46",33:"r46",34:"r46",35:"r46",36:"r46",37:"r46",38:"r46",39:"r46",40:"r46",41:"r46",42:"r46",43:"r46",44:"r46",45:"r46",46:"r46",52:"r46",53:"r46",54:"r46",55:"r46",57:"r46"},{23:"r40",24:"r40",25:"r40",26:"r40",27:"r40",28:"r40",29:"r40",30:"r40",31:"r40",32:"r40",33:"r40",34:"r40",35:"r40",36:"r40",37:"r40",38:"r40",39:"r40",40:"r40",41:"r40",42:"r40",43:"r40",44:"r40",45:"r40",52:"r40",53:"r40",54:"r40",55:"r40",57:"r40"},{25:"s12",31:"s58"},{23:"r18",24:"r18",25:"r18",26:"r18",27:"r18",28:"r18",29:"r18",30:"r18",31:"r18",32:"r18",33:"r18",34:"r18",35:"r18",36:"r18",37:"r18",38:"r18",39:"r18",40:"r18",41:"r18",42:"r18",43:"r18",44:"r18",45:"r18",52:"r18",53:"r18",54:"r18",55:"r18",57:"r18"},{25:"s12",31:"s60"},{23:"r19",24:"r19",25:"r19",26:"r19",27:"r19",28:"r19",29:"r19",30:"r19",31:"r19",32:"r19",33:"r19",34:"r19",35:"r19",36:"r19",37:"r19",38:"r19",39:"r19",40:"r19",41:"r19",42:"r19",43:"r19",44:"r19",45:"r19",52:"r19",53:"r19",54:"r19",55:"r19",57:"r19"},{25:"s12",31:"s62"},{23:"r20",24:"r20",25:"r20",26:"r20",27:"r20",28:"r20",29:"r20",30:"r20",31:"r20",32:"r20",33:"r20",34:"r20",35:"r20",36:"r20",37:"r20",38:"r20",39:"r20",40:"r20",41:"r20",42:"r20",43:"r20",44:"r20",45:"r20",52:"r20",53:"r20",54:"r20",55:"r20",57:"r20"},{25:"s12",31:"s64"},{23:"r21",24:"r21",25:"r21",26:"r21",27:"r21",28:"r21",29:"r21",30:"r21",31:"r21",32:"r21",33:"r21",34:"r21",35:"r21",36:"r21",37:"r21",38:"r21",39:"r21",40:"r21",41:"r21",42:"r21",43:"r21",44:"r21",45:"r21",52:"r21",53:"r21",54:"r21",55:"r21",57:"r21"},{56:"s72"},{56:"r55"},{10:70,20:73,21:75,22:76,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r56",58:"s74"},{24:"r62",28:"r62",35:"r62",36:"r62",37:"r62",38:"r62",39:"r62",40:"r62",41:"r62",42:"r62",43:"r62",44:"r62",45:"r62",56:"r62",58:"r62"},{24:"r63",28:"r63",35:"r63",36:"r63",37:"r63",38:"r63",39:"r63",40:"r63",41:"r63",42:"r63",43:"r63",44:"r63",45:"r63",56:"r63",58:"r63"},{24:"r64",28:"r64",35:"r64",36:"r64",37:"r64",38:"r64",39:"r64",40:"r64",41:"r64",42:"r64",43:"r64",44:"r64",45:"r64",56:"r64",58:"r64"},{24:"r65",28:"r65",35:"r65",36:"r65",37:"r65",38:"r65",39:"r65",40:"r65",41:"r65",42:"r65",43:"r65",44:"r65",45:"r65",56:"r65",58:"r65"},{23:"r52",24:"r52",25:"r52",26:"r52",27:"r52",28:"r52",29:"r52",30:"r52",31:"r52",32:"r52",33:"r52",34:"r52",35:"r52",36:"r52",37:"r52",38:"r52",39:"r52",40:"r52",41:"r52",42:"r52",43:"r52",44:"r52",45:"r52",46:"r52",47:"r52",48:"r52",49:"r52",50:"r52",51:"r52",52:"r52",53:"r52",54:"r52",55:"r52",57:"r52"},{56:"r57"},{10:70,21:77,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r62",58:"s68"},{56:"r59"},{10:70,20:79,21:75,22:76,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r63",58:"s80"},{10:70,18:78,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{56:"r58"},{56:"r60"},{10:70,21:81,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r62",58:"s68"},{10:70,18:82,19:66,21:67,22:69,24:"s28",28:"s71",35:"s29",36:"s30",37:"s31",38:"s32",39:"s33",40:"s34",41:"s35",42:"s36",43:"s37",44:"s38",45:"s39",56:"r54",58:"s68"},{56:"r61"},{56:"s84"},{23:"r53",24:"r53",25:"r53",26:"r53",27:"r53",28:"r53",29:"r53",30:"r53",31:"r53",32:"r53",33:"r53",34:"r53",35:"r53",36:"r53",37:"r53",38:"r53",39:"r53",40:"r53",41:"r53",42:"r53",43:"r53",44:"r53",45:"r53",46:"r53",47:"r53",48:"r53",49:"r53",50:"r53",51:"r53",52:"r53",53:"r53",54:"r53",55:"r53",57:"r53"},{25:"s12",31:"s86"},{23:"r49",24:"r49",25:"r49",26:"r49",27:"r49",28:"r49",29:"r49",30:"r49",31:"r49",32:"r49",33:"r49",34:"r49",35:"r49",36:"r49",37:"r49",38:"r49",39:"r49",40:"r49",41:"r49",42:"r49",43:"r49",44:"r49",45:"r49",46:"r49",47:"r49",48:"r49",49:"r49",50:"r49",51:"r49",52:"r49",53:"r49",54:"r49",55:"r49",57:"r49"},{25:"s12",31:"s88"},{23:"r50",24:"r50",25:"r50",26:"r50",27:"r50",28:"r50",29:"r50",30:"r50",31:"r50",32:"r50",33:"r50",34:"r50",35:"r50",36:"r50",37:"r50",38:"r50",39:"r50",40:"r50",41:"r50",42:"r50",43:"r50",44:"r50",45:"r50",46:"r50",47:"r50",48:"r50",49:"r50",50:"r50",51:"r50",52:"r50",53:"r50",54:"r50",55:"r50",57:"r50"},{25:"s12",31:"s90"},{23:"r51",24:"r51",25:"r51",26:"r51",27:"r51",28:"r51",29:"r51",30:"r51",31:"r51",32:"r51",33:"r51",34:"r51",35:"r51",36:"r51",37:"r51",38:"r51",39:"r51",40:"r51",41:"r51",42:"r51",43:"r51",44:"r51",45:"r51",46:"r51",47:"r51",48:"r51",49:"r51",50:"r51",51:"r51",52:"r51",53:"r51",54:"r51",55:"r51",57:"r51"}],l=[],v=void 0,p=[[/^#[^\n]+/,function(){}],[/^\s+/,function(){}],[/^-/,function(){return"DASH"}],[/^\//,function(){return"CHAR"}],[/^#/,function(){return"CHAR"}],[/^\|/,function(){return"CHAR"}],[/^\./,function(){return"CHAR"}],[/^\{/,function(){return"CHAR"}],[/^\{\d+\}/,function(){return"RANGE_EXACT"}],[/^\{\d+,\}/,function(){return"RANGE_OPEN"}],[/^\{\d+,\d+\}/,function(){return"RANGE_CLOSED"}],[/^\\k<(([\u0041-\u005a\u0061-\u007a\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e-\u066f\u0671-\u06d3\u06d5\u06e5-\u06e6\u06ee-\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4-\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0-\u0ae1\u0af9\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60-\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e46\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2-\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065-\u1066\u106e-\u1070\u1075-\u1081\u108e\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\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5-\u1cf6\u1cfa\u1d00-\u1dbf\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\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\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\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a-\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\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]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf75\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\ude10-\ude13\ude15-\ude17\ude19-\ude35\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd23\udf00-\udf1c\udf27\udf30-\udf45\udfe0-\udff6]|\ud804[\udc03-\udc37\udc83-\udcaf\udcd0-\udce8\udd03-\udd26\udd44\udd50-\udd72\udd76\udd83-\uddb2\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude2b\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udede\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3d\udf50\udf5d-\udf61]|\ud805[\udc00-\udc34\udc47-\udc4a\udc5f\udc80-\udcaf\udcc4-\udcc5\udcc7\udd80-\uddae\uddd8-\udddb\ude00-\ude2f\ude44\ude80-\udeaa\udeb8\udf00-\udf1a]|\ud806[\udc00-\udc2b\udca0-\udcdf\udcff\udda0-\udda7\uddaa-\uddd0\udde1\udde3\ude00\ude0b-\ude32\ude3a\ude50\ude5c-\ude89\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc2e\udc40\udc72-\udc8f\udd00-\udd06\udd08-\udd09\udd0b-\udd30\udd46\udd60-\udd65\udd67-\udd68\udd6a-\udd89\udd98\udee0-\udef2]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf2f\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf50\udf93-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99]|\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[\udd00-\udd2c\udd37-\udd3d\udd4e\udec0-\udeeb]|\ud83a[\udc00-\udcc4\udd00-\udd43\udd4b]|\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]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\}))(([\u0030-\u0039\u0041-\u005a\u005f\u0061-\u007a\u00aa\u00b5\u00b7\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u05d0-\u05ea\u05ef-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u07fd\u0800-\u082d\u0840-\u085b\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u08d3-\u08e1\u08e3-\u0963\u0966-\u096f\u0971-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09f1\u09fc\u09fe\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\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0af9-\u0aff\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-\u0b6f\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-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c60-\u0c63\u0c66-\u0c6f\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\u0d00-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d54-\u0d57\u0d5f-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18-\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\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\u135d-\u135f\u1369-\u1371\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17d3\u17d7\u17dc-\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1ab0-\u1abd\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1cd0-\u1cd2\u1cd4-\u1cfa\u1d00-\u1df9\u1dfb-\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\u203f-\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua827\ua840-\ua873\ua880-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua8fd-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\ua9e0-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabea\uabec-\uabed\uabf0-\uabf9\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\ufe00-\ufe0f\ufe20-\ufe2f\ufe33-\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\uddfd\ude80-\ude9c\udea0-\uded0\udee0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf7a\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udca0-\udca9\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-\ude35\ude38-\ude3a\ude3f\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee6\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd27\udd30-\udd39\udf00-\udf1c\udf27\udf30-\udf50\udfe0-\udff6]|\ud804[\udc00-\udc46\udc66-\udc6f\udc7f-\udcba\udcd0-\udce8\udcf0-\udcf9\udd00-\udd34\udd36-\udd3f\udd44-\udd46\udd50-\udd73\udd76\udd80-\uddc4\uddc9-\uddcc\uddd0-\uddda\udddc\ude00-\ude11\ude13-\ude37\ude3e\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udeea\udef0-\udef9\udf00-\udf03\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3b-\udf44\udf47-\udf48\udf4b-\udf4d\udf50\udf57\udf5d-\udf63\udf66-\udf6c\udf70-\udf74]|\ud805[\udc00-\udc4a\udc50-\udc59\udc5e-\udc5f\udc80-\udcc5\udcc7\udcd0-\udcd9\udd80-\uddb5\uddb8-\uddc0\uddd8-\udddd\ude00-\ude40\ude44\ude50-\ude59\ude80-\udeb8\udec0-\udec9\udf00-\udf1a\udf1d-\udf2b\udf30-\udf39]|\ud806[\udc00-\udc3a\udca0-\udce9\udcff\udda0-\udda7\uddaa-\uddd7\uddda-\udde1\udde3-\udde4\ude00-\ude3e\ude47\ude50-\ude99\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc36\udc38-\udc40\udc50-\udc59\udc72-\udc8f\udc92-\udca7\udca9-\udcb6\udd00-\udd06\udd08-\udd09\udd0b-\udd36\udd3a\udd3c-\udd3d\udd3f-\udd47\udd50-\udd59\udd60-\udd65\udd67-\udd68\udd6a-\udd8e\udd90-\udd91\udd93-\udd98\udda0-\udda9\udee0-\udef6]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\ude60-\ude69\uded0-\udeed\udef0-\udef4\udf00-\udf36\udf40-\udf43\udf50-\udf59\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf4f-\udf87\udf8f-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99\udc9d-\udc9e]|\ud834[\udd65-\udd69\udd6d-\udd72\udd7b-\udd82\udd85-\udd8b\uddaa-\uddad\ude42-\ude44]|\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\udfce-\udfff]|\ud836[\ude00-\ude36\ude3b-\ude6c\ude75\ude84\ude9b-\ude9f\udea1-\udeaf]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23-\udc24\udc26-\udc2a\udd00-\udd2c\udd30-\udd3d\udd40-\udd49\udd4e\udec0-\udef9]|\ud83a[\udc00-\udcc4\udcd0-\udcd6\udd00-\udd4b\udd50-\udd59]|\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]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d]|\udb40[\udd00-\uddef])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\})|[\u200c\u200d])*>/,function(){return P(n.slice(3,-1),this.getCurrentState()),"NAMED_GROUP_REF"}],[/^\\b/,function(){return"ESC_b"}],[/^\\B/,function(){return"ESC_B"}],[/^\\c[a-zA-Z]/,function(){return"CTRL_CH"}],[/^\\0\d{1,2}/,function(){return"OCT_CODE"}],[/^\\0/,function(){return"DEC_CODE"}],[/^\\\d{1,3}/,function(){return"DEC_CODE"}],[/^\\u[dD][89abAB][0-9a-fA-F]{2}\\u[dD][c-fC-F][0-9a-fA-F]{2}/,function(){return"U_CODE_SURROGATE"}],[/^\\u\{[0-9a-fA-F]{1,}\}/,function(){return"U_CODE"}],[/^\\u[0-9a-fA-F]{4}/,function(){return"U_CODE"}],[/^\\[pP]\{\w+(?:=\w+)?\}/,function(){return"U_PROP_VALUE_EXP"}],[/^\\x[0-9a-fA-F]{2}/,function(){return"HEX_CODE"}],[/^\\[tnrdDsSwWvf]/,function(){return"META_CHAR"}],[/^\\\//,function(){return"ESC_CHAR"}],[/^\\[ #]/,function(){return"ESC_CHAR"}],[/^\\[\^\$\.\*\+\?\(\)\\\[\]\{\}\|\/]/,function(){return"ESC_CHAR"}],[/^\\[^*?+\[()\\|]/,function(){var e=this.getCurrentState();if("u_class"===e&&"\\-"===n)return"ESC_CHAR";if("u"===e||"xu"===e||"u_class"===e)throw new SyntaxError("invalid Unicode escape "+n);return"ESC_CHAR"}],[/^\(/,function(){return"CHAR"}],[/^\)/,function(){return"CHAR"}],[/^\(\?=/,function(){return"POS_LA_ASSERT"}],[/^\(\?!/,function(){return"NEG_LA_ASSERT"}],[/^\(\?<=/,function(){return"POS_LB_ASSERT"}],[/^\(\?<!/,function(){return"NEG_LB_ASSERT"}],[/^\(\?:/,function(){return"NON_CAPTURE_GROUP"}],[/^\(\?<(([\u0041-\u005a\u0061-\u007a\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e-\u066f\u0671-\u06d3\u06d5\u06e5-\u06e6\u06ee-\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4-\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0-\u0ae1\u0af9\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60-\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e46\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2-\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065-\u1066\u106e-\u1070\u1075-\u1081\u108e\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\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5-\u1cf6\u1cfa\u1d00-\u1dbf\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\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\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\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a-\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\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]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf75\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\ude10-\ude13\ude15-\ude17\ude19-\ude35\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd23\udf00-\udf1c\udf27\udf30-\udf45\udfe0-\udff6]|\ud804[\udc03-\udc37\udc83-\udcaf\udcd0-\udce8\udd03-\udd26\udd44\udd50-\udd72\udd76\udd83-\uddb2\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude2b\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udede\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3d\udf50\udf5d-\udf61]|\ud805[\udc00-\udc34\udc47-\udc4a\udc5f\udc80-\udcaf\udcc4-\udcc5\udcc7\udd80-\uddae\uddd8-\udddb\ude00-\ude2f\ude44\ude80-\udeaa\udeb8\udf00-\udf1a]|\ud806[\udc00-\udc2b\udca0-\udcdf\udcff\udda0-\udda7\uddaa-\uddd0\udde1\udde3\ude00\ude0b-\ude32\ude3a\ude50\ude5c-\ude89\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc2e\udc40\udc72-\udc8f\udd00-\udd06\udd08-\udd09\udd0b-\udd30\udd46\udd60-\udd65\udd67-\udd68\udd6a-\udd89\udd98\udee0-\udef2]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf2f\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf50\udf93-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99]|\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[\udd00-\udd2c\udd37-\udd3d\udd4e\udec0-\udeeb]|\ud83a[\udc00-\udcc4\udd00-\udd43\udd4b]|\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]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\}))(([\u0030-\u0039\u0041-\u005a\u005f\u0061-\u007a\u00aa\u00b5\u00b7\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u05d0-\u05ea\u05ef-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u07fd\u0800-\u082d\u0840-\u085b\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u08d3-\u08e1\u08e3-\u0963\u0966-\u096f\u0971-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09f1\u09fc\u09fe\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\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0af9-\u0aff\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-\u0b6f\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-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c60-\u0c63\u0c66-\u0c6f\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\u0d00-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d54-\u0d57\u0d5f-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18-\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\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\u135d-\u135f\u1369-\u1371\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17d3\u17d7\u17dc-\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1ab0-\u1abd\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1cd0-\u1cd2\u1cd4-\u1cfa\u1d00-\u1df9\u1dfb-\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\u203f-\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua827\ua840-\ua873\ua880-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua8fd-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\ua9e0-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabea\uabec-\uabed\uabf0-\uabf9\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\ufe00-\ufe0f\ufe20-\ufe2f\ufe33-\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\uddfd\ude80-\ude9c\udea0-\uded0\udee0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf7a\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udca0-\udca9\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-\ude35\ude38-\ude3a\ude3f\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee6\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd27\udd30-\udd39\udf00-\udf1c\udf27\udf30-\udf50\udfe0-\udff6]|\ud804[\udc00-\udc46\udc66-\udc6f\udc7f-\udcba\udcd0-\udce8\udcf0-\udcf9\udd00-\udd34\udd36-\udd3f\udd44-\udd46\udd50-\udd73\udd76\udd80-\uddc4\uddc9-\uddcc\uddd0-\uddda\udddc\ude00-\ude11\ude13-\ude37\ude3e\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udeea\udef0-\udef9\udf00-\udf03\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3b-\udf44\udf47-\udf48\udf4b-\udf4d\udf50\udf57\udf5d-\udf63\udf66-\udf6c\udf70-\udf74]|\ud805[\udc00-\udc4a\udc50-\udc59\udc5e-\udc5f\udc80-\udcc5\udcc7\udcd0-\udcd9\udd80-\uddb5\uddb8-\uddc0\uddd8-\udddd\ude00-\ude40\ude44\ude50-\ude59\ude80-\udeb8\udec0-\udec9\udf00-\udf1a\udf1d-\udf2b\udf30-\udf39]|\ud806[\udc00-\udc3a\udca0-\udce9\udcff\udda0-\udda7\uddaa-\uddd7\uddda-\udde1\udde3-\udde4\ude00-\ude3e\ude47\ude50-\ude99\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc36\udc38-\udc40\udc50-\udc59\udc72-\udc8f\udc92-\udca7\udca9-\udcb6\udd00-\udd06\udd08-\udd09\udd0b-\udd36\udd3a\udd3c-\udd3d\udd3f-\udd47\udd50-\udd59\udd60-\udd65\udd67-\udd68\udd6a-\udd8e\udd90-\udd91\udd93-\udd98\udda0-\udda9\udee0-\udef6]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\ude60-\ude69\uded0-\udeed\udef0-\udef4\udf00-\udf36\udf40-\udf43\udf50-\udf59\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf4f-\udf87\udf8f-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99\udc9d-\udc9e]|\ud834[\udd65-\udd69\udd6d-\udd72\udd7b-\udd82\udd85-\udd8b\uddaa-\uddad\ude42-\ude44]|\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\udfce-\udfff]|\ud836[\ude00-\ude36\ude3b-\ude6c\ude75\ude84\ude9b-\ude9f\udea1-\udeaf]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23-\udc24\udc26-\udc2a\udd00-\udd2c\udd30-\udd3d\udd40-\udd49\udd4e\udec0-\udef9]|\ud83a[\udc00-\udcc4\udcd0-\udcd6\udd00-\udd4b\udd50-\udd59]|\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]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d]|\udb40[\udd00-\uddef])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\})|[\u200c\u200d])*>/,function(){return P(n=n.slice(3,-1),this.getCurrentState()),"NAMED_CAPTURE_GROUP"}],[/^\(/,function(){return"L_PAREN"}],[/^\)/,function(){return"R_PAREN"}],[/^[*?+[^$]/,function(){return"CHAR"}],[/^\\\]/,function(){return"ESC_CHAR"}],[/^\]/,function(){return this.popState(),"R_BRACKET"}],[/^\^/,function(){return"BOS"}],[/^\$/,function(){return"EOS"}],[/^\*/,function(){return"STAR"}],[/^\?/,function(){return"Q_MARK"}],[/^\+/,function(){return"PLUS"}],[/^\|/,function(){return"BAR"}],[/^\./,function(){return"ANY"}],[/^\//,function(){return"SLASH"}],[/^[^*?+\[()\\|]/,function(){return"CHAR"}],[/^\[\^/,function(){var e=this.getCurrentState();return this.pushState("u"===e||"xu"===e?"u_class":"class"),"NEG_CLASS"}],[/^\[/,function(){var e=this.getCurrentState();return this.pushState("u"===e||"xu"===e?"u_class":"class"),"L_BRACKET"}]],b={INITIAL:[8,9,10,11,12,13,14,15,16,17,20,22,23,24,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],u:[8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],xu:[0,1,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],x:[0,1,8,9,10,11,12,13,14,15,16,17,20,22,23,24,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],u_class:[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],class:[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,20,22,23,24,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51]},h={type:"$",value:""};v={initString:function(e){return this._string=e,this._cursor=0,this._states=["INITIAL"],this._tokensQueue=[],this._currentLine=1,this._currentColumn=0,this._currentLineBeginOffset=0,this._tokenStartOffset=0,this._tokenEndOffset=0,this._tokenStartLine=1,this._tokenEndLine=1,this._tokenStartColumn=0,this._tokenEndColumn=0,this},getStates:function(){return this._states},getCurrentState:function(){return this._states[this._states.length-1]},pushState:function(e){this._states.push(e)},begin:function(e){this.pushState(e)},popState:function(){return this._states.length>1?this._states.pop():this._states[0]},getNextToken:function(){if(this._tokensQueue.length>0)return this.onToken(this._toToken(this._tokensQueue.shift()));if(!this.hasMoreTokens())return this.onToken(h);for(var e=this._string.slice(this._cursor),u=b[this.getCurrentState()],r=0;r<u.length;r++){var d=u[r],a=p[d],s=this._match(e,a[0]);if(""===e&&""===s&&this._cursor++,null!==s){(n=s).length;var i=a[1].call(this);if(!i)return this.getNextToken();if(Array.isArray(i)){var o,f=i.slice(1);i=i[0],f.length>0&&(o=this._tokensQueue).unshift.apply(o,t(f))}return this.onToken(this._toToken(i,n))}}if(this.isEOF())return this._cursor++,h;this.throwUnexpectedToken(e[0],this._currentLine,this._currentColumn)},throwUnexpectedToken:function(e,u,r){var t=this._string.split("\n")[u-1],n="";throw t&&(n="\n\n"+t+"\n"+" ".repeat(r)+"^\n"),new SyntaxError(n+'Unexpected token: "'+e+'" at '+u+":"+r+".")},getCursor:function(){return this._cursor},getCurrentLine:function(){return this._currentLine},getCurrentColumn:function(){return this._currentColumn},_captureLocation:function(e){var u=/\n/g;this._tokenStartOffset=this._cursor,this._tokenStartLine=this._currentLine,this._tokenStartColumn=this._tokenStartOffset-this._currentLineBeginOffset;for(var r=void 0;null!==(r=u.exec(e));)this._currentLine++,this._currentLineBeginOffset=this._tokenStartOffset+r.index+1;this._tokenEndOffset=this._cursor+e.length,this._tokenEndLine=this._currentLine,this._tokenEndColumn=this._currentColumn=this._tokenEndOffset-this._currentLineBeginOffset},_toToken:function(e){return{type:e,value:arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",startOffset:this._tokenStartOffset,endOffset:this._tokenEndOffset,startLine:this._tokenStartLine,endLine:this._tokenEndLine,startColumn:this._tokenStartColumn,endColumn:this._tokenEndColumn}},isEOF:function(){return this._cursor===this._string.length},hasMoreTokens:function(){return this._cursor<=this._string.length},_match:function(e,u){var r=e.match(u);return r?(this._captureLocation(r[0]),this._cursor+=r[0].length,r[0]):null},onToken:function(e){return e}},d.lexer=v,d.tokenizer=v,d.options={captureLocations:!0};var m={setOptions:function(e){return d.options=e,this},getOptions:function(){return d.options},parse:function(e,u){if(!v)throw new Error("Tokenizer instance wasn't specified.");v.initString(e);var r=d.options;u&&(d.options=Object.assign({},d.options,u)),m.onParseBegin(e,v,d.options),l.length=0,l.push(0);var i=v.getNextToken(),p=null;do{i||(d.options=r,D());var b=l[l.length-1],h=f[i.type];c[b].hasOwnProperty(h)||(d.options=r,L(i));var y=c[b][h];if("s"===y[0]){var g=null;d.options.captureLocations&&(g={startOffset:i.startOffset,endOffset:i.endOffset,startLine:i.startLine,endLine:i.endLine,startColumn:i.startColumn,endColumn:i.endColumn}),p=this.onShift(i),l.push({symbol:f[p.type],semanticValue:p.value,loc:g},Number(y.slice(1))),i=v.getNextToken()}else if("r"===y[0]){var C=y.slice(1),B=o[C],_="function"==typeof B[2],x=_?[]:null,w=_&&d.options.captureLocations?[]:null;if(0!==B[1])for(var A=B[1];A-- >0;){l.pop();var S=l.pop();_&&(x.unshift(S.semanticValue),w&&w.unshift(S.loc))}var j={symbol:B[0]};if(_){n=p?p.value:null,p&&p.value.length;var k=null!==w?x.concat(w):x;B[2].apply(B,t(k)),j.semanticValue=a,w&&(j.loc=s)}var E=l[l.length-1],P=B[0];l.push(j,c[E][P])}else if("acc"===y){l.pop();var O=l.pop();return(1!==l.length||0!==l[0]||v.hasMoreTokens())&&(d.options=r,L(i)),O.hasOwnProperty("semanticValue")?(d.options=r,m.onParseEnd(O.semanticValue),O.semanticValue):(m.onParseEnd(),d.options=r,!0)}}while(v.hasMoreTokens()||l.length>1)},setTokenizer:function(e){return v=e,m},getTokenizer:function(){return v},onParseBegin:function(e,u,r){},onParseEnd:function(e){},onShift:function(e){return e}},y=0,g={},C="";function B(e){var u=e.match(/\d+/g).map(Number);if(Number.isFinite(u[1])&&u[1]<u[0])throw new SyntaxError("Numbers out of order in "+e+" quantifier");return u}function _(e,u){if("control"===e.kind||"control"===u.kind||!isNaN(e.codePoint)&&!isNaN(u.codePoint)&&e.codePoint>u.codePoint)throw new SyntaxError("Range "+e.value+"-"+u.value+" out of order in character class")}m.onParseBegin=function(e,u){C=e,y=0,g={};var r=e.lastIndexOf("/"),t=e.slice(r);t.includes("x")&&t.includes("u")?u.pushState("xu"):(t.includes("x")&&u.pushState("x"),t.includes("u")&&u.pushState("u"))},m.onShift=function(e){return"L_PAREN"!==e.type&&"NAMED_CAPTURE_GROUP"!==e.type||(e.value=new String(e.value),e.value.groupNumber=++y),e};var x=r(24876);function w(e,u,r){var t=void 0,n=void 0;switch(u){case"decimal":n=Number(e.slice(1)),t=String.fromCodePoint(n);break;case"oct":n=parseInt(e.slice(1),8),t=String.fromCodePoint(n);break;case"hex":case"unicode":if(e.lastIndexOf("\\u")>0){var d=function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,u){var r=[],t=!0,n=!1,d=void 0;try{for(var a,s=e[Symbol.iterator]();!(t=(a=s.next()).done)&&(r.push(a.value),!u||r.length!==u);t=!0);}catch(e){n=!0,d=e}finally{try{!t&&s.return&&s.return()}finally{if(n)throw d}}return r}(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")}(e.split("\\u").slice(1),2),a=d[0],s=d[1];n=1024*((a=parseInt(a,16))-55296)+((s=parseInt(s,16))-56320)+65536,t=String.fromCodePoint(n)}else{var i=e.slice(2).replace("{","");if((n=parseInt(i,16))>1114111)throw new SyntaxError("Bad character escape sequence: "+e);t=String.fromCodePoint(n)}break;case"meta":switch(e){case"\\t":n=(t="\t").codePointAt(0);break;case"\\n":n=(t="\n").codePointAt(0);break;case"\\r":n=(t="\r").codePointAt(0);break;case"\\v":n=(t="\v").codePointAt(0);break;case"\\f":n=(t="\f").codePointAt(0);break;case"\\b":n=(t="\b").codePointAt(0);case"\\0":t="\0",n=0;case".":t=".",n=NaN;break;default:n=NaN}break;case"simple":n=(t=e).codePointAt(0)}return N({type:"Char",value:e,kind:u,symbol:t,codePoint:n},r)}var A="gimsuxy";function S(e){var u=new Set,r=!0,t=!1,n=void 0;try{for(var d,a=e[Symbol.iterator]();!(r=(d=a.next()).done);r=!0){var s=d.value;if(u.has(s)||!A.includes(s))throw new SyntaxError("Invalid flags: "+e);u.add(s)}}catch(e){t=!0,n=e}finally{try{!r&&a.return&&a.return()}finally{if(t)throw n}}return e.split("").sort().join("")}var j=/^\\u[0-9a-fA-F]{4}/,k=/^\\u\{[0-9a-fA-F]{1,}\}/,E=/\\u\{[0-9a-fA-F]{1,}\}/;function P(e,u){if(E.test(e)&&"u"!==u&&"xu"!==u&&"u_class"!==u)throw new SyntaxError('invalid group Unicode name "'+e+'", use `u` flag.');return e}var O=/\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\})/;function T(e){return e.replace(new RegExp(O,"g"),(function(e,u,r,t,n,d,a){return u?String.fromCodePoint(parseInt(u,16),parseInt(r,16)):t?String.fromCodePoint(parseInt(t,16)):n?String.fromCodePoint(parseInt(n,16)):d?String.fromCodePoint(parseInt(d,16)):a?String.fromCodePoint(parseInt(a,16)):e}))}function N(e,u){return d.options.captureLocations&&(e.loc={source:C.slice(u.startOffset,u.endOffset),start:{line:u.startLine,column:u.startColumn,offset:u.startOffset},end:{line:u.endLine,column:u.endColumn,offset:u.endOffset}}),e}function R(e,u){return d.options.captureLocations?{startOffset:e.startOffset,endOffset:u.endOffset,startLine:e.startLine,endLine:u.endLine,startColumn:e.startColumn,endColumn:u.endColumn}:null}function L(e){"$"===e.type&&D(),v.throwUnexpectedToken(e.value,e.startLine,e.startColumn)}function D(){!function(e){throw new SyntaxError("Unexpected end of input.")}()}e.exports=m},37112:function(e,u,r){"use strict";var t=r(42669),n=t.parse.bind(t);t.parse=function(e,u){return n(""+e,u)},t.setOptions({captureLocations:!1}),e.exports=t},24876:function(e){"use strict";var u={General_Category:"gc",Script:"sc",Script_Extensions:"scx"},r=o(u),t={ASCII:"ASCII",ASCII_Hex_Digit:"AHex",Alphabetic:"Alpha",Any:"Any",Assigned:"Assigned",Bidi_Control:"Bidi_C",Bidi_Mirrored:"Bidi_M",Case_Ignorable:"CI",Cased:"Cased",Changes_When_Casefolded:"CWCF",Changes_When_Casemapped:"CWCM",Changes_When_Lowercased:"CWL",Changes_When_NFKC_Casefolded:"CWKCF",Changes_When_Titlecased:"CWT",Changes_When_Uppercased:"CWU",Dash:"Dash",Default_Ignorable_Code_Point:"DI",Deprecated:"Dep",Diacritic:"Dia",Emoji:"Emoji",Emoji_Component:"Emoji_Component",Emoji_Modifier:"Emoji_Modifier",Emoji_Modifier_Base:"Emoji_Modifier_Base",Emoji_Presentation:"Emoji_Presentation",Extended_Pictographic:"Extended_Pictographic",Extender:"Ext",Grapheme_Base:"Gr_Base",Grapheme_Extend:"Gr_Ext",Hex_Digit:"Hex",IDS_Binary_Operator:"IDSB",IDS_Trinary_Operator:"IDST",ID_Continue:"IDC",ID_Start:"IDS",Ideographic:"Ideo",Join_Control:"Join_C",Logical_Order_Exception:"LOE",Lowercase:"Lower",Math:"Math",Noncharacter_Code_Point:"NChar",Pattern_Syntax:"Pat_Syn",Pattern_White_Space:"Pat_WS",Quotation_Mark:"QMark",Radical:"Radical",Regional_Indicator:"RI",Sentence_Terminal:"STerm",Soft_Dotted:"SD",Terminal_Punctuation:"Term",Unified_Ideograph:"UIdeo",Uppercase:"Upper",Variation_Selector:"VS",White_Space:"space",XID_Continue:"XIDC",XID_Start:"XIDS"},n=o(t),d={Cased_Letter:"LC",Close_Punctuation:"Pe",Connector_Punctuation:"Pc",Control:["Cc","cntrl"],Currency_Symbol:"Sc",Dash_Punctuation:"Pd",Decimal_Number:["Nd","digit"],Enclosing_Mark:"Me",Final_Punctuation:"Pf",Format:"Cf",Initial_Punctuation:"Pi",Letter:"L",Letter_Number:"Nl",Line_Separator:"Zl",Lowercase_Letter:"Ll",Mark:["M","Combining_Mark"],Math_Symbol:"Sm",Modifier_Letter:"Lm",Modifier_Symbol:"Sk",Nonspacing_Mark:"Mn",Number:"N",Open_Punctuation:"Ps",Other:"C",Other_Letter:"Lo",Other_Number:"No",Other_Punctuation:"Po",Other_Symbol:"So",Paragraph_Separator:"Zp",Private_Use:"Co",Punctuation:["P","punct"],Separator:"Z",Space_Separator:"Zs",Spacing_Mark:"Mc",Surrogate:"Cs",Symbol:"S",Titlecase_Letter:"Lt",Unassigned:"Cn",Uppercase_Letter:"Lu"},a=o(d),s={Adlam:"Adlm",Ahom:"Ahom",Anatolian_Hieroglyphs:"Hluw",Arabic:"Arab",Armenian:"Armn",Avestan:"Avst",Balinese:"Bali",Bamum:"Bamu",Bassa_Vah:"Bass",Batak:"Batk",Bengali:"Beng",Bhaiksuki:"Bhks",Bopomofo:"Bopo",Brahmi:"Brah",Braille:"Brai",Buginese:"Bugi",Buhid:"Buhd",Canadian_Aboriginal:"Cans",Carian:"Cari",Caucasian_Albanian:"Aghb",Chakma:"Cakm",Cham:"Cham",Cherokee:"Cher",Common:"Zyyy",Coptic:["Copt","Qaac"],Cuneiform:"Xsux",Cypriot:"Cprt",Cyrillic:"Cyrl",Deseret:"Dsrt",Devanagari:"Deva",Dogra:"Dogr",Duployan:"Dupl",Egyptian_Hieroglyphs:"Egyp",Elbasan:"Elba",Ethiopic:"Ethi",Georgian:"Geor",Glagolitic:"Glag",Gothic:"Goth",Grantha:"Gran",Greek:"Grek",Gujarati:"Gujr",Gunjala_Gondi:"Gong",Gurmukhi:"Guru",Han:"Hani",Hangul:"Hang",Hanifi_Rohingya:"Rohg",Hanunoo:"Hano",Hatran:"Hatr",Hebrew:"Hebr",Hiragana:"Hira",Imperial_Aramaic:"Armi",Inherited:["Zinh","Qaai"],Inscriptional_Pahlavi:"Phli",Inscriptional_Parthian:"Prti",Javanese:"Java",Kaithi:"Kthi",Kannada:"Knda",Katakana:"Kana",Kayah_Li:"Kali",Kharoshthi:"Khar",Khmer:"Khmr",Khojki:"Khoj",Khudawadi:"Sind",Lao:"Laoo",Latin:"Latn",Lepcha:"Lepc",Limbu:"Limb",Linear_A:"Lina",Linear_B:"Linb",Lisu:"Lisu",Lycian:"Lyci",Lydian:"Lydi",Mahajani:"Mahj",Makasar:"Maka",Malayalam:"Mlym",Mandaic:"Mand",Manichaean:"Mani",Marchen:"Marc",Medefaidrin:"Medf",Masaram_Gondi:"Gonm",Meetei_Mayek:"Mtei",Mende_Kikakui:"Mend",Meroitic_Cursive:"Merc",Meroitic_Hieroglyphs:"Mero",Miao:"Plrd",Modi:"Modi",Mongolian:"Mong",Mro:"Mroo",Multani:"Mult",Myanmar:"Mymr",Nabataean:"Nbat",New_Tai_Lue:"Talu",Newa:"Newa",Nko:"Nkoo",Nushu:"Nshu",Ogham:"Ogam",Ol_Chiki:"Olck",Old_Hungarian:"Hung",Old_Italic:"Ital",Old_North_Arabian:"Narb",Old_Permic:"Perm",Old_Persian:"Xpeo",Old_Sogdian:"Sogo",Old_South_Arabian:"Sarb",Old_Turkic:"Orkh",Oriya:"Orya",Osage:"Osge",Osmanya:"Osma",Pahawh_Hmong:"Hmng",Palmyrene:"Palm",Pau_Cin_Hau:"Pauc",Phags_Pa:"Phag",Phoenician:"Phnx",Psalter_Pahlavi:"Phlp",Rejang:"Rjng",Runic:"Runr",Samaritan:"Samr",Saurashtra:"Saur",Sharada:"Shrd",Shavian:"Shaw",Siddham:"Sidd",SignWriting:"Sgnw",Sinhala:"Sinh",Sogdian:"Sogd",Sora_Sompeng:"Sora",Soyombo:"Soyo",Sundanese:"Sund",Syloti_Nagri:"Sylo",Syriac:"Syrc",Tagalog:"Tglg",Tagbanwa:"Tagb",Tai_Le:"Tale",Tai_Tham:"Lana",Tai_Viet:"Tavt",Takri:"Takr",Tamil:"Taml",Tangut:"Tang",Telugu:"Telu",Thaana:"Thaa",Thai:"Thai",Tibetan:"Tibt",Tifinagh:"Tfng",Tirhuta:"Tirh",Ugaritic:"Ugar",Vai:"Vaii",Warang_Citi:"Wara",Yi:"Yiii",Zanabazar_Square:"Zanb"},i=o(s);function o(e){var u={};for(var r in e)if(e.hasOwnProperty(r)){var t=e[r];if(Array.isArray(t))for(var n=0;n<t.length;n++)u[t[n]]=r;else u[t]=r}return u}function f(e){return d.hasOwnProperty(e)||a.hasOwnProperty(e)}function c(e){return s.hasOwnProperty(e)||i.hasOwnProperty(e)}e.exports={isAlias:function(e){return r.hasOwnProperty(e)||n.hasOwnProperty(e)},isValidName:function(e){return u.hasOwnProperty(e)||r.hasOwnProperty(e)||t.hasOwnProperty(e)||n.hasOwnProperty(e)},isValidValue:function(e,u){return function(e){return"General_Category"===e||"gc"==e}(e)?f(u):!!function(e){return"Script"===e||"Script_Extensions"===e||"sc"===e||"scx"===e}(e)&&c(u)},isGeneralCategoryValue:f,isScriptCategoryValue:c,isBinaryPropertyName:function(e){return t.hasOwnProperty(e)||n.hasOwnProperty(e)},getCanonicalName:function(e){return r.hasOwnProperty(e)?r[e]:n.hasOwnProperty(e)?n[e]:null},getCanonicalValue:function(e){return a.hasOwnProperty(e)?a[e]:i.hasOwnProperty(e)?i[e]:n.hasOwnProperty(e)?n[e]:null},NON_BINARY_PROP_NAMES_TO_ALIASES:u,NON_BINARY_ALIASES_TO_PROP_NAMES:r,BINARY_PROP_NAMES_TO_ALIASES:t,BINARY_ALIASES_TO_PROP_NAMES:n,GENERAL_CATEGORY_VALUE_TO_ALIASES:d,GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES:a,SCRIPT_VALUE_TO_ALIASES:s,SCRIPT_VALUE_ALIASES_TO_VALUE:i}},51474:function(e,u,r){"use strict";var t=r(78355),n=r(89702),d=r(47393),a=r(37112),s=r(60045),i=r(8785),o=r(22722),f=r(77460).RegExpTree,c={parser:a,fa:o,TransformResult:s.TransformResult,parse:function(e,u){return a.parse(""+e,u)},traverse:function(e,u,r){return i.traverse(e,u,r)},transform:function(e,u){return s.transform(e,u)},generate:function(e){return n.generate(e)},toRegExp:function(e){var u=this.compatTranspile(e);return new RegExp(u.getSource(),u.getFlags())},optimize:function(e,u){var r=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).blacklist;return d.optimize(e,{whitelist:u,blacklist:r})},compatTranspile:function(e,u){return t.transform(e,u)},exec:function(e,u){if("string"==typeof e){var r=this.compatTranspile(e),t=r.getExtra();e=t.namedCapturingGroups?new f(r.toRegExp(),{flags:r.getFlags(),source:r.getSource(),groups:t.namedCapturingGroups}):r.toRegExp()}return e.exec(u)}};e.exports=c},60045:function(e,u,r){"use strict";var t=function(){function e(e,u){for(var r=0;r<u.length;r++){var t=u[r];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}return function(u,r,t){return r&&e(u.prototype,r),t&&e(u,t),u}}(),n=r(89702),d=r(37112),a=r(8785),s=function(){function e(u){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this._ast=u,this._source=null,this._string=null,this._regexp=null,this._extra=r}return t(e,[{key:"getAST",value:function(){return this._ast}},{key:"setExtra",value:function(e){this._extra=e}},{key:"getExtra",value:function(){return this._extra}},{key:"toRegExp",value:function(){return this._regexp||(this._regexp=new RegExp(this.getSource(),this._ast.flags)),this._regexp}},{key:"getSource",value:function(){return this._source||(this._source=n.generate(this._ast.body)),this._source}},{key:"getFlags",value:function(){return this._ast.flags}},{key:"toString",value:function(){return this._string||(this._string=n.generate(this._ast)),this._string}}]),e}();e.exports={TransformResult:s,transform:function(e,u){var r=e;return e instanceof RegExp&&(e=""+e),"string"==typeof e&&(r=d.parse(e,{captureLocations:!0})),a.traverse(r,u),new s(r)}}},26554:function(e){"use strict";e.exports={disjunctionToList:function e(u){if("Disjunction"!==u.type)throw new TypeError('Expected "Disjunction" node, got "'+u.type+'"');var r=[];return u.left&&"Disjunction"===u.left.type?r.push.apply(r,function(e){if(Array.isArray(e)){for(var u=0,r=Array(e.length);u<e.length;u++)r[u]=e[u];return r}return Array.from(e)}(e(u.left)).concat([u.right])):r.push(u.left,u.right),r},listToDisjunction:function(e){return e.reduce((function(e,u){return{type:"Disjunction",left:e,right:u}}))},increaseQuantifierByOne:function(e){"*"===e.kind?e.kind="+":"+"===e.kind?(e.kind="Range",e.from=2,delete e.to):"?"===e.kind?(e.kind="Range",e.from=1,e.to=2):"Range"===e.kind&&(e.from+=1,e.to&&(e.to+=1))}}},8785:function(e,u,r){"use strict";var t=r(27762);e.exports={traverse:function(e,u){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{asNodes:!1};function n(e,u,r,n){var d=t.getForNode(u);return t.getForNode(e,d,r,n)}Array.isArray(u)||(u=[u]),u=u.filter((function(u){return"function"!=typeof u.shouldRun||u.shouldRun(e)})),t.initRegistry(),u.forEach((function(u){"function"==typeof u.init&&u.init(e)})),function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=u.pre,n=u.post,d=u.skipProperty;!function e(u,a,s,i){if(u&&"string"==typeof u.type){var o=void 0;if(r&&(o=r(u,a,s,i)),!1!==o)for(var f in a&&a[s]&&(u=isNaN(i)?a[s]:a[s][i]),u)if(u.hasOwnProperty(f)){if(d?d(f,u):"$"===f[0])continue;var c=u[f];if(Array.isArray(c)){var l=0;for(t.traversingIndexStack.push(l);l<c.length;)e(c[l],u,f,l),l=t.updateTraversingIndex(1);t.traversingIndexStack.pop()}else e(c,u,f)}n&&n(u,a,s,i)}}(e,null)}(e,{pre:function(e,t,d,a){var s=void 0;r.asNodes||(s=n(e,t,d,a));var i=!0,o=!1,f=void 0;try{for(var c,l=u[Symbol.iterator]();!(i=(c=l.next()).done);i=!0){var v=c.value;if("function"==typeof v["*"])if(s){if(!s.isRemoved()&&!1===v["*"](s))return!1}else v["*"](e,t,d,a);var p=void 0;if("function"==typeof v[e.type]?p=v[e.type]:"object"==typeof v[e.type]&&"function"==typeof v[e.type].pre&&(p=v[e.type].pre),p)if(s){if(!s.isRemoved()&&!1===p.call(v,s))return!1}else p.call(v,e,t,d,a)}}catch(e){o=!0,f=e}finally{try{!i&&l.return&&l.return()}finally{if(o)throw f}}},post:function(e,t,d,a){if(e){var s=void 0;r.asNodes||(s=n(e,t,d,a));var i=!0,o=!1,f=void 0;try{for(var c,l=u[Symbol.iterator]();!(i=(c=l.next()).done);i=!0){var v=c.value,p=void 0;if("object"==typeof v[e.type]&&"function"==typeof v[e.type].post&&(p=v[e.type].post),p)if(s){if(!s.isRemoved()&&!1===p.call(v,s))return!1}else p.call(v,e,t,d,a)}}catch(e){o=!0,f=e}finally{try{!i&&l.return&&l.return()}finally{if(o)throw f}}}},skipProperty:function(e){return"loc"===e}})}}},27762:function(e){"use strict";var u=function(){function e(e,u){for(var r=0;r<u.length;r++){var t=u[r];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}return function(u,r,t){return r&&e(u.prototype,r),t&&e(u,t),u}}(),r="expressions",t="expression",n=function(){function e(u){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;!function(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this,e),this.node=u,this.parentPath=r,this.parent=r?r.node:null,this.property=t,this.index=n}return u(e,[{key:"_enforceProp",value:function(e){if(!this.node.hasOwnProperty(e))throw new Error("Node of type "+this.node.type+" doesn't have \""+e+'" collection.')}},{key:"setChild",value:function(u){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,d=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=void 0;return null!=n?(d||(d=r),this._enforceProp(d),this.node[d][n]=u,a=e.getForNode(u,this,d,n)):(d||(d=t),this._enforceProp(d),this.node[d]=u,a=e.getForNode(u,this,d,null)),a}},{key:"appendChild",value:function(e){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;u||(u=r),this._enforceProp(u);var t=this.node[u].length;return this.setChild(e,t,u)}},{key:"insertChildAt",value:function(u,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:r;this._enforceProp(n),this.node[n].splice(t,0,u),t<=e.getTraversingIndex()&&e.updateTraversingIndex(1),this._rebuildIndex(this.node,n)}},{key:"remove",value:function(){if(!this.isRemoved()&&(e.registry.delete(this.node),this.node=null,this.parent)){if(null!==this.index)return this.parent[this.property].splice(this.index,1),this.index<=e.getTraversingIndex()&&e.updateTraversingIndex(-1),this._rebuildIndex(this.parent,this.property),this.index=null,void(this.property=null);delete this.parent[this.property],this.property=null}}},{key:"_rebuildIndex",value:function(u,r){for(var t=e.getForNode(u),n=0;n<u[r].length;n++)e.getForNode(u[r][n],t,r,n).index=n}},{key:"isRemoved",value:function(){return null===this.node}},{key:"replace",value:function(u){return e.registry.delete(this.node),this.node=u,this.parent?(null!==this.index?this.parent[this.property][this.index]=u:this.parent[this.property]=u,e.getForNode(u,this.parentPath,this.property,this.index)):null}},{key:"update",value:function(e){Object.assign(this.node,e)}},{key:"getParent",value:function(){return this.parentPath}},{key:"getChild",value:function(){var u=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.node.expressions?e.getForNode(this.node.expressions[u],this,r,u):this.node.expression&&0==u?e.getForNode(this.node.expression,this,t):null}},{key:"hasEqualSource",value:function(e){return JSON.stringify(this.node,d)===JSON.stringify(e.node,d)}},{key:"jsonEncode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},u=e.format,r=e.useLoc;return JSON.stringify(this.node,r?null:d,u)}},{key:"getPreviousSibling",value:function(){return this.parent&&null!=this.index?e.getForNode(this.parent[this.property][this.index-1],e.getForNode(this.parent),this.property,this.index-1):null}},{key:"getNextSibling",value:function(){return this.parent&&null!=this.index?e.getForNode(this.parent[this.property][this.index+1],e.getForNode(this.parent),this.property,this.index+1):null}}],[{key:"getForNode",value:function(u){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1;if(!u)return null;e.registry.has(u)||e.registry.set(u,new e(u,r,t,-1==n?null:n));var d=e.registry.get(u);return null!==r&&(d.parentPath=r,d.parent=d.parentPath.node),null!==t&&(d.property=t),n>=0&&(d.index=n),d}},{key:"initRegistry",value:function(){e.registry||(e.registry=new Map),e.registry.clear()}},{key:"updateTraversingIndex",value:function(u){return e.traversingIndexStack[e.traversingIndexStack.length-1]+=u}},{key:"getTraversingIndex",value:function(){return e.traversingIndexStack[e.traversingIndexStack.length-1]}}]),e}();function d(e,u){if("loc"!==e)return u}n.initRegistry(),n.traversingIndexStack=[],e.exports=n},60689:function(e){"use strict";e.exports=function e(u){if(null===u||"object"!=typeof u)return u;var r=void 0;for(var t in r=Array.isArray(u)?[]:{},u)r[t]=e(u[t]);return r}},16262:function(e,u,r){"use strict";e.exports=r(51474)},72950:function(){},76052:function(e){"use strict";e.exports=JSON.parse('[{"name":"nodejs","version":"0.2.0","date":"2011-08-26","lts":false,"security":false,"v8":"2.3.8.0"},{"name":"nodejs","version":"0.3.0","date":"2011-08-26","lts":false,"security":false,"v8":"2.5.1.0"},{"name":"nodejs","version":"0.4.0","date":"2011-08-26","lts":false,"security":false,"v8":"3.1.2.0"},{"name":"nodejs","version":"0.5.0","date":"2011-08-26","lts":false,"security":false,"v8":"3.1.8.25"},{"name":"nodejs","version":"0.6.0","date":"2011-11-04","lts":false,"security":false,"v8":"3.6.6.6"},{"name":"nodejs","version":"0.7.0","date":"2012-01-17","lts":false,"security":false,"v8":"3.8.6.0"},{"name":"nodejs","version":"0.8.0","date":"2012-06-22","lts":false,"security":false,"v8":"3.11.10.10"},{"name":"nodejs","version":"0.9.0","date":"2012-07-20","lts":false,"security":false,"v8":"3.11.10.15"},{"name":"nodejs","version":"0.10.0","date":"2013-03-11","lts":false,"security":false,"v8":"3.14.5.8"},{"name":"nodejs","version":"0.11.0","date":"2013-03-28","lts":false,"security":false,"v8":"3.17.13.0"},{"name":"nodejs","version":"0.12.0","date":"2015-02-06","lts":false,"security":false,"v8":"3.28.73.0"},{"name":"nodejs","version":"4.0.0","date":"2015-09-08","lts":false,"security":false,"v8":"4.5.103.30"},{"name":"nodejs","version":"4.1.0","date":"2015-09-17","lts":false,"security":false,"v8":"4.5.103.33"},{"name":"nodejs","version":"4.2.0","date":"2015-10-12","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.3.0","date":"2016-02-09","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.4.0","date":"2016-03-08","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.5.0","date":"2016-08-16","lts":"Argon","security":false,"v8":"4.5.103.37"},{"name":"nodejs","version":"4.6.0","date":"2016-09-27","lts":"Argon","security":true,"v8":"4.5.103.37"},{"name":"nodejs","version":"4.7.0","date":"2016-12-06","lts":"Argon","security":false,"v8":"4.5.103.43"},{"name":"nodejs","version":"4.8.0","date":"2017-02-21","lts":"Argon","security":false,"v8":"4.5.103.45"},{"name":"nodejs","version":"4.9.0","date":"2018-03-28","lts":"Argon","security":true,"v8":"4.5.103.53"},{"name":"nodejs","version":"5.0.0","date":"2015-10-29","lts":false,"security":false,"v8":"4.6.85.28"},{"name":"nodejs","version":"5.1.0","date":"2015-11-17","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.2.0","date":"2015-12-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.3.0","date":"2015-12-15","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.4.0","date":"2016-01-06","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.5.0","date":"2016-01-21","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.6.0","date":"2016-02-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.7.0","date":"2016-02-23","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.8.0","date":"2016-03-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.9.0","date":"2016-03-16","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.10.0","date":"2016-04-01","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.11.0","date":"2016-04-21","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.12.0","date":"2016-06-23","lts":false,"security":false,"v8":"4.6.85.32"},{"name":"nodejs","version":"6.0.0","date":"2016-04-26","lts":false,"security":false,"v8":"5.0.71.35"},{"name":"nodejs","version":"6.1.0","date":"2016-05-05","lts":false,"security":false,"v8":"5.0.71.35"},{"name":"nodejs","version":"6.2.0","date":"2016-05-17","lts":false,"security":false,"v8":"5.0.71.47"},{"name":"nodejs","version":"6.3.0","date":"2016-07-06","lts":false,"security":false,"v8":"5.0.71.52"},{"name":"nodejs","version":"6.4.0","date":"2016-08-12","lts":false,"security":false,"v8":"5.0.71.60"},{"name":"nodejs","version":"6.5.0","date":"2016-08-26","lts":false,"security":false,"v8":"5.1.281.81"},{"name":"nodejs","version":"6.6.0","date":"2016-09-14","lts":false,"security":false,"v8":"5.1.281.83"},{"name":"nodejs","version":"6.7.0","date":"2016-09-27","lts":false,"security":true,"v8":"5.1.281.83"},{"name":"nodejs","version":"6.8.0","date":"2016-10-12","lts":false,"security":false,"v8":"5.1.281.84"},{"name":"nodejs","version":"6.9.0","date":"2016-10-18","lts":"Boron","security":false,"v8":"5.1.281.84"},{"name":"nodejs","version":"6.10.0","date":"2017-02-21","lts":"Boron","security":false,"v8":"5.1.281.93"},{"name":"nodejs","version":"6.11.0","date":"2017-06-06","lts":"Boron","security":false,"v8":"5.1.281.102"},{"name":"nodejs","version":"6.12.0","date":"2017-11-06","lts":"Boron","security":false,"v8":"5.1.281.108"},{"name":"nodejs","version":"6.13.0","date":"2018-02-10","lts":"Boron","security":false,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.14.0","date":"2018-03-28","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.15.0","date":"2018-11-27","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.16.0","date":"2018-12-26","lts":"Boron","security":false,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.17.0","date":"2019-02-28","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"7.0.0","date":"2016-10-25","lts":false,"security":false,"v8":"5.4.500.36"},{"name":"nodejs","version":"7.1.0","date":"2016-11-08","lts":false,"security":false,"v8":"5.4.500.36"},{"name":"nodejs","version":"7.2.0","date":"2016-11-22","lts":false,"security":false,"v8":"5.4.500.43"},{"name":"nodejs","version":"7.3.0","date":"2016-12-20","lts":false,"security":false,"v8":"5.4.500.45"},{"name":"nodejs","version":"7.4.0","date":"2017-01-04","lts":false,"security":false,"v8":"5.4.500.45"},{"name":"nodejs","version":"7.5.0","date":"2017-01-31","lts":false,"security":false,"v8":"5.4.500.48"},{"name":"nodejs","version":"7.6.0","date":"2017-02-21","lts":false,"security":false,"v8":"5.5.372.40"},{"name":"nodejs","version":"7.7.0","date":"2017-02-28","lts":false,"security":false,"v8":"5.5.372.41"},{"name":"nodejs","version":"7.8.0","date":"2017-03-29","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"7.9.0","date":"2017-04-11","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"7.10.0","date":"2017-05-02","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"8.0.0","date":"2017-05-30","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.1.0","date":"2017-06-08","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.2.0","date":"2017-07-19","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.3.0","date":"2017-08-08","lts":false,"security":false,"v8":"6.0.286.52"},{"name":"nodejs","version":"8.4.0","date":"2017-08-15","lts":false,"security":false,"v8":"6.0.286.52"},{"name":"nodejs","version":"8.5.0","date":"2017-09-12","lts":false,"security":false,"v8":"6.0.287.53"},{"name":"nodejs","version":"8.6.0","date":"2017-09-26","lts":false,"security":false,"v8":"6.0.287.53"},{"name":"nodejs","version":"8.7.0","date":"2017-10-11","lts":false,"security":false,"v8":"6.1.534.42"},{"name":"nodejs","version":"8.8.0","date":"2017-10-24","lts":false,"security":false,"v8":"6.1.534.42"},{"name":"nodejs","version":"8.9.0","date":"2017-10-31","lts":"Carbon","security":false,"v8":"6.1.534.46"},{"name":"nodejs","version":"8.10.0","date":"2018-03-06","lts":"Carbon","security":false,"v8":"6.2.414.50"},{"name":"nodejs","version":"8.11.0","date":"2018-03-28","lts":"Carbon","security":true,"v8":"6.2.414.50"},{"name":"nodejs","version":"8.12.0","date":"2018-09-10","lts":"Carbon","security":false,"v8":"6.2.414.66"},{"name":"nodejs","version":"8.13.0","date":"2018-11-20","lts":"Carbon","security":false,"v8":"6.2.414.72"},{"name":"nodejs","version":"8.14.0","date":"2018-11-27","lts":"Carbon","security":true,"v8":"6.2.414.72"},{"name":"nodejs","version":"8.15.0","date":"2018-12-26","lts":"Carbon","security":false,"v8":"6.2.414.75"},{"name":"nodejs","version":"8.16.0","date":"2019-04-16","lts":"Carbon","security":false,"v8":"6.2.414.77"},{"name":"nodejs","version":"8.17.0","date":"2019-12-17","lts":"Carbon","security":true,"v8":"6.2.414.78"},{"name":"nodejs","version":"9.0.0","date":"2017-10-31","lts":false,"security":false,"v8":"6.2.414.32"},{"name":"nodejs","version":"9.1.0","date":"2017-11-07","lts":false,"security":false,"v8":"6.2.414.32"},{"name":"nodejs","version":"9.2.0","date":"2017-11-14","lts":false,"security":false,"v8":"6.2.414.44"},{"name":"nodejs","version":"9.3.0","date":"2017-12-12","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.4.0","date":"2018-01-10","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.5.0","date":"2018-01-31","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.6.0","date":"2018-02-21","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.7.0","date":"2018-03-01","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.8.0","date":"2018-03-07","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.9.0","date":"2018-03-21","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.10.0","date":"2018-03-28","lts":false,"security":true,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.11.0","date":"2018-04-04","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"10.0.0","date":"2018-04-24","lts":false,"security":false,"v8":"6.6.346.24"},{"name":"nodejs","version":"10.1.0","date":"2018-05-08","lts":false,"security":false,"v8":"6.6.346.27"},{"name":"nodejs","version":"10.2.0","date":"2018-05-23","lts":false,"security":false,"v8":"6.6.346.32"},{"name":"nodejs","version":"10.3.0","date":"2018-05-29","lts":false,"security":false,"v8":"6.6.346.32"},{"name":"nodejs","version":"10.4.0","date":"2018-06-06","lts":false,"security":false,"v8":"6.7.288.43"},{"name":"nodejs","version":"10.5.0","date":"2018-06-20","lts":false,"security":false,"v8":"6.7.288.46"},{"name":"nodejs","version":"10.6.0","date":"2018-07-04","lts":false,"security":false,"v8":"6.7.288.46"},{"name":"nodejs","version":"10.7.0","date":"2018-07-18","lts":false,"security":false,"v8":"6.7.288.49"},{"name":"nodejs","version":"10.8.0","date":"2018-08-01","lts":false,"security":false,"v8":"6.7.288.49"},{"name":"nodejs","version":"10.9.0","date":"2018-08-15","lts":false,"security":false,"v8":"6.8.275.24"},{"name":"nodejs","version":"10.10.0","date":"2018-09-06","lts":false,"security":false,"v8":"6.8.275.30"},{"name":"nodejs","version":"10.11.0","date":"2018-09-19","lts":false,"security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.12.0","date":"2018-10-10","lts":false,"security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.13.0","date":"2018-10-30","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.14.0","date":"2018-11-27","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.15.0","date":"2018-12-26","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.16.0","date":"2019-05-28","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.17.0","date":"2019-10-22","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.18.0","date":"2019-12-17","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.19.0","date":"2020-02-05","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.20.0","date":"2020-03-26","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.21.0","date":"2020-06-02","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.22.0","date":"2020-07-21","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.23.0","date":"2020-10-27","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.24.0","date":"2021-02-23","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"11.0.0","date":"2018-10-23","lts":false,"security":false,"v8":"7.0.276.28"},{"name":"nodejs","version":"11.1.0","date":"2018-10-30","lts":false,"security":false,"v8":"7.0.276.32"},{"name":"nodejs","version":"11.2.0","date":"2018-11-15","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.3.0","date":"2018-11-27","lts":false,"security":true,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.4.0","date":"2018-12-07","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.5.0","date":"2018-12-18","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.6.0","date":"2018-12-26","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.7.0","date":"2019-01-17","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.8.0","date":"2019-01-24","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.9.0","date":"2019-01-30","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.10.0","date":"2019-02-14","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.11.0","date":"2019-03-05","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.12.0","date":"2019-03-14","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.13.0","date":"2019-03-28","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.14.0","date":"2019-04-10","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.15.0","date":"2019-04-30","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"12.0.0","date":"2019-04-23","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.1.0","date":"2019-04-29","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.2.0","date":"2019-05-07","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.3.0","date":"2019-05-21","lts":false,"security":false,"v8":"7.4.288.27"},{"name":"nodejs","version":"12.4.0","date":"2019-06-04","lts":false,"security":false,"v8":"7.4.288.27"},{"name":"nodejs","version":"12.5.0","date":"2019-06-26","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.6.0","date":"2019-07-03","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.7.0","date":"2019-07-23","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.8.0","date":"2019-08-06","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.9.0","date":"2019-08-20","lts":false,"security":false,"v8":"7.6.303.29"},{"name":"nodejs","version":"12.10.0","date":"2019-09-04","lts":false,"security":false,"v8":"7.6.303.29"},{"name":"nodejs","version":"12.11.0","date":"2019-09-25","lts":false,"security":false,"v8":"7.7.299.11"},{"name":"nodejs","version":"12.12.0","date":"2019-10-11","lts":false,"security":false,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.13.0","date":"2019-10-21","lts":"Erbium","security":false,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.14.0","date":"2019-12-17","lts":"Erbium","security":true,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.15.0","date":"2020-02-05","lts":"Erbium","security":true,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.16.0","date":"2020-02-11","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.17.0","date":"2020-05-26","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.18.0","date":"2020-06-02","lts":"Erbium","security":true,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.19.0","date":"2020-10-06","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.20.0","date":"2020-11-24","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.21.0","date":"2021-02-23","lts":"Erbium","security":true,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.22.0","date":"2021-03-30","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"13.0.0","date":"2019-10-22","lts":false,"security":false,"v8":"7.8.279.17"},{"name":"nodejs","version":"13.1.0","date":"2019-11-05","lts":false,"security":false,"v8":"7.8.279.17"},{"name":"nodejs","version":"13.2.0","date":"2019-11-21","lts":false,"security":false,"v8":"7.9.317.23"},{"name":"nodejs","version":"13.3.0","date":"2019-12-03","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.4.0","date":"2019-12-17","lts":false,"security":true,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.5.0","date":"2019-12-18","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.6.0","date":"2020-01-07","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.7.0","date":"2020-01-21","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.8.0","date":"2020-02-05","lts":false,"security":true,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.9.0","date":"2020-02-18","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.10.0","date":"2020-03-04","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.11.0","date":"2020-03-12","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.12.0","date":"2020-03-26","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.13.0","date":"2020-04-14","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.14.0","date":"2020-04-29","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"14.0.0","date":"2020-04-21","lts":false,"security":false,"v8":"8.1.307.30"},{"name":"nodejs","version":"14.1.0","date":"2020-04-29","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.2.0","date":"2020-05-05","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.3.0","date":"2020-05-19","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.4.0","date":"2020-06-02","lts":false,"security":true,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.5.0","date":"2020-06-30","lts":false,"security":false,"v8":"8.3.110.9"},{"name":"nodejs","version":"14.6.0","date":"2020-07-20","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.7.0","date":"2020-07-29","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.8.0","date":"2020-08-11","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.9.0","date":"2020-08-27","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.10.0","date":"2020-09-08","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.11.0","date":"2020-09-15","lts":false,"security":true,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.12.0","date":"2020-09-22","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.13.0","date":"2020-09-29","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.14.0","date":"2020-10-15","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.15.0","date":"2020-10-27","lts":"Fermium","security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.16.0","date":"2021-02-23","lts":"Fermium","security":true,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.17.0","date":"2021-05-11","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.18.0","date":"2021-09-28","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.19.0","date":"2022-02-01","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.20.0","date":"2022-07-07","lts":"Fermium","security":true,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.21.0","date":"2022-11-01","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"15.0.0","date":"2020-10-20","lts":false,"security":false,"v8":"8.6.395.16"},{"name":"nodejs","version":"15.1.0","date":"2020-11-04","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.2.0","date":"2020-11-10","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.3.0","date":"2020-11-24","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.4.0","date":"2020-12-09","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.5.0","date":"2020-12-22","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.6.0","date":"2021-01-14","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.7.0","date":"2021-01-25","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.8.0","date":"2021-02-02","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.9.0","date":"2021-02-18","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.10.0","date":"2021-02-23","lts":false,"security":true,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.11.0","date":"2021-03-03","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.12.0","date":"2021-03-17","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.13.0","date":"2021-03-31","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.14.0","date":"2021-04-06","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"16.0.0","date":"2021-04-20","lts":false,"security":false,"v8":"9.0.257.17"},{"name":"nodejs","version":"16.1.0","date":"2021-05-04","lts":false,"security":false,"v8":"9.0.257.24"},{"name":"nodejs","version":"16.2.0","date":"2021-05-19","lts":false,"security":false,"v8":"9.0.257.25"},{"name":"nodejs","version":"16.3.0","date":"2021-06-03","lts":false,"security":false,"v8":"9.0.257.25"},{"name":"nodejs","version":"16.4.0","date":"2021-06-23","lts":false,"security":false,"v8":"9.1.269.36"},{"name":"nodejs","version":"16.5.0","date":"2021-07-14","lts":false,"security":false,"v8":"9.1.269.38"},{"name":"nodejs","version":"16.6.0","date":"2021-07-29","lts":false,"security":true,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.7.0","date":"2021-08-18","lts":false,"security":false,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.8.0","date":"2021-08-25","lts":false,"security":false,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.9.0","date":"2021-09-07","lts":false,"security":false,"v8":"9.3.345.16"},{"name":"nodejs","version":"16.10.0","date":"2021-09-22","lts":false,"security":false,"v8":"9.3.345.19"},{"name":"nodejs","version":"16.11.0","date":"2021-10-08","lts":false,"security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.12.0","date":"2021-10-20","lts":false,"security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.13.0","date":"2021-10-26","lts":"Gallium","security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.14.0","date":"2022-02-08","lts":"Gallium","security":false,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.15.0","date":"2022-04-26","lts":"Gallium","security":false,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.16.0","date":"2022-07-07","lts":"Gallium","security":true,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.17.0","date":"2022-08-16","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.18.0","date":"2022-10-12","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.19.0","date":"2022-12-13","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.20.0","date":"2023-03-28","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"17.0.0","date":"2021-10-19","lts":false,"security":false,"v8":"9.5.172.21"},{"name":"nodejs","version":"17.1.0","date":"2021-11-09","lts":false,"security":false,"v8":"9.5.172.25"},{"name":"nodejs","version":"17.2.0","date":"2021-11-30","lts":false,"security":false,"v8":"9.6.180.14"},{"name":"nodejs","version":"17.3.0","date":"2021-12-17","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.4.0","date":"2022-01-18","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.5.0","date":"2022-02-10","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.6.0","date":"2022-02-22","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.7.0","date":"2022-03-09","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.8.0","date":"2022-03-22","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.9.0","date":"2022-04-07","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"18.0.0","date":"2022-04-18","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.1.0","date":"2022-05-03","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.2.0","date":"2022-05-17","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.3.0","date":"2022-06-02","lts":false,"security":false,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.4.0","date":"2022-06-16","lts":false,"security":false,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.5.0","date":"2022-07-06","lts":false,"security":true,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.6.0","date":"2022-07-13","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.7.0","date":"2022-07-26","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.8.0","date":"2022-08-24","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.9.0","date":"2022-09-07","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.10.0","date":"2022-09-28","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.11.0","date":"2022-10-13","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.12.0","date":"2022-10-25","lts":"Hydrogen","security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.13.0","date":"2023-01-05","lts":"Hydrogen","security":false,"v8":"10.2.154.23"},{"name":"nodejs","version":"18.14.0","date":"2023-02-01","lts":"Hydrogen","security":false,"v8":"10.2.154.23"},{"name":"nodejs","version":"18.15.0","date":"2023-03-05","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.16.0","date":"2023-04-12","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"19.0.0","date":"2022-10-17","lts":false,"security":false,"v8":"10.7.193.13"},{"name":"nodejs","version":"19.1.0","date":"2022-11-14","lts":false,"security":false,"v8":"10.7.193.20"},{"name":"nodejs","version":"19.2.0","date":"2022-11-29","lts":false,"security":false,"v8":"10.8.168.20"},{"name":"nodejs","version":"19.3.0","date":"2022-12-14","lts":false,"security":false,"v8":"10.8.168.21"},{"name":"nodejs","version":"19.4.0","date":"2023-01-05","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.5.0","date":"2023-01-24","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.6.0","date":"2023-02-01","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.7.0","date":"2023-02-21","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.8.0","date":"2023-03-14","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.9.0","date":"2023-04-10","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"20.0.0","date":"2023-04-17","lts":false,"security":false,"v8":"11.3.244.4"},{"name":"nodejs","version":"20.1.0","date":"2023-05-03","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.2.0","date":"2023-05-16","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.3.0","date":"2023-06-08","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.4.0","date":"2023-07-04","lts":false,"security":false,"v8":"11.3.244.8"}]')},78864:function(e){"use strict";e.exports=JSON.parse('{"v0.8":{"start":"2012-06-25","end":"2014-07-31"},"v0.10":{"start":"2013-03-11","end":"2016-10-31"},"v0.12":{"start":"2015-02-06","end":"2016-12-31"},"v4":{"start":"2015-09-08","lts":"2015-10-12","maintenance":"2017-04-01","end":"2018-04-30","codename":"Argon"},"v5":{"start":"2015-10-29","maintenance":"2016-04-30","end":"2016-06-30"},"v6":{"start":"2016-04-26","lts":"2016-10-18","maintenance":"2018-04-30","end":"2019-04-30","codename":"Boron"},"v7":{"start":"2016-10-25","maintenance":"2017-04-30","end":"2017-06-30"},"v8":{"start":"2017-05-30","lts":"2017-10-31","maintenance":"2019-01-01","end":"2019-12-31","codename":"Carbon"},"v9":{"start":"2017-10-01","maintenance":"2018-04-01","end":"2018-06-30"},"v10":{"start":"2018-04-24","lts":"2018-10-30","maintenance":"2020-05-19","end":"2021-04-30","codename":"Dubnium"},"v11":{"start":"2018-10-23","maintenance":"2019-04-22","end":"2019-06-01"},"v12":{"start":"2019-04-23","lts":"2019-10-21","maintenance":"2020-11-30","end":"2022-04-30","codename":"Erbium"},"v13":{"start":"2019-10-22","maintenance":"2020-04-01","end":"2020-06-01"},"v14":{"start":"2020-04-21","lts":"2020-10-27","maintenance":"2021-10-19","end":"2023-04-30","codename":"Fermium"},"v15":{"start":"2020-10-20","maintenance":"2021-04-01","end":"2021-06-01"},"v16":{"start":"2021-04-20","lts":"2021-10-26","maintenance":"2022-10-18","end":"2023-09-11","codename":"Gallium"},"v17":{"start":"2021-10-19","maintenance":"2022-04-01","end":"2022-06-01"},"v18":{"start":"2022-04-19","lts":"2022-10-25","maintenance":"2023-10-18","end":"2025-04-30","codename":"Hydrogen"},"v19":{"start":"2022-10-18","maintenance":"2023-04-01","end":"2023-06-01"},"v20":{"start":"2023-04-18","lts":"2023-10-24","maintenance":"2024-10-22","end":"2026-04-30","codename":""}}')}},a={};function s(e){var u=a[e];if(void 0!==u)return u.exports;var r=a[e]={id:e,loaded:!1,exports:{}};return d[e].call(r.exports,r,r.exports,s),r.loaded=!0,r.exports}s.m=d,e=[],s.O=function(u,r,t,n){if(!r){var d=1/0;for(f=0;f<e.length;f++){r=e[f][0],t=e[f][1],n=e[f][2];for(var a=!0,i=0;i<r.length;i++)(!1&n||d>=n)&&Object.keys(s.O).every((function(e){return s.O[e](r[i])}))?r.splice(i--,1):(a=!1,n<d&&(d=n));if(a){e.splice(f--,1);var o=t();void 0!==o&&(u=o)}}return u}n=n||0;for(var f=e.length;f>0&&e[f-1][2]>n;f--)e[f]=e[f-1];e[f]=[r,t,n]},s.n=function(e){var u=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(u,{a:u}),u},r=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},s.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var n=Object.create(null);s.r(n);var d={};u=u||[null,r({}),r([]),r(r)];for(var a=2&t&&e;"object"==typeof a&&!~u.indexOf(a);a=r(a))Object.getOwnPropertyNames(a).forEach((function(u){d[u]=function(){return e[u]}}));return d.default=function(){return e},s.d(n,d),n},s.d=function(e,u){for(var r in u)s.o(u,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:u[r]})},s.f={},s.e=function(e){return Promise.all(Object.keys(s.f).reduce((function(u,r){return s.f[r](e,u),u}),[]))},s.u=function(e){return e+"-"+e+".js?v=6b30aac3d0fa7ab83001"},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=function(e,u){return Object.prototype.hasOwnProperty.call(e,u)},t={},n="nextcloud:",s.l=function(e,u,r,d){if(t[e])t[e].push(u);else{var a,i;if(void 0!==r)for(var o=document.getElementsByTagName("script"),f=0;f<o.length;f++){var c=o[f];if(c.getAttribute("src")==e||c.getAttribute("data-webpack")==n+r){a=c;break}}a||(i=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,s.nc&&a.setAttribute("nonce",s.nc),a.setAttribute("data-webpack",n+r),a.src=e),t[e]=[u];var l=function(u,r){a.onerror=a.onload=null,clearTimeout(v);var n=t[e];if(delete t[e],a.parentNode&&a.parentNode.removeChild(a),n&&n.forEach((function(e){return e(r)})),u)return u(r)},v=setTimeout(l.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=l.bind(null,a.onerror),a.onload=l.bind(null,a.onload),i&&document.head.appendChild(a)}},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},s.j=9315,function(){var e;s.g.importScripts&&(e=s.g.location+"");var u=s.g.document;if(!e&&u&&(u.currentScript&&(e=u.currentScript.src),!e)){var r=u.getElementsByTagName("script");if(r.length)for(var t=r.length-1;t>-1&&!e;)e=r[t--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),s.p=e}(),function(){s.b=document.baseURI||self.location.href;var e={9315:0};s.f.j=function(u,r){var t=s.o(e,u)?e[u]:void 0;if(0!==t)if(t)r.push(t[2]);else{var n=new Promise((function(r,n){t=e[u]=[r,n]}));r.push(t[2]=n);var d=s.p+s.u(u),a=new Error;s.l(d,(function(r){if(s.o(e,u)&&(0!==(t=e[u])&&(e[u]=void 0),t)){var n=r&&("load"===r.type?"missing":r.type),d=r&&r.target&&r.target.src;a.message="Loading chunk "+u+" failed.\n("+n+": "+d+")",a.name="ChunkLoadError",a.type=n,a.request=d,t[1](a)}}),"chunk-"+u,u)}},s.O.j=function(u){return 0===e[u]};var u=function(u,r){var t,n,d=r[0],a=r[1],i=r[2],o=0;if(d.some((function(u){return 0!==e[u]}))){for(t in a)s.o(a,t)&&(s.m[t]=a[t]);if(i)var f=i(s)}for(u&&u(r);o<d.length;o++)n=d[o],s.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return s.O(f)},r=self.webpackChunknextcloud=self.webpackChunknextcloud||[];r.forEach(u.bind(null,0)),r.push=u.bind(null,r.push.bind(r))}(),s.nc=void 0;var i=s.O(void 0,[7874],(function(){return s(27979)}));i=s.O(i)}();
+//# sourceMappingURL=core-unsupported-browser.js.map?v=a7fb6e572aeac986c3b6 \ No newline at end of file
diff --git a/dist/core-unsupported-browser.js.map b/dist/core-unsupported-browser.js.map
index 056876677ff..ee406e6b66d 100644
--- a/dist/core-unsupported-browser.js.map
+++ b/dist/core-unsupported-browser.js.map
@@ -1 +1 @@
-{"version":3,"file":"core-unsupported-browser.js?v=99011768d4ccc58ff183","mappings":"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M,KAAM,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,KAAM,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAQ,CAAE,GAAM,MAAQ,CAAE,GAAM,MAAO,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,MAAQ,CAAE,EAAK,GAAI,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,KAAM,GAAM,KAAM,GAAM,MAAQ,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAA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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/create fake namespace object","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/node_modules/@nextcloud/browserslist-config/browserlist.config.js","webpack:///nextcloud/node_modules/ua-regexes-lite/index.js","webpack:///nextcloud/node_modules/browserslist-useragent-regexp/dist/index.js","webpack:///nextcloud/core/src/logger.js","webpack:///nextcloud/core/src/services/BrowsersListService.js","webpack:///nextcloud/core/src/services/BrowserStorageService.js","webpack:///nextcloud/core/src/utils/RedirectUnsupportedBrowsers.js","webpack:///nextcloud/core/src/views/UnsupportedBrowser.vue","webpack:///nextcloud/core/src/views/UnsupportedBrowser.vue?vue&type=script&lang=js&","webpack://nextcloud/./core/src/views/UnsupportedBrowser.vue?95a0","webpack://nextcloud/./core/src/views/UnsupportedBrowser.vue?d53c","webpack://nextcloud/./core/src/views/UnsupportedBrowser.vue?7880","webpack:///nextcloud/core/src/unsupported-browser.js","webpack:///nextcloud/node_modules/browserslist/browser.js","webpack:///nextcloud/node_modules/browserslist/error.js","webpack:///nextcloud/node_modules/browserslist/index.js","webpack:///nextcloud/node_modules/browserslist/parse.js","webpack:///nextcloud/node_modules/caniuse-lite/data/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browsers.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browsers.js","webpack:///nextcloud/core/src/views/UnsupportedBrowser.vue?vue&type=style&index=0&id=3c1e6192&prod&lang=scss&scoped=true&","webpack:///nextcloud/node_modules/electron-to-chromium/versions.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/runtime/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/generator/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa-minimizer.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-from-regexp.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-case-insensitive-lowercase-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-to-chars-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-meta-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-single-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-code-to-simple-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-escape-unescape-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-surrogate-pair-to-single-unicode-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/combine-repeating-patterns-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/disjunction-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/group-single-chars-to-char-class.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifier-range-to-symbol-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifiers-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/remove-empty-group-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/ungroup-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/generated/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js","webpack:///nextcloud/node_modules/regexp-tree/dist/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/utils.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/node-path.js","webpack:///nextcloud/node_modules/regexp-tree/dist/utils/clone.js","webpack:///nextcloud/node_modules/regexp-tree/index.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","module.exports = [\n '>0.25%',\n 'not ie 11',\n 'not op_mini all',\n 'not dead',\n 'Firefox ESR',\n];\n","/**\n * @typedef {import('./index.d').UserAgentRegex} UserAgentRegex\n */\n\n/** @type {UserAgentRegex[]} */\nexport const regexes = [\n {\n regex: /IE (\\d+)\\.(\\d+)/,\n family: 'ie',\n maxVersion: [\n 7,\n Infinity,\n Infinity\n ]\n },\n /**\n * IE can be in Compatability Mode (IE 7.0)\n * so we need to check Trident version\n */\n {\n regex: /Trident\\/4\\.0/,\n family: 'ie',\n version: [\n 8,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/5\\.0/,\n family: 'ie',\n version: [\n 9,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/6\\.0/,\n family: 'ie',\n version: [\n 10,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/[78]\\.0/,\n family: 'ie',\n version: [\n 11,\n 0,\n 0\n ]\n },\n {\n regex: /Edge?\\/(\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'edge'\n },\n {\n regex: /Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'firefox'\n },\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'chrome'\n },\n /**\n * Ignore Edge with EdgeHTML engine.\n */\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)([\\d.]+$|.*Safari\\/(?![\\d.]+ Edge\\/[\\d.]+$))/,\n family: 'chrome',\n maxVersion: [\n 70,\n Infinity,\n Infinity\n ]\n },\n /**\n * Safari on iPad have desktop-like useragent\n * Some versions contains letter subversions\n */\n {\n regex: /Maci.+ Version\\/(\\d+)\\.(\\d+)([.,](\\d+)|)( \\(\\w+\\)|)( Mobile\\/\\w+|) Safari\\//,\n family: 'safari'\n },\n /**\n * Presto Opera\n */\n {\n regex: /Opera\\/9\\.80.+Version\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'opera',\n maxVersion: [\n 12,\n 15,\n 0\n ]\n },\n /**\n * Chromium based Opera\n */\n {\n regex: /Chrome.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'opera',\n minVersion: [\n 15,\n 0,\n 0\n ]\n },\n {\n regex: /(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /[^e] (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf',\n version: [\n 7,\n 0,\n 3\n ]\n },\n {\n regex: /Opera Mini/,\n family: 'op_mini'\n },\n {\n regex: /Android Donut/,\n family: 'android',\n version: [\n 1,\n 2,\n 0\n ]\n },\n {\n regex: /Android Eclair/,\n family: 'android',\n version: [\n 2,\n 1,\n 0\n ]\n },\n {\n regex: /Android Froyo/,\n family: 'android',\n version: [\n 2,\n 2,\n 0\n ]\n },\n {\n regex: /Android Gingerbread/,\n family: 'android',\n version: [\n 2,\n 3,\n 0\n ]\n },\n {\n regex: /Android Honeycomb/,\n family: 'android',\n version: [\n 3,\n 0,\n 0\n ]\n },\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'android'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|);(?! ARM; Trident)/,\n family: 'android',\n version: [\n 4,\n 0,\n 0\n ]\n },\n {\n regex: /PlayBook.+RIM Tablet OS (\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n {\n regex: /(Black[bB]erry|BB10).+Version\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n /**\n * Presto Opera Mobile\n */\n {\n regex: /Opera\\/.+Opera Mobi.+Version\\/(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n maxVersion: [\n 12,\n 16,\n 0\n ]\n },\n /**\n * Chromium based Opera Mobile\n */\n {\n regex: /Mobile Safari.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n minVersion: [\n 14,\n 0,\n 0\n ]\n },\n {\n regex: /Android.+Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_ff'\n },\n {\n regex: /Android.+Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_chr'\n },\n {\n regex: /IEMobile[ /](\\d+)\\.(\\d+)/,\n family: 'ie_mob'\n },\n {\n regex: /Android.+(UC? ?Browser|UCWEB|U3)[ /]?(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'and_uc'\n },\n {\n regex: /SamsungBrowser\\/(\\d+)\\.(\\d+)/,\n family: 'samsung'\n },\n {\n regex: /Android.+MQQBrowser\\/(\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'and_qq'\n },\n {\n regex: /baidubrowser[/\\s](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'baidu'\n },\n {\n regex: /K[Aa][Ii]OS\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'kaios'\n }\n]\n","import browserslist from 'browserslist';\nimport RegexpTree from 'regexp-tree';\nimport { regexes } from 'ua-regexes-lite';\n\n/**\n * Array of numbers to array of first and last elements.\n * @param numbers - Array of numbers.\n * @returns Number or two numbers.\n */ function numbersToRanges(numbers) {\n if (typeof numbers === \"number\") {\n return numbers;\n }\n if (numbers.length === 1) {\n return numbers[0];\n }\n return [\n numbers[0],\n numbers[numbers.length - 1]\n ];\n}\n\nvar SemverPart;\n(function(SemverPart) {\n SemverPart[SemverPart[\"Major\"] = 0] = \"Major\";\n SemverPart[SemverPart[\"Minor\"] = 1] = \"Minor\";\n SemverPart[SemverPart[\"Patch\"] = 2] = \"Patch\";\n})(SemverPart || (SemverPart = {}));\n\n/**\n * Get semver from string or array.\n * @param version - Target to convert.\n * @returns Array with semver parts.\n */ function semverify(version) {\n const versionParts = Array.isArray(version) ? version : version.toString().split(\".\");\n if (versionParts[0] === \"all\") {\n return [\n Infinity,\n 0,\n 0\n ];\n }\n let versionPart = null;\n let semverPart = null;\n const semver = [\n 0,\n 0,\n 0\n ];\n for(let i = 0; i < 3; i++){\n versionPart = versionParts[i];\n if (typeof versionPart === \"undefined\") {\n continue;\n }\n semverPart = typeof versionPart === \"number\" ? versionPart : parseInt(versionPart, 10);\n if (isNaN(semverPart)) {\n return null;\n }\n semver[i] = semverPart;\n }\n return semver;\n}\n/**\n * Get semver range.\n * @param from\n * @param to\n * @returns Semver range.\n */ function rangeSemver(from, to) {\n let partIndex = 0;\n const range = [];\n for(let i = 2; i >= 0; i--){\n if (from[i] !== to[i]) {\n partIndex = i;\n break;\n }\n }\n for(let i1 = from[partIndex], max = to[partIndex]; i1 <= max; i1++){\n range.push(from.map((v, j)=>j === partIndex ? i1 : v));\n }\n return range;\n}\n/**\n * Compare semvers.\n * @param a - Semver to compare.\n * @param b - Semver to compare with.\n * @param options - Compare options.\n * @returns Equals or not.\n */ function compareSemvers(a, b, options) {\n const [major, minor, patch] = a;\n const [majorBase, minorBase, patchBase] = b;\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n if (majorBase === Infinity) {\n return true;\n }\n const compareMinor = !ignoreMinor;\n const comparePatch = compareMinor && !ignorePatch;\n if (allowHigherVersions) {\n if (comparePatch && patch < patchBase || compareMinor && minor < minorBase) {\n return false;\n }\n return major >= majorBase;\n }\n if (comparePatch && patch !== patchBase || compareMinor && minor !== minorBase) {\n return false;\n }\n return major === majorBase;\n}\n/**\n * Get required semver parts count.\n * @param version - Semver parts or ranges.\n * @param options - Semver compare options.\n * @returns Required semver parts count.\n */ function getRequiredSemverPartsCount(version, options) {\n const { ignoreMinor , ignorePatch , allowZeroSubversions } = options;\n let shouldRepeatCount = ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowZeroSubversions) {\n for(let i = shouldRepeatCount - 1; i > 0; i--){\n if (version[i] !== 0 || shouldRepeatCount === 1) {\n break;\n }\n shouldRepeatCount--;\n }\n }\n return shouldRepeatCount;\n}\n\n/**\n * Browsers strings to info objects.\n * @param browsersList - Browsers strings with family and version.\n * @returns Browser info objects.\n */ function parseBrowsersList(browsersList) {\n return browsersList.reduce((browsers, browser)=>{\n const [family, versionString, versionStringTo] = browser.split(/ |-/);\n const version = semverify(versionString);\n const versions = !version ? [] : versionStringTo ? rangeSemver(version, semverify(versionStringTo)) : [\n version\n ];\n return versions.reduce((browsers, semver)=>{\n if (semver) {\n browsers.push({\n family,\n version: semver\n });\n }\n return browsers;\n }, browsers);\n }, []);\n}\n/**\n * Request browsers list.\n * @param options - Options to get browsers list.\n * @returns Browser info objects.\n */ function getBrowsersList(options = {}) {\n const { browsers , ...browserslistOptions } = options;\n const browsersList = browserslist(browsers, browserslistOptions);\n const parsedBrowsers = parseBrowsersList(browsersList);\n return parsedBrowsers;\n}\n\n/**\n * Compare two arrays.\n * @param a - Array to compare.\n * @param b - Array to compare.\n * @param from - Index to start compare from.\n * @returns Equals or not.\n */ function compareArrays(a, b, from = 0) {\n const len = a.length;\n for(let i = from; i < len; i++){\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Clone simple object.\n * @param value\n * @returns Object clone.\n */ function clone(value) {\n if (value === null || typeof value !== \"object\") {\n return value;\n }\n /* eslint-disable */ const copy = Array.isArray(value) ? [] : {};\n let i;\n for(i in value){\n copy[i] = clone(value[i]);\n }\n /* eslint-enable */ return copy;\n}\n/**\n * Concat arrays.\n * @param items\n * @returns Concatinated arrays.\n */ function concat(items) {\n return [].concat(...items);\n}\n\n/**\n * Merge browser info object to map with versions.\n * @param browsers - Browser info object to merge.\n * @returns Merged browsers map.\n */ function mergeBrowserVersions(browsers) {\n const merge = new Map();\n browsers.forEach(({ family , version })=>{\n const versions = merge.get(family);\n if (versions) {\n const strVersion = version.join(\".\");\n if (versions.every((_)=>_.join(\".\") !== strVersion)) {\n versions.push(version);\n }\n return;\n }\n merge.set(family, [\n version\n ]);\n });\n merge.forEach((versions)=>{\n versions.sort((a, b)=>{\n for(const i in a){\n if (a[i] !== b[i]) {\n return a[i] - b[i];\n }\n }\n return 0;\n });\n });\n return merge;\n}\n/**\n * Versions to ranged versions.\n * @param versions - Semver versions list.\n * @returns Ranged versions list.\n */ function versionsListToRanges(versions) {\n if (versions.length < 2) {\n return versions;\n }\n const max = versions.length + 1;\n const ranges = [];\n let prev = null;\n let current = versions[0];\n let major = [\n current[SemverPart.Major]\n ];\n let minor = [\n current[SemverPart.Minor]\n ];\n let patch = [\n current[SemverPart.Patch]\n ];\n let part = null;\n for(let i = 1; i < max; i++){\n prev = versions[i - 1];\n current = versions[i] || [];\n for(let p = SemverPart.Major; p <= SemverPart.Patch; p++){\n if ((p === part || part === null) && prev[p] + 1 === current[p] && compareArrays(prev, current, p + 1)) {\n part = p;\n if (p === SemverPart.Major) {\n major.push(current[SemverPart.Major]);\n } else {\n major = current[SemverPart.Major];\n }\n if (p === SemverPart.Minor) {\n minor.push(current[SemverPart.Minor]);\n } else {\n minor = current[SemverPart.Minor];\n }\n if (p === SemverPart.Patch) {\n patch.push(current[SemverPart.Patch]);\n } else {\n patch = current[SemverPart.Patch];\n }\n break;\n }\n if (part === p || prev[p] !== current[p]) {\n ranges.push([\n numbersToRanges(major),\n numbersToRanges(minor),\n numbersToRanges(patch)\n ]);\n major = [\n current[SemverPart.Major]\n ];\n minor = [\n current[SemverPart.Minor]\n ];\n patch = [\n current[SemverPart.Patch]\n ];\n part = null;\n break;\n }\n }\n }\n return ranges;\n}\n\nfunction AstRegExpNode(body) {\n return {\n type: \"RegExp\",\n body,\n flags: \"\"\n };\n}\nfunction AlternativeNode(...expressions) {\n const exps = concat(expressions).filter(Boolean);\n if (exps.length === 1) {\n return exps[0];\n }\n return {\n type: \"Alternative\",\n expressions: exps\n };\n}\nfunction SimpleCharNode(value) {\n return {\n type: \"Char\",\n kind: \"simple\",\n value: String(value),\n codePoint: NaN\n };\n}\nfunction MetaCharNode(value) {\n return {\n type: \"Char\",\n kind: \"meta\",\n value,\n codePoint: NaN\n };\n}\nfunction ClassRangeNode(from, to) {\n return {\n type: \"ClassRange\",\n from,\n to\n };\n}\nfunction CharacterClassNode(...expressions) {\n return {\n type: \"CharacterClass\",\n expressions: concat(expressions).filter(Boolean)\n };\n}\nfunction SimpleQuantifierNode(kind) {\n return {\n type: \"Quantifier\",\n kind,\n greedy: true\n };\n}\nfunction RangeQuantifierNode(from, to) {\n return {\n type: \"Quantifier\",\n kind: \"Range\",\n from,\n to,\n greedy: true\n };\n}\nfunction CapturingGroupNode(expression) {\n return {\n type: \"Group\",\n capturing: true,\n expression,\n number: null\n };\n}\nfunction RepetitionNode(expression, quantifier) {\n return {\n type: \"Repetition\",\n expression,\n quantifier\n };\n}\nfunction DisjunctionNode(...expressions) {\n const exprs = concat(expressions).filter(Boolean);\n if (exprs.length === 1) {\n return exprs[0];\n }\n const disjunction = {\n type: \"Disjunction\",\n left: null,\n right: exprs.pop()\n };\n exprs.reduceRight((disjunction, expr, i)=>{\n if (i === 0) {\n disjunction.left = expr;\n return disjunction;\n }\n disjunction.left = {\n type: \"Disjunction\",\n left: null,\n right: expr\n };\n return disjunction.left;\n }, disjunction);\n return disjunction;\n}\nfunction DisjunctionCapturingGroupNode(...expressions) {\n const expr = DisjunctionNode(...expressions);\n if (expr.type === \"Disjunction\") {\n return CapturingGroupNode(expr);\n }\n return expr;\n}\nfunction DigitPatternNode() {\n return MetaCharNode(\"\\\\d\");\n}\nfunction NumberPatternNode(quantifier = SimpleQuantifierNode(\"+\")) {\n const numberPattern = RepetitionNode(DigitPatternNode(), quantifier);\n return numberPattern;\n}\nfunction NumberCharsNode(value) {\n return AlternativeNode(Array.from(String(value), SimpleCharNode));\n}\n\n/**\n * Check node whether is number pattern.\n * @param node - AST node to check.\n * @returns Is number pattern or not.\n */ function isNumberPatternNode(node) {\n if (node.type === \"Group\" && node.expression.type === \"Repetition\") {\n const { expression , quantifier } = node.expression;\n return expression.type === \"Char\" && expression.value === \"\\\\d\" && quantifier.kind === \"+\" && quantifier.greedy;\n }\n return false;\n}\n/**\n * Check node whether is char node.\n * @param node - AST node to check.\n * @param value - Value to compare.\n * @returns Is char node or not.\n */ function isCharNode(node, value) {\n if (node && node.type === \"Char\") {\n return typeof value === \"undefined\" || value instanceof RegExp && value.test(node.value) || String(value) === node.value;\n }\n return false;\n}\n/**\n * Check node whether is digit range.\n * @param node - AST node to check.\n * @returns Is digit range or not.\n */ function isDigitRangeNode(node) {\n if (node.type === \"CharacterClass\" && node.expressions.length === 1) {\n const [expression] = node.expressions;\n return expression.type === \"ClassRange\" && isCharNode(expression.from, /\\d/) && isCharNode(expression.to, /\\d/);\n }\n return false;\n}\n/**\n * Check node whether is expression.\n * @param node - AST node to check.\n * @returns Is expression node or not.\n */ function isExpressionNode(node) {\n return node.type !== \"RegExp\" && node.type !== \"ClassRange\" && node.type !== \"Quantifier\";\n}\nfunction parseRegex(regex) {\n return typeof regex === \"string\" ? RegexpTree.parse(regex.replace(/^([^/])/, \"/$1\").replace(/([^/])$/, \"$1/\")) : regex instanceof RegExp ? RegexpTree.parse(regex) : regex;\n}\n/**\n * Get regex from string or AST.\n * @param src - String or AST.\n * @returns RegExp.\n */ function toRegex(src) {\n return typeof src === \"string\" ? new RegExp(src) : new RegExp(RegexpTree.generate(src.body), src.flags);\n}\n/**\n * Get string from regex or AST.\n * @param src - RegExp or AST.\n * @returns String.\n */ function toString(src) {\n return typeof src === \"string\" ? src : src instanceof RegExp ? src.toString() : RegexpTree.generate(src);\n}\n\nconst classes = [\n \"RegExp\",\n \"Disjunction\",\n \"Alternative\",\n \"Assertion\",\n \"Char\",\n \"CharacterClass\",\n \"ClassRange\",\n \"Backreference\",\n \"Group\",\n \"Repetition\",\n \"Quantifier\"\n];\n/**\n * Create traversal visitors.\n * @param visitors\n * @returns Traversal handlers.\n */ function visitors(visitors) {\n const { every } = visitors;\n if (!every) {\n return visitors;\n }\n if (typeof every === \"function\") {\n return {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n \"*\": every,\n ...visitors\n };\n }\n return classes.reduce((newVisitors, className)=>{\n const visitor = visitors[className];\n const visitorPre = visitor ? \"pre\" in visitor ? visitor.pre : visitor : null;\n const visitorPost = visitor ? \"post\" in visitor ? visitor.post : null : null;\n newVisitors[className] = {\n pre (nodePath) {\n if (every.pre(nodePath) !== false && visitorPre) {\n return visitorPre(nodePath);\n }\n return true;\n },\n post (nodePath) {\n if (every.post(nodePath) !== false && visitorPost) {\n return visitorPost(nodePath);\n }\n return true;\n }\n };\n return newVisitors;\n }, {});\n}\n\nfunction optimizeRegex(regex) {\n // Optimization requires filled codePoints\n const regexAst = RegexpTree.optimize(parseRegex(toString(regex))).getAST();\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n const { parent , node } = nodePath;\n const { expression } = node;\n node.capturing = true;\n if (parent.type === \"RegExp\" || expression.type !== \"Disjunction\" && parent.type !== \"Repetition\" || expression.type === \"Disjunction\" && parent.type === \"Disjunction\") {\n nodePath.replace(nodePath.node.expression);\n }\n }\n });\n return regexAst;\n}\n/**\n * Merge digits patterns if possible.\n * @param a\n * @param b\n * @returns Merged node.\n */ function mergeDigits(a, b) {\n if (isCharNode(a) && isCharNode(b) && a.value === b.value) {\n return b;\n }\n if (isCharNode(a, /\\d/) && isDigitRangeNode(b) && Number(b.expressions[0].from.value) - Number(a.value) === 1) {\n return {\n ...b,\n expressions: [\n {\n ...b.expressions[0],\n from: a\n }\n ]\n };\n }\n if (isDigitRangeNode(a) && isCharNode(b, /\\d/) && Number(b.value) - Number(a.expressions[0].to.value) === 1) {\n return {\n ...a,\n expressions: [\n {\n ...a.expressions[0],\n to: b\n }\n ]\n };\n }\n return null;\n}\n/**\n * Optimize segment number patterns.\n * @param patterns\n * @returns Optimized segment number patterns.\n */ function optimizeSegmentNumberPatterns(patterns) {\n return patterns.reduce((patterns, node)=>{\n const prevNode = patterns[patterns.length - 1];\n if (prevNode && node.type === \"Alternative\" && prevNode.type === \"Alternative\" && node.expressions.length === prevNode.expressions.length) {\n const merged = prevNode.expressions.reduceRight((exps, exp, i)=>{\n if (!exps) {\n return exps;\n }\n const merged = mergeDigits(exp, node.expressions[i]);\n if (merged) {\n exps.unshift(merged);\n } else {\n return null;\n }\n return exps;\n }, []);\n if (merged) {\n node.expressions = merged;\n patterns.pop();\n }\n }\n patterns.push(node);\n return patterns;\n }, []);\n}\n\n/**\n * Transform number to digits array.\n * @param num - Target number.\n * @returns Digits array.\n */ function numberToDigits(num) {\n return Array.from(num.toString(), Number);\n}\n\n/**\n * Get digit pattern.\n * @param digit - Ray start.\n * @param includes - Include start digit or use next.\n * @returns Digit pattern.\n */ function rayRangeDigitPattern(digit, includes) {\n const rangeStart = digit + Number(!includes);\n if (rangeStart === 0) {\n return DigitPatternNode();\n }\n if (rangeStart === 9) {\n return SimpleCharNode(\"9\");\n }\n if (rangeStart > 9) {\n return null;\n }\n return CharacterClassNode(ClassRangeNode(SimpleCharNode(rangeStart), SimpleCharNode(\"9\")));\n}\n/**\n * Create numeric ray pattern.\n * @param from - Start from this number.\n * @returns Numeric ray pattern parts.\n */ function rayToNumberPatterns(from) {\n if (from === 0) {\n return [\n NumberPatternNode()\n ];\n }\n const digits = numberToDigits(from);\n const digitsCount = digits.length;\n const other = NumberPatternNode(RangeQuantifierNode(digitsCount + 1));\n const zeros = digitsCount - 1;\n if (from / Math.pow(10, zeros) === digits[0]) {\n return [\n AlternativeNode(rayRangeDigitPattern(digits[0], true), Array.from({\n length: zeros\n }, DigitPatternNode)),\n other\n ];\n }\n const raysNumberPatterns = digits.reduce((topNodes, _, i)=>{\n const ri = digitsCount - i - 1;\n const d = i === 0;\n let prev = SimpleCharNode(\"\");\n const nodes = digits.reduce((nodes, digit, j)=>{\n if (j < ri) {\n nodes.push(SimpleCharNode(digit));\n } else if (prev) {\n if (j > ri) {\n nodes.push(DigitPatternNode());\n } else {\n prev = rayRangeDigitPattern(digit, d);\n if (prev) {\n nodes.push(prev);\n } else {\n return [];\n }\n }\n }\n return nodes;\n }, []);\n if (nodes.length) {\n topNodes.push(nodes);\n }\n return topNodes;\n }, []);\n const numberPatterns = raysNumberPatterns.map((_)=>AlternativeNode(_));\n numberPatterns.push(other);\n return numberPatterns;\n}\n\n/**\n * Get digit pattern.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param zeros - Zeros to add as prefix.\n * @returns Digit pattern.\n */ function segmentRangeNumberPattern(from, to, zeros) {\n if (to < from) {\n return null;\n }\n const fromNode = SimpleCharNode(from);\n const toNode = SimpleCharNode(to);\n const zerosPrefix = typeof zeros === \"number\" && zeros > 0 ? Array.from({\n length: zeros\n }, ()=>SimpleCharNode(0)) : [];\n const addPrefix = zerosPrefix.length ? (node)=>AlternativeNode(zerosPrefix, node) : (node)=>node;\n if (from === to) {\n return addPrefix(fromNode);\n }\n if (from === 0 && to === 9) {\n return addPrefix(DigitPatternNode());\n }\n if (to - from === 1) {\n return addPrefix(CharacterClassNode(fromNode, toNode));\n }\n return addPrefix(CharacterClassNode(ClassRangeNode(fromNode, toNode)));\n}\n/**\n * Split segment range to decade ranges.\n * @param from - Segment start.\n * @param to - Segment end.\n * @returns Ranges.\n */ function splitToDecadeRanges(from, to) {\n const ranges = [];\n let num = from;\n let decade = 1;\n do {\n decade *= 10;\n if (num < decade) {\n ranges.push([\n num,\n Math.min(decade - 1, to)\n ]);\n num = decade;\n }\n }while (decade <= to);\n return ranges;\n}\n/**\n * Get common and diffs of two numbers (arrays of digits).\n * @param a - Digits.\n * @param b - Other digits.\n * @returns Common part and diffs.\n */ function splitCommonDiff(a, b) {\n const len = a.length;\n if (len !== b.length || a[0] !== b[0]) {\n return null;\n }\n let common = a[0].toString();\n let currA = 0;\n let currB = 0;\n let diffA = \"\";\n let diffB = \"\";\n for(let i = 1; i < len; i++){\n currA = a[i];\n currB = b[i];\n if (currA === currB) {\n common += currA;\n } else {\n diffA += currA;\n diffB += currB;\n }\n }\n return [\n common,\n parseInt(diffA, 10),\n parseInt(diffB, 10)\n ];\n}\n/**\n * Get segment patterns.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param digitsInNumber - How many digits should be en number. Will be filled by zeros.\n * @returns Segment patterns.\n */ function segmentToNumberPatterns(from, to, digitsInNumber = 0) {\n const fromDigits = numberToDigits(from);\n const digitsCount = fromDigits.length;\n if (from < 10 && to < 10 || from === to) {\n const zeros = digitsInNumber - digitsCount;\n return [\n segmentRangeNumberPattern(from, to, zeros)\n ];\n }\n const toDigits = numberToDigits(to);\n if (digitsCount !== toDigits.length) {\n const decadeRanges = splitToDecadeRanges(from, to);\n const parts = concat(decadeRanges.map(([from, to])=>segmentToNumberPatterns(from, to, digitsInNumber)));\n return parts;\n }\n const commonStart = splitCommonDiff(fromDigits, toDigits);\n if (Array.isArray(commonStart)) {\n const [common, from1, to1] = commonStart;\n const digitsInNumber1 = digitsCount - common.length;\n const diffParts = segmentToNumberPatterns(from1, to1, digitsInNumber1);\n return [\n AlternativeNode(Array.from(common, SimpleCharNode), DisjunctionCapturingGroupNode(diffParts))\n ];\n }\n const range = Array.from({\n length: digitsCount - 1\n });\n const middleSegment = segmentRangeNumberPattern(fromDigits[0] + 1, toDigits[0] - 1);\n const parts1 = [\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(fromDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(digit + d, 9);\n }));\n }),\n // but output more readable\n ...middleSegment ? [\n AlternativeNode(middleSegment, Array.from({\n length: digitsCount - 1\n }, ()=>DigitPatternNode()))\n ] : [],\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(toDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(0, digit - d);\n }));\n })\n ];\n return optimizeSegmentNumberPatterns(parts1);\n}\n\n/**\n * Get regex for given numeric range.\n * @param from - Range start.\n * @param to - Range end.\n * @returns Range pattern.\n */ function rangeToRegex(from, to = Infinity) {\n if (from === Infinity) {\n return NumberPatternNode();\n }\n const numberPatterns = to === Infinity ? rayToNumberPatterns(from) : segmentToNumberPatterns(from, to);\n const regex = DisjunctionCapturingGroupNode(numberPatterns);\n return regex;\n}\n\n/**\n * Find matched versions.\n * @param minVersion - Semver version.\n * @param maxVersion - Semver version.\n * @param bases - Base semver versions.\n * @param options - Semver compare options.\n * @returns Matched versions.\n */ function findMatchedVersions(minVersion, maxVersion, bases, options) {\n const compareOptions = {\n ...options,\n allowHigherVersions: true\n };\n const minComparator = (ver)=>compareSemvers(ver, minVersion, compareOptions);\n const maxComparator = (ver)=>compareSemvers(maxVersion, ver, compareOptions);\n const comparator = minVersion && maxVersion ? (ver)=>minComparator(ver) && maxComparator(ver) : minVersion ? minComparator : maxVersion ? maxComparator : ()=>true;\n return bases.filter(comparator);\n}\n\n/**\n * Get useragent regexes for given browsers.\n * @param browsers - Browsers.\n * @param options - Semver compare options.\n * @param targetRegexes - Override default regexes.\n * @returns User agent regexes.\n */ function getRegexesForBrowsers(browsers, options, targetRegexes = regexes) {\n const result = [];\n let prevFamily = \"\";\n let prevRegexIsGlobal = false;\n targetRegexes.forEach((regex)=>{\n const requestVersions = browsers.get(regex.family);\n if (!requestVersions) {\n return;\n }\n let { version , minVersion , maxVersion } = regex;\n if (version) {\n minVersion = version;\n maxVersion = version;\n }\n let matchedVersions = findMatchedVersions(minVersion, maxVersion, requestVersions, options);\n if (matchedVersions.length) {\n // regex contains global patch\n if (prevFamily === regex.family && prevRegexIsGlobal) {\n version = undefined;\n minVersion = undefined;\n maxVersion = undefined;\n matchedVersions = requestVersions;\n result.pop();\n }\n result.push({\n ...regex,\n version,\n minVersion,\n maxVersion,\n requestVersions,\n matchedVersions\n });\n }\n prevRegexIsGlobal = !version && !minVersion && !maxVersion;\n prevFamily = regex.family;\n });\n return result;\n}\n\n/**\n * Compile regexes.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Objects with info about compiled regexes.\n */ function compileRegexes(regexes) {\n return regexes.map(({ regexAst , ...regex })=>{\n const optimizedRegexAst = optimizeRegex(regexAst);\n return {\n ...regex,\n regexAst: optimizedRegexAst,\n regex: toRegex(optimizedRegexAst)\n };\n });\n}\n/**\n * Compile regex.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Compiled common regex.\n */ function compileRegex(regexes) {\n const partsRegexes = regexes.map(({ regexAst })=>CapturingGroupNode(regexAst.body));\n const regexAst = optimizeRegex(AstRegExpNode(DisjunctionCapturingGroupNode(partsRegexes)));\n return toRegex(regexAst);\n}\n\n/**\n * Get number patterns count from the regex.\n * @param regex - Target regex.\n * @returns Number patterns count.\n */ function getNumberPatternsCount(regex) {\n const regexAst = parseRegex(regex);\n let count = 0;\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node)) {\n count++;\n }\n }\n });\n return count;\n}\nfunction replaceNumberPatterns(regex, numbers, numberPatternsCount) {\n let regexAst = parseRegex(regex);\n const numbersToReplace = typeof numberPatternsCount === \"number\" && numberPatternsCount < numbers.length ? numbers.slice(0, numberPatternsCount) : numbers.slice();\n RegexpTree.traverse(regexAst, visitors({\n every () {\n return Boolean(numbersToReplace.length);\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersToReplace.length) {\n if (regexAst === nodePath.node) {\n regexAst = numbersToReplace.shift();\n } else {\n nodePath.replace(numbersToReplace.shift());\n }\n return false;\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Get from regex part with number patterns.\n * @param regex - Target regex.\n * @param numberPatternsCount - Number patterns to extract.\n * @returns Regex part with number patterns.\n */ function getNumberPatternsPart(regex, numberPatternsCount) {\n const regexAst = parseRegex(regex);\n const maxNumbersCount = Math.min(getNumberPatternsCount(regexAst), numberPatternsCount || Infinity);\n const expressions = [];\n let numbersCounter = 0;\n let containsNumberPattern = false;\n RegexpTree.traverse(regexAst, visitors({\n every: {\n pre ({ node , parent }) {\n if (node === regexAst) {\n return true;\n }\n if (!isExpressionNode(node)) {\n return false;\n }\n if (parent === regexAst) {\n containsNumberPattern = false;\n }\n return numbersCounter < maxNumbersCount;\n },\n post ({ node , parent }) {\n if (node !== regexAst && parent === regexAst && isExpressionNode(node) && (containsNumberPattern || numbersCounter > 0 && numbersCounter < maxNumbersCount)) {\n expressions.push(node);\n }\n }\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersCounter < maxNumbersCount) {\n containsNumberPattern = true;\n numbersCounter++;\n return false;\n }\n return true;\n }\n }));\n if (expressions.length === 1 && !isNumberPatternNode(expressions[0])) {\n return getNumberPatternsPart(expressions[0], maxNumbersCount);\n }\n return expressions;\n}\n/**\n * Ranged semver to regex patterns.\n * @param rangedVersion - Ranged semver.\n * @param options - Semver compare options.\n * @returns Array of regex pattern.\n */ function rangedSemverToRegex(rangedVersion, options) {\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n const ignoreIndex = rangedVersion[0] === Infinity ? 0 : ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowHigherVersions) {\n const numberPatterns = [];\n let prevWasZero = true;\n let d = 0;\n let start = 0;\n const createMapper = (i)=>(range, j)=>{\n if (j >= ignoreIndex) {\n return NumberPatternNode();\n }\n start = Array.isArray(range) ? range[0] : range;\n if (j < i) {\n return NumberCharsNode(start);\n }\n if (j > i) {\n return NumberPatternNode();\n }\n return rangeToRegex(start + d);\n };\n for(let i = ignoreIndex - 1; i >= 0; i--){\n if (prevWasZero && !rangedVersion[i]) {\n continue;\n }\n prevWasZero = false;\n numberPatterns.push(rangedVersion.map(createMapper(i)));\n d = 1;\n }\n return numberPatterns;\n }\n const numberPatterns1 = rangedVersion.map((range, i)=>{\n if (i >= ignoreIndex) {\n return NumberPatternNode();\n }\n if (Array.isArray(range)) {\n return rangeToRegex(range[0], range[1]);\n }\n return NumberCharsNode(range);\n });\n return [\n numberPatterns1\n ];\n}\n\nfunction applyVersionsToRegex(regex, versions, options) {\n const { allowHigherVersions } = options;\n const regexAst = parseRegex(regex);\n const finalVersions = allowHigherVersions && versions.length ? [\n versions[0]\n ] : versions;\n const maxRequiredPartsCount = finalVersions.reduce((maxRequiredPartsCount, version)=>Math.max(maxRequiredPartsCount, getRequiredSemverPartsCount(version, options)), 1);\n const numberPatternsPart = getNumberPatternsPart(regexAst, maxRequiredPartsCount);\n const versionsPart = DisjunctionCapturingGroupNode(...finalVersions.map((version)=>rangedSemverToRegex(version, options).map((parts)=>replaceNumberPatterns(AlternativeNode(clone(numberPatternsPart)), parts, maxRequiredPartsCount))));\n RegexpTree.traverse(regexAst, visitors({\n every (nodePath) {\n if (!numberPatternsPart.length) {\n return false;\n }\n if (nodePath.node === numberPatternsPart[0]) {\n if (numberPatternsPart.length === 1) {\n nodePath.replace(versionsPart);\n } else {\n nodePath.remove();\n }\n numberPatternsPart.shift();\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Apply browser versions to info objects.\n * @param browserRegexes - Objects with requested browser version and regex.\n * @param options - Semver compare options.\n * @returns Objects with requested browser version and regex special for this version.\n */ function applyVersionsToRegexes(browserRegexes, options) {\n return browserRegexes.map(({ regex: sourceRegex , version , maxVersion , matchedVersions , ...other })=>{\n let regexAst = parseRegex(sourceRegex);\n if (!version) {\n regexAst = applyVersionsToRegex(regexAst, versionsListToRanges(matchedVersions), {\n ...options,\n allowHigherVersions: !maxVersion && options.allowHigherVersions\n });\n }\n return {\n regex: null,\n sourceRegex,\n regexAst,\n version,\n maxVersion,\n matchedVersions,\n ...other\n };\n });\n}\n\nconst defaultOptions = {\n ignoreMinor: false,\n ignorePatch: true,\n allowZeroSubversions: false,\n allowHigherVersions: false\n};\n/**\n * Get source regexes objects from browserslist query.\n * @param options - Browserslist and semver compare options.\n * @returns Source regexes objects.\n */ function getPreUserAgentRegexes(options = {}) {\n const finalOptions = {\n ...defaultOptions,\n ...options\n };\n const browsersList = getBrowsersList(finalOptions);\n const mergedBrowsers = mergeBrowserVersions(browsersList);\n const sourceRegexes = getRegexesForBrowsers(mergedBrowsers, finalOptions);\n const versionedRegexes = applyVersionsToRegexes(sourceRegexes, finalOptions);\n return versionedRegexes;\n}\n/**\n * Compile browserslist query to regexes.\n * @param options - Browserslist and semver compare options.\n * @returns Objects with info about compiled regexes.\n */ function getUserAgentRegexes(options = {}) {\n return compileRegexes(getPreUserAgentRegexes(options));\n}\n/**\n * Compile browserslist query to regex.\n * @param options - Browserslist and semver compare options.\n * @returns Compiled regex.\n */ function getUserAgentRegex(options = {}) {\n return compileRegex(getPreUserAgentRegexes(options));\n}\n\nexport { AlternativeNode, AstRegExpNode, CapturingGroupNode, CharacterClassNode, ClassRangeNode, DigitPatternNode, DisjunctionCapturingGroupNode, DisjunctionNode, MetaCharNode, NumberCharsNode, NumberPatternNode, RangeQuantifierNode, RepetitionNode, SemverPart, SimpleCharNode, SimpleQuantifierNode, applyVersionsToRegex, applyVersionsToRegexes, clone, compareArrays, compareSemvers, compileRegex, compileRegexes, concat, defaultOptions, findMatchedVersions, getBrowsersList, getNumberPatternsCount, getNumberPatternsPart, getPreUserAgentRegexes, getRegexesForBrowsers, getRequiredSemverPartsCount, getUserAgentRegex, getUserAgentRegexes, isCharNode, isDigitRangeNode, isExpressionNode, isNumberPatternNode, mergeBrowserVersions, mergeDigits, numberToDigits, numbersToRanges, optimizeRegex, optimizeSegmentNumberPatterns, parseBrowsersList, parseRegex, rangeSemver, rangeToRegex, rangedSemverToRegex, rayRangeDigitPattern, rayToNumberPatterns, replaceNumberPatterns, segmentRangeNumberPattern, segmentToNumberPatterns, semverify, splitCommonDiff, splitToDecadeRanges, toRegex, toString, versionsListToRanges, visitors };\n//# sourceMappingURL=index.js.map\n","/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nconst getLogger = user => {\n\tif (user === null) {\n\t\treturn getLoggerBuilder()\n\t\t\t.setApp('core')\n\t\t\t.build()\n\t}\n\treturn getLoggerBuilder()\n\t\t.setApp('core')\n\t\t.setUid(user.uid)\n\t\t.build()\n}\n\nexport default getLogger(getCurrentUser())\n","/**\n * @copyright 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { getUserAgentRegex } from 'browserslist-useragent-regexp'\n// eslint-disable-next-line n/no-extraneous-import\nimport browserslist from 'browserslist'\nimport browserslistConfig from '@nextcloud/browserslist-config'\n\n// Generate a regex that matches user agents to detect incompatible browsers\nexport const supportedBrowsersRegExp = getUserAgentRegex({ allowHigherVersions: true, browsers: browserslistConfig })\nexport const supportedBrowsers = browserslist(browserslistConfig)\n","/**\n * @copyright 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { getBuilder } from '@nextcloud/browser-storage'\n\nexport default getBuilder('core')\n\t.clearOnLogout()\n\t.persist()\n\t.build()\n","/**\n * @copyright 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport { supportedBrowsersRegExp } from '../services/BrowsersListService.js'\nimport browserStorage from '../services/BrowserStorageService.js'\nimport logger from '../logger.js'\n\nexport const browserStorageKey = 'unsupported-browser-ignore'\nconst redirectPath = generateUrl('/unsupported')\n\nconst isBrowserOverridden = browserStorage.getItem(browserStorageKey) === 'true'\n\n/**\n * Test the current browser user agent against our official browserslist config\n * and redirect if unsupported\n */\nexport const testSupportedBrowser = function() {\n\tif (supportedBrowsersRegExp.test(navigator.userAgent)) {\n\t\tlogger.debug('this browser is officially supported ! 🚀')\n\t\treturn\n\t}\n\n\t// If incompatible BUT ignored, let's keep going\n\tif (isBrowserOverridden) {\n\t\tlogger.debug('this browser is NOT supported but has been manually overridden ! ⚠️')\n\t\treturn\n\t}\n\n\t// If incompatible, NOT overridden AND NOT already on the warning page,\n\t// redirect to the unsupported warning page\n\tif (window.location.pathname.indexOf(redirectPath) === -1) {\n\t\tconst redirectUrl = window.location.href.replace(window.location.origin, '')\n\t\tconst base64Param = Buffer.from(redirectUrl).toString('base64')\n\t\thistory.pushState(null, null, `${redirectPath}?redirect_url=${base64Param}`)\n\t\twindow.location.reload()\n\t}\n}\n"," <!--\n - @copyright 2022 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<template>\n\t<div class=\"content-unsupported-browser guest-box\">\n\t\t<NcEmptyContent>\n\t\t\t{{ t('core', 'This browser is not supported') }}\n\t\t\t<template #icon>\n\t\t\t\t<Web />\n\t\t\t</template>\n\t\t\t<template #action>\n\t\t\t\t<div>\n\t\t\t\t\t<h2>\n\t\t\t\t\t\t{{ t('core', 'Your browser is not supported. Please upgrade to a newer version or a supported one.') }}\n\t\t\t\t\t</h2>\n\t\t\t\t\t<NcButton class=\"content-unsupported-browser__continue\" type=\"primary\" @click=\"forceBrowsing\">\n\t\t\t\t\t\t{{ t('core', 'Continue with this unsupported browser') }}\n\t\t\t\t\t</NcButton>\n\t\t\t\t</div>\n\n\t\t\t\t<ul class=\"content-unsupported-browser__list\">\n\t\t\t\t\t<h3>{{ t('core', 'Supported versions') }}</h3>\n\t\t\t\t\t<li v-for=\"browser in formattedBrowsersList\" :key=\"browser\">\n\t\t\t\t\t\t{{ browser }}\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t</div>\n</template>\n\n<script>\nimport { generateUrl } from '@nextcloud/router'\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport NcEmptyContent from '@nextcloud/vue/dist/Components/NcEmptyContent.js'\nimport Web from 'vue-material-design-icons/Web.vue'\n\nimport { browserStorageKey } from '../utils/RedirectUnsupportedBrowsers.js'\nimport { supportedBrowsers } from '../services/BrowsersListService.js'\nimport browserStorage from '../services/BrowserStorageService.js'\nimport logger from '../logger.js'\n\nlogger.debug('Supported browsers', { supportedBrowsers })\n\nexport default {\n\tname: 'UnsupportedBrowser',\n\tcomponents: {\n\t\tWeb,\n\t\tNcButton,\n\t\tNcEmptyContent,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tagents: {},\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tisMobile() {\n\t\t\treturn /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)\n\t\t},\n\n\t\t/**\n\t\t * Filter out or include mobile/desktop browsers depending\n\t\t * on the current user platform/device\n\t\t */\n\t\tfilteredSupportedBrowsers() {\n\t\t\treturn supportedBrowsers.filter(browser => {\n\t\t\t\tif (!browser) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tif (this.isMobile) {\n\t\t\t\t\treturn this.isMobileBrowser(browser)\n\t\t\t\t}\n\t\t\t\treturn !this.isMobileBrowser(browser)\n\t\t\t})\n\t\t},\n\n\t\tformattedBrowsersList() {\n\t\t\tconst list = {}\n\n\t\t\t// supportedBrowsers is generated by webpack at compilation time\n\t\t\tthis.filteredSupportedBrowsers.forEach(browser => {\n\t\t\t\tconst [id, version] = browser.split(' ')\n\t\t\t\tif (!list[id] || list[id] < parseFloat(version, 10)) {\n\t\t\t\t\tlist[id] = parseFloat(version, 10)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\treturn Object.keys(list).map(id => {\n\t\t\t\tif (!this.agents[id]?.browser) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\n\t\t\t\tconst version = list[id]\n\t\t\t\tconst name = this.agents[id]?.browser\n\t\t\t\treturn this.t('core', '{name} version {version} and above', {\n\t\t\t\t\tname, version,\n\t\t\t\t})\n\t\t\t}).filter(entry => entry !== null)\n\t\t},\n\t},\n\n\tasync beforeMount() {\n\t\t// Dynamic load big list of user agents\n\t\t// eslint-disable-next-line n/no-extraneous-import\n\t\tconst { agents } = await import('caniuse-lite')\n\t\tthis.agents = agents\n\t},\n\n\tmethods: {\n\t\tt,\n\t\tn,\n\n\t\t// Set the flag allowing this browser and redirect to home\n\t\tforceBrowsing() {\n\t\t\tbrowserStorage.setItem(browserStorageKey, true)\n\n\t\t\t// Redirect if there is the data\n\t\t\tconst urlParams = new URLSearchParams(window.location.search)\n\t\t\tif (urlParams.has('redirect_url')) {\n\t\t\t\tconst redirectPath = Buffer.from(urlParams.get('redirect_url'), 'base64').toString() || '/'\n\t\t\t\tif (redirectPath.startsWith('/')) {\n\t\t\t\t\twindow.location = generateUrl(redirectPath)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\twindow.location = generateUrl('/')\n\t\t},\n\n\t\t/**\n\t\t * Detect if the browserslist browser is a mobile one\n\t\t * https://github.com/browserslist/browserslist#query-composition\n\t\t *\n\t\t * @param {string} browser a valid browserlist browser. e.g `and_chr 90`\n\t\t */\n\t\tisMobileBrowser(browser) {\n\t\t\tbrowser = browser.toLowerCase()\n\t\t\treturn browser.includes('and_')\n\t\t\t\t|| browser.includes('android')\n\t\t\t\t|| browser.includes('ios_')\n\t\t\t\t|| browser.includes('mobile')\n\t\t\t\t|| browser.includes('_mob')\n\t\t\t\t|| browser.includes('samsung')\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$spacing: 30px;\n\n.content-unsupported-browser {\n\tdisplay: flex;\n\tjustify-content: center;\n\twidth: 400px;\n\tmax-width: calc(90vw - 2 * $spacing);\n\tmargin: auto;\n\tpadding: $spacing;\n\n\t.empty-content {\n\t\tmargin: 0;\n\t\t&::v-deep .empty-content__icon {\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t&__continue {\n\t\tdisplay: block;\n\t\tmargin: $spacing auto;\n\t}\n\n\t&__list {\n\t\tmargin-top: 2 * $spacing;\n\t\tmargin-bottom: $spacing;\n\t\tli {\n\t\t\ttext-align: left;\n\t\t}\n\t}\n}\n\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=style&index=0&id=3c1e6192&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=style&index=0&id=3c1e6192&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UnsupportedBrowser.vue?vue&type=template&id=3c1e6192&scoped=true&\"\nimport script from \"./UnsupportedBrowser.vue?vue&type=script&lang=js&\"\nexport * from \"./UnsupportedBrowser.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UnsupportedBrowser.vue?vue&type=style&index=0&id=3c1e6192&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3c1e6192\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"content-unsupported-browser guest-box\"},[_c('NcEmptyContent',{scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Web')]},proxy:true},{key:\"action\",fn:function(){return [_c('div',[_c('h2',[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Your browser is not supported. Please upgrade to a newer version or a supported one.'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{staticClass:\"content-unsupported-browser__continue\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.forceBrowsing}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Continue with this unsupported browser'))+\"\\n\\t\\t\\t\\t\")])],1),_vm._v(\" \"),_c('ul',{staticClass:\"content-unsupported-browser__list\"},[_c('h3',[_vm._v(_vm._s(_vm.t('core', 'Supported versions')))]),_vm._v(\" \"),_vm._l((_vm.formattedBrowsersList),function(browser){return _c('li',{key:browser},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(browser)+\"\\n\\t\\t\\t\\t\")])})],2)]},proxy:true}])},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('core', 'This browser is not supported'))+\"\\n\\t\\t\")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport Vue from 'vue'\n\nimport { browserStorageKey } from './utils/RedirectUnsupportedBrowsers.js'\nimport browserStorage from './services/BrowserStorageService.js'\nimport UnsupportedBrowser from './views/UnsupportedBrowser.vue'\n\n// If the ignore token is set, redirect\nif (browserStorage.getItem(browserStorageKey) === 'true') {\n\twindow.location = generateUrl('/')\n}\n\nexport default new Vue({\n\tel: '#unsupported-browser',\n\t// eslint-disable-next-line vue/match-component-file-name\n\tname: 'UnsupportedBrowserRoot',\n\trender: h => h(UnsupportedBrowser),\n})\n","var BrowserslistError = require('./error')\n\nfunction noop() {}\n\nmodule.exports = {\n loadQueries: function loadQueries() {\n throw new BrowserslistError(\n 'Sharable configs are not supported in client-side build of Browserslist'\n )\n },\n\n getStat: function getStat(opts) {\n return opts.stats\n },\n\n loadConfig: function loadConfig(opts) {\n if (opts.config) {\n throw new BrowserslistError(\n 'Browserslist config are not supported in client-side build'\n )\n }\n },\n\n loadCountry: function loadCountry() {\n throw new BrowserslistError(\n 'Country statistics are not supported ' +\n 'in client-side build of Browserslist'\n )\n },\n\n loadFeature: function loadFeature() {\n throw new BrowserslistError(\n 'Supports queries are not available in client-side build of Browserslist'\n )\n },\n\n currentNode: function currentNode(resolve, context) {\n return resolve(['maintained node versions'], context)[0]\n },\n\n parseConfig: noop,\n\n readConfig: noop,\n\n findConfig: noop,\n\n clearCaches: noop,\n\n oldDataWarning: noop,\n\n env: {}\n}\n","function BrowserslistError(message) {\n this.name = 'BrowserslistError'\n this.message = message\n this.browserslist = true\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, BrowserslistError)\n }\n}\n\nBrowserslistError.prototype = Error.prototype\n\nmodule.exports = BrowserslistError\n","var jsReleases = require('node-releases/data/processed/envs.json')\nvar agents = require('caniuse-lite/dist/unpacker/agents').agents\nvar jsEOL = require('node-releases/data/release-schedule/release-schedule.json')\nvar path = require('path')\nvar e2c = require('electron-to-chromium/versions')\n\nvar BrowserslistError = require('./error')\nvar parse = require('./parse')\nvar env = require('./node') // Will load browser.js in webpack\n\nvar YEAR = 365.259641 * 24 * 60 * 60 * 1000\nvar ANDROID_EVERGREEN_FIRST = '37'\nvar OP_MOB_BLINK_FIRST = 14\n\n// Helpers\n\nfunction isVersionsMatch(versionA, versionB) {\n return (versionA + '.').indexOf(versionB + '.') === 0\n}\n\nfunction isEolReleased(name) {\n var version = name.slice(1)\n return browserslist.nodeVersions.some(function (i) {\n return isVersionsMatch(i, version)\n })\n}\n\nfunction normalize(versions) {\n return versions.filter(function (version) {\n return typeof version === 'string'\n })\n}\n\nfunction normalizeElectron(version) {\n var versionToUse = version\n if (version.split('.').length === 3) {\n versionToUse = version.split('.').slice(0, -1).join('.')\n }\n return versionToUse\n}\n\nfunction nameMapper(name) {\n return function mapName(version) {\n return name + ' ' + version\n }\n}\n\nfunction getMajor(version) {\n return parseInt(version.split('.')[0])\n}\n\nfunction getMajorVersions(released, number) {\n if (released.length === 0) return []\n var majorVersions = uniq(released.map(getMajor))\n var minimum = majorVersions[majorVersions.length - number]\n if (!minimum) {\n return released\n }\n var selected = []\n for (var i = released.length - 1; i >= 0; i--) {\n if (minimum > getMajor(released[i])) break\n selected.unshift(released[i])\n }\n return selected\n}\n\nfunction uniq(array) {\n var filtered = []\n for (var i = 0; i < array.length; i++) {\n if (filtered.indexOf(array[i]) === -1) filtered.push(array[i])\n }\n return filtered\n}\n\nfunction fillUsage(result, name, data) {\n for (var i in data) {\n result[name + ' ' + i] = data[i]\n }\n}\n\nfunction generateFilter(sign, version) {\n version = parseFloat(version)\n if (sign === '>') {\n return function (v) {\n return parseFloat(v) > version\n }\n } else if (sign === '>=') {\n return function (v) {\n return parseFloat(v) >= version\n }\n } else if (sign === '<') {\n return function (v) {\n return parseFloat(v) < version\n }\n } else {\n return function (v) {\n return parseFloat(v) <= version\n }\n }\n}\n\nfunction generateSemverFilter(sign, version) {\n version = version.split('.').map(parseSimpleInt)\n version[1] = version[1] || 0\n version[2] = version[2] || 0\n if (sign === '>') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) > 0\n }\n } else if (sign === '>=') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) >= 0\n }\n } else if (sign === '<') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) > 0\n }\n } else {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) >= 0\n }\n }\n}\n\nfunction parseSimpleInt(x) {\n return parseInt(x)\n}\n\nfunction compare(a, b) {\n if (a < b) return -1\n if (a > b) return +1\n return 0\n}\n\nfunction compareSemver(a, b) {\n return (\n compare(parseInt(a[0]), parseInt(b[0])) ||\n compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) ||\n compare(parseInt(a[2] || '0'), parseInt(b[2] || '0'))\n )\n}\n\n// this follows the npm-like semver behavior\nfunction semverFilterLoose(operator, range) {\n range = range.split('.').map(parseSimpleInt)\n if (typeof range[1] === 'undefined') {\n range[1] = 'x'\n }\n // ignore any patch version because we only return minor versions\n // range[2] = 'x'\n switch (operator) {\n case '<=':\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) <= 0\n }\n case '>=':\n default:\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) >= 0\n }\n }\n}\n\n// this follows the npm-like semver behavior\nfunction compareSemverLoose(version, range) {\n if (version[0] !== range[0]) {\n return version[0] < range[0] ? -1 : +1\n }\n if (range[1] === 'x') {\n return 0\n }\n if (version[1] !== range[1]) {\n return version[1] < range[1] ? -1 : +1\n }\n return 0\n}\n\nfunction resolveVersion(data, version) {\n if (data.versions.indexOf(version) !== -1) {\n return version\n } else if (browserslist.versionAliases[data.name][version]) {\n return browserslist.versionAliases[data.name][version]\n } else {\n return false\n }\n}\n\nfunction normalizeVersion(data, version) {\n var resolved = resolveVersion(data, version)\n if (resolved) {\n return resolved\n } else if (data.versions.length === 1) {\n return data.versions[0]\n } else {\n return false\n }\n}\n\nfunction filterByYear(since, context) {\n since = since / 1000\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var versions = Object.keys(data.releaseDate).filter(function (v) {\n var date = data.releaseDate[v]\n return date !== null && date >= since\n })\n return selected.concat(versions.map(nameMapper(data.name)))\n }, [])\n}\n\nfunction cloneData(data) {\n return {\n name: data.name,\n versions: data.versions,\n released: data.released,\n releaseDate: data.releaseDate\n }\n}\n\nfunction byName(name, context) {\n name = name.toLowerCase()\n name = browserslist.aliases[name] || name\n if (context.mobileToDesktop && browserslist.desktopNames[name]) {\n var desktop = browserslist.data[browserslist.desktopNames[name]]\n if (name === 'android') {\n return normalizeAndroidData(cloneData(browserslist.data[name]), desktop)\n } else {\n var cloned = cloneData(desktop)\n cloned.name = name\n return cloned\n }\n }\n return browserslist.data[name]\n}\n\nfunction normalizeAndroidVersions(androidVersions, chromeVersions) {\n var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST)\n return androidVersions\n .filter(function (version) {\n return /^(?:[2-4]\\.|[34]$)/.test(version)\n })\n .concat(chromeVersions.slice(iFirstEvergreen))\n}\n\nfunction normalizeAndroidData(android, chrome) {\n android.released = normalizeAndroidVersions(android.released, chrome.released)\n android.versions = normalizeAndroidVersions(android.versions, chrome.versions)\n android.released.forEach(function (v) {\n if (android.releaseDate[v] === undefined) {\n android.releaseDate[v] = chrome.releaseDate[v]\n }\n })\n return android\n}\n\nfunction checkName(name, context) {\n var data = byName(name, context)\n if (!data) throw new BrowserslistError('Unknown browser ' + name)\n return data\n}\n\nfunction unknownQuery(query) {\n return new BrowserslistError(\n 'Unknown browser query `' +\n query +\n '`. ' +\n 'Maybe you are using old Browserslist or made typo in query.'\n )\n}\n\n// Adjusts last X versions queries for some mobile browsers,\n// where caniuse data jumps from a legacy version to the latest\nfunction filterJumps(list, name, nVersions, context) {\n var jump = 1\n switch (name) {\n case 'android':\n if (context.mobileToDesktop) return list\n var released = browserslist.data.chrome.released\n jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST)\n break\n case 'op_mob':\n var latest = browserslist.data.op_mob.released.slice(-1)[0]\n jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1\n break\n default:\n return list\n }\n if (nVersions <= jump) {\n return list.slice(-1)\n }\n return list.slice(jump - 1 - nVersions)\n}\n\nfunction isSupported(flags) {\n return (\n typeof flags === 'string' &&\n (flags.indexOf('y') >= 0 || flags.indexOf('a') >= 0)\n )\n}\n\nfunction resolve(queries, context) {\n return parse(QUERIES, queries).reduce(function (result, node, index) {\n if (node.not && index === 0) {\n throw new BrowserslistError(\n 'Write any browsers query (for instance, `defaults`) ' +\n 'before `' +\n node.query +\n '`'\n )\n }\n var type = QUERIES[node.type]\n var array = type.select.call(browserslist, context, node).map(function (j) {\n var parts = j.split(' ')\n if (parts[1] === '0') {\n return parts[0] + ' ' + byName(parts[0], context).versions[0]\n } else {\n return j\n }\n })\n\n if (node.compose === 'and') {\n if (node.not) {\n return result.filter(function (j) {\n return array.indexOf(j) === -1\n })\n } else {\n return result.filter(function (j) {\n return array.indexOf(j) !== -1\n })\n }\n } else {\n if (node.not) {\n var filter = {}\n array.forEach(function (j) {\n filter[j] = true\n })\n return result.filter(function (j) {\n return !filter[j]\n })\n }\n return result.concat(array)\n }\n }, [])\n}\n\nfunction prepareOpts(opts) {\n if (typeof opts === 'undefined') opts = {}\n\n if (typeof opts.path === 'undefined') {\n opts.path = path.resolve ? path.resolve('.') : '.'\n }\n\n return opts\n}\n\nfunction prepareQueries(queries, opts) {\n if (typeof queries === 'undefined' || queries === null) {\n var config = browserslist.loadConfig(opts)\n if (config) {\n queries = config\n } else {\n queries = browserslist.defaults\n }\n }\n\n return queries\n}\n\nfunction checkQueries(queries) {\n if (!(typeof queries === 'string' || Array.isArray(queries))) {\n throw new BrowserslistError(\n 'Browser queries must be an array or string. Got ' + typeof queries + '.'\n )\n }\n}\n\nvar cache = {}\n\nfunction browserslist(queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n\n var context = {\n ignoreUnknownVersions: opts.ignoreUnknownVersions,\n dangerousExtend: opts.dangerousExtend,\n mobileToDesktop: opts.mobileToDesktop,\n path: opts.path,\n env: opts.env\n }\n\n env.oldDataWarning(browserslist.data)\n var stats = env.getStat(opts, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n\n var cacheKey = JSON.stringify([queries, context])\n if (cache[cacheKey]) return cache[cacheKey]\n\n var result = uniq(resolve(queries, context)).sort(function (name1, name2) {\n name1 = name1.split(' ')\n name2 = name2.split(' ')\n if (name1[0] === name2[0]) {\n // assumptions on caniuse data\n // 1) version ranges never overlaps\n // 2) if version is not a range, it never contains `-`\n var version1 = name1[1].split('-')[0]\n var version2 = name2[1].split('-')[0]\n return compareSemver(version2.split('.'), version1.split('.'))\n } else {\n return compare(name1[0], name2[0])\n }\n })\n if (!env.env.BROWSERSLIST_DISABLE_CACHE) {\n cache[cacheKey] = result\n }\n return result\n}\n\nbrowserslist.parse = function (queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n return parse(QUERIES, queries)\n}\n\n// Will be filled by Can I Use data below\nbrowserslist.cache = {}\nbrowserslist.data = {}\nbrowserslist.usage = {\n global: {},\n custom: null\n}\n\n// Default browsers query\nbrowserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead']\n\n// Browser names aliases\nbrowserslist.aliases = {\n fx: 'firefox',\n ff: 'firefox',\n ios: 'ios_saf',\n explorer: 'ie',\n blackberry: 'bb',\n explorermobile: 'ie_mob',\n operamini: 'op_mini',\n operamobile: 'op_mob',\n chromeandroid: 'and_chr',\n firefoxandroid: 'and_ff',\n ucandroid: 'and_uc',\n qqandroid: 'and_qq'\n}\n\n// Can I Use only provides a few versions for some browsers (e.g. and_chr).\n// Fallback to a similar browser for unknown versions\n// Note op_mob is not included as its chromium versions are not in sync with Opera desktop\nbrowserslist.desktopNames = {\n and_chr: 'chrome',\n and_ff: 'firefox',\n ie_mob: 'ie',\n android: 'chrome' // has extra processing logic\n}\n\n// Aliases to work with joined versions like `ios_saf 7.0-7.1`\nbrowserslist.versionAliases = {}\n\nbrowserslist.clearCaches = env.clearCaches\nbrowserslist.parseConfig = env.parseConfig\nbrowserslist.readConfig = env.readConfig\nbrowserslist.findConfig = env.findConfig\nbrowserslist.loadConfig = env.loadConfig\n\nbrowserslist.coverage = function (browsers, stats) {\n var data\n if (typeof stats === 'undefined') {\n data = browserslist.usage.global\n } else if (stats === 'my stats') {\n var opts = {}\n opts.path = path.resolve ? path.resolve('.') : '.'\n var customStats = env.getStat(opts)\n if (!customStats) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n data = {}\n for (var browser in customStats) {\n fillUsage(data, browser, customStats[browser])\n }\n } else if (typeof stats === 'string') {\n if (stats.length > 2) {\n stats = stats.toLowerCase()\n } else {\n stats = stats.toUpperCase()\n }\n env.loadCountry(browserslist.usage, stats, browserslist.data)\n data = browserslist.usage[stats]\n } else {\n if ('dataByBrowser' in stats) {\n stats = stats.dataByBrowser\n }\n data = {}\n for (var name in stats) {\n for (var version in stats[name]) {\n data[name + ' ' + version] = stats[name][version]\n }\n }\n }\n\n return browsers.reduce(function (all, i) {\n var usage = data[i]\n if (usage === undefined) {\n usage = data[i.replace(/ \\S+$/, ' 0')]\n }\n return all + (usage || 0)\n }, 0)\n}\n\nfunction nodeQuery(context, node) {\n var matched = browserslist.nodeVersions.filter(function (i) {\n return isVersionsMatch(i, node.version)\n })\n if (matched.length === 0) {\n if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of Node.js'\n )\n }\n }\n return ['node ' + matched[matched.length - 1]]\n}\n\nfunction sinceQuery(context, node) {\n var year = parseInt(node.year)\n var month = parseInt(node.month || '01') - 1\n var day = parseInt(node.day || '01')\n return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context)\n}\n\nfunction coverQuery(context, node) {\n var coverage = parseFloat(node.coverage)\n var usage = browserslist.usage.global\n if (node.place) {\n if (node.place.match(/^my\\s+stats$/i)) {\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n usage = context.customUsage\n } else {\n var place\n if (node.place.length === 2) {\n place = node.place.toUpperCase()\n } else {\n place = node.place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n usage = browserslist.usage[place]\n }\n }\n var versions = Object.keys(usage).sort(function (a, b) {\n return usage[b] - usage[a]\n })\n var coveraged = 0\n var result = []\n var version\n for (var i = 0; i < versions.length; i++) {\n version = versions[i]\n if (usage[version] === 0) break\n coveraged += usage[version]\n result.push(version)\n if (coveraged >= coverage) break\n }\n return result\n}\n\nvar QUERIES = {\n last_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = getMajorVersions(data.released, node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.released.slice(-node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_electron_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var validVersions = getMajorVersions(Object.keys(e2c), node.versions)\n return validVersions.map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return getMajorVersions(browserslist.nodeVersions, node.versions).map(\n function (version) {\n return 'node ' + version\n }\n )\n }\n },\n last_browser_major_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var validVersions = getMajorVersions(data.released, node.versions)\n var list = validVersions.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n last_electron_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(e2c)\n .slice(-node.versions)\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+versions?$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .slice(-node.versions)\n .map(function (version) {\n return 'node ' + version\n })\n }\n },\n last_browser_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var list = data.released.slice(-node.versions).map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n unreleased_versions: {\n matches: [],\n regexp: /^unreleased\\s+versions$/i,\n select: function (context) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.versions.filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n list = list.map(nameMapper(data.name))\n return selected.concat(list)\n }, [])\n }\n },\n unreleased_electron_versions: {\n matches: [],\n regexp: /^unreleased\\s+electron\\s+versions?$/i,\n select: function () {\n return []\n }\n },\n unreleased_browser_versions: {\n matches: ['browser'],\n regexp: /^unreleased\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n return data.versions\n .filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n .map(nameMapper(data.name))\n }\n },\n last_years: {\n matches: ['years'],\n regexp: /^last\\s+(\\d*.?\\d+)\\s+years?$/i,\n select: function (context, node) {\n return filterByYear(Date.now() - YEAR * node.years, context)\n }\n },\n since_y: {\n matches: ['year'],\n regexp: /^since (\\d+)$/i,\n select: sinceQuery\n },\n since_y_m: {\n matches: ['year', 'month'],\n regexp: /^since (\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n since_y_m_d: {\n matches: ['year', 'month', 'day'],\n regexp: /^since (\\d+)-(\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n popularity: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var usage = browserslist.usage.global\n return Object.keys(usage).reduce(function (result, version) {\n if (node.sign === '>') {\n if (usage[version] > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (usage[version] < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (usage[version] <= popularity) {\n result.push(version)\n }\n } else if (usage[version] >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_my_stats: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+my\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_config_stats: {\n matches: ['sign', 'popularity', 'config'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(\\S+)\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var stats = env.loadStat(context, node.config, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_place: {\n matches: ['sign', 'popularity', 'place'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+((alt-)?\\w\\w)$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var place = node.place\n if (place.length === 2) {\n place = place.toUpperCase()\n } else {\n place = place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n var usage = browserslist.usage[place]\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n cover: {\n matches: ['coverage'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%$/i,\n select: coverQuery\n },\n cover_in: {\n matches: ['coverage', 'place'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(my\\s+stats|(alt-)?\\w\\w)$/i,\n select: coverQuery\n },\n supports: {\n matches: ['feature'],\n regexp: /^supports\\s+([\\w-]+)$/,\n select: function (context, node) {\n env.loadFeature(browserslist.cache, node.feature)\n var features = browserslist.cache[node.feature]\n var result = []\n for (var name in features) {\n var data = byName(name, context)\n // Only check desktop when latest released mobile has support\n var checkDesktop =\n context.mobileToDesktop &&\n name in browserslist.desktopNames &&\n isSupported(features[name][data.released.slice(-1)[0]])\n data.versions.forEach(function (version) {\n var flags = features[name][version]\n if (flags === undefined && checkDesktop) {\n flags = features[browserslist.desktopNames[name]][version]\n }\n if (isSupported(flags)) {\n result.push(name + ' ' + version)\n }\n })\n }\n return result\n }\n },\n electron_range: {\n matches: ['from', 'to'],\n regexp: /^electron\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var fromToUse = normalizeElectron(node.from)\n var toToUse = normalizeElectron(node.to)\n var from = parseFloat(node.from)\n var to = parseFloat(node.to)\n if (!e2c[fromToUse]) {\n throw new BrowserslistError('Unknown version ' + from + ' of electron')\n }\n if (!e2c[toToUse]) {\n throw new BrowserslistError('Unknown version ' + to + ' of electron')\n }\n return Object.keys(e2c)\n .filter(function (i) {\n var parsed = parseFloat(i)\n return parsed >= from && parsed <= to\n })\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_range: {\n matches: ['from', 'to'],\n regexp: /^node\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(semverFilterLoose('>=', node.from))\n .filter(semverFilterLoose('<=', node.to))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_range: {\n matches: ['browser', 'from', 'to'],\n regexp: /^(\\w+)\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var from = parseFloat(normalizeVersion(data, node.from) || node.from)\n var to = parseFloat(normalizeVersion(data, node.to) || node.to)\n function filter(v) {\n var parsed = parseFloat(v)\n return parsed >= from && parsed <= to\n }\n return data.released.filter(filter).map(nameMapper(data.name))\n }\n },\n electron_ray: {\n matches: ['sign', 'version'],\n regexp: /^electron\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n return Object.keys(e2c)\n .filter(generateFilter(node.sign, versionToUse))\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_ray: {\n matches: ['sign', 'version'],\n regexp: /^node\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(generateSemverFilter(node.sign, node.version))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_ray: {\n matches: ['browser', 'sign', 'version'],\n regexp: /^(\\w+)\\s*(>=?|<=?)\\s*([\\d.]+)$/,\n select: function (context, node) {\n var version = node.version\n var data = checkName(node.browser, context)\n var alias = browserslist.versionAliases[data.name][version]\n if (alias) version = alias\n return data.released\n .filter(generateFilter(node.sign, version))\n .map(function (v) {\n return data.name + ' ' + v\n })\n }\n },\n firefox_esr: {\n matches: [],\n regexp: /^(firefox|ff|fx)\\s+esr$/i,\n select: function () {\n return ['firefox 102', 'firefox 115']\n }\n },\n opera_mini_all: {\n matches: [],\n regexp: /(operamini|op_mini)\\s+all/i,\n select: function () {\n return ['op_mini all']\n }\n },\n electron_version: {\n matches: ['version'],\n regexp: /^electron\\s+([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n var chrome = e2c[versionToUse]\n if (!chrome) {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of electron'\n )\n }\n return ['chrome ' + chrome]\n }\n },\n node_major_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+)$/i,\n select: nodeQuery\n },\n node_minor_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n node_patch_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n current_node: {\n matches: [],\n regexp: /^current\\s+node$/i,\n select: function (context) {\n return [env.currentNode(resolve, context)]\n }\n },\n maintained_node: {\n matches: [],\n regexp: /^maintained\\s+node\\s+versions$/i,\n select: function (context) {\n var now = Date.now()\n var queries = Object.keys(jsEOL)\n .filter(function (key) {\n return (\n now < Date.parse(jsEOL[key].end) &&\n now > Date.parse(jsEOL[key].start) &&\n isEolReleased(key)\n )\n })\n .map(function (key) {\n return 'node ' + key.slice(1)\n })\n return resolve(queries, context)\n }\n },\n phantomjs_1_9: {\n matches: [],\n regexp: /^phantomjs\\s+1.9$/i,\n select: function () {\n return ['safari 5']\n }\n },\n phantomjs_2_1: {\n matches: [],\n regexp: /^phantomjs\\s+2.1$/i,\n select: function () {\n return ['safari 6']\n }\n },\n browser_version: {\n matches: ['browser', 'version'],\n regexp: /^(\\w+)\\s+(tp|[\\d.]+)$/i,\n select: function (context, node) {\n var version = node.version\n if (/^tp$/i.test(version)) version = 'TP'\n var data = checkName(node.browser, context)\n var alias = normalizeVersion(data, version)\n if (alias) {\n version = alias\n } else {\n if (version.indexOf('.') === -1) {\n alias = version + '.0'\n } else {\n alias = version.replace(/\\.0$/, '')\n }\n alias = normalizeVersion(data, alias)\n if (alias) {\n version = alias\n } else if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + version + ' of ' + node.browser\n )\n }\n }\n return [data.name + ' ' + version]\n }\n },\n browserslist_config: {\n matches: [],\n regexp: /^browserslist config$/i,\n select: function (context) {\n return browserslist(undefined, context)\n }\n },\n extends: {\n matches: ['config'],\n regexp: /^extends (.+)$/i,\n select: function (context, node) {\n return resolve(env.loadQueries(context, node.config), context)\n }\n },\n defaults: {\n matches: [],\n regexp: /^defaults$/i,\n select: function (context) {\n return resolve(browserslist.defaults, context)\n }\n },\n dead: {\n matches: [],\n regexp: /^dead$/i,\n select: function (context) {\n var dead = [\n 'Baidu >= 0',\n 'ie <= 11',\n 'ie_mob <= 11',\n 'bb <= 10',\n 'op_mob <= 12.1',\n 'samsung 4'\n ]\n return resolve(dead, context)\n }\n },\n unknown: {\n matches: [],\n regexp: /^(\\w+)$/i,\n select: function (context, node) {\n if (byName(node.query, context)) {\n throw new BrowserslistError(\n 'Specify versions in Browserslist query for browser ' + node.query\n )\n } else {\n throw unknownQuery(node.query)\n }\n }\n }\n}\n\n// Get and convert Can I Use data\n\n;(function () {\n for (var name in agents) {\n var browser = agents[name]\n browserslist.data[name] = {\n name: name,\n versions: normalize(agents[name].versions),\n released: normalize(agents[name].versions.slice(0, -3)),\n releaseDate: agents[name].release_date\n }\n fillUsage(browserslist.usage.global, name, browser.usage_global)\n\n browserslist.versionAliases[name] = {}\n for (var i = 0; i < browser.versions.length; i++) {\n var full = browser.versions[i]\n if (!full) continue\n\n if (full.indexOf('-') !== -1) {\n var interval = full.split('-')\n for (var j = 0; j < interval.length; j++) {\n browserslist.versionAliases[name][interval[j]] = full\n }\n }\n }\n }\n\n browserslist.nodeVersions = jsReleases.map(function (release) {\n return release.version\n })\n})()\n\nmodule.exports = browserslist\n","var AND_REGEXP = /^\\s+and\\s+(.*)/i\nvar OR_REGEXP = /^(?:,\\s*|\\s+or\\s+)(.*)/i\n\nfunction flatten(array) {\n if (!Array.isArray(array)) return [array]\n return array.reduce(function (a, b) {\n return a.concat(flatten(b))\n }, [])\n}\n\nfunction find(string, predicate) {\n for (var n = 1, max = string.length; n <= max; n++) {\n var parsed = string.substr(-n, n)\n if (predicate(parsed, n, max)) {\n return string.slice(0, -n)\n }\n }\n return ''\n}\n\nfunction matchQuery(all, query) {\n var node = { query: query }\n if (query.indexOf('not ') === 0) {\n node.not = true\n query = query.slice(4)\n }\n\n for (var name in all) {\n var type = all[name]\n var match = query.match(type.regexp)\n if (match) {\n node.type = name\n for (var i = 0; i < type.matches.length; i++) {\n node[type.matches[i]] = match[i + 1]\n }\n return node\n }\n }\n\n node.type = 'unknown'\n return node\n}\n\nfunction matchBlock(all, string, qs) {\n var node\n return find(string, function (parsed, n, max) {\n if (AND_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(AND_REGEXP)[1])\n node.compose = 'and'\n qs.unshift(node)\n return true\n } else if (OR_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(OR_REGEXP)[1])\n node.compose = 'or'\n qs.unshift(node)\n return true\n } else if (n === max) {\n node = matchQuery(all, parsed.trim())\n node.compose = 'or'\n qs.unshift(node)\n return true\n }\n return false\n })\n}\n\nmodule.exports = function parse(all, queries) {\n if (!Array.isArray(queries)) queries = [queries]\n return flatten(\n queries.map(function (block) {\n var qs = []\n do {\n block = matchBlock(all, block, qs)\n } while (block)\n return qs\n })\n )\n}\n","module.exports={A:{A:{K:0,F:0,G:0.0326854,H:0.0435805,A:0,B:0.392224,JC:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"JC\",\"K\",\"F\",\"G\",\"H\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE\",F:{JC:962323200,K:998870400,F:1161129600,G:1237420800,H:1300060800,A:1346716800,B:1381968000}},B:{A:{\"0\":3.56904,C:0,L:0,M:0,I:0.004259,N:0,D:0.004259,O:0.012777,P:0,Q:0.004259,R:0.004259,S:0.004259,T:0.008518,U:0.004259,V:0.004259,W:0.004259,X:0,Y:0.004259,Z:0.004259,a:0,b:0.012777,c:0,d:0,e:0,f:0,g:0,h:0,i:0.008518,j:0,n:0.008518,o:0.008518,p:0.004259,q:0,r:0,s:0.004259,t:0.008518,u:0.012777,v:0.076662,w:0.021295,x:0.029813,y:0.579224,z:0.745325,E:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"C\",\"L\",\"M\",\"I\",\"N\",\"D\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"E\",\"\",\"\",\"\"],E:\"Edge\",F:{\"0\":1685664000,C:1438128000,L:1447286400,M:1470096000,I:1491868800,N:1508198400,D:1525046400,O:1542067200,P:1579046400,Q:1581033600,R:1586736000,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:1611360000,Y:1614816000,Z:1618358400,a:1622073600,b:1626912000,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,n:1651190400,o:1653955200,p:1655942400,q:1659657600,r:1661990400,s:1664755200,t:1666915200,u:1670198400,v:1673481600,w:1675900800,x:1678665600,y:1680825600,z:1683158400,E:1689897600},D:{C:\"ms\",L:\"ms\",M:\"ms\",I:\"ms\",N:\"ms\",D:\"ms\",O:\"ms\"}},C:{A:{\"0\":1.2564,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,KC:0,zB:0,J:0,K:0,F:0,G:0,H:0,A:0,B:0.008518,C:0,L:0,M:0,I:0,N:0,D:0,O:0,k:0,l:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0.012777,PB:0.004259,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0.051108,YB:0,ZB:0,aB:0,bB:0.004259,cB:0,dB:0,\"0B\":0.004259,eB:0,\"1B\":0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0.004259,mB:0,nB:0,oB:0,pB:0.008518,m:0,qB:0,rB:0,sB:0,tB:0,uB:0.051108,P:0,Q:0,R:0,\"2B\":0,S:0,T:0.017036,U:0,V:0,W:0.008518,X:0.004259,Y:0,Z:0,a:0.012777,b:0,c:0,d:0.004259,e:0,f:0,g:0,h:0,i:0,j:0,n:0,o:0.110734,p:0.012777,q:0,r:0.008518,s:0.004259,t:0.008518,u:0.012777,v:0.012777,w:0.012777,x:0.025554,y:0.055367,z:0.660145,E:0.012777,\"3B\":0,\"4B\":0,LC:0,MC:0},B:\"moz\",C:[\"KC\",\"zB\",\"LC\",\"MC\",\"J\",\"1\",\"K\",\"F\",\"G\",\"H\",\"A\",\"B\",\"C\",\"L\",\"M\",\"I\",\"N\",\"D\",\"O\",\"2\",\"k\",\"l\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"0B\",\"eB\",\"1B\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"m\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"P\",\"Q\",\"R\",\"2B\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"E\",\"3B\",\"4B\",\"\"],E:\"Firefox\",F:{\"0\":1686009600,\"1\":1308614400,\"2\":1357603200,\"3\":1368489600,\"4\":1372118400,\"5\":1375747200,\"6\":1379376000,\"7\":1386633600,\"8\":1391472000,\"9\":1395100800,KC:1161648000,zB:1213660800,LC:1246320000,MC:1264032000,J:1300752000,K:1313452800,F:1317081600,G:1317081600,H:1320710400,A:1324339200,B:1327968000,C:1331596800,L:1335225600,M:1338854400,I:1342483200,N:1346112000,D:1349740800,O:1353628800,k:1361232000,l:1364860800,AB:1398729600,BB:1402358400,CB:1405987200,DB:1409616000,EB:1413244800,FB:1417392000,GB:1421107200,HB:1424736000,IB:1428278400,JB:1431475200,KB:1435881600,LB:1439251200,MB:1442880000,NB:1446508800,OB:1450137600,PB:1453852800,QB:1457395200,RB:1461628800,SB:1465257600,TB:1470096000,UB:1474329600,VB:1479168000,WB:1485216000,XB:1488844800,YB:1492560000,ZB:1497312000,aB:1502150400,bB:1506556800,cB:1510617600,dB:1516665600,\"0B\":1520985600,eB:1525824000,\"1B\":1529971200,fB:1536105600,gB:1540252800,hB:1544486400,iB:1548720000,jB:1552953600,kB:1558396800,lB:1562630400,mB:1567468800,nB:1571788800,oB:1575331200,pB:1578355200,m:1581379200,qB:1583798400,rB:1586304000,sB:1588636800,tB:1591056000,uB:1593475200,P:1595894400,Q:1598313600,R:1600732800,\"2B\":1603152000,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392000,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536000,n:1653955200,o:1656374400,p:1658793600,q:1661212800,r:1663632000,s:1666051200,t:1668470400,u:1670889600,v:1673913600,w:1676332800,x:1678752000,y:1681171200,z:1683590400,E:1688428800,\"3B\":null,\"4B\":null}},D:{A:{\"0\":14.553,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,J:0,K:0,F:0,G:0,H:0,A:0,B:0,C:0,L:0,M:0,I:0,N:0,D:0,O:0,k:0,l:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0.008518,GB:0,HB:0,IB:0,JB:0.017036,KB:0,LB:0.012777,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0.008518,TB:0.017036,UB:0.038331,VB:0.008518,WB:0,XB:0.004259,YB:0.008518,ZB:0,aB:0.004259,bB:0.051108,cB:0,dB:0,\"0B\":0,eB:0.017036,\"1B\":0.012777,fB:0,gB:0.004259,hB:0,iB:0.012777,jB:0.029813,kB:0.008518,lB:0.025554,mB:0.051108,nB:0.04259,oB:0.017036,pB:0.025554,m:0.012777,qB:0.059626,rB:0.059626,sB:0.093698,tB:0.025554,uB:0.038331,P:0.200173,Q:0.051108,R:0.051108,S:0.110734,T:0.029813,U:0.089439,V:0.072403,W:0.089439,X:0.046849,Y:0.038331,Z:0.055367,a:0.089439,b:0.038331,c:0.17036,d:0.034072,e:0.021295,f:0.025554,g:0.025554,h:0.063885,i:0.055367,j:0.046849,n:0.04259,o:0.051108,p:0.268317,q:0.063885,r:0.076662,s:0.051108,t:0.059626,u:0.149065,v:1.96766,w:0.123511,x:0.455713,y:0.630332,z:3.9268,E:0.021295,\"3B\":0.021295,\"4B\":0,NC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"J\",\"1\",\"K\",\"F\",\"G\",\"H\",\"A\",\"B\",\"C\",\"L\",\"M\",\"I\",\"N\",\"D\",\"O\",\"2\",\"k\",\"l\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"0B\",\"eB\",\"1B\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"m\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"E\",\"3B\",\"4B\",\"NC\"],E:\"Chrome\",F:{\"0\":1685404800,\"1\":1274745600,\"2\":1332892800,\"3\":1343692800,\"4\":1348531200,\"5\":1352246400,\"6\":1357862400,\"7\":1361404800,\"8\":1364428800,\"9\":1369094400,J:1264377600,K:1283385600,F:1287619200,G:1291248000,H:1296777600,A:1299542400,B:1303862400,C:1307404800,L:1312243200,M:1316131200,I:1316131200,N:1319500800,D:1323734400,O:1328659200,k:1337040000,l:1340668800,AB:1374105600,BB:1376956800,CB:1384214400,DB:1389657600,EB:1392940800,FB:1397001600,GB:1400544000,HB:1405468800,IB:1409011200,JB:1412640000,KB:1416268800,LB:1421798400,MB:1425513600,NB:1429401600,OB:1432080000,PB:1437523200,QB:1441152000,RB:1444780800,SB:1449014400,TB:1453248000,UB:1456963200,VB:1460592000,WB:1464134400,XB:1469059200,YB:1472601600,ZB:1476230400,aB:1480550400,bB:1485302400,cB:1489017600,dB:1492560000,\"0B\":1496707200,eB:1500940800,\"1B\":1504569600,fB:1508198400,gB:1512518400,hB:1516752000,iB:1520294400,jB:1523923200,kB:1527552000,lB:1532390400,mB:1536019200,nB:1539648000,oB:1543968000,pB:1548720000,m:1552348800,qB:1555977600,rB:1559606400,sB:1564444800,tB:1568073600,uB:1571702400,P:1575936000,Q:1580860800,R:1586304000,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272000,a:1621987200,b:1626739200,c:1630368000,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512000,n:1650931200,o:1653350400,p:1655769600,q:1659398400,r:1661817600,s:1664236800,t:1666656000,u:1669680000,v:1673308800,w:1675728000,x:1678147200,y:1680566400,z:1682985600,E:1689724800,\"3B\":null,\"4B\":null,NC:null}},E:{A:{\"1\":0,J:0,K:0,F:0,G:0,H:0,A:0,B:0,C:0,L:0.025554,M:0.12777,I:0.029813,D:0.008518,OC:0,\"5B\":0,PC:0.008518,QC:0,RC:0,SC:0.102216,\"6B\":0,vB:0.008518,wB:0.038331,\"7B\":0.166101,TC:0.332202,UC:0.055367,\"8B\":0.046849,\"9B\":0.106475,xB:0.191655,AC:0.779397,yB:0.080921,BC:0.25554,CC:0.289612,DC:0.706994,EC:0.498303,FC:2.00599,GC:0.021295,VC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"OC\",\"5B\",\"J\",\"1\",\"PC\",\"K\",\"QC\",\"F\",\"RC\",\"G\",\"H\",\"SC\",\"A\",\"6B\",\"B\",\"vB\",\"C\",\"wB\",\"L\",\"7B\",\"M\",\"TC\",\"I\",\"UC\",\"8B\",\"9B\",\"xB\",\"AC\",\"yB\",\"BC\",\"CC\",\"DC\",\"EC\",\"FC\",\"GC\",\"D\",\"VC\"],E:\"Safari\",F:{\"1\":1275868800,OC:1205798400,\"5B\":1226534400,J:1244419200,PC:1311120000,K:1343174400,QC:1382400000,F:1382400000,RC:1410998400,G:1413417600,H:1443657600,SC:1458518400,A:1474329600,\"6B\":1490572800,B:1505779200,vB:1522281600,C:1537142400,wB:1553472000,L:1568851200,\"7B\":1585008000,M:1600214400,TC:1619395200,I:1632096000,UC:1635292800,\"8B\":1639353600,\"9B\":1647216000,xB:1652745600,AC:1658275200,yB:1662940800,BC:1666569600,CC:1670889600,DC:1674432000,EC:1679875200,FC:1684368000,GC:null,D:null,VC:null}},F:{A:{\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0.008518,H:0,B:0.038331,C:0,I:0,N:0,D:0,O:0,k:0,l:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0.004259,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0.017036,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,m:0,qB:0,rB:0,sB:0,tB:0,uB:0,P:0,Q:0,R:0,\"2B\":0,S:0,T:0,U:0.004259,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0,c:0,d:0,e:0.059626,f:0.012777,g:0.021295,h:0.664404,i:1.29048,j:0.012777,WC:0,XC:0,YC:0,ZC:0,vB:0,HC:0,aC:0,wB:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"H\",\"WC\",\"XC\",\"YC\",\"ZC\",\"B\",\"vB\",\"HC\",\"aC\",\"C\",\"wB\",\"I\",\"N\",\"D\",\"O\",\"2\",\"k\",\"l\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"m\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"P\",\"Q\",\"R\",\"2B\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"\",\"\",\"\"],E:\"Opera\",F:{\"2\":1390867200,\"3\":1401753600,\"4\":1405987200,\"5\":1409616000,\"6\":1413331200,\"7\":1417132800,\"8\":1422316800,\"9\":1425945600,H:1150761600,WC:1223424000,XC:1251763200,YC:1267488000,ZC:1277942400,B:1292457600,vB:1302566400,HC:1309219200,aC:1323129600,C:1323129600,wB:1352073600,I:1372723200,N:1377561600,D:1381104000,O:1386288000,k:1393891200,l:1399334400,AB:1430179200,BB:1433808000,CB:1438646400,DB:1442448000,EB:1445904000,FB:1449100800,GB:1454371200,HB:1457308800,IB:1462320000,JB:1465344000,KB:1470096000,LB:1474329600,MB:1477267200,NB:1481587200,OB:1486425600,PB:1490054400,QB:1494374400,RB:1498003200,SB:1502236800,TB:1506470400,UB:1510099200,VB:1515024000,WB:1517961600,XB:1521676800,YB:1525910400,ZB:1530144000,aB:1534982400,bB:1537833600,cB:1543363200,dB:1548201600,eB:1554768000,fB:1561593600,gB:1566259200,hB:1570406400,iB:1573689600,jB:1578441600,kB:1583971200,lB:1587513600,mB:1592956800,nB:1595894400,oB:1600128000,pB:1603238400,m:1613520000,qB:1612224000,rB:1616544000,sB:1619568000,tB:1623715200,uB:1627948800,P:1631577600,Q:1633392000,R:1635984000,\"2B\":1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152000,Z:1660780800,a:1663113600,b:1668816000,c:1668643200,d:1671062400,e:1675209600,f:1677024000,g:1679529600,h:1681948800,i:1684195200,j:1687219200},D:{H:\"o\",B:\"o\",C:\"o\",WC:\"o\",XC:\"o\",YC:\"o\",ZC:\"o\",vB:\"o\",HC:\"o\",aC:\"o\",wB:\"o\"}},G:{A:{G:0,D:0.0227641,\"5B\":0,bC:0,IC:0.00303522,cC:0.00303522,dC:0.00455283,eC:0.0121409,fC:0.00455283,gC:0.00910566,hC:0.0440107,iC:0.00455283,jC:0.062222,kC:0.0303522,lC:0.0197289,mC:0.0166937,nC:0.321733,oC:0.00910566,pC:0.00910566,qC:0.0227641,rC:0.0773981,sC:0.20336,tC:0.374849,uC:0.119891,\"8B\":0.141138,\"9B\":0.160867,xB:0.239782,AC:0.582762,yB:0.648019,BC:1.23837,CC:0.661678,DC:1.56617,EC:1.0259,FC:6.55152,GC:0.0637396},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"5B\",\"bC\",\"IC\",\"cC\",\"dC\",\"eC\",\"G\",\"fC\",\"gC\",\"hC\",\"iC\",\"jC\",\"kC\",\"lC\",\"mC\",\"nC\",\"oC\",\"pC\",\"qC\",\"rC\",\"sC\",\"tC\",\"uC\",\"8B\",\"9B\",\"xB\",\"AC\",\"yB\",\"BC\",\"CC\",\"DC\",\"EC\",\"FC\",\"GC\",\"D\",\"\"],E:\"Safari on iOS\",F:{\"5B\":1270252800,bC:1283904000,IC:1299628800,cC:1331078400,dC:1359331200,eC:1394409600,G:1410912000,fC:1413763200,gC:1442361600,hC:1458518400,iC:1473724800,jC:1490572800,kC:1505779200,lC:1522281600,mC:1537142400,nC:1553472000,oC:1568851200,pC:1572220800,qC:1580169600,rC:1585008000,sC:1600214400,tC:1619395200,uC:1632096000,\"8B\":1639353600,\"9B\":1647216000,xB:1652659200,AC:1658275200,yB:1662940800,BC:1666569600,CC:1670889600,DC:1674432000,EC:1679875200,FC:1684368000,GC:null,D:null}},H:{A:{vC:0.956597},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"vC\",\"\",\"\",\"\"],E:\"Opera Mini\",F:{vC:1426464000}},I:{A:{zB:0,J:0.0252848,E:0,wC:0,xC:0.00842828,yC:0,zC:0.0168566,IC:0.092711,\"0C\":0,\"1C\":0.252848},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"wC\",\"xC\",\"yC\",\"zB\",\"J\",\"zC\",\"IC\",\"0C\",\"1C\",\"E\",\"\",\"\",\"\"],E:\"Android Browser\",F:{wC:1256515200,xC:1274313600,yC:1291593600,zB:1298332800,J:1318896000,zC:1341792000,IC:1374624000,\"0C\":1386547200,\"1C\":1401667200,E:1690243200}},J:{A:{F:0,A:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"F\",\"A\",\"\",\"\",\"\"],E:\"Blackberry Browser\",F:{F:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,m:0,vB:0,HC:0,wB:0},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"vB\",\"HC\",\"C\",\"wB\",\"m\",\"\",\"\",\"\"],E:\"Opera Mobile\",F:{A:1287100800,B:1300752000,vB:1314835200,HC:1318291200,C:1330300800,wB:1349740800,m:1673827200},D:{m:\"webkit\"}},L:{A:{E:38.2012},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"E\",\"\",\"\",\"\"],E:\"Chrome for Android\",F:{E:1690243200}},M:{A:{E:0.281309},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"E\",\"\",\"\",\"\"],E:\"Firefox for Android\",F:{E:1688428800}},N:{A:{A:0,B:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE Mobile\",F:{A:1340150400,B:1353456000}},O:{A:{xB:1.04486},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"xB\",\"\",\"\",\"\"],E:\"UC Browser for Android\",F:{xB:1687132800},D:{xB:\"webkit\"}},P:{A:{J:0.156242,k:0.229156,l:1.74991,\"2C\":0,\"3C\":0,\"4C\":0.0520808,\"5C\":0,\"6C\":0,\"6B\":0,\"7C\":0.0208323,\"8C\":0,\"9C\":0.0208323,AD:0.0208323,BD:0.0104162,yB:0.0416646,CD:0.0416646,DD:0.0416646,ED:0.0833293},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"J\",\"2C\",\"3C\",\"4C\",\"5C\",\"6C\",\"6B\",\"7C\",\"8C\",\"9C\",\"AD\",\"BD\",\"yB\",\"CD\",\"DD\",\"ED\",\"k\",\"l\",\"\",\"\",\"\"],E:\"Samsung Internet\",F:{J:1461024000,\"2C\":1481846400,\"3C\":1509408000,\"4C\":1528329600,\"5C\":1546128000,\"6C\":1554163200,\"6B\":1567900800,\"7C\":1582588800,\"8C\":1593475200,\"9C\":1605657600,AD:1618531200,BD:1629072000,yB:1640736000,CD:1651708800,DD:1659657600,ED:1667260800,k:1677369600,l:1684454400}},Q:{A:{\"7B\":0.155007},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"7B\",\"\",\"\",\"\"],E:\"QQ Browser\",F:{\"7B\":1663718400}},R:{A:{FD:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"FD\",\"\",\"\",\"\"],E:\"Baidu Browser\",F:{FD:1663027200}},S:{A:{GD:0.103338,HD:0},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"GD\",\"HD\",\"\",\"\",\"\"],E:\"KaiOS Browser\",F:{GD:1527811200,HD:1631664000}}};\n","module.exports={\"0\":\"114\",\"1\":\"5\",\"2\":\"19\",\"3\":\"22\",\"4\":\"23\",\"5\":\"24\",\"6\":\"25\",\"7\":\"26\",\"8\":\"27\",\"9\":\"28\",A:\"10\",B:\"11\",C:\"12\",D:\"17\",E:\"115\",F:\"7\",G:\"8\",H:\"9\",I:\"15\",J:\"4\",K:\"6\",L:\"13\",M:\"14\",N:\"16\",O:\"18\",P:\"79\",Q:\"80\",R:\"81\",S:\"83\",T:\"84\",U:\"85\",V:\"86\",W:\"87\",X:\"88\",Y:\"89\",Z:\"90\",a:\"91\",b:\"92\",c:\"93\",d:\"94\",e:\"95\",f:\"96\",g:\"97\",h:\"98\",i:\"99\",j:\"100\",k:\"20\",l:\"21\",m:\"73\",n:\"101\",o:\"102\",p:\"103\",q:\"104\",r:\"105\",s:\"106\",t:\"107\",u:\"108\",v:\"109\",w:\"110\",x:\"111\",y:\"112\",z:\"113\",AB:\"29\",BB:\"30\",CB:\"31\",DB:\"32\",EB:\"33\",FB:\"34\",GB:\"35\",HB:\"36\",IB:\"37\",JB:\"38\",KB:\"39\",LB:\"40\",MB:\"41\",NB:\"42\",OB:\"43\",PB:\"44\",QB:\"45\",RB:\"46\",SB:\"47\",TB:\"48\",UB:\"49\",VB:\"50\",WB:\"51\",XB:\"52\",YB:\"53\",ZB:\"54\",aB:\"55\",bB:\"56\",cB:\"57\",dB:\"58\",eB:\"60\",fB:\"62\",gB:\"63\",hB:\"64\",iB:\"65\",jB:\"66\",kB:\"67\",lB:\"68\",mB:\"69\",nB:\"70\",oB:\"71\",pB:\"72\",qB:\"74\",rB:\"75\",sB:\"76\",tB:\"77\",uB:\"78\",vB:\"11.1\",wB:\"12.1\",xB:\"15.5\",yB:\"16.0\",zB:\"3\",\"0B\":\"59\",\"1B\":\"61\",\"2B\":\"82\",\"3B\":\"116\",\"4B\":\"117\",\"5B\":\"3.2\",\"6B\":\"10.1\",\"7B\":\"13.1\",\"8B\":\"15.2-15.3\",\"9B\":\"15.4\",AC:\"15.6\",BC:\"16.1\",CC:\"16.2\",DC:\"16.3\",EC:\"16.4\",FC:\"16.5\",GC:\"16.6\",HC:\"11.5\",IC:\"4.2-4.3\",JC:\"5.5\",KC:\"2\",LC:\"3.5\",MC:\"3.6\",NC:\"118\",OC:\"3.1\",PC:\"5.1\",QC:\"6.1\",RC:\"7.1\",SC:\"9.1\",TC:\"14.1\",UC:\"15.1\",VC:\"TP\",WC:\"9.5-9.6\",XC:\"10.0-10.1\",YC:\"10.5\",ZC:\"10.6\",aC:\"11.6\",bC:\"4.0-4.1\",cC:\"5.0-5.1\",dC:\"6.0-6.1\",eC:\"7.0-7.1\",fC:\"8.1-8.4\",gC:\"9.0-9.2\",hC:\"9.3\",iC:\"10.0-10.2\",jC:\"10.3\",kC:\"11.0-11.2\",lC:\"11.3-11.4\",mC:\"12.0-12.1\",nC:\"12.2-12.5\",oC:\"13.0-13.1\",pC:\"13.2\",qC:\"13.3\",rC:\"13.4-13.7\",sC:\"14.0-14.4\",tC:\"14.5-14.8\",uC:\"15.0-15.1\",vC:\"all\",wC:\"2.1\",xC:\"2.2\",yC:\"2.3\",zC:\"4.1\",\"0C\":\"4.4\",\"1C\":\"4.4.3-4.4.4\",\"2C\":\"5.0-5.4\",\"3C\":\"6.2-6.4\",\"4C\":\"7.2-7.4\",\"5C\":\"8.2\",\"6C\":\"9.2\",\"7C\":\"11.1-11.2\",\"8C\":\"12.0\",\"9C\":\"13.0\",AD:\"14.0\",BD:\"15.0\",CD:\"17.0\",DD:\"18.0\",ED:\"19.0\",FD:\"13.18\",GD:\"2.5\",HD:\"3.0-3.1\"};\n","module.exports={A:\"ie\",B:\"edge\",C:\"firefox\",D:\"chrome\",E:\"safari\",F:\"opera\",G:\"ios_saf\",H:\"op_mini\",I:\"android\",J:\"bb\",K:\"op_mob\",L:\"and_chr\",M:\"and_ff\",N:\"ie_mob\",O:\"and_uc\",P:\"samsung\",Q:\"and_qq\",R:\"baidu\",S:\"kaios\"};\n","'use strict'\n\nconst browsers = require('./browsers').browsers\nconst versions = require('./browserVersions').browserVersions\nconst agentsData = require('../../data/agents')\n\nfunction unpackBrowserVersions(versionsData) {\n return Object.keys(versionsData).reduce((usage, version) => {\n usage[versions[version]] = versionsData[version]\n return usage\n }, {})\n}\n\nmodule.exports.agents = Object.keys(agentsData).reduce((map, key) => {\n let versionsData = agentsData[key]\n map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => {\n if (entry === 'A') {\n data.usage_global = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'C') {\n data.versions = versionsData[entry].reduce((list, version) => {\n if (version === '') {\n list.push(null)\n } else {\n list.push(versions[version])\n }\n return list\n }, [])\n } else if (entry === 'D') {\n data.prefix_exceptions = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'E') {\n data.browser = versionsData[entry]\n } else if (entry === 'F') {\n data.release_date = Object.keys(versionsData[entry]).reduce(\n (map2, key2) => {\n map2[versions[key2]] = versionsData[entry][key2]\n return map2\n },\n {}\n )\n } else {\n // entry is B\n data.prefix = versionsData[entry]\n }\n return data\n }, {})\n return map\n}, {})\n","module.exports.browserVersions = require('../../data/browserVersions')\n","module.exports.browsers = require('../../data/browsers')\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".content-unsupported-browser[data-v-3c1e6192]{display:flex;justify-content:center;width:400px;max-width:calc(90vw - 60px);margin:auto;padding:30px}.content-unsupported-browser .empty-content[data-v-3c1e6192]{margin:0}.content-unsupported-browser .empty-content[data-v-3c1e6192] .empty-content__icon{opacity:1}.content-unsupported-browser__continue[data-v-3c1e6192]{display:block;margin:30px auto}.content-unsupported-browser__list[data-v-3c1e6192]{margin-top:60px;margin-bottom:30px}.content-unsupported-browser__list li[data-v-3c1e6192]{text-align:left}\", \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/views/UnsupportedBrowser.vue\"],\"names\":[],\"mappings\":\"AAGA,8CACC,YAAA,CACA,sBAAA,CACA,WAAA,CACA,2BAAA,CACA,WAAA,CACA,YARS,CAUT,6DACC,QAAA,CACA,kFACC,SAAA,CAIF,wDACC,aAAA,CACA,gBAAA,CAGD,oDACC,eAAA,CACA,kBAxBQ,CAyBR,uDACC,eAAA\",\"sourcesContent\":[\"\\n$spacing: 30px;\\n\\n.content-unsupported-browser {\\n\\tdisplay: flex;\\n\\tjustify-content: center;\\n\\twidth: 400px;\\n\\tmax-width: calc(90vw - 2 * $spacing);\\n\\tmargin: auto;\\n\\tpadding: $spacing;\\n\\n\\t.empty-content {\\n\\t\\tmargin: 0;\\n\\t\\t&::v-deep .empty-content__icon {\\n\\t\\t\\topacity: 1;\\n\\t\\t}\\n\\t}\\n\\n\\t&__continue {\\n\\t\\tdisplay: block;\\n\\t\\tmargin: $spacing auto;\\n\\t}\\n\\n\\t&__list {\\n\\t\\tmargin-top: 2 * $spacing;\\n\\t\\tmargin-bottom: $spacing;\\n\\t\\tli {\\n\\t\\t\\ttext-align: left;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = {\n\t\"0.20\": \"39\",\n\t\"0.21\": \"41\",\n\t\"0.22\": \"41\",\n\t\"0.23\": \"41\",\n\t\"0.24\": \"41\",\n\t\"0.25\": \"42\",\n\t\"0.26\": \"42\",\n\t\"0.27\": \"43\",\n\t\"0.28\": \"43\",\n\t\"0.29\": \"43\",\n\t\"0.30\": \"44\",\n\t\"0.31\": \"45\",\n\t\"0.32\": \"45\",\n\t\"0.33\": \"45\",\n\t\"0.34\": \"45\",\n\t\"0.35\": \"45\",\n\t\"0.36\": \"47\",\n\t\"0.37\": \"49\",\n\t\"1.0\": \"49\",\n\t\"1.1\": \"50\",\n\t\"1.2\": \"51\",\n\t\"1.3\": \"52\",\n\t\"1.4\": \"53\",\n\t\"1.5\": \"54\",\n\t\"1.6\": \"56\",\n\t\"1.7\": \"58\",\n\t\"1.8\": \"59\",\n\t\"2.0\": \"61\",\n\t\"2.1\": \"61\",\n\t\"3.0\": \"66\",\n\t\"3.1\": \"66\",\n\t\"4.0\": \"69\",\n\t\"4.1\": \"69\",\n\t\"4.2\": \"69\",\n\t\"5.0\": \"73\",\n\t\"6.0\": \"76\",\n\t\"6.1\": \"76\",\n\t\"7.0\": \"78\",\n\t\"7.1\": \"78\",\n\t\"7.2\": \"78\",\n\t\"7.3\": \"78\",\n\t\"8.0\": \"80\",\n\t\"8.1\": \"80\",\n\t\"8.2\": \"80\",\n\t\"8.3\": \"80\",\n\t\"8.4\": \"80\",\n\t\"8.5\": \"80\",\n\t\"9.0\": \"83\",\n\t\"9.1\": \"83\",\n\t\"9.2\": \"83\",\n\t\"9.3\": \"83\",\n\t\"9.4\": \"83\",\n\t\"10.0\": \"85\",\n\t\"10.1\": \"85\",\n\t\"10.2\": \"85\",\n\t\"10.3\": \"85\",\n\t\"10.4\": \"85\",\n\t\"11.0\": \"87\",\n\t\"11.1\": \"87\",\n\t\"11.2\": \"87\",\n\t\"11.3\": \"87\",\n\t\"11.4\": \"87\",\n\t\"11.5\": \"87\",\n\t\"12.0\": \"89\",\n\t\"12.1\": \"89\",\n\t\"12.2\": \"89\",\n\t\"13.0\": \"91\",\n\t\"13.1\": \"91\",\n\t\"13.2\": \"91\",\n\t\"13.3\": \"91\",\n\t\"13.4\": \"91\",\n\t\"13.5\": \"91\",\n\t\"13.6\": \"91\",\n\t\"14.0\": \"93\",\n\t\"14.1\": \"93\",\n\t\"14.2\": \"93\",\n\t\"15.0\": \"94\",\n\t\"15.1\": \"94\",\n\t\"15.2\": \"94\",\n\t\"15.3\": \"94\",\n\t\"15.4\": \"94\",\n\t\"15.5\": \"94\",\n\t\"16.0\": \"96\",\n\t\"16.1\": \"96\",\n\t\"16.2\": \"96\",\n\t\"17.0\": \"98\",\n\t\"17.1\": \"98\",\n\t\"17.2\": \"98\",\n\t\"17.3\": \"98\",\n\t\"17.4\": \"98\",\n\t\"18.0\": \"100\",\n\t\"18.1\": \"100\",\n\t\"18.2\": \"100\",\n\t\"18.3\": \"100\",\n\t\"19.0\": \"102\",\n\t\"19.1\": \"102\",\n\t\"20.0\": \"104\",\n\t\"20.1\": \"104\",\n\t\"20.2\": \"104\",\n\t\"20.3\": \"104\",\n\t\"21.0\": \"106\",\n\t\"21.1\": \"106\",\n\t\"21.2\": \"106\",\n\t\"21.3\": \"106\",\n\t\"21.4\": \"106\",\n\t\"22.0\": \"108\",\n\t\"22.1\": \"108\",\n\t\"22.2\": \"108\",\n\t\"22.3\": \"108\",\n\t\"23.0\": \"110\",\n\t\"23.1\": \"110\",\n\t\"23.2\": \"110\",\n\t\"23.3\": \"110\",\n\t\"24.0\": \"112\",\n\t\"24.1\": \"112\",\n\t\"24.2\": \"112\",\n\t\"24.3\": \"112\",\n\t\"24.4\": \"112\",\n\t\"24.5\": \"112\",\n\t\"24.6\": \"112\",\n\t\"25.0\": \"114\",\n\t\"25.1\": \"114\",\n\t\"25.2\": \"114\",\n\t\"25.3\": \"114\",\n\t\"26.0\": \"116\"\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar compatTransforms = require('./transforms');\nvar _transform = require('../transform');\n\nmodule.exports = {\n /**\n * Translates a regexp in new syntax to equivalent regexp in old syntax.\n *\n * @param string|RegExp|AST - regexp\n * @param Array transformsWhitelist - names of the transforms to apply\n */\n transform: function transform(regexp) {\n var transformsWhitelist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var transformToApply = transformsWhitelist.length > 0 ? transformsWhitelist : Object.keys(compatTransforms);\n\n var result = void 0;\n\n // Collect extra data per transform.\n var extra = {};\n\n transformToApply.forEach(function (transformName) {\n\n if (!compatTransforms.hasOwnProperty(transformName)) {\n throw new Error('Unknown compat-transform: ' + transformName + '. ' + 'Available transforms are: ' + Object.keys(compatTransforms).join(', '));\n }\n\n var handler = compatTransforms[transformName];\n\n result = _transform.transform(regexp, handler);\n regexp = result.getAST();\n\n // Collect `extra` transform result.\n if (typeof handler.getExtra === 'function') {\n extra[transformName] = handler.getExtra();\n }\n });\n\n // Set the final extras for all transforms.\n result.setExtra(extra);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * The `RegExpTree` class provides runtime support for `compat-transpiler`\n * module from `regexp-tree`.\n *\n * E.g. it tracks names of the capturing groups, in order to access the\n * names on the matched result.\n *\n * It's a thin-wrapper on top of original regexp.\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar RegExpTree = function () {\n /**\n * Initializes a `RegExpTree` instance.\n *\n * @param RegExp - a regular expression\n *\n * @param Object state:\n *\n * An extra state which may store any related to transformation\n * data, for example, names of the groups.\n *\n * - flags - original flags\n * - groups - names of the groups, and their indices\n * - source - original source\n */\n function RegExpTree(re, _ref) {\n var flags = _ref.flags,\n groups = _ref.groups,\n source = _ref.source;\n\n _classCallCheck(this, RegExpTree);\n\n this._re = re;\n this._groups = groups;\n\n // Original props.\n this.flags = flags;\n this.source = source || re.source;\n this.dotAll = flags.includes('s');\n\n // Inherited directly from `re`.\n this.global = re.global;\n this.ignoreCase = re.ignoreCase;\n this.multiline = re.multiline;\n this.sticky = re.sticky;\n this.unicode = re.unicode;\n }\n\n /**\n * Facade wrapper for RegExp `test` method.\n */\n\n\n _createClass(RegExpTree, [{\n key: 'test',\n value: function test(string) {\n return this._re.test(string);\n }\n\n /**\n * Facade wrapper for RegExp `compile` method.\n */\n\n }, {\n key: 'compile',\n value: function compile(string) {\n return this._re.compile(string);\n }\n\n /**\n * Facade wrapper for RegExp `toString` method.\n */\n\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._toStringResult) {\n this._toStringResult = '/' + this.source + '/' + this.flags;\n }\n return this._toStringResult;\n }\n\n /**\n * Facade wrapper for RegExp `exec` method.\n */\n\n }, {\n key: 'exec',\n value: function exec(string) {\n var result = this._re.exec(string);\n\n if (!this._groups || !result) {\n return result;\n }\n\n result.groups = {};\n\n for (var group in this._groups) {\n var groupNumber = this._groups[group];\n result.groups[group] = result[groupNumber];\n }\n\n return result;\n }\n }]);\n\n return RegExpTree;\n}();\n\nmodule.exports = {\n RegExpTree: RegExpTree\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/./s` to `/[\\0-\\uFFFF]/`.\n */\n\nmodule.exports = {\n\n // Whether `u` flag present. In which case we transform to\n // \\u{10FFFF} instead of \\uFFFF.\n _hasUFlag: false,\n\n // Only run this plugin if we have `s` flag.\n shouldRun: function shouldRun(ast) {\n var shouldRun = ast.flags.includes('s');\n\n if (!shouldRun) {\n return false;\n }\n\n // Strip the `s` flag.\n ast.flags = ast.flags.replace('s', '');\n\n // Whether we have also `u`.\n this._hasUFlag = ast.flags.includes('u');\n\n return true;\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (node.kind !== 'meta' || node.value !== '.') {\n return;\n }\n\n var toValue = '\\\\uFFFF';\n var toSymbol = '\\uFFFF';\n\n if (this._hasUFlag) {\n toValue = '\\\\u{10FFFF}';\n toSymbol = '\\uDBFF\\uDFFF';\n }\n\n path.replace({\n type: 'CharacterClass',\n expressions: [{\n type: 'ClassRange',\n from: {\n type: 'Char',\n value: '\\\\0',\n kind: 'decimal',\n symbol: '\\0'\n },\n to: {\n type: 'Char',\n value: toValue,\n kind: 'unicode',\n symbol: toSymbol\n }\n }]\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/(?<name>a)\\k<name>/` to `/(a)\\1/`.\n */\n\nmodule.exports = {\n // To track the names of the groups, and return them\n // in the transform result state.\n //\n // A map from name to number: {foo: 2, bar: 4}\n _groupNames: {},\n\n /**\n * Initialises the trasnform.\n */\n init: function init() {\n this._groupNames = {};\n },\n\n\n /**\n * Returns extra state, which eventually is returned to\n */\n getExtra: function getExtra() {\n return this._groupNames;\n },\n Group: function Group(path) {\n var node = path.node;\n\n\n if (!node.name) {\n return;\n }\n\n // Record group name.\n this._groupNames[node.name] = node.number;\n\n delete node.name;\n delete node.nameRaw;\n },\n Backreference: function Backreference(path) {\n var node = path.node;\n\n\n if (node.kind !== 'name') {\n return;\n }\n\n node.kind = 'number';\n node.reference = node.number;\n delete node.referenceRaw;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove `x` flag `/foo/x` to `/foo/`.\n *\n * Note: other features of `x` flags (whitespace, comments) are\n * already removed at parsing stage.\n */\n\nmodule.exports = {\n RegExp: function RegExp(_ref) {\n var node = _ref.node;\n\n if (node.flags.includes('x')) {\n node.flags = node.flags.replace('x', '');\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = {\n // \"dotAll\" `s` flag\n dotAll: require('./compat-dotall-s-transform'),\n\n // Named capturing groups.\n namedCapturingGroups: require('./compat-named-capturing-groups-transform'),\n\n // `x` flag\n xFlag: require('./compat-x-flag-transform')\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\nfunction gen(node) {\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n return '/' + gen(node.body) + '/' + node.flags;\n },\n Alternative: function Alternative(node) {\n return (node.expressions || []).map(gen).join('');\n },\n Disjunction: function Disjunction(node) {\n return gen(node.left) + '|' + gen(node.right);\n },\n Group: function Group(node) {\n var expression = gen(node.expression);\n\n if (node.capturing) {\n // A named group.\n if (node.name) {\n return '(?<' + (node.nameRaw || node.name) + '>' + expression + ')';\n }\n\n return '(' + expression + ')';\n }\n\n return '(?:' + expression + ')';\n },\n Backreference: function Backreference(node) {\n switch (node.kind) {\n case 'number':\n return '\\\\' + node.reference;\n case 'name':\n return '\\\\k<' + (node.referenceRaw || node.reference) + '>';\n default:\n throw new TypeError('Unknown Backreference kind: ' + node.kind);\n }\n },\n Assertion: function Assertion(node) {\n switch (node.kind) {\n case '^':\n case '$':\n case '\\\\b':\n case '\\\\B':\n return node.kind;\n\n case 'Lookahead':\n {\n var assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?!' + assertion + ')';\n }\n\n return '(?=' + assertion + ')';\n }\n\n case 'Lookbehind':\n {\n var _assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?<!' + _assertion + ')';\n }\n\n return '(?<=' + _assertion + ')';\n }\n\n default:\n throw new TypeError('Unknown Assertion kind: ' + node.kind);\n }\n },\n CharacterClass: function CharacterClass(node) {\n var expressions = node.expressions.map(gen).join('');\n\n if (node.negative) {\n return '[^' + expressions + ']';\n }\n\n return '[' + expressions + ']';\n },\n ClassRange: function ClassRange(node) {\n return gen(node.from) + '-' + gen(node.to);\n },\n Repetition: function Repetition(node) {\n return '' + gen(node.expression) + gen(node.quantifier);\n },\n Quantifier: function Quantifier(node) {\n var quantifier = void 0;\n var greedy = node.greedy ? '' : '?';\n\n switch (node.kind) {\n case '+':\n case '?':\n case '*':\n quantifier = node.kind;\n break;\n case 'Range':\n // Exact: {1}\n if (node.from === node.to) {\n quantifier = '{' + node.from + '}';\n }\n // Open: {1,}\n else if (!node.to) {\n quantifier = '{' + node.from + ',}';\n }\n // Closed: {1,3}\n else {\n quantifier = '{' + node.from + ',' + node.to + '}';\n }\n break;\n default:\n throw new TypeError('Unknown Quantifier kind: ' + node.kind);\n }\n\n return '' + quantifier + greedy;\n },\n Char: function Char(node) {\n var value = node.value;\n\n switch (node.kind) {\n case 'simple':\n {\n if (node.escaped) {\n return '\\\\' + value;\n }\n return value;\n }\n\n case 'hex':\n case 'unicode':\n case 'oct':\n case 'decimal':\n case 'control':\n case 'meta':\n return value;\n\n default:\n throw new TypeError('Unknown Char kind: ' + node.kind);\n }\n },\n UnicodeProperty: function UnicodeProperty(node) {\n var escapeChar = node.negative ? 'P' : 'p';\n var namePart = void 0;\n\n if (!node.shorthand && !node.binary) {\n namePart = node.name + '=';\n } else {\n namePart = '';\n }\n\n return '\\\\' + escapeChar + '{' + namePart + node.value + '}';\n }\n};\n\nmodule.exports = {\n /**\n * Generates a regexp string from an AST.\n *\n * @param Object ast - an AST node\n */\n generate: gen\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n// DFA minization.\n\n/**\n * Map from state to current set it goes.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar currentTransitionMap = null;\n\n/**\n * Takes a DFA, and returns a minimized version of it\n * compressing some states to groups (using standard, 0-, 1-,\n * 2-, ... N-equivalence algorithm).\n */\nfunction minimize(dfa) {\n var table = dfa.getTransitionTable();\n var allStates = Object.keys(table);\n var alphabet = dfa.getAlphabet();\n var accepting = dfa.getAcceptingStateNumbers();\n\n currentTransitionMap = {};\n\n var nonAccepting = new Set();\n\n allStates.forEach(function (state) {\n state = Number(state);\n var isAccepting = accepting.has(state);\n\n if (isAccepting) {\n currentTransitionMap[state] = accepting;\n } else {\n nonAccepting.add(state);\n currentTransitionMap[state] = nonAccepting;\n }\n });\n\n // ---------------------------------------------------------------------------\n // Step 1: build equivalent sets.\n\n // All [1..N] equivalent sets.\n var all = [\n // 0-equivalent sets.\n [nonAccepting, accepting].filter(function (set) {\n return set.size > 0;\n })];\n\n var current = void 0;\n var previous = void 0;\n\n // Top of the stack is the current list of sets to analyze.\n current = all[all.length - 1];\n\n // Previous set (to check whether we need to stop).\n previous = all[all.length - 2];\n\n // Until we'll not have the same N and N-1 equivalent rows.\n\n var _loop = function _loop() {\n var newTransitionMap = {};\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = current[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _set = _step3.value;\n\n // Handled states for this set.\n var handledStates = {};\n\n var _set2 = _toArray(_set),\n first = _set2[0],\n rest = _set2.slice(1);\n\n handledStates[first] = new Set([first]);\n\n // Have to compare each from the rest states with\n // the already handled states, and see if they are equivalent.\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n restSets: for (var _iterator4 = rest[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var state = _step4.value;\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = Object.keys(handledStates)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var handledState = _step5.value;\n\n // This and some previously handled state are equivalent --\n // just append this state to the same set.\n if (areEquivalent(state, handledState, table, alphabet)) {\n handledStates[handledState].add(state);\n handledStates[state] = handledStates[handledState];\n continue restSets;\n }\n }\n // Else, this state is not equivalent to any of the\n // handled states -- allocate a new set for it.\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n handledStates[state] = new Set([state]);\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n\n // Add these handled states to all states map.\n\n\n Object.assign(newTransitionMap, handledStates);\n }\n\n // Update current transition map for the handled row.\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n currentTransitionMap = newTransitionMap;\n\n var newSets = new Set(Object.keys(newTransitionMap).map(function (state) {\n return newTransitionMap[state];\n }));\n\n all.push([].concat(_toConsumableArray(newSets)));\n\n // Top of the stack is the current.\n current = all[all.length - 1];\n\n // Previous set.\n previous = all[all.length - 2];\n };\n\n while (!sameRow(current, previous)) {\n _loop();\n }\n\n // ---------------------------------------------------------------------------\n // Step 2: build minimized table from the equivalent sets.\n\n // Remap state numbers from sets to index-based.\n var remaped = new Map();\n var idx = 1;\n current.forEach(function (set) {\n return remaped.set(set, idx++);\n });\n\n // Build the minimized table from the calculated equivalent sets.\n var minimizedTable = {};\n\n var minimizedAcceptingStates = new Set();\n\n var updateAcceptingStates = function updateAcceptingStates(set, idx) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = set[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var state = _step.value;\n\n if (accepting.has(state)) {\n minimizedAcceptingStates.add(idx);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = remaped.entries()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var set = _ref2[0];\n var _idx = _ref2[1];\n\n minimizedTable[_idx] = {};\n var _iteratorNormalCompletion6 = true;\n var _didIteratorError6 = false;\n var _iteratorError6 = undefined;\n\n try {\n for (var _iterator6 = alphabet[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var symbol = _step6.value;\n\n updateAcceptingStates(set, _idx);\n\n // Determine original transition for this symbol from the set.\n var originalTransition = void 0;\n var _iteratorNormalCompletion7 = true;\n var _didIteratorError7 = false;\n var _iteratorError7 = undefined;\n\n try {\n for (var _iterator7 = set[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n var originalState = _step7.value;\n\n originalTransition = table[originalState][symbol];\n if (originalTransition) {\n break;\n }\n }\n } catch (err) {\n _didIteratorError7 = true;\n _iteratorError7 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion7 && _iterator7.return) {\n _iterator7.return();\n }\n } finally {\n if (_didIteratorError7) {\n throw _iteratorError7;\n }\n }\n }\n\n if (originalTransition) {\n minimizedTable[_idx][symbol] = remaped.get(currentTransitionMap[originalTransition]);\n }\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n }\n\n // Update the table, and accepting states on the original DFA.\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n dfa.setTransitionTable(minimizedTable);\n dfa.setAcceptingStateNumbers(minimizedAcceptingStates);\n\n return dfa;\n}\n\nfunction sameRow(r1, r2) {\n if (!r2) {\n return false;\n }\n\n if (r1.length !== r2.length) {\n return false;\n }\n\n for (var i = 0; i < r1.length; i++) {\n var s1 = r1[i];\n var s2 = r2[i];\n\n if (s1.size !== s2.size) {\n return false;\n }\n\n if ([].concat(_toConsumableArray(s1)).sort().join(',') !== [].concat(_toConsumableArray(s2)).sort().join(',')) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether two states are N-equivalent, i.e. whether they go\n * to the same set on a symbol.\n */\nfunction areEquivalent(s1, s2, table, alphabet) {\n var _iteratorNormalCompletion8 = true;\n var _didIteratorError8 = false;\n var _iteratorError8 = undefined;\n\n try {\n for (var _iterator8 = alphabet[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {\n var symbol = _step8.value;\n\n if (!goToSameSet(s1, s2, table, symbol)) {\n return false;\n }\n }\n } catch (err) {\n _didIteratorError8 = true;\n _iteratorError8 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion8 && _iterator8.return) {\n _iterator8.return();\n }\n } finally {\n if (_didIteratorError8) {\n throw _iteratorError8;\n }\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether states go to the same set.\n */\nfunction goToSameSet(s1, s2, table, symbol) {\n if (!currentTransitionMap[s1] || !currentTransitionMap[s2]) {\n return false;\n }\n\n var originalTransitionS1 = table[s1][symbol];\n var originalTransitionS2 = table[s2][symbol];\n\n // If no actual transition on this symbol, treat it as positive.\n if (!originalTransitionS1 && !originalTransitionS2) {\n return true;\n }\n\n // Otherwise, check if they are in the same sets.\n return currentTransitionMap[s1].has(originalTransitionS1) && currentTransitionMap[s2].has(originalTransitionS2);\n}\n\nmodule.exports = {\n minimize: minimize\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DFAMinimizer = require('./dfa-minimizer');\n\nvar _require = require('../special-symbols'),\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * DFA is build by converting from NFA (subset construction).\n */\n\n\nvar DFA = function () {\n function DFA(nfa) {\n _classCallCheck(this, DFA);\n\n this._nfa = nfa;\n }\n\n /**\n * Minimizes DFA.\n */\n\n\n _createClass(DFA, [{\n key: 'minimize',\n value: function minimize() {\n this.getTransitionTable();\n\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._originalTransitionTable = this._transitionTable;\n\n DFAMinimizer.minimize(this);\n }\n\n /**\n * Returns alphabet for this DFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n return this._nfa.getAlphabet();\n }\n\n /**\n * Returns accepting states.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._acceptingStateNumbers;\n }\n\n /**\n * Returns original accepting states.\n */\n\n }, {\n key: 'getOriginaAcceptingStateNumbers',\n value: function getOriginaAcceptingStateNumbers() {\n if (!this._originalAcceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._originalAcceptingStateNumbers;\n }\n\n /**\n * Sets transition table.\n */\n\n }, {\n key: 'setTransitionTable',\n value: function setTransitionTable(table) {\n this._transitionTable = table;\n }\n\n /**\n * Sets accepting states.\n */\n\n }, {\n key: 'setAcceptingStateNumbers',\n value: function setAcceptingStateNumbers(stateNumbers) {\n this._acceptingStateNumbers = stateNumbers;\n }\n\n /**\n * DFA transition table is built from NFA table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (this._transitionTable) {\n return this._transitionTable;\n }\n\n // Calculate from NFA transition table.\n var nfaTable = this._nfa.getTransitionTable();\n var nfaStates = Object.keys(nfaTable);\n\n this._acceptingStateNumbers = new Set();\n\n // Start state of DFA is E(S[nfa])\n var startState = nfaTable[nfaStates[0]][EPSILON_CLOSURE];\n\n // Init the worklist (states which should be in the DFA).\n var worklist = [startState];\n\n var alphabet = this.getAlphabet();\n var nfaAcceptingStates = this._nfa.getAcceptingStateNumbers();\n\n var dfaTable = {};\n\n // Determine whether the combined DFA state is accepting.\n var updateAcceptingStates = function updateAcceptingStates(states) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = nfaAcceptingStates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nfaAcceptingState = _step.value;\n\n // If any of the states from NFA is accepting, DFA's\n // state is accepting as well.\n if (states.indexOf(nfaAcceptingState) !== -1) {\n _this._acceptingStateNumbers.add(states.join(','));\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n while (worklist.length > 0) {\n var states = worklist.shift();\n var dfaStateLabel = states.join(',');\n dfaTable[dfaStateLabel] = {};\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = alphabet[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var symbol = _step2.value;\n\n var onSymbol = [];\n\n // Determine whether the combined state is accepting.\n updateAcceptingStates(states);\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = states[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var state = _step3.value;\n\n var nfaStatesOnSymbol = nfaTable[state][symbol];\n if (!nfaStatesOnSymbol) {\n continue;\n }\n\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = nfaStatesOnSymbol[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nfaStateOnSymbol = _step4.value;\n\n if (!nfaTable[nfaStateOnSymbol]) {\n continue;\n }\n onSymbol.push.apply(onSymbol, _toConsumableArray(nfaTable[nfaStateOnSymbol][EPSILON_CLOSURE]));\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n var dfaStatesOnSymbolSet = new Set(onSymbol);\n var dfaStatesOnSymbol = [].concat(_toConsumableArray(dfaStatesOnSymbolSet));\n\n if (dfaStatesOnSymbol.length > 0) {\n var dfaOnSymbolStr = dfaStatesOnSymbol.join(',');\n\n dfaTable[dfaStateLabel][symbol] = dfaOnSymbolStr;\n\n if (!dfaTable.hasOwnProperty(dfaOnSymbolStr)) {\n worklist.unshift(dfaStatesOnSymbol);\n }\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n\n return this._transitionTable = this._remapStateNumbers(dfaTable);\n }\n\n /**\n * Remaps state numbers in the resulting table:\n * combined states '1,2,3' -> 1, '3,4' -> 2, etc.\n */\n\n }, {\n key: '_remapStateNumbers',\n value: function _remapStateNumbers(calculatedDFATable) {\n var newStatesMap = {};\n\n this._originalTransitionTable = calculatedDFATable;\n var transitionTable = {};\n\n Object.keys(calculatedDFATable).forEach(function (originalNumber, newNumber) {\n newStatesMap[originalNumber] = newNumber + 1;\n });\n\n for (var originalNumber in calculatedDFATable) {\n var originalRow = calculatedDFATable[originalNumber];\n var row = {};\n\n for (var symbol in originalRow) {\n row[symbol] = newStatesMap[originalRow[symbol]];\n }\n\n transitionTable[newStatesMap[originalNumber]] = row;\n }\n\n // Remap accepting states.\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._acceptingStateNumbers = new Set();\n\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = this._originalAcceptingStateNumbers[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var _originalNumber = _step5.value;\n\n this._acceptingStateNumbers.add(newStatesMap[_originalNumber]);\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n return transitionTable;\n }\n\n /**\n * Returns original DFA table, where state numbers\n * are combined numbers from NFA.\n */\n\n }, {\n key: 'getOriginalTransitionTable',\n value: function getOriginalTransitionTable() {\n if (!this._originalTransitionTable) {\n // Original table is determined during table construction.\n this.getTransitionTable();\n }\n return this._originalTransitionTable;\n }\n\n /**\n * Checks whether this DFA accepts a string.\n */\n\n }, {\n key: 'matches',\n value: function matches(string) {\n var state = 1;\n var i = 0;\n var table = this.getTransitionTable();\n\n while (string[i]) {\n state = table[state][string[i++]];\n if (!state) {\n return false;\n }\n }\n\n if (!this.getAcceptingStateNumbers().has(state)) {\n return false;\n }\n\n return true;\n }\n }]);\n\n return DFA;\n}();\n\nmodule.exports = DFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NFA = require('./nfa/nfa');\nvar DFA = require('./dfa/dfa');\n\nvar nfaFromRegExp = require('./nfa/nfa-from-regexp');\nvar builders = require('./nfa/builders');\n\nmodule.exports = {\n\n /**\n * Export NFA and DFA classes.\n */\n NFA: NFA,\n DFA: DFA,\n\n /**\n * Expose builders.\n */\n builders: builders,\n\n /**\n * Builds an NFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toNFA: function toNFA(regexp) {\n return nfaFromRegExp.build(regexp);\n },\n\n\n /**\n * Builds DFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toDFA: function toDFA(regexp) {\n return new DFA(this.toNFA(regexp));\n },\n\n\n /**\n * Returns true if regexp accepts the string.\n */\n test: function test(regexp, string) {\n return this.toDFA(regexp).matches(string);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NFA = require('./nfa');\nvar NFAState = require('./nfa-state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n// -----------------------------------------------------------------------------\n// Char NFA fragment: `c`\n\n/**\n * Char factory.\n *\n * Creates an NFA fragment for a single char.\n *\n * [in] --c--> [out]\n */\n\n\nfunction char(c) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n return new NFA(inState.addTransition(c, outState), outState);\n}\n\n// -----------------------------------------------------------------------------\n// Epsilon NFA fragment\n\n/**\n * Epsilon factory.\n *\n * Creates an NFA fragment for ε (recognizes an empty string).\n *\n * [in] --ε--> [out]\n */\nfunction e() {\n return char(EPSILON);\n}\n\n// -----------------------------------------------------------------------------\n// Alteration NFA fragment: `abc`\n\n/**\n * Creates a connection between two NFA fragments on epsilon transition.\n *\n * [in-a] --a--> [out-a] --ε--> [in-b] --b--> [out-b]\n */\nfunction altPair(first, second) {\n first.out.accepting = false;\n second.out.accepting = true;\n\n first.out.addTransition(EPSILON, second.in);\n\n return new NFA(first.in, second.out);\n}\n\n/**\n * Alteration factory.\n *\n * Creates a alteration NFA for (at least) two NFA-fragments.\n */\nfunction alt(first) {\n for (var _len = arguments.length, fragments = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n fragments[_key - 1] = arguments[_key];\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = fragments[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var fragment = _step.value;\n\n first = altPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Disjunction NFA fragment: `a|b`\n\n/**\n * Creates a disjunction choice between two fragments.\n */\nfunction orPair(first, second) {\n var inState = new NFAState();\n var outState = new NFAState();\n\n inState.addTransition(EPSILON, first.in);\n inState.addTransition(EPSILON, second.in);\n\n outState.accepting = true;\n first.out.accepting = false;\n second.out.accepting = false;\n\n first.out.addTransition(EPSILON, outState);\n second.out.addTransition(EPSILON, outState);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Disjunction factory.\n *\n * Creates a disjunction NFA for (at least) two NFA-fragments.\n */\nfunction or(first) {\n for (var _len2 = arguments.length, fragments = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n fragments[_key2 - 1] = arguments[_key2];\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = fragments[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var fragment = _step2.value;\n\n first = orPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Kleene-closure\n\n/**\n * Kleene star/closure.\n *\n * a*\n */\nfunction repExplicit(fragment) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n // 0 or more.\n inState.addTransition(EPSILON, fragment.in);\n inState.addTransition(EPSILON, outState);\n\n fragment.out.accepting = false;\n fragment.out.addTransition(EPSILON, outState);\n outState.addTransition(EPSILON, fragment.in);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Optimized Kleene-star: just adds ε-transitions from\n * input to the output, and back.\n */\nfunction rep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized Plus: just adds ε-transitions from\n * the output to the input.\n */\nfunction plusRep(fragment) {\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized ? repetition: just adds ε-transitions from\n * the input to the output.\n */\nfunction questionRep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n return fragment;\n}\n\nmodule.exports = {\n alt: alt,\n char: char,\n e: e,\n or: or,\n rep: rep,\n repExplicit: repExplicit,\n plusRep: plusRep,\n questionRep: questionRep\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar parser = require('../../../parser');\n\nvar _require = require('./builders'),\n alt = _require.alt,\n char = _require.char,\n or = _require.or,\n rep = _require.rep,\n plusRep = _require.plusRep,\n questionRep = _require.questionRep;\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\n\nfunction gen(node) {\n if (node && !generator[node.type]) {\n throw new Error(node.type + ' is not supported in NFA/DFA interpreter.');\n }\n\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n if (node.flags !== '') {\n throw new Error('NFA/DFA: Flags are not supported yet.');\n }\n\n return gen(node.body);\n },\n Alternative: function Alternative(node) {\n var fragments = (node.expressions || []).map(gen);\n return alt.apply(undefined, _toConsumableArray(fragments));\n },\n Disjunction: function Disjunction(node) {\n return or(gen(node.left), gen(node.right));\n },\n Repetition: function Repetition(node) {\n switch (node.quantifier.kind) {\n case '*':\n return rep(gen(node.expression));\n case '+':\n return plusRep(gen(node.expression));\n case '?':\n return questionRep(gen(node.expression));\n default:\n throw new Error('Unknown repeatition: ' + node.quantifier.kind + '.');\n }\n },\n Char: function Char(node) {\n if (node.kind !== 'simple') {\n throw new Error('NFA/DFA: Only simple chars are supported yet.');\n }\n\n return char(node.value);\n },\n Group: function Group(node) {\n return gen(node.expression);\n }\n};\n\nmodule.exports = {\n /**\n * Builds an NFA from the passed regexp.\n */\n build: function build(regexp) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n return gen(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar State = require('../state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n/**\n * NFA state.\n *\n * Allows nondeterministic transitions to several states on the\n * same symbol, and also epsilon-transitions.\n */\n\n\nvar NFAState = function (_State) {\n _inherits(NFAState, _State);\n\n function NFAState() {\n _classCallCheck(this, NFAState);\n\n return _possibleConstructorReturn(this, (NFAState.__proto__ || Object.getPrototypeOf(NFAState)).apply(this, arguments));\n }\n\n _createClass(NFAState, [{\n key: 'matches',\n\n\n /**\n * Whether this state matches a string.\n *\n * We maintain set of visited epsilon-states to avoid infinite loops\n * when an epsilon-transition goes eventually to itself.\n *\n * NOTE: this function is rather \"educational\", since we use DFA for strings\n * matching. DFA is built on top of NFA, and uses fast transition table.\n */\n value: function matches(string) {\n var visited = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n\n // An epsilon-state has been visited, stop to avoid infinite loop.\n if (visited.has(this)) {\n return false;\n }\n\n visited.add(this);\n\n // No symbols left..\n if (string.length === 0) {\n // .. and we're in the accepting state.\n if (this.accepting) {\n return true;\n }\n\n // Check if we can reach any accepting state from\n // on the epsilon transitions.\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nextState = _step.value;\n\n if (nextState.matches('', visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return false;\n }\n\n // Else, we get some symbols.\n var symbol = string[0];\n var rest = string.slice(1);\n\n var symbolTransitions = this.getTransitionsOnSymbol(symbol);\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = symbolTransitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _nextState = _step2.value;\n\n if (_nextState.matches(rest)) {\n return true;\n }\n }\n\n // If we couldn't match on symbol, check still epsilon-transitions\n // without consuming the symbol (i.e. continue from `string`, not `rest`).\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _nextState2 = _step3.value;\n\n if (_nextState2.matches(string, visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return false;\n }\n\n /**\n * Returns an ε-closure for this state:\n * self + all states following ε-transitions.\n */\n\n }, {\n key: 'getEpsilonClosure',\n value: function getEpsilonClosure() {\n var _this2 = this;\n\n if (!this._epsilonClosure) {\n (function () {\n var epsilonTransitions = _this2.getTransitionsOnSymbol(EPSILON);\n var closure = _this2._epsilonClosure = new Set();\n closure.add(_this2);\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = epsilonTransitions[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nextState = _step4.value;\n\n if (!closure.has(nextState)) {\n closure.add(nextState);\n var nextClosure = nextState.getEpsilonClosure();\n nextClosure.forEach(function (state) {\n return closure.add(state);\n });\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n })();\n }\n\n return this._epsilonClosure;\n }\n }]);\n\n return NFAState;\n}(State);\n\nmodule.exports = NFAState;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON,\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * NFA fragment.\n *\n * NFA sub-fragments can be combined to a larger NFAs building\n * the resulting machine. Combining the fragments is done by patching\n * edges of the in- and out-states.\n *\n * 2-states implementation, `in`, and `out`. Eventually all transitions\n * go to the same `out`, which can further be connected via ε-transition\n * with other fragment.\n */\n\n\nvar NFA = function () {\n function NFA(inState, outState) {\n _classCallCheck(this, NFA);\n\n this.in = inState;\n this.out = outState;\n }\n\n /**\n * Tries to recognize a string based on this NFA fragment.\n */\n\n\n _createClass(NFA, [{\n key: 'matches',\n value: function matches(string) {\n return this.in.matches(string);\n }\n\n /**\n * Returns an alphabet for this NFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n if (!this._alphabet) {\n this._alphabet = new Set();\n var table = this.getTransitionTable();\n for (var state in table) {\n var transitions = table[state];\n for (var symbol in transitions) {\n if (symbol !== EPSILON_CLOSURE) {\n this._alphabet.add(symbol);\n }\n }\n }\n }\n return this._alphabet;\n }\n\n /**\n * Returns set of accepting states.\n */\n\n }, {\n key: 'getAcceptingStates',\n value: function getAcceptingStates() {\n if (!this._acceptingStates) {\n // States are determined during table construction.\n this.getTransitionTable();\n }\n return this._acceptingStates;\n }\n\n /**\n * Returns accepting state numbers.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n this._acceptingStateNumbers = new Set();\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getAcceptingStates()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var acceptingState = _step.value;\n\n this._acceptingStateNumbers.add(acceptingState.number);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n return this._acceptingStateNumbers;\n }\n\n /**\n * Builds and returns transition table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (!this._transitionTable) {\n this._transitionTable = {};\n this._acceptingStates = new Set();\n\n var visited = new Set();\n var symbols = new Set();\n\n var visitState = function visitState(state) {\n if (visited.has(state)) {\n return;\n }\n\n visited.add(state);\n state.number = visited.size;\n _this._transitionTable[state.number] = {};\n\n if (state.accepting) {\n _this._acceptingStates.add(state);\n }\n\n var transitions = state.getTransitions();\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = transitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var symbol = _ref2[0];\n var symbolTransitions = _ref2[1];\n\n var combinedState = [];\n symbols.add(symbol);\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = symbolTransitions[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var nextState = _step3.value;\n\n visitState(nextState);\n combinedState.push(nextState.number);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n _this._transitionTable[state.number][symbol] = combinedState;\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n };\n\n // Traverse the graph starting from the `in`.\n visitState(this.in);\n\n // Append epsilon-closure column.\n visited.forEach(function (state) {\n delete _this._transitionTable[state.number][EPSILON];\n _this._transitionTable[state.number][EPSILON_CLOSURE] = [].concat(_toConsumableArray(state.getEpsilonClosure())).map(function (s) {\n return s.number;\n });\n });\n }\n\n return this._transitionTable;\n }\n }]);\n\n return NFA;\n}();\n\nmodule.exports = NFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Epsilon, the empty string.\n */\n\nvar EPSILON = 'ε';\n\n/**\n * Epsilon-closure.\n */\nvar EPSILON_CLOSURE = EPSILON + '*';\n\nmodule.exports = {\n EPSILON: EPSILON,\n EPSILON_CLOSURE: EPSILON_CLOSURE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A generic FA State class (base for NFA and DFA).\n *\n * Maintains the transition map, and the flag whether\n * the state is accepting.\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar State = function () {\n function State() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$accepting = _ref.accepting,\n accepting = _ref$accepting === undefined ? false : _ref$accepting;\n\n _classCallCheck(this, State);\n\n /**\n * Outgoing transitions to other states.\n */\n this._transitions = new Map();\n\n /**\n * Whether the state is accepting.\n */\n this.accepting = accepting;\n }\n\n /**\n * Returns transitions for this state.\n */\n\n\n _createClass(State, [{\n key: 'getTransitions',\n value: function getTransitions() {\n return this._transitions;\n }\n\n /**\n * Creates a transition on symbol.\n */\n\n }, {\n key: 'addTransition',\n value: function addTransition(symbol, toState) {\n this.getTransitionsOnSymbol(symbol).add(toState);\n return this;\n }\n\n /**\n * Returns transitions set on symbol.\n */\n\n }, {\n key: 'getTransitionsOnSymbol',\n value: function getTransitionsOnSymbol(symbol) {\n var transitions = this._transitions.get(symbol);\n\n if (!transitions) {\n transitions = new Set();\n this._transitions.set(symbol, transitions);\n }\n\n return transitions;\n }\n }]);\n\n return State;\n}();\n\nmodule.exports = State;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar clone = require('../utils/clone');\nvar parser = require('../parser');\nvar transform = require('../transform');\nvar optimizationTransforms = require('./transforms');\n\nmodule.exports = {\n /**\n * Optimizer transforms a regular expression into an optimized version,\n * replacing some sub-expressions with their idiomatic patterns.\n *\n * @param string | RegExp | AST - a regexp to optimize.\n *\n * @return TransformResult - an optimized regexp.\n *\n * Example:\n *\n * /[a-zA-Z_0-9][a-zA-Z_0-9]*\\e{1,}/\n *\n * Optimized to:\n *\n * /\\w+e+/\n */\n optimize: function optimize(regexp) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$whitelist = _ref.whitelist,\n whitelist = _ref$whitelist === undefined ? [] : _ref$whitelist,\n _ref$blacklist = _ref.blacklist,\n blacklist = _ref$blacklist === undefined ? [] : _ref$blacklist;\n\n var transformsRaw = whitelist.length > 0 ? whitelist : Array.from(optimizationTransforms.keys());\n\n var transformToApply = transformsRaw.filter(function (transform) {\n return !blacklist.includes(transform);\n });\n\n var ast = regexp;\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp);\n }\n\n var result = new transform.TransformResult(ast);\n var prevResultString = void 0;\n\n do {\n // Get a copy of the current state here so\n // we can compare it with the state at the\n // end of the loop.\n prevResultString = result.toString();\n ast = clone(result.getAST());\n\n transformToApply.forEach(function (transformName) {\n if (!optimizationTransforms.has(transformName)) {\n throw new Error('Unknown optimization-transform: ' + transformName + '. ' + 'Available transforms are: ' + Array.from(optimizationTransforms.keys()).join(', '));\n }\n\n var transformer = optimizationTransforms.get(transformName);\n\n // Don't override result just yet since we\n // might want to rollback the transform\n var newResult = transform.transform(ast, transformer);\n\n if (newResult.toString() !== result.toString()) {\n if (newResult.toString().length <= result.toString().length) {\n result = newResult;\n } else {\n // Result has changed but is not shorter:\n // restore ast to its previous state.\n\n ast = clone(result.getAST());\n }\n }\n });\n\n // Keep running the optimizer until it stops\n // making any change to the regexp.\n } while (result.toString() !== prevResultString);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\n/**\n * Transforms case-insensitive regexp to lowercase\n *\n * /AaBbÏ/i -> /aabbï/i\n */\nmodule.exports = {\n _AZClassRanges: null,\n _hasUFlag: false,\n init: function init(ast) {\n this._AZClassRanges = new Set();\n this._hasUFlag = ast.flags.includes('u');\n },\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('i');\n },\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint)) {\n return;\n }\n\n // Engine support for case-insensitive matching without the u flag\n // for characters above \\u1000 does not seem reliable.\n if (!this._hasUFlag && node.codePoint >= 0x1000) {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n // The only class ranges we handle must be inside A-Z.\n // After the `from` char is processed, the isAZClassRange test\n // will be false, so we use a Set to keep track of parents and\n // process the `to` char.\n if (!this._AZClassRanges.has(parent) && !isAZClassRange(parent)) {\n return;\n }\n this._AZClassRanges.add(parent);\n }\n\n var lower = node.symbol.toLowerCase();\n if (lower !== node.symbol) {\n node.value = displaySymbolAsValue(lower, node);\n node.symbol = lower;\n node.codePoint = lower.codePointAt(0);\n }\n }\n};\n\nfunction isAZClassRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n // A-Z\n\n return from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP;\n}\n\nfunction displaySymbolAsValue(symbol, node) {\n var codePoint = symbol.codePointAt(0);\n if (node.kind === 'decimal') {\n return '\\\\' + codePoint;\n }\n if (node.kind === 'oct') {\n return '\\\\0' + codePoint.toString(8);\n }\n if (node.kind === 'hex') {\n return '\\\\x' + codePoint.toString(16);\n }\n if (node.kind === 'unicode') {\n if (node.isSurrogatePair) {\n var _getSurrogatePairFrom = getSurrogatePairFromCodePoint(codePoint),\n lead = _getSurrogatePairFrom.lead,\n trail = _getSurrogatePairFrom.trail;\n\n return '\\\\u' + '0'.repeat(4 - lead.length) + lead + '\\\\u' + '0'.repeat(4 - trail.length) + trail;\n } else if (node.value.includes('{')) {\n return '\\\\u{' + codePoint.toString(16) + '}';\n } else {\n var code = codePoint.toString(16);\n return '\\\\u' + '0'.repeat(4 - code.length) + code;\n }\n }\n // simple\n return symbol;\n}\n\n/**\n * Converts a code point to a surrogate pair.\n * Conversion algorithm is taken from The Unicode Standard 3.0 Section 3.7\n * (https://www.unicode.org/versions/Unicode3.0.0/ch03.pdf)\n * @param {number} codePoint - Between 0x10000 and 0x10ffff\n * @returns {{lead: string, trail: string}}\n */\nfunction getSurrogatePairFromCodePoint(codePoint) {\n var lead = Math.floor((codePoint - 0x10000) / 0x400) + 0xd800;\n var trail = (codePoint - 0x10000) % 0x400 + 0xdc00;\n return {\n lead: lead.toString(16),\n trail: trail.toString(16)\n };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to merge class ranges.\n *\n * [a-ec] -> [a-e]\n * [a-ec-e] -> [a-e]\n * [\\w\\da-f] -> [\\w]\n * [abcdef] -> [a-f]\n */\n\nmodule.exports = {\n _hasIUFlags: false,\n init: function init(ast) {\n this._hasIUFlags = ast.flags.includes('i') && ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var expressions = node.expressions;\n\n var metas = [];\n // Extract metas\n expressions.forEach(function (expression) {\n if (isMeta(expression)) {\n metas.push(expression.value);\n }\n });\n\n expressions.sort(sortCharClass);\n\n for (var i = 0; i < expressions.length; i++) {\n var expression = expressions[i];\n if (fitsInMetas(expression, metas, this._hasIUFlags) || combinesWithPrecedingClassRange(expression, expressions[i - 1]) || combinesWithFollowingClassRange(expression, expressions[i + 1])) {\n expressions.splice(i, 1);\n i--;\n } else {\n var nbMergedChars = charCombinesWithPrecedingChars(expression, i, expressions);\n expressions.splice(i - nbMergedChars + 1, nbMergedChars);\n i -= nbMergedChars;\n }\n }\n }\n};\n\n/**\n * Sorts expressions in char class in the following order:\n * - meta chars, ordered alphabetically by value\n * - chars (except `control` kind) and class ranges, ordered alphabetically (`from` char is used for class ranges)\n * - if ambiguous, class range comes before char\n * - if ambiguous between two class ranges, orders alphabetically by `to` char\n * - control chars, ordered alphabetically by value\n * @param {Object} a - Left Char or ClassRange node\n * @param {Object} b - Right Char or ClassRange node\n * @returns {number}\n */\nfunction sortCharClass(a, b) {\n var aValue = getSortValue(a);\n var bValue = getSortValue(b);\n\n if (aValue === bValue) {\n // We want ClassRange before Char\n // [bb-d] -> [b-db]\n if (a.type === 'ClassRange' && b.type !== 'ClassRange') {\n return -1;\n }\n if (b.type === 'ClassRange' && a.type !== 'ClassRange') {\n return 1;\n }\n if (a.type === 'ClassRange' && b.type === 'ClassRange') {\n return getSortValue(a.to) - getSortValue(b.to);\n }\n if (isMeta(a) && isMeta(b) || isControl(a) && isControl(b)) {\n return a.value < b.value ? -1 : 1;\n }\n }\n return aValue - bValue;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {number}\n */\nfunction getSortValue(expression) {\n if (expression.type === 'Char') {\n if (expression.value === '-') {\n return Infinity;\n }\n if (expression.kind === 'control') {\n return Infinity;\n }\n if (expression.kind === 'meta' && isNaN(expression.codePoint)) {\n return -1;\n }\n return expression.codePoint;\n }\n // ClassRange\n return expression.from.codePoint;\n}\n\n/**\n * Checks if a node is a meta char from the set \\d\\w\\s\\D\\W\\S\n * @param {Object} expression - Char or ClassRange node\n * @param {?string} value\n * @returns {boolean}\n */\nfunction isMeta(expression) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n return expression.type === 'Char' && expression.kind === 'meta' && (value ? expression.value === value : /^\\\\[dws]$/i.test(expression.value));\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {boolean}\n */\nfunction isControl(expression) {\n return expression.type === 'Char' && expression.kind === 'control';\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string[]} metas - Array of meta chars, e.g. [\"\\\\w\", \"\\\\s\"]\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetas(expression, metas, hasIUFlags) {\n for (var i = 0; i < metas.length; i++) {\n if (fitsInMeta(expression, metas[i], hasIUFlags)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string} meta - e.g. \"\\\\w\"\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMeta(expression, meta, hasIUFlags) {\n if (expression.type === 'ClassRange') {\n return fitsInMeta(expression.from, meta, hasIUFlags) && fitsInMeta(expression.to, meta, hasIUFlags);\n }\n\n // Special cases:\n // \\S contains \\w and \\d\n if (meta === '\\\\S' && (isMeta(expression, '\\\\w') || isMeta(expression, '\\\\d'))) {\n return true;\n }\n // \\D contains \\W and \\s\n if (meta === '\\\\D' && (isMeta(expression, '\\\\W') || isMeta(expression, '\\\\s'))) {\n return true;\n }\n // \\w contains \\d\n if (meta === '\\\\w' && isMeta(expression, '\\\\d')) {\n return true;\n }\n // \\W contains \\s\n if (meta === '\\\\W' && isMeta(expression, '\\\\s')) {\n return true;\n }\n\n if (expression.type !== 'Char' || isNaN(expression.codePoint)) {\n return false;\n }\n\n if (meta === '\\\\s') {\n return fitsInMetaS(expression);\n }\n if (meta === '\\\\S') {\n return !fitsInMetaS(expression);\n }\n if (meta === '\\\\d') {\n return fitsInMetaD(expression);\n }\n if (meta === '\\\\D') {\n return !fitsInMetaD(expression);\n }\n if (meta === '\\\\w') {\n return fitsInMetaW(expression, hasIUFlags);\n }\n if (meta === '\\\\W') {\n return !fitsInMetaW(expression, hasIUFlags);\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaS(expression) {\n return expression.codePoint === 0x0009 || // \\t\n expression.codePoint === 0x000a || // \\n\n expression.codePoint === 0x000b || // \\v\n expression.codePoint === 0x000c || // \\f\n expression.codePoint === 0x000d || // \\r\n expression.codePoint === 0x0020 || // space\n expression.codePoint === 0x00a0 || // nbsp\n expression.codePoint === 0x1680 || // part of Zs\n expression.codePoint >= 0x2000 && expression.codePoint <= 0x200a || // part of Zs\n expression.codePoint === 0x2028 || // line separator\n expression.codePoint === 0x2029 || // paragraph separator\n expression.codePoint === 0x202f || // part of Zs\n expression.codePoint === 0x205f || // part of Zs\n expression.codePoint === 0x3000 || // part of Zs\n expression.codePoint === 0xfeff; // zwnbsp\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaD(expression) {\n return expression.codePoint >= 0x30 && expression.codePoint <= 0x39; // 0-9\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetaW(expression, hasIUFlags) {\n return fitsInMetaD(expression) || expression.codePoint >= 0x41 && expression.codePoint <= 0x5a || // A-Z\n expression.codePoint >= 0x61 && expression.codePoint <= 0x7a || // a-z\n expression.value === '_' || hasIUFlags && (expression.codePoint === 0x017f || expression.codePoint === 0x212a);\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithPrecedingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n if (fitsInClassRange(expression, classRange)) {\n // [a-gc] -> [a-g]\n // [a-gc-e] -> [a-g]\n return true;\n } else if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.to.codePoint === expression.codePoint - 1) {\n // [a-de] -> [a-e]\n classRange.to = expression;\n return true;\n } else if (expression.type === 'ClassRange' && expression.from.codePoint <= classRange.to.codePoint + 1 && expression.to.codePoint >= classRange.from.codePoint - 1) {\n // [a-db-f] -> [a-f]\n // [b-fa-d] -> [a-f]\n // [a-cd-f] -> [a-f]\n if (expression.from.codePoint < classRange.from.codePoint) {\n classRange.from = expression.from;\n }\n if (expression.to.codePoint > classRange.to.codePoint) {\n classRange.to = expression.to;\n }\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithFollowingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n // Considering the elements were ordered alphabetically,\n // there is only one case to handle\n // [ab-e] -> [a-e]\n if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.from.codePoint === expression.codePoint + 1) {\n classRange.from = expression;\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - ClassRange node\n * @returns {boolean}\n */\nfunction fitsInClassRange(expression, classRange) {\n if (expression.type === 'Char' && isNaN(expression.codePoint)) {\n return false;\n }\n if (expression.type === 'ClassRange') {\n return fitsInClassRange(expression.from, classRange) && fitsInClassRange(expression.to, classRange);\n }\n return expression.codePoint >= classRange.from.codePoint && expression.codePoint <= classRange.to.codePoint;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Number} index\n * @param {Object[]} expressions - expressions in CharClass\n * @returns {number} - Number of characters combined with expression\n */\nfunction charCombinesWithPrecedingChars(expression, index, expressions) {\n // We only want \\w chars or char codes to keep readability\n if (!isMetaWCharOrCode(expression)) {\n return 0;\n }\n var nbMergedChars = 0;\n while (index > 0) {\n var currentExpression = expressions[index];\n var precedingExpresion = expressions[index - 1];\n if (isMetaWCharOrCode(precedingExpresion) && precedingExpresion.codePoint === currentExpression.codePoint - 1) {\n nbMergedChars++;\n index--;\n } else {\n break;\n }\n }\n\n if (nbMergedChars > 1) {\n expressions[index] = {\n type: 'ClassRange',\n from: expressions[index],\n to: expression\n };\n return nbMergedChars;\n }\n return 0;\n}\n\nfunction isMetaWCharOrCode(expression) {\n return expression && expression.type === 'Char' && !isNaN(expression.codePoint) && (fitsInMetaW(expression, false) || expression.kind === 'unicode' || expression.kind === 'hex' || expression.kind === 'oct' || expression.kind === 'decimal');\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to simplify character classes\n * spanning only one or two chars.\n *\n * [a-a] -> [a]\n * [a-b] -> [ab]\n */\n\nmodule.exports = {\n ClassRange: function ClassRange(path) {\n var node = path.node;\n\n\n if (node.from.codePoint === node.to.codePoint) {\n\n path.replace(node.from);\n } else if (node.from.codePoint === node.to.codePoint - 1) {\n\n path.getParent().insertChildAt(node.to, path.index + 1);\n path.replace(node.from);\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove duplicates from character classes.\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var sources = {};\n\n for (var i = 0; i < node.expressions.length; i++) {\n var childPath = path.getChild(i);\n var source = childPath.jsonEncode();\n\n if (sources.hasOwnProperty(source)) {\n childPath.remove();\n\n // Since we remove the current node.\n // TODO: make it simpler for users with a method.\n i--;\n }\n\n sources[source] = true;\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace standard character classes with\n * their meta symbols equivalents.\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n _hasIFlag: false,\n _hasUFlag: false,\n init: function init(ast) {\n this._hasIFlag = ast.flags.includes('i');\n this._hasUFlag = ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n // [0-9] -> \\d\n rewriteNumberRanges(path);\n\n // [a-zA-Z_0-9] -> \\w\n rewriteWordRanges(path, this._hasIFlag, this._hasUFlag);\n\n // [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s\n rewriteWhitespaceRanges(path);\n }\n};\n\n/**\n * Rewrites number ranges: [0-9] -> \\d\n */\nfunction rewriteNumberRanges(path) {\n var node = path.node;\n\n\n node.expressions.forEach(function (expression, i) {\n if (isFullNumberRange(expression)) {\n path.getChild(i).replace({\n type: 'Char',\n value: '\\\\d',\n kind: 'meta'\n });\n }\n });\n}\n\n/**\n * Rewrites word ranges: [a-zA-Z_0-9] -> \\w\n * Thus, the ranges may go in any order, and other symbols/ranges\n * are kept untouched, e.g. [a-z_\\dA-Z$] -> [\\w$]\n */\nfunction rewriteWordRanges(path, hasIFlag, hasUFlag) {\n var node = path.node;\n\n\n var numberPath = null;\n var lowerCasePath = null;\n var upperCasePath = null;\n var underscorePath = null;\n var u017fPath = null;\n var u212aPath = null;\n\n node.expressions.forEach(function (expression, i) {\n // \\d\n if (isMetaChar(expression, '\\\\d')) {\n numberPath = path.getChild(i);\n }\n\n // a-z\n else if (isLowerCaseRange(expression)) {\n lowerCasePath = path.getChild(i);\n }\n\n // A-Z\n else if (isUpperCaseRange(expression)) {\n upperCasePath = path.getChild(i);\n }\n\n // _\n else if (isUnderscore(expression)) {\n underscorePath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x017f)) {\n u017fPath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x212a)) {\n u212aPath = path.getChild(i);\n }\n });\n\n // If we found the whole pattern, replace it.\n if (numberPath && (lowerCasePath && upperCasePath || hasIFlag && (lowerCasePath || upperCasePath)) && underscorePath && (!hasUFlag || !hasIFlag || u017fPath && u212aPath)) {\n // Put \\w in place of \\d.\n numberPath.replace({\n type: 'Char',\n value: '\\\\w',\n kind: 'meta'\n });\n\n // Other paths are removed.\n if (lowerCasePath) {\n lowerCasePath.remove();\n }\n if (upperCasePath) {\n upperCasePath.remove();\n }\n underscorePath.remove();\n if (u017fPath) {\n u017fPath.remove();\n }\n if (u212aPath) {\n u212aPath.remove();\n }\n }\n}\n\n/**\n * Rewrites whitespace ranges: [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s.\n */\nvar whitespaceRangeTests = [function (node) {\n return isChar(node, ' ');\n}].concat(_toConsumableArray(['\\\\f', '\\\\n', '\\\\r', '\\\\t', '\\\\v'].map(function (char) {\n return function (node) {\n return isMetaChar(node, char);\n };\n})), _toConsumableArray([0x00a0, 0x1680, 0x2028, 0x2029, 0x202f, 0x205f, 0x3000, 0xfeff].map(function (codePoint) {\n return function (node) {\n return isCodePoint(node, codePoint);\n };\n})), [function (node) {\n return node.type === 'ClassRange' && isCodePoint(node.from, 0x2000) && isCodePoint(node.to, 0x200a);\n}]);\n\nfunction rewriteWhitespaceRanges(path) {\n var node = path.node;\n\n\n if (node.expressions.length < whitespaceRangeTests.length || !whitespaceRangeTests.every(function (test) {\n return node.expressions.some(function (expression) {\n return test(expression);\n });\n })) {\n return;\n }\n\n // If we found the whole pattern, replace it.\n\n // Put \\s in place of \\n.\n var nNode = node.expressions.find(function (expression) {\n return isMetaChar(expression, '\\\\n');\n });\n nNode.value = '\\\\s';\n nNode.symbol = undefined;\n nNode.codePoint = NaN;\n\n // Other paths are removed.\n node.expressions.map(function (expression, i) {\n return whitespaceRangeTests.some(function (test) {\n return test(expression);\n }) ? path.getChild(i) : undefined;\n }).filter(Boolean).forEach(function (path) {\n return path.remove();\n });\n}\n\nfunction isFullNumberRange(node) {\n return node.type === 'ClassRange' && node.from.value === '0' && node.to.value === '9';\n}\n\nfunction isChar(node, value) {\n var kind = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'simple';\n\n return node.type === 'Char' && node.value === value && node.kind === kind;\n}\n\nfunction isMetaChar(node, value) {\n return isChar(node, value, 'meta');\n}\n\nfunction isLowerCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'a' && node.to.value === 'z';\n}\n\nfunction isUpperCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'A' && node.to.value === 'Z';\n}\n\nfunction isUnderscore(node) {\n return node.type === 'Char' && node.value === '_' && node.kind === 'simple';\n}\n\nfunction isCodePoint(node, codePoint) {\n return node.type === 'Char' && node.kind === 'unicode' && node.codePoint === codePoint;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char character classes with\n * just that character.\n *\n * [\\d] -> \\d, [^\\w] -> \\W\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n\n if (node.expressions.length !== 1 || !hasAppropriateSiblings(path) || !isAppropriateChar(node.expressions[0])) {\n return;\n }\n\n var _node$expressions$ = node.expressions[0],\n value = _node$expressions$.value,\n kind = _node$expressions$.kind,\n escaped = _node$expressions$.escaped;\n\n\n if (node.negative) {\n // For negative can extract only meta chars like [^\\w] -> \\W\n // cannot do for [^a] -> a (wrong).\n if (!isMeta(value)) {\n return;\n }\n\n value = getInverseMeta(value);\n }\n\n path.replace({\n type: 'Char',\n value: value,\n kind: kind,\n escaped: escaped || shouldEscape(value)\n });\n }\n};\n\nfunction isAppropriateChar(node) {\n return node.type === 'Char' &&\n // We don't extract [\\b] (backspace) since \\b has different\n // semantics (word boundary).\n node.value !== '\\\\b';\n}\n\nfunction isMeta(value) {\n return (/^\\\\[dwsDWS]$/.test(value)\n );\n}\n\nfunction getInverseMeta(value) {\n return (/[dws]/.test(value) ? value.toUpperCase() : value.toLowerCase()\n );\n}\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1[0] to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2[0] to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}\n\n// Note: \\{ and \\} are always preserved to avoid `a[{]2[}]` turning\n// into `a{2}`.\nfunction shouldEscape(value) {\n return (/[*[()+?$./{}|]/.test(value)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\nvar LOWER_A_CP = 'a'.codePointAt(0);\nvar LOWER_Z_CP = 'z'.codePointAt(0);\nvar DIGIT_0_CP = '0'.codePointAt(0);\nvar DIGIT_9_CP = '9'.codePointAt(0);\n\n/**\n * A regexp-tree plugin to transform coded chars into simple chars.\n *\n * \\u0061 -> a\n */\nmodule.exports = {\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint) || node.kind === 'simple') {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n if (!isSimpleRange(parent)) {\n return;\n }\n }\n\n if (!isPrintableASCIIChar(node.codePoint)) {\n return;\n }\n\n var symbol = String.fromCodePoint(node.codePoint);\n var newChar = {\n type: 'Char',\n kind: 'simple',\n value: symbol,\n symbol: symbol,\n codePoint: node.codePoint\n };\n if (needsEscape(symbol, parent.type)) {\n newChar.escaped = true;\n }\n path.replace(newChar);\n }\n};\n\n/**\n * Checks if a range is included either in 0-9, a-z or A-Z\n * @param classRange\n * @returns {boolean}\n */\nfunction isSimpleRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n\n return from.codePoint >= DIGIT_0_CP && from.codePoint <= DIGIT_9_CP && to.codePoint >= DIGIT_0_CP && to.codePoint <= DIGIT_9_CP || from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP || from.codePoint >= LOWER_A_CP && from.codePoint <= LOWER_Z_CP && to.codePoint >= LOWER_A_CP && to.codePoint <= LOWER_Z_CP;\n}\n\n/**\n * Checks if a code point in the range of printable ASCII chars\n * (DEL char excluded)\n * @param codePoint\n * @returns {boolean}\n */\nfunction isPrintableASCIIChar(codePoint) {\n return codePoint >= 0x20 && codePoint <= 0x7e;\n}\n\nfunction needsEscape(symbol, parentType) {\n if (parentType === 'ClassRange' || parentType === 'CharacterClass') {\n return (/[\\]\\\\^-]/.test(symbol)\n );\n }\n\n return (/[*[()+?^$./\\\\|{}]/.test(symbol)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary escape.\n *\n * \\e -> e\n *\n * [\\(] -> [(]\n */\n\nmodule.exports = {\n _hasXFlag: false,\n init: function init(ast) {\n this._hasXFlag = ast.flags.includes('x');\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (!node.escaped) {\n return;\n }\n\n if (shouldUnescape(path, this._hasXFlag)) {\n delete node.escaped;\n }\n }\n};\n\nfunction shouldUnescape(path, hasXFlag) {\n var value = path.node.value,\n index = path.index,\n parent = path.parent;\n\n // In char class (, etc are allowed.\n\n if (parent.type !== 'CharacterClass' && parent.type !== 'ClassRange') {\n return !preservesEscape(value, index, parent, hasXFlag);\n }\n\n return !preservesInCharClass(value, index, parent);\n}\n\n/**\n * \\], \\\\, \\^, \\-\n */\nfunction preservesInCharClass(value, index, parent) {\n if (value === '^') {\n // Avoid [\\^a] turning into [^a]\n return index === 0 && !parent.negative;\n }\n if (value === '-') {\n // Avoid [a\\-z] turning into [a-z]\n return true;\n }\n return (/[\\]\\\\]/.test(value)\n );\n}\n\nfunction preservesEscape(value, index, parent, hasXFlag) {\n if (value === '{') {\n return preservesOpeningCurlyBraceEscape(index, parent);\n }\n\n if (value === '}') {\n return preservesClosingCurlyBraceEscape(index, parent);\n }\n\n if (hasXFlag && /[ #]/.test(value)) {\n return true;\n }\n\n return (/[*[()+?^$./\\\\|]/.test(value)\n );\n}\n\nfunction consumeNumbers(startIndex, parent, rtl) {\n var i = startIndex;\n var siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n\n while (siblingNode && siblingNode.type === 'Char' && siblingNode.kind === 'simple' && !siblingNode.escaped && /\\d/.test(siblingNode.value)) {\n rtl ? i-- : i++;\n siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n }\n\n return Math.abs(startIndex - i);\n}\n\nfunction isSimpleChar(node, value) {\n return node && node.type === 'Char' && node.kind === 'simple' && !node.escaped && node.value === value;\n}\n\nfunction preservesOpeningCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbFollowingNumbers = consumeNumbers(index + 1, parent);\n var i = index + nbFollowingNumbers + 1;\n var nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n if (nbFollowingNumbers) {\n // Avoid \\{3} turning into {3}\n if (isSimpleChar(nextSiblingNode, '}')) {\n return true;\n }\n\n if (isSimpleChar(nextSiblingNode, ',')) {\n nbFollowingNumbers = consumeNumbers(i + 1, parent);\n i = i + nbFollowingNumbers + 1;\n nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid \\{3,} turning into {3,}\n return isSimpleChar(nextSiblingNode, '}');\n }\n }\n return false;\n}\n\nfunction preservesClosingCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbPrecedingNumbers = consumeNumbers(index - 1, parent, true);\n var i = index - nbPrecedingNumbers - 1;\n var previousSiblingNode = i >= 0 && parent.expressions[i];\n\n // Avoid {3\\} turning into {3}\n if (nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{')) {\n return true;\n }\n\n if (isSimpleChar(previousSiblingNode, ',')) {\n nbPrecedingNumbers = consumeNumbers(i - 1, parent, true);\n i = i - nbPrecedingNumbers - 1;\n previousSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid {3,\\} turning into {3,}\n return nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{');\n }\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to transform surrogate pairs into single unicode code point\n *\n * \\ud83d\\ude80 -> \\u{1f680}\n */\n\nmodule.exports = {\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('u');\n },\n Char: function Char(path) {\n var node = path.node;\n\n if (node.kind !== 'unicode' || !node.isSurrogatePair || isNaN(node.codePoint)) {\n return;\n }\n node.value = '\\\\u{' + node.codePoint.toString(16) + '}';\n delete node.isSurrogatePair;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to combine repeating patterns.\n *\n * /^abcabcabc/ -> /^abc{3}/\n * /^(?:abc){2}abc/ -> /^(?:abc){3}/\n * /^abc(?:abc){2}/ -> /^(?:abc){3}/\n */\n\nmodule.exports = {\n Alternative: function Alternative(path) {\n var node = path.node;\n\n // We can skip the first child\n\n var index = 1;\n while (index < node.expressions.length) {\n var child = path.getChild(index);\n index = Math.max(1, combineRepeatingPatternLeft(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineWithPreviousRepetition(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineRepetitionWithPrevious(path, child, index));\n\n index++;\n }\n }\n};\n\n// abcabc -> (?:abc){2}\nfunction combineRepeatingPatternLeft(alternative, child, index) {\n var node = alternative.node;\n\n\n var nbPossibleLengths = Math.ceil(index / 2);\n var i = 0;\n\n while (i < nbPossibleLengths) {\n var startIndex = index - 2 * i - 1;\n var right = void 0,\n left = void 0;\n\n if (i === 0) {\n right = child;\n left = alternative.getChild(startIndex);\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - i, index)), [child.node])\n });\n\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(startIndex, index - i)))\n });\n }\n\n if (right.hasEqualSource(left)) {\n for (var j = 0; j < 2 * i + 1; j++) {\n alternative.getChild(startIndex).remove();\n }\n\n child.replace({\n type: 'Repetition',\n expression: i === 0 && right.node.type !== 'Repetition' ? right.node : {\n type: 'Group',\n capturing: false,\n expression: right.node\n },\n quantifier: {\n type: 'Quantifier',\n kind: 'Range',\n from: 2,\n to: 2,\n greedy: true\n }\n });\n return startIndex;\n }\n\n i++;\n }\n\n return index;\n}\n\n// (?:abc){2}abc -> (?:abc){3}\nfunction combineWithPreviousRepetition(alternative, child, index) {\n var node = alternative.node;\n\n\n var i = 0;\n while (i < index) {\n var previousChild = alternative.getChild(i);\n\n if (previousChild.node.type === 'Repetition' && previousChild.node.quantifier.greedy) {\n var left = previousChild.getChild();\n var right = void 0;\n\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n\n if (i + 1 === index) {\n right = child;\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(i + 1, index + 1)))\n });\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = i; j < index; j++) {\n alternative.getChild(i + 1).remove();\n }\n\n increaseQuantifierByOne(previousChild.node.quantifier);\n\n return i;\n }\n }\n\n i++;\n }\n return index;\n}\n\n// abc(?:abc){2} -> (?:abc){3}\nfunction combineRepetitionWithPrevious(alternative, child, index) {\n var node = alternative.node;\n\n\n if (child.node.type === 'Repetition' && child.node.quantifier.greedy) {\n var right = child.getChild();\n var left = void 0;\n\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n\n var rightLength = void 0;\n if (right.node.type === 'Alternative') {\n rightLength = right.node.expressions.length;\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - rightLength, index)))\n });\n } else {\n rightLength = 1;\n left = alternative.getChild(index - 1);\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = index - rightLength; j < index; j++) {\n alternative.getChild(index - rightLength).remove();\n }\n\n increaseQuantifierByOne(child.node.quantifier);\n\n return index - rightLength;\n }\n }\n return index;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n disjunctionToList = _require.disjunctionToList,\n listToDisjunction = _require.listToDisjunction;\n\n/**\n * Removes duplicates from a disjunction sequence:\n *\n * /(ab|bc|ab)+(xy|xy)+/ -> /(ab|bc)+(xy)+/\n */\n\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node;\n\n // Make unique nodes.\n\n var uniqueNodesMap = {};\n\n var parts = disjunctionToList(node).filter(function (part) {\n var encoded = part ? NodePath.getForNode(part).jsonEncode() : 'null';\n\n // Already recorded this part, filter out.\n if (uniqueNodesMap.hasOwnProperty(encoded)) {\n return false;\n }\n\n uniqueNodesMap[encoded] = part;\n return true;\n });\n\n // Replace with the optimized disjunction.\n path.replace(listToDisjunction(parts));\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char group disjunction to char group\n *\n * a|b|c -> [abc]\n * [12]|3|4 -> [1234]\n * (a|b|c) -> ([abc])\n * (?:a|b|c) -> [abc]\n */\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (!handlers[parent.type]) {\n return;\n }\n\n var charset = new Map();\n\n if (!shouldProcess(node, charset) || !charset.size) {\n return;\n }\n\n var characterClass = {\n type: 'CharacterClass',\n expressions: Array.from(charset.keys()).sort().map(function (key) {\n return charset.get(key);\n })\n };\n\n handlers[parent.type](path.getParent(), characterClass);\n }\n};\n\nvar handlers = {\n RegExp: function RegExp(path, characterClass) {\n var node = path.node;\n\n\n node.body = characterClass;\n },\n Group: function Group(path, characterClass) {\n var node = path.node;\n\n\n if (node.capturing) {\n node.expression = characterClass;\n } else {\n path.replace(characterClass);\n }\n }\n};\n\nfunction shouldProcess(expression, charset) {\n if (!expression) {\n // Abort on empty disjunction part\n return false;\n }\n\n var type = expression.type;\n\n\n if (type === 'Disjunction') {\n var left = expression.left,\n right = expression.right;\n\n\n return shouldProcess(left, charset) && shouldProcess(right, charset);\n } else if (type === 'Char') {\n if (expression.kind === 'meta' && expression.symbol === '.') {\n return false;\n }\n\n var value = expression.value;\n\n\n charset.set(value, expression);\n\n return true;\n } else if (type === 'CharacterClass' && !expression.negative) {\n return expression.expressions.every(function (expression) {\n return shouldProcess(expression, charset);\n });\n }\n\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = new Map([\n// \\ud83d\\ude80 -> \\u{1f680}\n['charSurrogatePairToSingleUnicode', require('./char-surrogate-pair-to-single-unicode-transform')],\n\n// \\u0061 -> a\n['charCodeToSimpleChar', require('./char-code-to-simple-char-transform')],\n\n// /Aa/i -> /aa/i\n['charCaseInsensitiveLowerCaseTransform', require('./char-case-insensitive-lowercase-transform')],\n\n// [\\d\\d] -> [\\d]\n['charClassRemoveDuplicates', require('./char-class-remove-duplicates-transform')],\n\n// a{1,2}a{2,3} -> a{3,5}\n['quantifiersMerge', require('./quantifiers-merge-transform')],\n\n// a{1,} -> a+, a{3,3} -> a{3}, a{1} -> a\n['quantifierRangeToSymbol', require('./quantifier-range-to-symbol-transform')],\n\n// [a-a] -> [a], [a-b] -> [ab]\n['charClassClassrangesToChars', require('./char-class-classranges-to-chars-transform')],\n\n// [0-9] -> [\\d]\n['charClassToMeta', require('./char-class-to-meta-transform')],\n\n// [\\d] -> \\d, [^\\w] -> \\W\n['charClassToSingleChar', require('./char-class-to-single-char-transform')],\n\n// \\e -> e\n['charEscapeUnescape', require('./char-escape-unescape-transform')],\n\n// [a-de-f] -> [a-f]\n['charClassClassrangesMerge', require('./char-class-classranges-merge-transform')],\n\n// (ab|ab) -> (ab)\n['disjunctionRemoveDuplicates', require('./disjunction-remove-duplicates-transform')],\n\n// (a|b|c) -> [abc]\n['groupSingleCharsToCharClass', require('./group-single-chars-to-char-class')],\n\n// (?:)a -> a\n['removeEmptyGroup', require('./remove-empty-group-transform')],\n\n// (?:a) -> a\n['ungroup', require('./ungroup-transform')],\n\n// abcabcabc -> (?:abc){3}\n['combineRepeatingPatterns', require('./combine-repeating-patterns-transform')]]);","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace different range-based quantifiers\n * with their symbol equivalents.\n *\n * a{0,} -> a*\n * a{1,} -> a+\n * a{1} -> a\n *\n * NOTE: the following is automatically handled in the generator:\n *\n * a{3,3} -> a{3}\n */\n\nmodule.exports = {\n Quantifier: function Quantifier(path) {\n var node = path.node;\n\n\n if (node.kind !== 'Range') {\n return;\n }\n\n // a{0,} -> a*\n rewriteOpenZero(path);\n\n // a{1,} -> a+\n rewriteOpenOne(path);\n\n // a{1} -> a\n rewriteExactOne(path);\n }\n};\n\nfunction rewriteOpenZero(path) {\n var node = path.node;\n\n\n if (node.from !== 0 || node.to) {\n return;\n }\n\n node.kind = '*';\n delete node.from;\n}\n\nfunction rewriteOpenOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to) {\n return;\n }\n\n node.kind = '+';\n delete node.from;\n}\n\nfunction rewriteExactOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to !== 1) {\n return;\n }\n\n path.parentPath.replace(path.parentPath.node.expression);\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to merge quantifiers\n *\n * a+a+ -> a{2,}\n * a{2}a{3} -> a{5}\n * a{1,2}a{2,3} -> a{3,5}\n */\n\n\nmodule.exports = {\n Repetition: function Repetition(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (parent.type !== 'Alternative' || !path.index) {\n return;\n }\n\n var previousSibling = path.getPreviousSibling();\n\n if (!previousSibling) {\n return;\n }\n\n if (previousSibling.node.type === 'Repetition') {\n if (!previousSibling.getChild().hasEqualSource(path.getChild())) {\n return;\n }\n\n var _extractFromTo = extractFromTo(previousSibling.node.quantifier),\n previousSiblingFrom = _extractFromTo.from,\n previousSiblingTo = _extractFromTo.to;\n\n var _extractFromTo2 = extractFromTo(node.quantifier),\n nodeFrom = _extractFromTo2.from,\n nodeTo = _extractFromTo2.to;\n\n // It's does not seem reliable to merge quantifiers with different greediness\n // when none of both is a greedy open range\n\n\n if (previousSibling.node.quantifier.greedy !== node.quantifier.greedy && !isGreedyOpenRange(previousSibling.node.quantifier) && !isGreedyOpenRange(node.quantifier)) {\n return;\n }\n\n // a*a* -> a*\n // a*a+ -> a+\n // a+a+ -> a{2,}\n // a{2}a{4} -> a{6}\n // a{1,2}a{2,3} -> a{3,5}\n // a{1,}a{2,} -> a{3,}\n // a+a{2,} -> a{3,}\n\n // a??a{2,} -> a{2,}\n // a*?a{2,} -> a{2,}\n // a+?a{2,} -> a{3,}\n\n node.quantifier.kind = 'Range';\n node.quantifier.from = previousSiblingFrom + nodeFrom;\n if (previousSiblingTo && nodeTo) {\n node.quantifier.to = previousSiblingTo + nodeTo;\n } else {\n delete node.quantifier.to;\n }\n if (isGreedyOpenRange(previousSibling.node.quantifier) || isGreedyOpenRange(node.quantifier)) {\n node.quantifier.greedy = true;\n }\n\n previousSibling.remove();\n } else {\n if (!previousSibling.hasEqualSource(path.getChild())) {\n return;\n }\n\n increaseQuantifierByOne(node.quantifier);\n previousSibling.remove();\n }\n }\n};\n\nfunction isGreedyOpenRange(quantifier) {\n return quantifier.greedy && (quantifier.kind === '+' || quantifier.kind === '*' || quantifier.kind === 'Range' && !quantifier.to);\n}\n\nfunction extractFromTo(quantifier) {\n var from = void 0,\n to = void 0;\n if (quantifier.kind === '*') {\n from = 0;\n } else if (quantifier.kind === '+') {\n from = 1;\n } else if (quantifier.kind === '?') {\n from = 0;\n to = 1;\n } else {\n from = quantifier.from;\n if (quantifier.to) {\n to = quantifier.to;\n }\n }\n return { from: from, to: to };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove non-capturing empty groups.\n *\n * /(?:)a/ -> /a/\n * /a|(?:)/ -> /a|/\n */\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || childPath) {\n return;\n }\n\n if (parent.type === 'Repetition') {\n\n path.getParent().replace(node);\n } else if (parent.type !== 'RegExp') {\n\n path.remove();\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary groups.\n *\n * /(?:a)/ -> /a/\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || !childPath) {\n return;\n }\n\n // Don't optimize \\1(?:0) to \\10\n if (!hasAppropriateSiblings(path)) {\n return;\n }\n\n // Don't optimize /a(?:b|c)/ to /ab|c/\n // but /(?:b|c)/ to /b|c/ is ok\n if (childPath.node.type === 'Disjunction' && parent.type !== 'RegExp') {\n return;\n }\n\n // Don't optimize /(?:ab)+/ to /ab+/\n // but /(?:a)+/ to /a+/ is ok\n // and /(?:[a-d])+/ to /[a-d]+/ is ok too\n if (parent.type === 'Repetition' && childPath.node.type !== 'Char' && childPath.node.type !== 'CharacterClass') {\n return;\n }\n\n if (childPath.node.type === 'Alternative') {\n var parentPath = path.getParent();\n if (parentPath.node.type === 'Alternative') {\n // /abc(?:def)ghi/ When (?:def) is ungrouped its content must be merged with parent alternative\n\n parentPath.replace({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(parent.expressions.slice(0, path.index)), _toConsumableArray(childPath.node.expressions), _toConsumableArray(parent.expressions.slice(path.index + 1)))\n });\n }\n } else {\n path.replace(childPath.node);\n }\n }\n};\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1(?:0) to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2(?:0) to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}","/**\n * LR parser generated by the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * npm install -g syntax-cli\n *\n * syntax-cli --help\n *\n * To regenerate run:\n *\n * syntax-cli \\\n * --grammar ~/path-to-grammar-file \\\n * --mode <parsing-mode> \\\n * --output ~/path-to-output-parser-file.js\n */\n\n'use strict';\n\n/**\n * Matched token text.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar yytext = void 0;\n\n/**\n * Length of the matched token text.\n */\nvar yyleng = void 0;\n\n/**\n * Storage object.\n */\nvar yy = {};\n\n/**\n * Result of semantic action.\n */\nvar __ = void 0;\n\n/**\n * Result location object.\n */\nvar __loc = void 0;\n\nfunction yyloc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n // Epsilon doesn't produce location.\n if (!start || !end) {\n return start || end;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nvar EOF = '$';\n\n/**\n * List of productions (generated by Syntax tool).\n */\nvar productions = [[-1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [0, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n __ = Node({\n type: 'RegExp',\n body: _2,\n flags: checkFlags(_4)\n }, loc(_1loc, _4loc || _3loc));\n}], [1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [1, 0, function () {\n __loc = null;__ = '';\n}], [2, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [2, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1 + _2;\n}], [3, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n // Location for empty disjunction: /|/\n var _loc = null;\n\n if (_2loc) {\n _loc = loc(_1loc || _2loc, _3loc || _2loc);\n };\n\n __ = Node({\n type: 'Disjunction',\n left: _1,\n right: _3\n }, _loc);\n}], [5, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n if (_1.length === 0) {\n __ = null;\n return;\n }\n\n if (_1.length === 1) {\n __ = Node(_1[0], __loc);\n } else {\n __ = Node({\n type: 'Alternative',\n expressions: _1\n }, __loc);\n }\n}], [6, 0, function () {\n __loc = null;__ = [];\n}], [6, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1.concat(_2);\n}], [7, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Node(Object.assign({ type: 'Assertion' }, _1), __loc);\n}], [7, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n __ = _1;\n\n if (_2) {\n __ = Node({\n type: 'Repetition',\n expression: _1,\n quantifier: _2\n }, __loc);\n }\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '^' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '$' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\b' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\B' };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n negative: true,\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n negative: true,\n assertion: _2\n };\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1.slice(1), 'simple', __loc);__.escaped = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);__.isSurrogatePair = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = UnicodeProperty(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'control', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'hex', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'oct', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = GroupRefOrDecChar(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = NamedGroupRefOrChars(_1, _1loc);\n}], [11, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [11, 0], [12, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [12, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n _1.greedy = false;\n __ = _1;\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: getRange(_1)[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[1],\n greedy: true\n }, __loc);\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n var nameRaw = String(_1);\n var name = decodeUnicodeGroupName(nameRaw);\n if (!yy.options.allowGroupNameDuplicates && namedGroups.hasOwnProperty(name)) {\n throw new SyntaxError('Duplicate of the named group \"' + name + '\".');\n }\n\n namedGroups[name] = _1.groupNumber;\n\n __ = Node({\n type: 'Group',\n capturing: true,\n name: name,\n nameRaw: nameRaw,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: true,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [16, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: false,\n expression: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n negative: true,\n expressions: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n expressions: _2\n }, __loc);\n}], [18, 0, function () {\n __loc = null;__ = [];\n}], [18, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [19, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = [_1];\n}], [19, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [19, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [20, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [20, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [20, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}]];\n\n/**\n * Encoded tokens map.\n */\nvar tokens = { \"SLASH\": \"23\", \"CHAR\": \"24\", \"BAR\": \"25\", \"BOS\": \"26\", \"EOS\": \"27\", \"ESC_b\": \"28\", \"ESC_B\": \"29\", \"POS_LA_ASSERT\": \"30\", \"R_PAREN\": \"31\", \"NEG_LA_ASSERT\": \"32\", \"POS_LB_ASSERT\": \"33\", \"NEG_LB_ASSERT\": \"34\", \"ESC_CHAR\": \"35\", \"U_CODE_SURROGATE\": \"36\", \"U_CODE\": \"37\", \"U_PROP_VALUE_EXP\": \"38\", \"CTRL_CH\": \"39\", \"HEX_CODE\": \"40\", \"OCT_CODE\": \"41\", \"DEC_CODE\": \"42\", \"META_CHAR\": \"43\", \"ANY\": \"44\", \"NAMED_GROUP_REF\": \"45\", \"Q_MARK\": \"46\", \"STAR\": \"47\", \"PLUS\": \"48\", \"RANGE_EXACT\": \"49\", \"RANGE_OPEN\": \"50\", \"RANGE_CLOSED\": \"51\", \"NAMED_CAPTURE_GROUP\": \"52\", \"L_PAREN\": \"53\", \"NON_CAPTURE_GROUP\": \"54\", \"NEG_CLASS\": \"55\", \"R_BRACKET\": \"56\", \"L_BRACKET\": \"57\", \"DASH\": \"58\", \"$\": \"59\" };\n\n/**\n * Parsing table (generated by Syntax tool).\n */\nvar table = [{ \"0\": 1, \"23\": \"s2\" }, { \"59\": \"acc\" }, { \"3\": 3, \"4\": 4, \"5\": 5, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"s7\" }, { \"23\": \"r6\", \"25\": \"s12\" }, { \"23\": \"r7\", \"25\": \"r7\", \"31\": \"r7\" }, { \"7\": 14, \"8\": 15, \"9\": 16, \"10\": 25, \"14\": 27, \"15\": 42, \"16\": 43, \"17\": 26, \"23\": \"r9\", \"24\": \"s28\", \"25\": \"r9\", \"26\": \"s17\", \"27\": \"s18\", \"28\": \"s19\", \"29\": \"s20\", \"30\": \"s21\", \"31\": \"r9\", \"32\": \"s22\", \"33\": \"s23\", \"34\": \"s24\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"52\": \"s44\", \"53\": \"s45\", \"54\": \"s46\", \"55\": \"s40\", \"57\": \"s41\" }, { \"1\": 8, \"2\": 9, \"24\": \"s10\", \"59\": \"r3\" }, { \"59\": \"r1\" }, { \"24\": \"s11\", \"59\": \"r2\" }, { \"24\": \"r4\", \"59\": \"r4\" }, { \"24\": \"r5\", \"59\": \"r5\" }, { \"5\": 13, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r8\", \"25\": \"r8\", \"31\": \"r8\" }, { \"23\": \"r11\", \"24\": \"r11\", \"25\": \"r11\", \"26\": \"r11\", \"27\": \"r11\", \"28\": \"r11\", \"29\": \"r11\", \"30\": \"r11\", \"31\": \"r11\", \"32\": \"r11\", \"33\": \"r11\", \"34\": \"r11\", \"35\": \"r11\", \"36\": \"r11\", \"37\": \"r11\", \"38\": \"r11\", \"39\": \"r11\", \"40\": \"r11\", \"41\": \"r11\", \"42\": \"r11\", \"43\": \"r11\", \"44\": \"r11\", \"45\": \"r11\", \"52\": \"r11\", \"53\": \"r11\", \"54\": \"r11\", \"55\": \"r11\", \"57\": \"r11\" }, { \"23\": \"r12\", \"24\": \"r12\", \"25\": \"r12\", \"26\": \"r12\", \"27\": \"r12\", \"28\": \"r12\", \"29\": \"r12\", \"30\": \"r12\", \"31\": \"r12\", \"32\": \"r12\", \"33\": \"r12\", \"34\": \"r12\", \"35\": \"r12\", \"36\": \"r12\", \"37\": \"r12\", \"38\": \"r12\", \"39\": \"r12\", \"40\": \"r12\", \"41\": \"r12\", \"42\": \"r12\", \"43\": \"r12\", \"44\": \"r12\", \"45\": \"r12\", \"52\": \"r12\", \"53\": \"r12\", \"54\": \"r12\", \"55\": \"r12\", \"57\": \"r12\" }, { \"11\": 47, \"12\": 48, \"13\": 49, \"23\": \"r38\", \"24\": \"r38\", \"25\": \"r38\", \"26\": \"r38\", \"27\": \"r38\", \"28\": \"r38\", \"29\": \"r38\", \"30\": \"r38\", \"31\": \"r38\", \"32\": \"r38\", \"33\": \"r38\", \"34\": \"r38\", \"35\": \"r38\", \"36\": \"r38\", \"37\": \"r38\", \"38\": \"r38\", \"39\": \"r38\", \"40\": \"r38\", \"41\": \"r38\", \"42\": \"r38\", \"43\": \"r38\", \"44\": \"r38\", \"45\": \"r38\", \"46\": \"s52\", \"47\": \"s50\", \"48\": \"s51\", \"49\": \"s53\", \"50\": \"s54\", \"51\": \"s55\", \"52\": \"r38\", \"53\": \"r38\", \"54\": \"r38\", \"55\": \"r38\", \"57\": \"r38\" }, { \"23\": \"r14\", \"24\": \"r14\", \"25\": \"r14\", \"26\": \"r14\", \"27\": \"r14\", \"28\": \"r14\", \"29\": \"r14\", \"30\": \"r14\", \"31\": \"r14\", \"32\": \"r14\", \"33\": \"r14\", \"34\": \"r14\", \"35\": \"r14\", \"36\": \"r14\", \"37\": \"r14\", \"38\": \"r14\", \"39\": \"r14\", \"40\": \"r14\", \"41\": \"r14\", \"42\": \"r14\", \"43\": \"r14\", \"44\": \"r14\", \"45\": \"r14\", \"52\": \"r14\", \"53\": \"r14\", \"54\": \"r14\", \"55\": \"r14\", \"57\": \"r14\" }, { \"23\": \"r15\", \"24\": \"r15\", \"25\": \"r15\", \"26\": \"r15\", \"27\": \"r15\", \"28\": \"r15\", \"29\": \"r15\", \"30\": \"r15\", \"31\": \"r15\", \"32\": \"r15\", \"33\": \"r15\", \"34\": \"r15\", \"35\": \"r15\", \"36\": \"r15\", \"37\": \"r15\", \"38\": \"r15\", \"39\": \"r15\", \"40\": \"r15\", \"41\": \"r15\", \"42\": \"r15\", \"43\": \"r15\", \"44\": \"r15\", \"45\": \"r15\", \"52\": \"r15\", \"53\": \"r15\", \"54\": \"r15\", \"55\": \"r15\", \"57\": \"r15\" }, { \"23\": \"r16\", \"24\": \"r16\", \"25\": \"r16\", \"26\": \"r16\", \"27\": \"r16\", \"28\": \"r16\", \"29\": \"r16\", \"30\": \"r16\", \"31\": \"r16\", \"32\": \"r16\", \"33\": \"r16\", \"34\": \"r16\", \"35\": \"r16\", \"36\": \"r16\", \"37\": \"r16\", \"38\": \"r16\", \"39\": \"r16\", \"40\": \"r16\", \"41\": \"r16\", \"42\": \"r16\", \"43\": \"r16\", \"44\": \"r16\", \"45\": \"r16\", \"52\": \"r16\", \"53\": \"r16\", \"54\": \"r16\", \"55\": \"r16\", \"57\": \"r16\" }, { \"23\": \"r17\", \"24\": \"r17\", \"25\": \"r17\", \"26\": \"r17\", \"27\": \"r17\", \"28\": \"r17\", \"29\": \"r17\", \"30\": \"r17\", \"31\": \"r17\", \"32\": \"r17\", \"33\": \"r17\", \"34\": \"r17\", \"35\": \"r17\", \"36\": \"r17\", \"37\": \"r17\", \"38\": \"r17\", \"39\": \"r17\", \"40\": \"r17\", \"41\": \"r17\", \"42\": \"r17\", \"43\": \"r17\", \"44\": \"r17\", \"45\": \"r17\", \"52\": \"r17\", \"53\": \"r17\", \"54\": \"r17\", \"55\": \"r17\", \"57\": \"r17\" }, { \"4\": 57, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 59, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 61, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 63, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r22\", \"24\": \"r22\", \"25\": \"r22\", \"26\": \"r22\", \"27\": \"r22\", \"28\": \"r22\", \"29\": \"r22\", \"30\": \"r22\", \"31\": \"r22\", \"32\": \"r22\", \"33\": \"r22\", \"34\": \"r22\", \"35\": \"r22\", \"36\": \"r22\", \"37\": \"r22\", \"38\": \"r22\", \"39\": \"r22\", \"40\": \"r22\", \"41\": \"r22\", \"42\": \"r22\", \"43\": \"r22\", \"44\": \"r22\", \"45\": \"r22\", \"46\": \"r22\", \"47\": \"r22\", \"48\": \"r22\", \"49\": \"r22\", \"50\": \"r22\", \"51\": \"r22\", \"52\": \"r22\", \"53\": \"r22\", \"54\": \"r22\", \"55\": \"r22\", \"57\": \"r22\" }, { \"23\": \"r23\", \"24\": \"r23\", \"25\": \"r23\", \"26\": \"r23\", \"27\": \"r23\", \"28\": \"r23\", \"29\": \"r23\", \"30\": \"r23\", \"31\": \"r23\", \"32\": \"r23\", \"33\": \"r23\", \"34\": \"r23\", \"35\": \"r23\", \"36\": \"r23\", \"37\": \"r23\", \"38\": \"r23\", \"39\": \"r23\", \"40\": \"r23\", \"41\": \"r23\", \"42\": \"r23\", \"43\": \"r23\", \"44\": \"r23\", \"45\": \"r23\", \"46\": \"r23\", \"47\": \"r23\", \"48\": \"r23\", \"49\": \"r23\", \"50\": \"r23\", \"51\": \"r23\", \"52\": \"r23\", \"53\": \"r23\", \"54\": \"r23\", \"55\": \"r23\", \"57\": \"r23\" }, { \"23\": \"r24\", \"24\": \"r24\", \"25\": \"r24\", \"26\": \"r24\", \"27\": \"r24\", \"28\": \"r24\", \"29\": \"r24\", \"30\": \"r24\", \"31\": \"r24\", \"32\": \"r24\", \"33\": \"r24\", \"34\": \"r24\", \"35\": \"r24\", \"36\": \"r24\", \"37\": \"r24\", \"38\": \"r24\", \"39\": \"r24\", \"40\": \"r24\", \"41\": \"r24\", \"42\": \"r24\", \"43\": \"r24\", \"44\": \"r24\", \"45\": \"r24\", \"46\": \"r24\", \"47\": \"r24\", \"48\": \"r24\", \"49\": \"r24\", \"50\": \"r24\", \"51\": \"r24\", \"52\": \"r24\", \"53\": \"r24\", \"54\": \"r24\", \"55\": \"r24\", \"57\": \"r24\" }, { \"23\": \"r25\", \"24\": \"r25\", \"25\": \"r25\", \"26\": \"r25\", \"27\": \"r25\", \"28\": \"r25\", \"29\": \"r25\", \"30\": \"r25\", \"31\": \"r25\", \"32\": \"r25\", \"33\": \"r25\", \"34\": \"r25\", \"35\": \"r25\", \"36\": \"r25\", \"37\": \"r25\", \"38\": \"r25\", \"39\": \"r25\", \"40\": \"r25\", \"41\": \"r25\", \"42\": \"r25\", \"43\": \"r25\", \"44\": \"r25\", \"45\": \"r25\", \"46\": \"r25\", \"47\": \"r25\", \"48\": \"r25\", \"49\": \"r25\", \"50\": \"r25\", \"51\": \"r25\", \"52\": \"r25\", \"53\": \"r25\", \"54\": \"r25\", \"55\": \"r25\", \"56\": \"r25\", \"57\": \"r25\", \"58\": \"r25\" }, { \"23\": \"r26\", \"24\": \"r26\", \"25\": \"r26\", \"26\": \"r26\", \"27\": \"r26\", \"28\": \"r26\", \"29\": \"r26\", \"30\": \"r26\", \"31\": \"r26\", \"32\": \"r26\", \"33\": \"r26\", \"34\": \"r26\", \"35\": \"r26\", \"36\": \"r26\", \"37\": \"r26\", \"38\": \"r26\", \"39\": \"r26\", \"40\": \"r26\", \"41\": \"r26\", \"42\": \"r26\", \"43\": \"r26\", \"44\": \"r26\", \"45\": \"r26\", \"46\": \"r26\", \"47\": \"r26\", \"48\": \"r26\", \"49\": \"r26\", \"50\": \"r26\", \"51\": \"r26\", \"52\": \"r26\", \"53\": \"r26\", \"54\": \"r26\", \"55\": \"r26\", \"56\": \"r26\", \"57\": \"r26\", \"58\": \"r26\" }, { \"23\": \"r27\", \"24\": \"r27\", \"25\": \"r27\", \"26\": \"r27\", \"27\": \"r27\", \"28\": \"r27\", \"29\": \"r27\", \"30\": \"r27\", \"31\": \"r27\", \"32\": \"r27\", \"33\": \"r27\", \"34\": \"r27\", \"35\": \"r27\", \"36\": \"r27\", \"37\": \"r27\", \"38\": \"r27\", \"39\": \"r27\", \"40\": \"r27\", \"41\": \"r27\", \"42\": \"r27\", \"43\": \"r27\", \"44\": \"r27\", \"45\": \"r27\", \"46\": \"r27\", \"47\": \"r27\", \"48\": \"r27\", \"49\": \"r27\", \"50\": \"r27\", \"51\": \"r27\", \"52\": \"r27\", \"53\": \"r27\", \"54\": \"r27\", \"55\": \"r27\", \"56\": \"r27\", \"57\": \"r27\", \"58\": \"r27\" }, { \"23\": \"r28\", \"24\": \"r28\", \"25\": \"r28\", \"26\": \"r28\", \"27\": \"r28\", \"28\": \"r28\", \"29\": \"r28\", \"30\": \"r28\", \"31\": \"r28\", \"32\": \"r28\", \"33\": \"r28\", \"34\": \"r28\", \"35\": \"r28\", \"36\": \"r28\", \"37\": \"r28\", \"38\": \"r28\", \"39\": \"r28\", \"40\": \"r28\", \"41\": \"r28\", \"42\": \"r28\", \"43\": \"r28\", \"44\": \"r28\", \"45\": \"r28\", \"46\": \"r28\", \"47\": \"r28\", \"48\": \"r28\", \"49\": \"r28\", \"50\": \"r28\", \"51\": \"r28\", \"52\": \"r28\", \"53\": \"r28\", \"54\": \"r28\", \"55\": \"r28\", \"56\": \"r28\", \"57\": \"r28\", \"58\": \"r28\" }, { \"23\": \"r29\", \"24\": \"r29\", \"25\": \"r29\", \"26\": \"r29\", \"27\": \"r29\", \"28\": \"r29\", \"29\": \"r29\", \"30\": \"r29\", \"31\": \"r29\", \"32\": \"r29\", \"33\": \"r29\", \"34\": \"r29\", \"35\": \"r29\", \"36\": \"r29\", \"37\": \"r29\", \"38\": \"r29\", \"39\": \"r29\", \"40\": \"r29\", \"41\": \"r29\", \"42\": \"r29\", \"43\": \"r29\", \"44\": \"r29\", \"45\": \"r29\", \"46\": \"r29\", \"47\": \"r29\", \"48\": \"r29\", \"49\": \"r29\", \"50\": \"r29\", \"51\": \"r29\", \"52\": \"r29\", \"53\": \"r29\", \"54\": \"r29\", \"55\": \"r29\", \"56\": \"r29\", \"57\": \"r29\", \"58\": \"r29\" }, { \"23\": \"r30\", \"24\": \"r30\", \"25\": \"r30\", \"26\": \"r30\", \"27\": \"r30\", \"28\": \"r30\", \"29\": \"r30\", \"30\": \"r30\", \"31\": \"r30\", \"32\": \"r30\", \"33\": \"r30\", \"34\": \"r30\", \"35\": \"r30\", \"36\": \"r30\", \"37\": \"r30\", \"38\": \"r30\", \"39\": \"r30\", \"40\": \"r30\", \"41\": \"r30\", \"42\": \"r30\", \"43\": \"r30\", \"44\": \"r30\", \"45\": \"r30\", \"46\": \"r30\", \"47\": \"r30\", \"48\": \"r30\", \"49\": \"r30\", \"50\": \"r30\", \"51\": \"r30\", \"52\": \"r30\", \"53\": \"r30\", \"54\": \"r30\", \"55\": \"r30\", \"56\": \"r30\", \"57\": \"r30\", \"58\": \"r30\" }, { \"23\": \"r31\", \"24\": \"r31\", \"25\": \"r31\", \"26\": \"r31\", \"27\": \"r31\", \"28\": \"r31\", \"29\": \"r31\", \"30\": \"r31\", \"31\": \"r31\", \"32\": \"r31\", \"33\": \"r31\", \"34\": \"r31\", \"35\": \"r31\", \"36\": \"r31\", \"37\": \"r31\", \"38\": \"r31\", \"39\": \"r31\", \"40\": \"r31\", \"41\": \"r31\", \"42\": \"r31\", \"43\": \"r31\", \"44\": \"r31\", \"45\": \"r31\", \"46\": \"r31\", \"47\": \"r31\", \"48\": \"r31\", \"49\": \"r31\", \"50\": \"r31\", \"51\": \"r31\", \"52\": \"r31\", \"53\": \"r31\", \"54\": \"r31\", \"55\": \"r31\", \"56\": \"r31\", \"57\": \"r31\", \"58\": \"r31\" }, { \"23\": \"r32\", \"24\": \"r32\", \"25\": \"r32\", \"26\": \"r32\", \"27\": \"r32\", \"28\": \"r32\", \"29\": \"r32\", \"30\": \"r32\", \"31\": \"r32\", \"32\": \"r32\", \"33\": \"r32\", \"34\": \"r32\", \"35\": \"r32\", \"36\": \"r32\", \"37\": \"r32\", \"38\": \"r32\", \"39\": \"r32\", \"40\": \"r32\", \"41\": \"r32\", \"42\": \"r32\", \"43\": \"r32\", \"44\": \"r32\", \"45\": \"r32\", \"46\": \"r32\", \"47\": \"r32\", \"48\": \"r32\", \"49\": \"r32\", \"50\": \"r32\", \"51\": \"r32\", \"52\": \"r32\", \"53\": \"r32\", \"54\": \"r32\", \"55\": \"r32\", \"56\": \"r32\", \"57\": \"r32\", \"58\": \"r32\" }, { \"23\": \"r33\", \"24\": \"r33\", \"25\": \"r33\", \"26\": \"r33\", \"27\": \"r33\", \"28\": \"r33\", \"29\": \"r33\", \"30\": \"r33\", \"31\": \"r33\", \"32\": \"r33\", \"33\": \"r33\", \"34\": \"r33\", \"35\": \"r33\", \"36\": \"r33\", \"37\": \"r33\", \"38\": \"r33\", \"39\": \"r33\", \"40\": \"r33\", \"41\": \"r33\", \"42\": \"r33\", \"43\": \"r33\", \"44\": \"r33\", \"45\": \"r33\", \"46\": \"r33\", \"47\": \"r33\", \"48\": \"r33\", \"49\": \"r33\", \"50\": \"r33\", \"51\": \"r33\", \"52\": \"r33\", \"53\": \"r33\", \"54\": \"r33\", \"55\": \"r33\", \"56\": \"r33\", \"57\": \"r33\", \"58\": \"r33\" }, { \"23\": \"r34\", \"24\": \"r34\", \"25\": \"r34\", \"26\": \"r34\", \"27\": \"r34\", \"28\": \"r34\", \"29\": \"r34\", \"30\": \"r34\", \"31\": \"r34\", \"32\": \"r34\", \"33\": \"r34\", \"34\": \"r34\", \"35\": \"r34\", \"36\": \"r34\", \"37\": \"r34\", \"38\": \"r34\", \"39\": \"r34\", \"40\": \"r34\", \"41\": \"r34\", \"42\": \"r34\", \"43\": \"r34\", \"44\": \"r34\", \"45\": \"r34\", \"46\": \"r34\", \"47\": \"r34\", \"48\": \"r34\", \"49\": \"r34\", \"50\": \"r34\", \"51\": \"r34\", \"52\": \"r34\", \"53\": \"r34\", \"54\": \"r34\", \"55\": \"r34\", \"56\": \"r34\", \"57\": \"r34\", \"58\": \"r34\" }, { \"23\": \"r35\", \"24\": \"r35\", \"25\": \"r35\", \"26\": \"r35\", \"27\": \"r35\", \"28\": \"r35\", \"29\": \"r35\", \"30\": \"r35\", \"31\": \"r35\", \"32\": \"r35\", \"33\": \"r35\", \"34\": \"r35\", \"35\": \"r35\", \"36\": \"r35\", \"37\": \"r35\", \"38\": \"r35\", \"39\": \"r35\", \"40\": \"r35\", \"41\": \"r35\", \"42\": \"r35\", \"43\": \"r35\", \"44\": \"r35\", \"45\": \"r35\", \"46\": \"r35\", \"47\": \"r35\", \"48\": \"r35\", \"49\": \"r35\", \"50\": \"r35\", \"51\": \"r35\", \"52\": \"r35\", \"53\": \"r35\", \"54\": \"r35\", \"55\": \"r35\", \"56\": \"r35\", \"57\": \"r35\", \"58\": \"r35\" }, { \"23\": \"r36\", \"24\": \"r36\", \"25\": \"r36\", \"26\": \"r36\", \"27\": \"r36\", \"28\": \"r36\", \"29\": \"r36\", \"30\": \"r36\", \"31\": \"r36\", \"32\": \"r36\", \"33\": \"r36\", \"34\": \"r36\", \"35\": \"r36\", \"36\": \"r36\", \"37\": \"r36\", \"38\": \"r36\", \"39\": \"r36\", \"40\": \"r36\", \"41\": \"r36\", \"42\": \"r36\", \"43\": \"r36\", \"44\": \"r36\", \"45\": \"r36\", \"46\": \"r36\", \"47\": \"r36\", \"48\": \"r36\", \"49\": \"r36\", \"50\": \"r36\", \"51\": \"r36\", \"52\": \"r36\", \"53\": \"r36\", \"54\": \"r36\", \"55\": \"r36\", \"56\": \"r36\", \"57\": \"r36\", \"58\": \"r36\" }, { \"10\": 70, \"18\": 65, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 83, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"23\": \"r47\", \"24\": \"r47\", \"25\": \"r47\", \"26\": \"r47\", \"27\": \"r47\", \"28\": \"r47\", \"29\": \"r47\", \"30\": \"r47\", \"31\": \"r47\", \"32\": \"r47\", \"33\": \"r47\", \"34\": \"r47\", \"35\": \"r47\", \"36\": \"r47\", \"37\": \"r47\", \"38\": \"r47\", \"39\": \"r47\", \"40\": \"r47\", \"41\": \"r47\", \"42\": \"r47\", \"43\": \"r47\", \"44\": \"r47\", \"45\": \"r47\", \"46\": \"r47\", \"47\": \"r47\", \"48\": \"r47\", \"49\": \"r47\", \"50\": \"r47\", \"51\": \"r47\", \"52\": \"r47\", \"53\": \"r47\", \"54\": \"r47\", \"55\": \"r47\", \"57\": \"r47\" }, { \"23\": \"r48\", \"24\": \"r48\", \"25\": \"r48\", \"26\": \"r48\", \"27\": \"r48\", \"28\": \"r48\", \"29\": \"r48\", \"30\": \"r48\", \"31\": \"r48\", \"32\": \"r48\", \"33\": \"r48\", \"34\": \"r48\", \"35\": \"r48\", \"36\": \"r48\", \"37\": \"r48\", \"38\": \"r48\", \"39\": \"r48\", \"40\": \"r48\", \"41\": \"r48\", \"42\": \"r48\", \"43\": \"r48\", \"44\": \"r48\", \"45\": \"r48\", \"46\": \"r48\", \"47\": \"r48\", \"48\": \"r48\", \"49\": \"r48\", \"50\": \"r48\", \"51\": \"r48\", \"52\": \"r48\", \"53\": \"r48\", \"54\": \"r48\", \"55\": \"r48\", \"57\": \"r48\" }, { \"4\": 85, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 87, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 89, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r13\", \"24\": \"r13\", \"25\": \"r13\", \"26\": \"r13\", \"27\": \"r13\", \"28\": \"r13\", \"29\": \"r13\", \"30\": \"r13\", \"31\": \"r13\", \"32\": \"r13\", \"33\": \"r13\", \"34\": \"r13\", \"35\": \"r13\", \"36\": \"r13\", \"37\": \"r13\", \"38\": \"r13\", \"39\": \"r13\", \"40\": \"r13\", \"41\": \"r13\", \"42\": \"r13\", \"43\": \"r13\", \"44\": \"r13\", \"45\": \"r13\", \"52\": \"r13\", \"53\": \"r13\", \"54\": \"r13\", \"55\": \"r13\", \"57\": \"r13\" }, { \"23\": \"r37\", \"24\": \"r37\", \"25\": \"r37\", \"26\": \"r37\", \"27\": \"r37\", \"28\": \"r37\", \"29\": \"r37\", \"30\": \"r37\", \"31\": \"r37\", \"32\": \"r37\", \"33\": \"r37\", \"34\": \"r37\", \"35\": \"r37\", \"36\": \"r37\", \"37\": \"r37\", \"38\": \"r37\", \"39\": \"r37\", \"40\": \"r37\", \"41\": \"r37\", \"42\": \"r37\", \"43\": \"r37\", \"44\": \"r37\", \"45\": \"r37\", \"52\": \"r37\", \"53\": \"r37\", \"54\": \"r37\", \"55\": \"r37\", \"57\": \"r37\" }, { \"23\": \"r39\", \"24\": \"r39\", \"25\": \"r39\", \"26\": \"r39\", \"27\": \"r39\", \"28\": \"r39\", \"29\": \"r39\", \"30\": \"r39\", \"31\": \"r39\", \"32\": \"r39\", \"33\": \"r39\", \"34\": \"r39\", \"35\": \"r39\", \"36\": \"r39\", \"37\": \"r39\", \"38\": \"r39\", \"39\": \"r39\", \"40\": \"r39\", \"41\": \"r39\", \"42\": \"r39\", \"43\": \"r39\", \"44\": \"r39\", \"45\": \"r39\", \"46\": \"s56\", \"52\": \"r39\", \"53\": \"r39\", \"54\": \"r39\", \"55\": \"r39\", \"57\": \"r39\" }, { \"23\": \"r41\", \"24\": \"r41\", \"25\": \"r41\", \"26\": \"r41\", \"27\": \"r41\", \"28\": \"r41\", \"29\": \"r41\", \"30\": \"r41\", \"31\": \"r41\", \"32\": \"r41\", \"33\": \"r41\", \"34\": \"r41\", \"35\": \"r41\", \"36\": \"r41\", \"37\": \"r41\", \"38\": \"r41\", \"39\": \"r41\", \"40\": \"r41\", \"41\": \"r41\", \"42\": \"r41\", \"43\": \"r41\", \"44\": \"r41\", \"45\": \"r41\", \"46\": \"r41\", \"52\": \"r41\", \"53\": \"r41\", \"54\": \"r41\", \"55\": \"r41\", \"57\": \"r41\" }, { \"23\": \"r42\", \"24\": \"r42\", \"25\": \"r42\", \"26\": \"r42\", \"27\": \"r42\", \"28\": \"r42\", \"29\": \"r42\", \"30\": \"r42\", \"31\": \"r42\", \"32\": \"r42\", \"33\": \"r42\", \"34\": \"r42\", \"35\": \"r42\", \"36\": \"r42\", \"37\": \"r42\", \"38\": \"r42\", \"39\": \"r42\", \"40\": \"r42\", \"41\": \"r42\", \"42\": \"r42\", \"43\": \"r42\", \"44\": \"r42\", \"45\": \"r42\", \"46\": \"r42\", \"52\": \"r42\", \"53\": \"r42\", \"54\": \"r42\", \"55\": \"r42\", \"57\": \"r42\" }, { \"23\": \"r43\", \"24\": \"r43\", \"25\": \"r43\", \"26\": \"r43\", \"27\": \"r43\", \"28\": \"r43\", \"29\": \"r43\", \"30\": \"r43\", \"31\": \"r43\", \"32\": \"r43\", \"33\": \"r43\", \"34\": \"r43\", \"35\": \"r43\", \"36\": \"r43\", \"37\": \"r43\", \"38\": \"r43\", \"39\": \"r43\", \"40\": \"r43\", \"41\": \"r43\", \"42\": \"r43\", \"43\": \"r43\", \"44\": \"r43\", \"45\": \"r43\", \"46\": \"r43\", \"52\": \"r43\", \"53\": \"r43\", \"54\": \"r43\", \"55\": \"r43\", \"57\": \"r43\" }, { \"23\": \"r44\", \"24\": \"r44\", \"25\": \"r44\", \"26\": \"r44\", \"27\": \"r44\", \"28\": \"r44\", \"29\": \"r44\", \"30\": \"r44\", \"31\": \"r44\", \"32\": \"r44\", \"33\": \"r44\", \"34\": \"r44\", \"35\": \"r44\", \"36\": \"r44\", \"37\": \"r44\", \"38\": \"r44\", \"39\": \"r44\", \"40\": \"r44\", \"41\": \"r44\", \"42\": \"r44\", \"43\": \"r44\", \"44\": \"r44\", \"45\": \"r44\", \"46\": \"r44\", \"52\": \"r44\", \"53\": \"r44\", \"54\": \"r44\", \"55\": \"r44\", \"57\": \"r44\" }, { \"23\": \"r45\", \"24\": \"r45\", \"25\": \"r45\", \"26\": \"r45\", \"27\": \"r45\", \"28\": \"r45\", \"29\": \"r45\", \"30\": \"r45\", \"31\": \"r45\", \"32\": \"r45\", \"33\": \"r45\", \"34\": \"r45\", \"35\": \"r45\", \"36\": \"r45\", \"37\": \"r45\", \"38\": \"r45\", \"39\": \"r45\", \"40\": \"r45\", \"41\": \"r45\", \"42\": \"r45\", \"43\": \"r45\", \"44\": \"r45\", \"45\": \"r45\", \"46\": \"r45\", \"52\": \"r45\", \"53\": \"r45\", \"54\": \"r45\", \"55\": \"r45\", \"57\": \"r45\" }, { \"23\": \"r46\", \"24\": \"r46\", \"25\": \"r46\", \"26\": \"r46\", \"27\": \"r46\", \"28\": \"r46\", \"29\": \"r46\", \"30\": \"r46\", \"31\": \"r46\", \"32\": \"r46\", \"33\": \"r46\", \"34\": \"r46\", \"35\": \"r46\", \"36\": \"r46\", \"37\": \"r46\", \"38\": \"r46\", \"39\": \"r46\", \"40\": \"r46\", \"41\": \"r46\", \"42\": \"r46\", \"43\": \"r46\", \"44\": \"r46\", \"45\": \"r46\", \"46\": \"r46\", \"52\": \"r46\", \"53\": \"r46\", \"54\": \"r46\", \"55\": \"r46\", \"57\": \"r46\" }, { \"23\": \"r40\", \"24\": \"r40\", \"25\": \"r40\", \"26\": \"r40\", \"27\": \"r40\", \"28\": \"r40\", \"29\": \"r40\", \"30\": \"r40\", \"31\": \"r40\", \"32\": \"r40\", \"33\": \"r40\", \"34\": \"r40\", \"35\": \"r40\", \"36\": \"r40\", \"37\": \"r40\", \"38\": \"r40\", \"39\": \"r40\", \"40\": \"r40\", \"41\": \"r40\", \"42\": \"r40\", \"43\": \"r40\", \"44\": \"r40\", \"45\": \"r40\", \"52\": \"r40\", \"53\": \"r40\", \"54\": \"r40\", \"55\": \"r40\", \"57\": \"r40\" }, { \"25\": \"s12\", \"31\": \"s58\" }, { \"23\": \"r18\", \"24\": \"r18\", \"25\": \"r18\", \"26\": \"r18\", \"27\": \"r18\", \"28\": \"r18\", \"29\": \"r18\", \"30\": \"r18\", \"31\": \"r18\", \"32\": \"r18\", \"33\": \"r18\", \"34\": \"r18\", \"35\": \"r18\", \"36\": \"r18\", \"37\": \"r18\", \"38\": \"r18\", \"39\": \"r18\", \"40\": \"r18\", \"41\": \"r18\", \"42\": \"r18\", \"43\": \"r18\", \"44\": \"r18\", \"45\": \"r18\", \"52\": \"r18\", \"53\": \"r18\", \"54\": \"r18\", \"55\": \"r18\", \"57\": \"r18\" }, { \"25\": \"s12\", \"31\": \"s60\" }, { \"23\": \"r19\", \"24\": \"r19\", \"25\": \"r19\", \"26\": \"r19\", \"27\": \"r19\", \"28\": \"r19\", \"29\": \"r19\", \"30\": \"r19\", \"31\": \"r19\", \"32\": \"r19\", \"33\": \"r19\", \"34\": \"r19\", \"35\": \"r19\", \"36\": \"r19\", \"37\": \"r19\", \"38\": \"r19\", \"39\": \"r19\", \"40\": \"r19\", \"41\": \"r19\", \"42\": \"r19\", \"43\": \"r19\", \"44\": \"r19\", \"45\": \"r19\", \"52\": \"r19\", \"53\": \"r19\", \"54\": \"r19\", \"55\": \"r19\", \"57\": \"r19\" }, { \"25\": \"s12\", \"31\": \"s62\" }, { \"23\": \"r20\", \"24\": \"r20\", \"25\": \"r20\", \"26\": \"r20\", \"27\": \"r20\", \"28\": \"r20\", \"29\": \"r20\", \"30\": \"r20\", \"31\": \"r20\", \"32\": \"r20\", \"33\": \"r20\", \"34\": \"r20\", \"35\": \"r20\", \"36\": \"r20\", \"37\": \"r20\", \"38\": \"r20\", \"39\": \"r20\", \"40\": \"r20\", \"41\": \"r20\", \"42\": \"r20\", \"43\": \"r20\", \"44\": \"r20\", \"45\": \"r20\", \"52\": \"r20\", \"53\": \"r20\", \"54\": \"r20\", \"55\": \"r20\", \"57\": \"r20\" }, { \"25\": \"s12\", \"31\": \"s64\" }, { \"23\": \"r21\", \"24\": \"r21\", \"25\": \"r21\", \"26\": \"r21\", \"27\": \"r21\", \"28\": \"r21\", \"29\": \"r21\", \"30\": \"r21\", \"31\": \"r21\", \"32\": \"r21\", \"33\": \"r21\", \"34\": \"r21\", \"35\": \"r21\", \"36\": \"r21\", \"37\": \"r21\", \"38\": \"r21\", \"39\": \"r21\", \"40\": \"r21\", \"41\": \"r21\", \"42\": \"r21\", \"43\": \"r21\", \"44\": \"r21\", \"45\": \"r21\", \"52\": \"r21\", \"53\": \"r21\", \"54\": \"r21\", \"55\": \"r21\", \"57\": \"r21\" }, { \"56\": \"s72\" }, { \"56\": \"r55\" }, { \"10\": 70, \"20\": 73, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r56\", \"58\": \"s74\" }, { \"24\": \"r62\", \"28\": \"r62\", \"35\": \"r62\", \"36\": \"r62\", \"37\": \"r62\", \"38\": \"r62\", \"39\": \"r62\", \"40\": \"r62\", \"41\": \"r62\", \"42\": \"r62\", \"43\": \"r62\", \"44\": \"r62\", \"45\": \"r62\", \"56\": \"r62\", \"58\": \"r62\" }, { \"24\": \"r63\", \"28\": \"r63\", \"35\": \"r63\", \"36\": \"r63\", \"37\": \"r63\", \"38\": \"r63\", \"39\": \"r63\", \"40\": \"r63\", \"41\": \"r63\", \"42\": \"r63\", \"43\": \"r63\", \"44\": \"r63\", \"45\": \"r63\", \"56\": \"r63\", \"58\": \"r63\" }, { \"24\": \"r64\", \"28\": \"r64\", \"35\": \"r64\", \"36\": \"r64\", \"37\": \"r64\", \"38\": \"r64\", \"39\": \"r64\", \"40\": \"r64\", \"41\": \"r64\", \"42\": \"r64\", \"43\": \"r64\", \"44\": \"r64\", \"45\": \"r64\", \"56\": \"r64\", \"58\": \"r64\" }, { \"24\": \"r65\", \"28\": \"r65\", \"35\": \"r65\", \"36\": \"r65\", \"37\": \"r65\", \"38\": \"r65\", \"39\": \"r65\", \"40\": \"r65\", \"41\": \"r65\", \"42\": \"r65\", \"43\": \"r65\", \"44\": \"r65\", \"45\": \"r65\", \"56\": \"r65\", \"58\": \"r65\" }, { \"23\": \"r52\", \"24\": \"r52\", \"25\": \"r52\", \"26\": \"r52\", \"27\": \"r52\", \"28\": \"r52\", \"29\": \"r52\", \"30\": \"r52\", \"31\": \"r52\", \"32\": \"r52\", \"33\": \"r52\", \"34\": \"r52\", \"35\": \"r52\", \"36\": \"r52\", \"37\": \"r52\", \"38\": \"r52\", \"39\": \"r52\", \"40\": \"r52\", \"41\": \"r52\", \"42\": \"r52\", \"43\": \"r52\", \"44\": \"r52\", \"45\": \"r52\", \"46\": \"r52\", \"47\": \"r52\", \"48\": \"r52\", \"49\": \"r52\", \"50\": \"r52\", \"51\": \"r52\", \"52\": \"r52\", \"53\": \"r52\", \"54\": \"r52\", \"55\": \"r52\", \"57\": \"r52\" }, { \"56\": \"r57\" }, { \"10\": 70, \"21\": 77, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"56\": \"r59\" }, { \"10\": 70, \"20\": 79, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r63\", \"58\": \"s80\" }, { \"10\": 70, \"18\": 78, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r58\" }, { \"56\": \"r60\" }, { \"10\": 70, \"21\": 81, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 82, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r61\" }, { \"56\": \"s84\" }, { \"23\": \"r53\", \"24\": \"r53\", \"25\": \"r53\", \"26\": \"r53\", \"27\": \"r53\", \"28\": \"r53\", \"29\": \"r53\", \"30\": \"r53\", \"31\": \"r53\", \"32\": \"r53\", \"33\": \"r53\", \"34\": \"r53\", \"35\": \"r53\", \"36\": \"r53\", \"37\": \"r53\", \"38\": \"r53\", \"39\": \"r53\", \"40\": \"r53\", \"41\": \"r53\", \"42\": \"r53\", \"43\": \"r53\", \"44\": \"r53\", \"45\": \"r53\", \"46\": \"r53\", \"47\": \"r53\", \"48\": \"r53\", \"49\": \"r53\", \"50\": \"r53\", \"51\": \"r53\", \"52\": \"r53\", \"53\": \"r53\", \"54\": \"r53\", \"55\": \"r53\", \"57\": \"r53\" }, { \"25\": \"s12\", \"31\": \"s86\" }, { \"23\": \"r49\", \"24\": \"r49\", \"25\": \"r49\", \"26\": \"r49\", \"27\": \"r49\", \"28\": \"r49\", \"29\": \"r49\", \"30\": \"r49\", \"31\": \"r49\", \"32\": \"r49\", \"33\": \"r49\", \"34\": \"r49\", \"35\": \"r49\", \"36\": \"r49\", \"37\": \"r49\", \"38\": \"r49\", \"39\": \"r49\", \"40\": \"r49\", \"41\": \"r49\", \"42\": \"r49\", \"43\": \"r49\", \"44\": \"r49\", \"45\": \"r49\", \"46\": \"r49\", \"47\": \"r49\", \"48\": \"r49\", \"49\": \"r49\", \"50\": \"r49\", \"51\": \"r49\", \"52\": \"r49\", \"53\": \"r49\", \"54\": \"r49\", \"55\": \"r49\", \"57\": \"r49\" }, { \"25\": \"s12\", \"31\": \"s88\" }, { \"23\": \"r50\", \"24\": \"r50\", \"25\": \"r50\", \"26\": \"r50\", \"27\": \"r50\", \"28\": \"r50\", \"29\": \"r50\", \"30\": \"r50\", \"31\": \"r50\", \"32\": \"r50\", \"33\": \"r50\", \"34\": \"r50\", \"35\": \"r50\", \"36\": \"r50\", \"37\": \"r50\", \"38\": \"r50\", \"39\": \"r50\", \"40\": \"r50\", \"41\": \"r50\", \"42\": \"r50\", \"43\": \"r50\", \"44\": \"r50\", \"45\": \"r50\", \"46\": \"r50\", \"47\": \"r50\", \"48\": \"r50\", \"49\": \"r50\", \"50\": \"r50\", \"51\": \"r50\", \"52\": \"r50\", \"53\": \"r50\", \"54\": \"r50\", \"55\": \"r50\", \"57\": \"r50\" }, { \"25\": \"s12\", \"31\": \"s90\" }, { \"23\": \"r51\", \"24\": \"r51\", \"25\": \"r51\", \"26\": \"r51\", \"27\": \"r51\", \"28\": \"r51\", \"29\": \"r51\", \"30\": \"r51\", \"31\": \"r51\", \"32\": \"r51\", \"33\": \"r51\", \"34\": \"r51\", \"35\": \"r51\", \"36\": \"r51\", \"37\": \"r51\", \"38\": \"r51\", \"39\": \"r51\", \"40\": \"r51\", \"41\": \"r51\", \"42\": \"r51\", \"43\": \"r51\", \"44\": \"r51\", \"45\": \"r51\", \"46\": \"r51\", \"47\": \"r51\", \"48\": \"r51\", \"49\": \"r51\", \"50\": \"r51\", \"51\": \"r51\", \"52\": \"r51\", \"53\": \"r51\", \"54\": \"r51\", \"55\": \"r51\", \"57\": \"r51\" }];\n\n/**\n * Parsing stack.\n */\nvar stack = [];\n\n/**\n * Tokenizer instance.\n */\nvar tokenizer = void 0;\n/**\n * Generic tokenizer used by the parser in the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * See `--custom-tokinzer` to skip this generation, and use a custom one.\n */\n\nvar lexRules = [[/^#[^\\n]+/, function () {/* skip comments */}], [/^\\s+/, function () {/* skip whitespace */}], [/^-/, function () {\n return 'DASH';\n}], [/^\\//, function () {\n return 'CHAR';\n}], [/^#/, function () {\n return 'CHAR';\n}], [/^\\|/, function () {\n return 'CHAR';\n}], [/^\\./, function () {\n return 'CHAR';\n}], [/^\\{/, function () {\n return 'CHAR';\n}], [/^\\{\\d+\\}/, function () {\n return 'RANGE_EXACT';\n}], [/^\\{\\d+,\\}/, function () {\n return 'RANGE_OPEN';\n}], [/^\\{\\d+,\\d+\\}/, function () {\n return 'RANGE_CLOSED';\n}], [/^\\\\k<(([\\u0041-\\u005a\\u0061-\\u007a\\u00aa\\u00b5\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e-\\u066f\\u0671-\\u06d3\\u06d5\\u06e5-\\u06e6\\u06ee-\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4-\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc-\\u09dd\\u09df-\\u09e1\\u09f0-\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0-\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c-\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60-\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0-\\u0ce1\\u0cf1-\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2-\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065-\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\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\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae-\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5-\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\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\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\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\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a-\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd-\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5-\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\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]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\ude80-\\ude9c\\udea0-\\uded0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf75\\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\\ude10-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd23\\udf00-\\udf1c\\udf27\\udf30-\\udf45\\udfe0-\\udff6]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd44\\udd50-\\udd72\\udd76\\udd83-\\uddb2\\uddc1-\\uddc4\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude2b\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udede\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3d\\udf50\\udf5d-\\udf61]|\\ud805[\\udc00-\\udc34\\udc47-\\udc4a\\udc5f\\udc80-\\udcaf\\udcc4-\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udeb8\\udf00-\\udf1a]|\\ud806[\\udc00-\\udc2b\\udca0-\\udcdf\\udcff\\udda0-\\udda7\\uddaa-\\uddd0\\udde1\\udde3\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude89\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd30\\udd46\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd89\\udd98\\udee0-\\udef2]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf50\\udf93-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99]|\\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[\\udd00-\\udd2c\\udd37-\\udd3d\\udd4e\\udec0-\\udeeb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd4b]|\\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]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\}))(([\\u0030-\\u0039\\u0041-\\u005a\\u005f\\u0061-\\u007a\\u00aa\\u00b5\\u00b7\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0300-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u0483-\\u0487\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u07fd\\u0800-\\u082d\\u0840-\\u085b\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u08d3-\\u08e1\\u08e3-\\u0963\\u0966-\\u096f\\u0971-\\u0983\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bc-\\u09c4\\u09c7-\\u09c8\\u09cb-\\u09ce\\u09d7\\u09dc-\\u09dd\\u09df-\\u09e3\\u09e6-\\u09f1\\u09fc\\u09fe\\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\\u0a81-\\u0a83\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abc-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ad0\\u0ae0-\\u0ae3\\u0ae6-\\u0aef\\u0af9-\\u0aff\\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-\\u0b6f\\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-\\u0bcd\\u0bd0\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\\u0c58-\\u0c5a\\u0c60-\\u0c63\\u0c66-\\u0c6f\\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\\u0d00-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d54-\\u0d57\\u0d5f-\\u0d63\\u0d66-\\u0d6f\\u0d7a-\\u0d7f\\u0d82-\\u0d83\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2-\\u0df3\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u0e50-\\u0e59\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0edc-\\u0edf\\u0f00\\u0f18-\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f47\\u0f49-\\u0f6c\\u0f71-\\u0f84\\u0f86-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1049\\u1050-\\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\\u135d-\\u135f\\u1369-\\u1371\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176c\\u176e-\\u1770\\u1772-\\u1773\\u1780-\\u17d3\\u17d7\\u17dc-\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u19d0-\\u19da\\u1a00-\\u1a1b\\u1a20-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1aa7\\u1ab0-\\u1abd\\u1b00-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1bf3\\u1c00-\\u1c37\\u1c40-\\u1c49\\u1c4d-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1cd0-\\u1cd2\\u1cd4-\\u1cfa\\u1d00-\\u1df9\\u1dfb-\\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\\u203f-\\u2040\\u2054\\u2071\\u207f\\u2090-\\u209c\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d7f-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2de0-\\u2dff\\u3005-\\u3007\\u3021-\\u302f\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua8fd-\\ua92d\\ua930-\\ua953\\ua960-\\ua97c\\ua980-\\ua9c0\\ua9cf-\\ua9d9\\ua9e0-\\ua9fe\\uaa00-\\uaa36\\uaa40-\\uaa4d\\uaa50-\\uaa59\\uaa60-\\uaa76\\uaa7a-\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaef\\uaaf2-\\uaaf6\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabea\\uabec-\\uabed\\uabf0-\\uabf9\\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\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33-\\ufe34\\ufe4d-\\ufe4f\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff10-\\uff19\\uff21-\\uff3a\\uff3f\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\uddfd\\ude80-\\ude9c\\udea0-\\uded0\\udee0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udca0-\\udca9\\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-\\ude35\\ude38-\\ude3a\\ude3f\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee6\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd27\\udd30-\\udd39\\udf00-\\udf1c\\udf27\\udf30-\\udf50\\udfe0-\\udff6]|\\ud804[\\udc00-\\udc46\\udc66-\\udc6f\\udc7f-\\udcba\\udcd0-\\udce8\\udcf0-\\udcf9\\udd00-\\udd34\\udd36-\\udd3f\\udd44-\\udd46\\udd50-\\udd73\\udd76\\udd80-\\uddc4\\uddc9-\\uddcc\\uddd0-\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude37\\ude3e\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udeea\\udef0-\\udef9\\udf00-\\udf03\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3b-\\udf44\\udf47-\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc00-\\udc4a\\udc50-\\udc59\\udc5e-\\udc5f\\udc80-\\udcc5\\udcc7\\udcd0-\\udcd9\\udd80-\\uddb5\\uddb8-\\uddc0\\uddd8-\\udddd\\ude00-\\ude40\\ude44\\ude50-\\ude59\\ude80-\\udeb8\\udec0-\\udec9\\udf00-\\udf1a\\udf1d-\\udf2b\\udf30-\\udf39]|\\ud806[\\udc00-\\udc3a\\udca0-\\udce9\\udcff\\udda0-\\udda7\\uddaa-\\uddd7\\uddda-\\udde1\\udde3-\\udde4\\ude00-\\ude3e\\ude47\\ude50-\\ude99\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc40\\udc50-\\udc59\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd36\\udd3a\\udd3c-\\udd3d\\udd3f-\\udd47\\udd50-\\udd59\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd8e\\udd90-\\udd91\\udd93-\\udd98\\udda0-\\udda9\\udee0-\\udef6]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\ude60-\\ude69\\uded0-\\udeed\\udef0-\\udef4\\udf00-\\udf36\\udf40-\\udf43\\udf50-\\udf59\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf4f-\\udf87\\udf8f-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99\\udc9d-\\udc9e]|\\ud834[\\udd65-\\udd69\\udd6d-\\udd72\\udd7b-\\udd82\\udd85-\\udd8b\\uddaa-\\uddad\\ude42-\\ude44]|\\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\\udfce-\\udfff]|\\ud836[\\ude00-\\ude36\\ude3b-\\ude6c\\ude75\\ude84\\ude9b-\\ude9f\\udea1-\\udeaf]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23-\\udc24\\udc26-\\udc2a\\udd00-\\udd2c\\udd30-\\udd3d\\udd40-\\udd49\\udd4e\\udec0-\\udef9]|\\ud83a[\\udc00-\\udcc4\\udcd0-\\udcd6\\udd00-\\udd4b\\udd50-\\udd59]|\\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]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\udb40[\\udd00-\\uddef])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\})|[\\u200c\\u200d])*>/, function () {\n var groupName = yytext.slice(3, -1);\n validateUnicodeGroupName(groupName, this.getCurrentState());\n return 'NAMED_GROUP_REF';\n}], [/^\\\\b/, function () {\n return 'ESC_b';\n}], [/^\\\\B/, function () {\n return 'ESC_B';\n}], [/^\\\\c[a-zA-Z]/, function () {\n return 'CTRL_CH';\n}], [/^\\\\0\\d{1,2}/, function () {\n return 'OCT_CODE';\n}], [/^\\\\0/, function () {\n return 'DEC_CODE';\n}], [/^\\\\\\d{1,3}/, function () {\n return 'DEC_CODE';\n}], [/^\\\\u[dD][89abAB][0-9a-fA-F]{2}\\\\u[dD][c-fC-F][0-9a-fA-F]{2}/, function () {\n return 'U_CODE_SURROGATE';\n}], [/^\\\\u\\{[0-9a-fA-F]{1,}\\}/, function () {\n return 'U_CODE';\n}], [/^\\\\u[0-9a-fA-F]{4}/, function () {\n return 'U_CODE';\n}], [/^\\\\[pP]\\{\\w+(?:=\\w+)?\\}/, function () {\n return 'U_PROP_VALUE_EXP';\n}], [/^\\\\x[0-9a-fA-F]{2}/, function () {\n return 'HEX_CODE';\n}], [/^\\\\[tnrdDsSwWvf]/, function () {\n return 'META_CHAR';\n}], [/^\\\\\\//, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[ #]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[\\^\\$\\.\\*\\+\\?\\(\\)\\\\\\[\\]\\{\\}\\|\\/]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[^*?+\\[()\\\\|]/, function () {\n var s = this.getCurrentState();\n if (s === 'u_class' && yytext === \"\\\\-\") {\n return 'ESC_CHAR';\n } else if (s === 'u' || s === 'xu' || s === 'u_class') {\n throw new SyntaxError('invalid Unicode escape ' + yytext);\n }\n return 'ESC_CHAR';\n}], [/^\\(/, function () {\n return 'CHAR';\n}], [/^\\)/, function () {\n return 'CHAR';\n}], [/^\\(\\?=/, function () {\n return 'POS_LA_ASSERT';\n}], [/^\\(\\?!/, function () {\n return 'NEG_LA_ASSERT';\n}], [/^\\(\\?<=/, function () {\n return 'POS_LB_ASSERT';\n}], [/^\\(\\?<!/, function () {\n return 'NEG_LB_ASSERT';\n}], [/^\\(\\?:/, function () {\n return 'NON_CAPTURE_GROUP';\n}], [/^\\(\\?<(([\\u0041-\\u005a\\u0061-\\u007a\\u00aa\\u00b5\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e-\\u066f\\u0671-\\u06d3\\u06d5\\u06e5-\\u06e6\\u06ee-\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4-\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc-\\u09dd\\u09df-\\u09e1\\u09f0-\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0-\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c-\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60-\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0-\\u0ce1\\u0cf1-\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2-\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065-\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\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\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae-\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5-\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\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\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\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\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a-\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd-\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5-\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\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]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\ude80-\\ude9c\\udea0-\\uded0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf75\\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\\ude10-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd23\\udf00-\\udf1c\\udf27\\udf30-\\udf45\\udfe0-\\udff6]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd44\\udd50-\\udd72\\udd76\\udd83-\\uddb2\\uddc1-\\uddc4\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude2b\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udede\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3d\\udf50\\udf5d-\\udf61]|\\ud805[\\udc00-\\udc34\\udc47-\\udc4a\\udc5f\\udc80-\\udcaf\\udcc4-\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udeb8\\udf00-\\udf1a]|\\ud806[\\udc00-\\udc2b\\udca0-\\udcdf\\udcff\\udda0-\\udda7\\uddaa-\\uddd0\\udde1\\udde3\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude89\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd30\\udd46\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd89\\udd98\\udee0-\\udef2]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf50\\udf93-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99]|\\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[\\udd00-\\udd2c\\udd37-\\udd3d\\udd4e\\udec0-\\udeeb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd4b]|\\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]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\}))(([\\u0030-\\u0039\\u0041-\\u005a\\u005f\\u0061-\\u007a\\u00aa\\u00b5\\u00b7\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0300-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u0483-\\u0487\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u07fd\\u0800-\\u082d\\u0840-\\u085b\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u08d3-\\u08e1\\u08e3-\\u0963\\u0966-\\u096f\\u0971-\\u0983\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bc-\\u09c4\\u09c7-\\u09c8\\u09cb-\\u09ce\\u09d7\\u09dc-\\u09dd\\u09df-\\u09e3\\u09e6-\\u09f1\\u09fc\\u09fe\\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\\u0a81-\\u0a83\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abc-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ad0\\u0ae0-\\u0ae3\\u0ae6-\\u0aef\\u0af9-\\u0aff\\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-\\u0b6f\\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-\\u0bcd\\u0bd0\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\\u0c58-\\u0c5a\\u0c60-\\u0c63\\u0c66-\\u0c6f\\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\\u0d00-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d54-\\u0d57\\u0d5f-\\u0d63\\u0d66-\\u0d6f\\u0d7a-\\u0d7f\\u0d82-\\u0d83\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2-\\u0df3\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u0e50-\\u0e59\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0edc-\\u0edf\\u0f00\\u0f18-\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f47\\u0f49-\\u0f6c\\u0f71-\\u0f84\\u0f86-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1049\\u1050-\\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\\u135d-\\u135f\\u1369-\\u1371\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176c\\u176e-\\u1770\\u1772-\\u1773\\u1780-\\u17d3\\u17d7\\u17dc-\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u19d0-\\u19da\\u1a00-\\u1a1b\\u1a20-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1aa7\\u1ab0-\\u1abd\\u1b00-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1bf3\\u1c00-\\u1c37\\u1c40-\\u1c49\\u1c4d-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1cd0-\\u1cd2\\u1cd4-\\u1cfa\\u1d00-\\u1df9\\u1dfb-\\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\\u203f-\\u2040\\u2054\\u2071\\u207f\\u2090-\\u209c\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d7f-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2de0-\\u2dff\\u3005-\\u3007\\u3021-\\u302f\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua8fd-\\ua92d\\ua930-\\ua953\\ua960-\\ua97c\\ua980-\\ua9c0\\ua9cf-\\ua9d9\\ua9e0-\\ua9fe\\uaa00-\\uaa36\\uaa40-\\uaa4d\\uaa50-\\uaa59\\uaa60-\\uaa76\\uaa7a-\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaef\\uaaf2-\\uaaf6\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabea\\uabec-\\uabed\\uabf0-\\uabf9\\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\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33-\\ufe34\\ufe4d-\\ufe4f\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff10-\\uff19\\uff21-\\uff3a\\uff3f\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\uddfd\\ude80-\\ude9c\\udea0-\\uded0\\udee0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udca0-\\udca9\\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-\\ude35\\ude38-\\ude3a\\ude3f\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee6\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd27\\udd30-\\udd39\\udf00-\\udf1c\\udf27\\udf30-\\udf50\\udfe0-\\udff6]|\\ud804[\\udc00-\\udc46\\udc66-\\udc6f\\udc7f-\\udcba\\udcd0-\\udce8\\udcf0-\\udcf9\\udd00-\\udd34\\udd36-\\udd3f\\udd44-\\udd46\\udd50-\\udd73\\udd76\\udd80-\\uddc4\\uddc9-\\uddcc\\uddd0-\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude37\\ude3e\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udeea\\udef0-\\udef9\\udf00-\\udf03\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3b-\\udf44\\udf47-\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc00-\\udc4a\\udc50-\\udc59\\udc5e-\\udc5f\\udc80-\\udcc5\\udcc7\\udcd0-\\udcd9\\udd80-\\uddb5\\uddb8-\\uddc0\\uddd8-\\udddd\\ude00-\\ude40\\ude44\\ude50-\\ude59\\ude80-\\udeb8\\udec0-\\udec9\\udf00-\\udf1a\\udf1d-\\udf2b\\udf30-\\udf39]|\\ud806[\\udc00-\\udc3a\\udca0-\\udce9\\udcff\\udda0-\\udda7\\uddaa-\\uddd7\\uddda-\\udde1\\udde3-\\udde4\\ude00-\\ude3e\\ude47\\ude50-\\ude99\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc40\\udc50-\\udc59\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd36\\udd3a\\udd3c-\\udd3d\\udd3f-\\udd47\\udd50-\\udd59\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd8e\\udd90-\\udd91\\udd93-\\udd98\\udda0-\\udda9\\udee0-\\udef6]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\ude60-\\ude69\\uded0-\\udeed\\udef0-\\udef4\\udf00-\\udf36\\udf40-\\udf43\\udf50-\\udf59\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf4f-\\udf87\\udf8f-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99\\udc9d-\\udc9e]|\\ud834[\\udd65-\\udd69\\udd6d-\\udd72\\udd7b-\\udd82\\udd85-\\udd8b\\uddaa-\\uddad\\ude42-\\ude44]|\\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\\udfce-\\udfff]|\\ud836[\\ude00-\\ude36\\ude3b-\\ude6c\\ude75\\ude84\\ude9b-\\ude9f\\udea1-\\udeaf]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23-\\udc24\\udc26-\\udc2a\\udd00-\\udd2c\\udd30-\\udd3d\\udd40-\\udd49\\udd4e\\udec0-\\udef9]|\\ud83a[\\udc00-\\udcc4\\udcd0-\\udcd6\\udd00-\\udd4b\\udd50-\\udd59]|\\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]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\udb40[\\udd00-\\uddef])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\})|[\\u200c\\u200d])*>/, function () {\n yytext = yytext.slice(3, -1);\n validateUnicodeGroupName(yytext, this.getCurrentState());\n return 'NAMED_CAPTURE_GROUP';\n}], [/^\\(/, function () {\n return 'L_PAREN';\n}], [/^\\)/, function () {\n return 'R_PAREN';\n}], [/^[*?+[^$]/, function () {\n return 'CHAR';\n}], [/^\\\\\\]/, function () {\n return 'ESC_CHAR';\n}], [/^\\]/, function () {\n this.popState();return 'R_BRACKET';\n}], [/^\\^/, function () {\n return 'BOS';\n}], [/^\\$/, function () {\n return 'EOS';\n}], [/^\\*/, function () {\n return 'STAR';\n}], [/^\\?/, function () {\n return 'Q_MARK';\n}], [/^\\+/, function () {\n return 'PLUS';\n}], [/^\\|/, function () {\n return 'BAR';\n}], [/^\\./, function () {\n return 'ANY';\n}], [/^\\//, function () {\n return 'SLASH';\n}], [/^[^*?+\\[()\\\\|]/, function () {\n return 'CHAR';\n}], [/^\\[\\^/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'NEG_CLASS';\n}], [/^\\[/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'L_BRACKET';\n}]];\nvar lexRulesByConditions = { \"INITIAL\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"xu\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"x\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u_class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51] };\n\nvar EOF_TOKEN = {\n type: EOF,\n value: ''\n};\n\ntokenizer = {\n initString: function initString(string) {\n this._string = string;\n this._cursor = 0;\n\n this._states = ['INITIAL'];\n this._tokensQueue = [];\n\n this._currentLine = 1;\n this._currentColumn = 0;\n this._currentLineBeginOffset = 0;\n\n /**\n * Matched token location data.\n */\n this._tokenStartOffset = 0;\n this._tokenEndOffset = 0;\n this._tokenStartLine = 1;\n this._tokenEndLine = 1;\n this._tokenStartColumn = 0;\n this._tokenEndColumn = 0;\n\n return this;\n },\n\n\n /**\n * Returns tokenizer states.\n */\n getStates: function getStates() {\n return this._states;\n },\n getCurrentState: function getCurrentState() {\n return this._states[this._states.length - 1];\n },\n pushState: function pushState(state) {\n this._states.push(state);\n },\n begin: function begin(state) {\n this.pushState(state);\n },\n popState: function popState() {\n if (this._states.length > 1) {\n return this._states.pop();\n }\n return this._states[0];\n },\n getNextToken: function getNextToken() {\n // Something was queued, return it.\n if (this._tokensQueue.length > 0) {\n return this.onToken(this._toToken(this._tokensQueue.shift()));\n }\n\n if (!this.hasMoreTokens()) {\n return this.onToken(EOF_TOKEN);\n }\n\n var string = this._string.slice(this._cursor);\n var lexRulesForState = lexRulesByConditions[this.getCurrentState()];\n\n for (var i = 0; i < lexRulesForState.length; i++) {\n var lexRuleIndex = lexRulesForState[i];\n var lexRule = lexRules[lexRuleIndex];\n\n var matched = this._match(string, lexRule[0]);\n\n // Manual handling of EOF token (the end of string). Return it\n // as `EOF` symbol.\n if (string === '' && matched === '') {\n this._cursor++;\n }\n\n if (matched !== null) {\n yytext = matched;\n yyleng = yytext.length;\n var token = lexRule[1].call(this);\n\n if (!token) {\n return this.getNextToken();\n }\n\n // If multiple tokens are returned, save them to return\n // on next `getNextToken` call.\n\n if (Array.isArray(token)) {\n var tokensToQueue = token.slice(1);\n token = token[0];\n if (tokensToQueue.length > 0) {\n var _tokensQueue;\n\n (_tokensQueue = this._tokensQueue).unshift.apply(_tokensQueue, _toConsumableArray(tokensToQueue));\n }\n }\n\n return this.onToken(this._toToken(token, yytext));\n }\n }\n\n if (this.isEOF()) {\n this._cursor++;\n return EOF_TOKEN;\n }\n\n this.throwUnexpectedToken(string[0], this._currentLine, this._currentColumn);\n },\n\n\n /**\n * Throws default \"Unexpected token\" exception, showing the actual\n * line from the source, pointing with the ^ marker to the bad token.\n * In addition, shows `line:column` location.\n */\n throwUnexpectedToken: function throwUnexpectedToken(symbol, line, column) {\n var lineSource = this._string.split('\\n')[line - 1];\n var lineData = '';\n\n if (lineSource) {\n var pad = ' '.repeat(column);\n lineData = '\\n\\n' + lineSource + '\\n' + pad + '^\\n';\n }\n\n throw new SyntaxError(lineData + 'Unexpected token: \"' + symbol + '\" ' + ('at ' + line + ':' + column + '.'));\n },\n getCursor: function getCursor() {\n return this._cursor;\n },\n getCurrentLine: function getCurrentLine() {\n return this._currentLine;\n },\n getCurrentColumn: function getCurrentColumn() {\n return this._currentColumn;\n },\n _captureLocation: function _captureLocation(matched) {\n var nlRe = /\\n/g;\n\n // Absolute offsets.\n this._tokenStartOffset = this._cursor;\n\n // Line-based locations, start.\n this._tokenStartLine = this._currentLine;\n this._tokenStartColumn = this._tokenStartOffset - this._currentLineBeginOffset;\n\n // Extract `\\n` in the matched token.\n var nlMatch = void 0;\n while ((nlMatch = nlRe.exec(matched)) !== null) {\n this._currentLine++;\n this._currentLineBeginOffset = this._tokenStartOffset + nlMatch.index + 1;\n }\n\n this._tokenEndOffset = this._cursor + matched.length;\n\n // Line-based locations, end.\n this._tokenEndLine = this._currentLine;\n this._tokenEndColumn = this._currentColumn = this._tokenEndOffset - this._currentLineBeginOffset;\n },\n _toToken: function _toToken(tokenType) {\n var yytext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n return {\n // Basic data.\n type: tokenType,\n value: yytext,\n\n // Location data.\n startOffset: this._tokenStartOffset,\n endOffset: this._tokenEndOffset,\n startLine: this._tokenStartLine,\n endLine: this._tokenEndLine,\n startColumn: this._tokenStartColumn,\n endColumn: this._tokenEndColumn\n };\n },\n isEOF: function isEOF() {\n return this._cursor === this._string.length;\n },\n hasMoreTokens: function hasMoreTokens() {\n return this._cursor <= this._string.length;\n },\n _match: function _match(string, regexp) {\n var matched = string.match(regexp);\n if (matched) {\n // Handle `\\n` in the matched token to track line numbers.\n this._captureLocation(matched[0]);\n this._cursor += matched[0].length;\n return matched[0];\n }\n return null;\n },\n\n\n /**\n * Allows analyzing, and transforming token. Default implementation\n * just passes the token through.\n */\n onToken: function onToken(token) {\n return token;\n }\n};\n\n/**\n * Expose tokenizer so it can be accessed in semantic actions.\n */\nyy.lexer = tokenizer;\nyy.tokenizer = tokenizer;\n\n/**\n * Global parsing options. Some options can be shadowed per\n * each `parse` call, if the optations are passed.\n *\n * Initalized to the `captureLocations` which is passed\n * from the generator. Other options can be added at runtime.\n */\nyy.options = {\n captureLocations: true\n};\n\n/**\n * Parsing module.\n */\nvar yyparse = {\n /**\n * Sets global parsing options.\n */\n setOptions: function setOptions(options) {\n yy.options = options;\n return this;\n },\n\n\n /**\n * Returns parsing options.\n */\n getOptions: function getOptions() {\n return yy.options;\n },\n\n\n /**\n * Parses a string.\n */\n parse: function parse(string, parseOptions) {\n if (!tokenizer) {\n throw new Error('Tokenizer instance wasn\\'t specified.');\n }\n\n tokenizer.initString(string);\n\n /**\n * If parse options are passed, override global parse options for\n * this call, and later restore global options.\n */\n var globalOptions = yy.options;\n if (parseOptions) {\n yy.options = Object.assign({}, yy.options, parseOptions);\n }\n\n /**\n * Allow callers to do setup work based on the\n * parsing string, and passed options.\n */\n yyparse.onParseBegin(string, tokenizer, yy.options);\n\n stack.length = 0;\n stack.push(0);\n\n var token = tokenizer.getNextToken();\n var shiftedToken = null;\n\n do {\n if (!token) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedEndOfInput();\n }\n\n var state = stack[stack.length - 1];\n var column = tokens[token.type];\n\n if (!table[state].hasOwnProperty(column)) {\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n var entry = table[state][column];\n\n // Shift action.\n if (entry[0] === 's') {\n var _loc2 = null;\n\n if (yy.options.captureLocations) {\n _loc2 = {\n startOffset: token.startOffset,\n endOffset: token.endOffset,\n startLine: token.startLine,\n endLine: token.endLine,\n startColumn: token.startColumn,\n endColumn: token.endColumn\n };\n }\n\n shiftedToken = this.onShift(token);\n\n stack.push({ symbol: tokens[shiftedToken.type], semanticValue: shiftedToken.value, loc: _loc2 }, Number(entry.slice(1)));\n\n token = tokenizer.getNextToken();\n }\n\n // Reduce action.\n else if (entry[0] === 'r') {\n var productionNumber = entry.slice(1);\n var production = productions[productionNumber];\n var hasSemanticAction = typeof production[2] === 'function';\n var semanticValueArgs = hasSemanticAction ? [] : null;\n\n var locationArgs = hasSemanticAction && yy.options.captureLocations ? [] : null;\n\n if (production[1] !== 0) {\n var rhsLength = production[1];\n while (rhsLength-- > 0) {\n stack.pop();\n var stackEntry = stack.pop();\n\n if (hasSemanticAction) {\n semanticValueArgs.unshift(stackEntry.semanticValue);\n\n if (locationArgs) {\n locationArgs.unshift(stackEntry.loc);\n }\n }\n }\n }\n\n var reduceStackEntry = { symbol: production[0] };\n\n if (hasSemanticAction) {\n yytext = shiftedToken ? shiftedToken.value : null;\n yyleng = shiftedToken ? shiftedToken.value.length : null;\n\n var semanticActionArgs = locationArgs !== null ? semanticValueArgs.concat(locationArgs) : semanticValueArgs;\n\n production[2].apply(production, _toConsumableArray(semanticActionArgs));\n\n reduceStackEntry.semanticValue = __;\n\n if (locationArgs) {\n reduceStackEntry.loc = __loc;\n }\n }\n\n var nextState = stack[stack.length - 1];\n var symbolToReduceWith = production[0];\n\n stack.push(reduceStackEntry, table[nextState][symbolToReduceWith]);\n }\n\n // Accept.\n else if (entry === 'acc') {\n stack.pop();\n var parsed = stack.pop();\n\n if (stack.length !== 1 || stack[0] !== 0 || tokenizer.hasMoreTokens()) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n if (parsed.hasOwnProperty('semanticValue')) {\n yy.options = globalOptions;\n yyparse.onParseEnd(parsed.semanticValue);\n return parsed.semanticValue;\n }\n\n yyparse.onParseEnd();\n\n // Restore options.\n yy.options = globalOptions;\n return true;\n }\n } while (tokenizer.hasMoreTokens() || stack.length > 1);\n },\n setTokenizer: function setTokenizer(customTokenizer) {\n tokenizer = customTokenizer;\n return yyparse;\n },\n getTokenizer: function getTokenizer() {\n return tokenizer;\n },\n onParseBegin: function onParseBegin(string, tokenizer, options) {},\n onParseEnd: function onParseEnd(parsed) {},\n\n\n /**\n * Allows analyzing, and transforming shifted token. Default implementation\n * just passes the token through.\n */\n onShift: function onShift(token) {\n return token;\n }\n};\n\n/**\n * Tracks capturing groups.\n */\nvar capturingGroupsCount = 0;\n\n/**\n * Tracks named groups.\n */\nvar namedGroups = {};\n\n/**\n * Parsing string.\n */\nvar parsingString = '';\n\nyyparse.onParseBegin = function (string, lexer) {\n parsingString = string;\n capturingGroupsCount = 0;\n namedGroups = {};\n\n var lastSlash = string.lastIndexOf('/');\n var flags = string.slice(lastSlash);\n\n if (flags.includes('x') && flags.includes('u')) {\n lexer.pushState('xu');\n } else {\n if (flags.includes('x')) {\n lexer.pushState('x');\n }\n if (flags.includes('u')) {\n lexer.pushState('u');\n }\n }\n};\n\n/**\n * On shifting `(` remember its number to used on reduce.\n */\nyyparse.onShift = function (token) {\n if (token.type === 'L_PAREN' || token.type === 'NAMED_CAPTURE_GROUP') {\n token.value = new String(token.value);\n token.value.groupNumber = ++capturingGroupsCount;\n }\n return token;\n};\n\n/**\n * Extracts ranges from the range string.\n */\nfunction getRange(text) {\n var range = text.match(/\\d+/g).map(Number);\n\n if (Number.isFinite(range[1]) && range[1] < range[0]) {\n throw new SyntaxError('Numbers out of order in ' + text + ' quantifier');\n }\n\n return range;\n}\n\n/**\n * Checks class range\n */\nfunction checkClassRange(from, to) {\n if (from.kind === 'control' || to.kind === 'control' || !isNaN(from.codePoint) && !isNaN(to.codePoint) && from.codePoint > to.codePoint) {\n throw new SyntaxError('Range ' + from.value + '-' + to.value + ' out of order in character class');\n }\n}\n\n// ---------------------- Unicode property -------------------------------------------\n\nvar unicodeProperties = require('../unicode/parser-unicode-properties.js');\n\n/**\n * Unicode property.\n */\nfunction UnicodeProperty(matched, loc) {\n var negative = matched[1] === 'P';\n var separatorIdx = matched.indexOf('=');\n\n var name = matched.slice(3, separatorIdx !== -1 ? separatorIdx : -1);\n var value = void 0;\n\n // General_Category allows using only value as a shorthand.\n var isShorthand = separatorIdx === -1 && unicodeProperties.isGeneralCategoryValue(name);\n\n // Binary propery name.\n var isBinaryProperty = separatorIdx === -1 && unicodeProperties.isBinaryPropertyName(name);\n\n if (isShorthand) {\n value = name;\n name = 'General_Category';\n } else if (isBinaryProperty) {\n value = name;\n } else {\n if (!unicodeProperties.isValidName(name)) {\n throw new SyntaxError('Invalid unicode property name: ' + name + '.');\n }\n\n value = matched.slice(separatorIdx + 1, -1);\n\n if (!unicodeProperties.isValidValue(name, value)) {\n throw new SyntaxError('Invalid ' + name + ' unicode property value: ' + value + '.');\n }\n }\n\n return Node({\n type: 'UnicodeProperty',\n name: name,\n value: value,\n negative: negative,\n shorthand: isShorthand,\n binary: isBinaryProperty,\n canonicalName: unicodeProperties.getCanonicalName(name) || name,\n canonicalValue: unicodeProperties.getCanonicalValue(value) || value\n }, loc);\n}\n\n// ----------------------------------------------------------------------------------\n\n\n/**\n * Creates a character node.\n */\nfunction Char(value, kind, loc) {\n var symbol = void 0;\n var codePoint = void 0;\n\n switch (kind) {\n case 'decimal':\n {\n codePoint = Number(value.slice(1));\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'oct':\n {\n codePoint = parseInt(value.slice(1), 8);\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'hex':\n case 'unicode':\n {\n if (value.lastIndexOf('\\\\u') > 0) {\n var _value$split$slice = value.split('\\\\u').slice(1),\n _value$split$slice2 = _slicedToArray(_value$split$slice, 2),\n lead = _value$split$slice2[0],\n trail = _value$split$slice2[1];\n\n lead = parseInt(lead, 16);\n trail = parseInt(trail, 16);\n codePoint = (lead - 0xd800) * 0x400 + (trail - 0xdc00) + 0x10000;\n\n symbol = String.fromCodePoint(codePoint);\n } else {\n var hex = value.slice(2).replace('{', '');\n codePoint = parseInt(hex, 16);\n if (codePoint > 0x10ffff) {\n throw new SyntaxError('Bad character escape sequence: ' + value);\n }\n\n symbol = String.fromCodePoint(codePoint);\n }\n break;\n }\n case 'meta':\n {\n switch (value) {\n case '\\\\t':\n symbol = '\\t';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\n':\n symbol = '\\n';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\r':\n symbol = '\\r';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\v':\n symbol = '\\v';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\f':\n symbol = '\\f';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\b':\n symbol = '\\b';\n codePoint = symbol.codePointAt(0);\n case '\\\\0':\n symbol = '\\0';\n codePoint = 0;\n case '.':\n symbol = '.';\n codePoint = NaN;\n break;\n default:\n codePoint = NaN;\n }\n break;\n }\n case 'simple':\n {\n symbol = value;\n codePoint = symbol.codePointAt(0);\n break;\n }\n }\n\n return Node({\n type: 'Char',\n value: value,\n kind: kind,\n symbol: symbol,\n codePoint: codePoint\n }, loc);\n}\n\n/**\n * Valid flags per current ECMAScript spec and\n * stage 3+ proposals.\n */\nvar validFlags = 'gimsuxy';\n\n/**\n * Checks the flags are valid, and that\n * we don't duplicate flags.\n */\nfunction checkFlags(flags) {\n var seen = new Set();\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = flags[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var flag = _step.value;\n\n if (seen.has(flag) || !validFlags.includes(flag)) {\n throw new SyntaxError('Invalid flags: ' + flags);\n }\n seen.add(flag);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return flags.split('').sort().join('');\n}\n\n/**\n * Parses patterns like \\1, \\2, etc. either as a backreference\n * to a group, or a deciaml char code.\n */\nfunction GroupRefOrDecChar(text, textLoc) {\n var reference = Number(text.slice(1));\n\n if (reference > 0 && reference <= capturingGroupsCount) {\n return Node({\n type: 'Backreference',\n kind: 'number',\n number: reference,\n reference: reference\n }, textLoc);\n }\n\n return Char(text, 'decimal', textLoc);\n}\n\n/**\n * Unicode names.\n */\nvar uReStart = /^\\\\u[0-9a-fA-F]{4}/; // only matches start of string\nvar ucpReStart = /^\\\\u\\{[0-9a-fA-F]{1,}\\}/; // only matches start of string\nvar ucpReAnywhere = /\\\\u\\{[0-9a-fA-F]{1,}\\}/; // matches anywhere in string\n\n/**\n * Validates Unicode group name.\n */\nfunction validateUnicodeGroupName(name, state) {\n var isUnicodeName = ucpReAnywhere.test(name);\n var isUnicodeState = state === 'u' || state === 'xu' || state === 'u_class';\n\n if (isUnicodeName && !isUnicodeState) {\n throw new SyntaxError('invalid group Unicode name \"' + name + '\", use `u` flag.');\n }\n\n return name;\n}\n\n// Matches the following production: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n//\n// RegExpUnicodeEscapeSequence ::\n// `u` LeadSurrogate `\\u` TrailSurrogate # as 'leadSurrogate', 'trailSurrogate'\n// `u` LeadSurrogate # as 'leadSurrogateOnly'\n// `u` TrailSurrogate # as 'trailSurrogateOnly'\n// `u` NonSurrogate # as 'nonSurrogate'\n// `u` `{` CodePoint `}` # as 'codePoint'\n//\n// LeadSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xD800 to 0xDBFF # [dD][89aAbB][0-9a-fA-F]{2}\n//\n// TrailSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xDC00 to 0xDFFF # [dD][c-fC-F][0-9a-fA-F]{2}\n//\n// NonSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is not in the inclusive range 0xD800 to 0xDFFF # [0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2}\n//\n// CodePoint ::\n// HexDigits but only if MV of HexDigits ≤ 0x10FFFF # 0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4})\n//\nvar uidRe = /\\\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\\})/;\n\nfunction decodeUnicodeGroupName(name) {\n return name.replace(new RegExp(uidRe, 'g'), function (_, leadSurrogate, trailSurrogate, leadSurrogateOnly, trailSurrogateOnly, nonSurrogate, codePoint) {\n if (leadSurrogate) {\n return String.fromCodePoint(parseInt(leadSurrogate, 16), parseInt(trailSurrogate, 16));\n }\n if (leadSurrogateOnly) {\n return String.fromCodePoint(parseInt(leadSurrogateOnly, 16));\n }\n if (trailSurrogateOnly) {\n // TODO: Per the spec: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n // > Each `\\u` TrailSurrogate for which the choice of associated `u` LeadSurrogate is ambiguous shall be associated with the nearest possible `u` LeadSurrogate that would otherwise have no corresponding `\\u` TrailSurrogate.\n return String.fromCodePoint(parseInt(trailSurrogateOnly, 16));\n }\n if (nonSurrogate) {\n return String.fromCodePoint(parseInt(nonSurrogate, 16));\n }\n if (codePoint) {\n return String.fromCodePoint(parseInt(codePoint, 16));\n }\n return _;\n });\n}\n\n/**\n * Extracts from `\\k<foo>` pattern either a backreference\n * to a named capturing group (if it presents), or parses it\n * as a list of char: `\\k`, `<`, `f`, etc.\n */\nfunction NamedGroupRefOrChars(text, textLoc) {\n var referenceRaw = text.slice(3, -1);\n var reference = decodeUnicodeGroupName(referenceRaw);\n\n if (namedGroups.hasOwnProperty(reference)) {\n return Node({\n type: 'Backreference',\n kind: 'name',\n number: namedGroups[reference],\n reference: reference,\n referenceRaw: referenceRaw\n }, textLoc);\n }\n\n // Else `\\k<foo>` should be parsed as a list of `Char`s.\n // This is really a 0.01% edge case, but we should handle it.\n\n var startOffset = null;\n var startLine = null;\n var endLine = null;\n var startColumn = null;\n\n if (textLoc) {\n startOffset = textLoc.startOffset;\n startLine = textLoc.startLine;\n endLine = textLoc.endLine;\n startColumn = textLoc.startColumn;\n }\n\n var charRe = /^[\\w$<>]/;\n var loc = void 0;\n\n var chars = [\n // Init to first \\k, taking 2 symbols.\n Char(text.slice(1, 2), 'simple', startOffset ? {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += 2,\n endColumn: startColumn += 2\n } : null)];\n\n // For \\k\n chars[0].escaped = true;\n\n // Other symbols.\n text = text.slice(2);\n\n while (text.length > 0) {\n var matched = null;\n\n // Unicode, \\u003B or \\u{003B}\n if ((matched = text.match(uReStart)) || (matched = text.match(ucpReStart))) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += matched[0].length,\n endColumn: startColumn += matched[0].length\n };\n }\n chars.push(Char(matched[0], 'unicode', loc));\n text = text.slice(matched[0].length);\n }\n\n // Simple char.\n else if (matched = text.match(charRe)) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: ++startOffset,\n endColumn: ++startColumn\n };\n }\n chars.push(Char(matched[0], 'simple', loc));\n text = text.slice(1);\n }\n }\n\n return chars;\n}\n\n/**\n * Creates an AST node with a location.\n */\nfunction Node(node, loc) {\n if (yy.options.captureLocations) {\n node.loc = {\n source: parsingString.slice(loc.startOffset, loc.endOffset),\n start: {\n line: loc.startLine,\n column: loc.startColumn,\n offset: loc.startOffset\n },\n end: {\n line: loc.endLine,\n column: loc.endColumn,\n offset: loc.endOffset\n }\n };\n }\n return node;\n}\n\n/**\n * Creates location node.\n */\nfunction loc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nfunction unexpectedToken(token) {\n if (token.type === EOF) {\n unexpectedEndOfInput();\n }\n\n tokenizer.throwUnexpectedToken(token.value, token.startLine, token.startColumn);\n}\n\nfunction unexpectedEndOfInput() {\n parseError('Unexpected end of input.');\n}\n\nfunction parseError(message) {\n throw new SyntaxError(message);\n}\n\nmodule.exports = yyparse;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar regexpTreeParser = require('./generated/regexp-tree');\n\n/**\n * Original parse function.\n */\nvar generatedParseFn = regexpTreeParser.parse.bind(regexpTreeParser);\n\n/**\n * Parses a regular expression.\n *\n * Override original `regexpTreeParser.parse` to convert a value to a string,\n * since in regexp-tree we may pass strings, and RegExp instance.\n */\nregexpTreeParser.parse = function (regexp, options) {\n return generatedParseFn('' + regexp, options);\n};\n\n// By default do not capture locations; callers may override.\nregexpTreeParser.setOptions({ captureLocations: false });\n\nmodule.exports = regexpTreeParser;","'use strict';\n\n/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\nvar NON_BINARY_PROP_NAMES_TO_ALIASES = {\n General_Category: 'gc',\n Script: 'sc',\n Script_Extensions: 'scx'\n};\n\nvar NON_BINARY_ALIASES_TO_PROP_NAMES = inverseMap(NON_BINARY_PROP_NAMES_TO_ALIASES);\n\nvar BINARY_PROP_NAMES_TO_ALIASES = {\n ASCII: 'ASCII',\n ASCII_Hex_Digit: 'AHex',\n Alphabetic: 'Alpha',\n Any: 'Any',\n Assigned: 'Assigned',\n Bidi_Control: 'Bidi_C',\n Bidi_Mirrored: 'Bidi_M',\n Case_Ignorable: 'CI',\n Cased: 'Cased',\n Changes_When_Casefolded: 'CWCF',\n Changes_When_Casemapped: 'CWCM',\n Changes_When_Lowercased: 'CWL',\n Changes_When_NFKC_Casefolded: 'CWKCF',\n Changes_When_Titlecased: 'CWT',\n Changes_When_Uppercased: 'CWU',\n Dash: 'Dash',\n Default_Ignorable_Code_Point: 'DI',\n Deprecated: 'Dep',\n Diacritic: 'Dia',\n Emoji: 'Emoji',\n Emoji_Component: 'Emoji_Component',\n Emoji_Modifier: 'Emoji_Modifier',\n Emoji_Modifier_Base: 'Emoji_Modifier_Base',\n Emoji_Presentation: 'Emoji_Presentation',\n Extended_Pictographic: 'Extended_Pictographic',\n Extender: 'Ext',\n Grapheme_Base: 'Gr_Base',\n Grapheme_Extend: 'Gr_Ext',\n Hex_Digit: 'Hex',\n IDS_Binary_Operator: 'IDSB',\n IDS_Trinary_Operator: 'IDST',\n ID_Continue: 'IDC',\n ID_Start: 'IDS',\n Ideographic: 'Ideo',\n Join_Control: 'Join_C',\n Logical_Order_Exception: 'LOE',\n Lowercase: 'Lower',\n Math: 'Math',\n Noncharacter_Code_Point: 'NChar',\n Pattern_Syntax: 'Pat_Syn',\n Pattern_White_Space: 'Pat_WS',\n Quotation_Mark: 'QMark',\n Radical: 'Radical',\n Regional_Indicator: 'RI',\n Sentence_Terminal: 'STerm',\n Soft_Dotted: 'SD',\n Terminal_Punctuation: 'Term',\n Unified_Ideograph: 'UIdeo',\n Uppercase: 'Upper',\n Variation_Selector: 'VS',\n White_Space: 'space',\n XID_Continue: 'XIDC',\n XID_Start: 'XIDS'\n};\n\nvar BINARY_ALIASES_TO_PROP_NAMES = inverseMap(BINARY_PROP_NAMES_TO_ALIASES);\n\nvar GENERAL_CATEGORY_VALUE_TO_ALIASES = {\n Cased_Letter: 'LC',\n Close_Punctuation: 'Pe',\n Connector_Punctuation: 'Pc',\n Control: ['Cc', 'cntrl'],\n Currency_Symbol: 'Sc',\n Dash_Punctuation: 'Pd',\n Decimal_Number: ['Nd', 'digit'],\n Enclosing_Mark: 'Me',\n Final_Punctuation: 'Pf',\n Format: 'Cf',\n Initial_Punctuation: 'Pi',\n Letter: 'L',\n Letter_Number: 'Nl',\n Line_Separator: 'Zl',\n Lowercase_Letter: 'Ll',\n Mark: ['M', 'Combining_Mark'],\n Math_Symbol: 'Sm',\n Modifier_Letter: 'Lm',\n Modifier_Symbol: 'Sk',\n Nonspacing_Mark: 'Mn',\n Number: 'N',\n Open_Punctuation: 'Ps',\n Other: 'C',\n Other_Letter: 'Lo',\n Other_Number: 'No',\n Other_Punctuation: 'Po',\n Other_Symbol: 'So',\n Paragraph_Separator: 'Zp',\n Private_Use: 'Co',\n Punctuation: ['P', 'punct'],\n Separator: 'Z',\n Space_Separator: 'Zs',\n Spacing_Mark: 'Mc',\n Surrogate: 'Cs',\n Symbol: 'S',\n Titlecase_Letter: 'Lt',\n Unassigned: 'Cn',\n Uppercase_Letter: 'Lu'\n};\n\nvar GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES = inverseMap(GENERAL_CATEGORY_VALUE_TO_ALIASES);\n\nvar SCRIPT_VALUE_TO_ALIASES = {\n Adlam: 'Adlm',\n Ahom: 'Ahom',\n Anatolian_Hieroglyphs: 'Hluw',\n Arabic: 'Arab',\n Armenian: 'Armn',\n Avestan: 'Avst',\n Balinese: 'Bali',\n Bamum: 'Bamu',\n Bassa_Vah: 'Bass',\n Batak: 'Batk',\n Bengali: 'Beng',\n Bhaiksuki: 'Bhks',\n Bopomofo: 'Bopo',\n Brahmi: 'Brah',\n Braille: 'Brai',\n Buginese: 'Bugi',\n Buhid: 'Buhd',\n Canadian_Aboriginal: 'Cans',\n Carian: 'Cari',\n Caucasian_Albanian: 'Aghb',\n Chakma: 'Cakm',\n Cham: 'Cham',\n Cherokee: 'Cher',\n Common: 'Zyyy',\n Coptic: ['Copt', 'Qaac'],\n Cuneiform: 'Xsux',\n Cypriot: 'Cprt',\n Cyrillic: 'Cyrl',\n Deseret: 'Dsrt',\n Devanagari: 'Deva',\n Dogra: 'Dogr',\n Duployan: 'Dupl',\n Egyptian_Hieroglyphs: 'Egyp',\n Elbasan: 'Elba',\n Ethiopic: 'Ethi',\n Georgian: 'Geor',\n Glagolitic: 'Glag',\n Gothic: 'Goth',\n Grantha: 'Gran',\n Greek: 'Grek',\n Gujarati: 'Gujr',\n Gunjala_Gondi: 'Gong',\n Gurmukhi: 'Guru',\n Han: 'Hani',\n Hangul: 'Hang',\n Hanifi_Rohingya: 'Rohg',\n Hanunoo: 'Hano',\n Hatran: 'Hatr',\n Hebrew: 'Hebr',\n Hiragana: 'Hira',\n Imperial_Aramaic: 'Armi',\n Inherited: ['Zinh', 'Qaai'],\n Inscriptional_Pahlavi: 'Phli',\n Inscriptional_Parthian: 'Prti',\n Javanese: 'Java',\n Kaithi: 'Kthi',\n Kannada: 'Knda',\n Katakana: 'Kana',\n Kayah_Li: 'Kali',\n Kharoshthi: 'Khar',\n Khmer: 'Khmr',\n Khojki: 'Khoj',\n Khudawadi: 'Sind',\n Lao: 'Laoo',\n Latin: 'Latn',\n Lepcha: 'Lepc',\n Limbu: 'Limb',\n Linear_A: 'Lina',\n Linear_B: 'Linb',\n Lisu: 'Lisu',\n Lycian: 'Lyci',\n Lydian: 'Lydi',\n Mahajani: 'Mahj',\n Makasar: 'Maka',\n Malayalam: 'Mlym',\n Mandaic: 'Mand',\n Manichaean: 'Mani',\n Marchen: 'Marc',\n Medefaidrin: 'Medf',\n Masaram_Gondi: 'Gonm',\n Meetei_Mayek: 'Mtei',\n Mende_Kikakui: 'Mend',\n Meroitic_Cursive: 'Merc',\n Meroitic_Hieroglyphs: 'Mero',\n Miao: 'Plrd',\n Modi: 'Modi',\n Mongolian: 'Mong',\n Mro: 'Mroo',\n Multani: 'Mult',\n Myanmar: 'Mymr',\n Nabataean: 'Nbat',\n New_Tai_Lue: 'Talu',\n Newa: 'Newa',\n Nko: 'Nkoo',\n Nushu: 'Nshu',\n Ogham: 'Ogam',\n Ol_Chiki: 'Olck',\n Old_Hungarian: 'Hung',\n Old_Italic: 'Ital',\n Old_North_Arabian: 'Narb',\n Old_Permic: 'Perm',\n Old_Persian: 'Xpeo',\n Old_Sogdian: 'Sogo',\n Old_South_Arabian: 'Sarb',\n Old_Turkic: 'Orkh',\n Oriya: 'Orya',\n Osage: 'Osge',\n Osmanya: 'Osma',\n Pahawh_Hmong: 'Hmng',\n Palmyrene: 'Palm',\n Pau_Cin_Hau: 'Pauc',\n Phags_Pa: 'Phag',\n Phoenician: 'Phnx',\n Psalter_Pahlavi: 'Phlp',\n Rejang: 'Rjng',\n Runic: 'Runr',\n Samaritan: 'Samr',\n Saurashtra: 'Saur',\n Sharada: 'Shrd',\n Shavian: 'Shaw',\n Siddham: 'Sidd',\n SignWriting: 'Sgnw',\n Sinhala: 'Sinh',\n Sogdian: 'Sogd',\n Sora_Sompeng: 'Sora',\n Soyombo: 'Soyo',\n Sundanese: 'Sund',\n Syloti_Nagri: 'Sylo',\n Syriac: 'Syrc',\n Tagalog: 'Tglg',\n Tagbanwa: 'Tagb',\n Tai_Le: 'Tale',\n Tai_Tham: 'Lana',\n Tai_Viet: 'Tavt',\n Takri: 'Takr',\n Tamil: 'Taml',\n Tangut: 'Tang',\n Telugu: 'Telu',\n Thaana: 'Thaa',\n Thai: 'Thai',\n Tibetan: 'Tibt',\n Tifinagh: 'Tfng',\n Tirhuta: 'Tirh',\n Ugaritic: 'Ugar',\n Vai: 'Vaii',\n Warang_Citi: 'Wara',\n Yi: 'Yiii',\n Zanabazar_Square: 'Zanb'\n};\n\nvar SCRIPT_VALUE_ALIASES_TO_VALUE = inverseMap(SCRIPT_VALUE_TO_ALIASES);\n\nfunction inverseMap(data) {\n var inverse = {};\n\n for (var name in data) {\n if (!data.hasOwnProperty(name)) {\n continue;\n }\n var value = data[name];\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n inverse[value[i]] = name;\n }\n } else {\n inverse[value] = name;\n }\n }\n\n return inverse;\n}\n\nfunction isValidName(name) {\n return NON_BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isValidValue(name, value) {\n if (isGeneralCategoryName(name)) {\n return isGeneralCategoryValue(value);\n }\n\n if (isScriptCategoryName(name)) {\n return isScriptCategoryValue(value);\n }\n\n return false;\n}\n\nfunction isAlias(name) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isGeneralCategoryName(name) {\n return name === 'General_Category' || name == 'gc';\n}\n\nfunction isScriptCategoryName(name) {\n return name === 'Script' || name === 'Script_Extensions' || name === 'sc' || name === 'scx';\n}\n\nfunction isGeneralCategoryValue(value) {\n return GENERAL_CATEGORY_VALUE_TO_ALIASES.hasOwnProperty(value) || GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value);\n}\n\nfunction isScriptCategoryValue(value) {\n return SCRIPT_VALUE_TO_ALIASES.hasOwnProperty(value) || SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value);\n}\n\nfunction isBinaryPropertyName(name) {\n return BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction getCanonicalName(name) {\n if (NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n return null;\n}\n\nfunction getCanonicalValue(value) {\n if (GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value)) {\n return GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES[value];\n }\n\n if (SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value)) {\n return SCRIPT_VALUE_ALIASES_TO_VALUE[value];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(value)) {\n return BINARY_ALIASES_TO_PROP_NAMES[value];\n }\n\n return null;\n}\n\nmodule.exports = {\n isAlias: isAlias,\n isValidName: isValidName,\n isValidValue: isValidValue,\n isGeneralCategoryValue: isGeneralCategoryValue,\n isScriptCategoryValue: isScriptCategoryValue,\n isBinaryPropertyName: isBinaryPropertyName,\n getCanonicalName: getCanonicalName,\n getCanonicalValue: getCanonicalValue,\n\n NON_BINARY_PROP_NAMES_TO_ALIASES: NON_BINARY_PROP_NAMES_TO_ALIASES,\n NON_BINARY_ALIASES_TO_PROP_NAMES: NON_BINARY_ALIASES_TO_PROP_NAMES,\n\n BINARY_PROP_NAMES_TO_ALIASES: BINARY_PROP_NAMES_TO_ALIASES,\n BINARY_ALIASES_TO_PROP_NAMES: BINARY_ALIASES_TO_PROP_NAMES,\n\n GENERAL_CATEGORY_VALUE_TO_ALIASES: GENERAL_CATEGORY_VALUE_TO_ALIASES,\n GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES: GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES,\n\n SCRIPT_VALUE_TO_ALIASES: SCRIPT_VALUE_TO_ALIASES,\n SCRIPT_VALUE_ALIASES_TO_VALUE: SCRIPT_VALUE_ALIASES_TO_VALUE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar compatTranspiler = require('./compat-transpiler');\nvar generator = require('./generator');\nvar optimizer = require('./optimizer');\nvar parser = require('./parser');\nvar _transform = require('./transform');\nvar _traverse = require('./traverse');\nvar fa = require('./interpreter/finite-automaton');\n\nvar _require = require('./compat-transpiler/runtime'),\n RegExpTree = _require.RegExpTree;\n\n/**\n * An API object for RegExp processing (parsing/transform/generation).\n */\n\n\nvar regexpTree = {\n /**\n * Parser module exposed.\n */\n parser: parser,\n\n /**\n * Expose finite-automaton module.\n */\n fa: fa,\n\n /**\n * `TransformResult` exposed.\n */\n TransformResult: _transform.TransformResult,\n\n /**\n * Parses a regexp string, producing an AST.\n *\n * @param string regexp\n *\n * a regular expression in different formats: string, AST, RegExp.\n *\n * @param Object options\n *\n * parsing options for this parse call. Default are:\n *\n * - captureLocations: boolean\n * - any other custom options\n *\n * @return Object AST\n */\n parse: function parse(regexp, options) {\n return parser.parse('' + regexp, options);\n },\n\n\n /**\n * Traverses a RegExp AST.\n *\n * @param Object ast\n * @param Object | Array<Object> handlers\n *\n * Each `handler` is an object containing handler function for needed\n * node types. Example:\n *\n * regexpTree.traverse(ast, {\n * onChar(node) {\n * ...\n * },\n * });\n *\n * The value for a node type may also be an object with functions pre and post.\n * This enables more context-aware analyses, e.g. measuring star height.\n */\n traverse: function traverse(ast, handlers, options) {\n return _traverse.traverse(ast, handlers, options);\n },\n\n\n /**\n * Transforms a regular expression.\n *\n * A regexp can be passed in different formats (string, regexp or AST),\n * applying a set of transformations. It is a convenient wrapper\n * on top of \"parse-traverse-generate\" tool chain.\n *\n * @param string | AST | RegExp regexp - a regular expression;\n * @param Object | Array<Object> handlers - a list of handlers.\n *\n * @return TransformResult - a transformation result.\n */\n transform: function transform(regexp, handlers) {\n return _transform.transform(regexp, handlers);\n },\n\n\n /**\n * Generates a RegExp string from an AST.\n *\n * @param Object ast\n *\n * Invariant:\n *\n * regexpTree.generate(regexpTree.parse('/[a-z]+/i')); // '/[a-z]+/i'\n */\n generate: function generate(ast) {\n return generator.generate(ast);\n },\n\n\n /**\n * Creates a RegExp object from a regexp string.\n *\n * @param string regexp\n */\n toRegExp: function toRegExp(regexp) {\n var compat = this.compatTranspile(regexp);\n return new RegExp(compat.getSource(), compat.getFlags());\n },\n\n\n /**\n * Optimizes a regular expression by replacing some\n * sub-expressions with their idiomatic patterns.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n optimize: function optimize(regexp, whitelist) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n blacklist = _ref.blacklist;\n\n return optimizer.optimize(regexp, { whitelist: whitelist, blacklist: blacklist });\n },\n\n\n /**\n * Translates a regular expression in new syntax or in new format\n * into equivalent expressions in old syntax.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n compatTranspile: function compatTranspile(regexp, whitelist) {\n return compatTranspiler.transform(regexp, whitelist);\n },\n\n\n /**\n * Executes a regular expression on a string.\n *\n * @param RegExp|string re - a regular expression.\n * @param string string - a testing string.\n */\n exec: function exec(re, string) {\n if (typeof re === 'string') {\n var compat = this.compatTranspile(re);\n var extra = compat.getExtra();\n\n if (extra.namedCapturingGroups) {\n re = new RegExpTree(compat.toRegExp(), {\n flags: compat.getFlags(),\n source: compat.getSource(),\n groups: extra.namedCapturingGroups\n });\n } else {\n re = compat.toRegExp();\n }\n }\n\n return re.exec(string);\n }\n};\n\nmodule.exports = regexpTree;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar generator = require('../generator');\nvar parser = require('../parser');\nvar traverse = require('../traverse');\n\n/**\n * Transform result.\n */\n\nvar TransformResult = function () {\n /**\n * Initializes a transform result for an AST.\n *\n * @param Object ast - an AST node\n * @param mixed extra - any extra data a transform may return\n */\n function TransformResult(ast) {\n var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n _classCallCheck(this, TransformResult);\n\n this._ast = ast;\n this._source = null;\n this._string = null;\n this._regexp = null;\n this._extra = extra;\n }\n\n _createClass(TransformResult, [{\n key: 'getAST',\n value: function getAST() {\n return this._ast;\n }\n }, {\n key: 'setExtra',\n value: function setExtra(extra) {\n this._extra = extra;\n }\n }, {\n key: 'getExtra',\n value: function getExtra() {\n return this._extra;\n }\n }, {\n key: 'toRegExp',\n value: function toRegExp() {\n if (!this._regexp) {\n this._regexp = new RegExp(this.getSource(), this._ast.flags);\n }\n return this._regexp;\n }\n }, {\n key: 'getSource',\n value: function getSource() {\n if (!this._source) {\n this._source = generator.generate(this._ast.body);\n }\n return this._source;\n }\n }, {\n key: 'getFlags',\n value: function getFlags() {\n return this._ast.flags;\n }\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._string) {\n this._string = generator.generate(this._ast);\n }\n return this._string;\n }\n }]);\n\n return TransformResult;\n}();\n\nmodule.exports = {\n /**\n * Expose `TransformResult`.\n */\n TransformResult: TransformResult,\n\n /**\n * Transforms a regular expression applying a set of\n * transformation handlers.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n *\n * @param Object | Array<Object>:\n *\n * a handler (or a list of handlers) from `traverse` API.\n *\n * @return TransformResult instance.\n *\n * Example:\n *\n * transform(/[a-z]/i, {\n * onChar(path) {\n * const {node} = path;\n *\n * if (...) {\n * path.remove();\n * }\n * }\n * });\n */\n transform: function transform(regexp, handlers) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n traverse.traverse(ast, handlers);\n\n return new TransformResult(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Flattens a nested disjunction node to a list.\n *\n * /a|b|c|d/\n *\n * {{{a, b}, c}, d} -> [a, b, c, d]\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction disjunctionToList(node) {\n if (node.type !== 'Disjunction') {\n throw new TypeError('Expected \"Disjunction\" node, got \"' + node.type + '\"');\n }\n\n var list = [];\n\n if (node.left && node.left.type === 'Disjunction') {\n list.push.apply(list, _toConsumableArray(disjunctionToList(node.left)).concat([node.right]));\n } else {\n list.push(node.left, node.right);\n }\n\n return list;\n}\n\n/**\n * Builds a nested disjunction node from a list.\n *\n * /a|b|c|d/\n *\n * [a, b, c, d] -> {{{a, b}, c}, d}\n */\nfunction listToDisjunction(list) {\n return list.reduce(function (left, right) {\n return {\n type: 'Disjunction',\n left: left,\n right: right\n };\n });\n}\n\n/**\n * Increases a quantifier by one.\n * Does not change greediness.\n * * -> +\n * + -> {2,}\n * ? -> {1,2}\n * {2} -> {3}\n * {2,} -> {3,}\n * {2,3} -> {3,4}\n */\nfunction increaseQuantifierByOne(quantifier) {\n if (quantifier.kind === '*') {\n\n quantifier.kind = '+';\n } else if (quantifier.kind === '+') {\n\n quantifier.kind = 'Range';\n quantifier.from = 2;\n delete quantifier.to;\n } else if (quantifier.kind === '?') {\n\n quantifier.kind = 'Range';\n quantifier.from = 1;\n quantifier.to = 2;\n } else if (quantifier.kind === 'Range') {\n\n quantifier.from += 1;\n if (quantifier.to) {\n quantifier.to += 1;\n }\n }\n}\n\nmodule.exports = {\n disjunctionToList: disjunctionToList,\n listToDisjunction: listToDisjunction,\n increaseQuantifierByOne: increaseQuantifierByOne\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NodePath = require('./node-path');\n\n/**\n * Does an actual AST traversal, using visitor pattern,\n * and calling set of callbacks.\n *\n * Based on https://github.com/olov/ast-traverse\n *\n * Expects AST in Mozilla Parser API: nodes which are supposed to be\n * handled should have `type` property.\n *\n * @param Object root - a root node to start traversal from.\n *\n * @param Object options - an object with set of callbacks:\n *\n * - `pre(node, parent, prop, index)` - a hook called on node enter\n * - `post`(node, parent, prop, index) - a hook called on node exit\n * - `skipProperty(prop)` - a predicated whether a property should be skipped\n */\nfunction astTraverse(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var pre = options.pre;\n var post = options.post;\n var skipProperty = options.skipProperty;\n\n function visit(node, parent, prop, idx) {\n if (!node || typeof node.type !== 'string') {\n return;\n }\n\n var res = undefined;\n if (pre) {\n res = pre(node, parent, prop, idx);\n }\n\n if (res !== false) {\n\n // A node can be replaced during traversal, so we have to\n // recalculate it from the parent, to avoid traversing \"dead\" nodes.\n if (parent && parent[prop]) {\n if (!isNaN(idx)) {\n node = parent[prop][idx];\n } else {\n node = parent[prop];\n }\n }\n\n for (var _prop in node) {\n if (node.hasOwnProperty(_prop)) {\n if (skipProperty ? skipProperty(_prop, node) : _prop[0] === '$') {\n continue;\n }\n\n var child = node[_prop];\n\n // Collection node.\n //\n // NOTE: a node (or several nodes) can be removed or inserted\n // during traversal.\n //\n // Current traversing index is stored on top of the\n // `NodePath.traversingIndexStack`. The stack is used to support\n // recursive nature of the traversal.\n //\n // In this case `NodePath.traversingIndex` (which we use here) is\n // updated in the NodePath remove/insert methods.\n //\n if (Array.isArray(child)) {\n var index = 0;\n NodePath.traversingIndexStack.push(index);\n while (index < child.length) {\n visit(child[index], node, _prop, index);\n index = NodePath.updateTraversingIndex(+1);\n }\n NodePath.traversingIndexStack.pop();\n }\n\n // Simple node.\n else {\n visit(child, node, _prop);\n }\n }\n }\n }\n\n if (post) {\n post(node, parent, prop, idx);\n }\n }\n\n visit(root, null);\n}\n\nmodule.exports = {\n /**\n * Traverses an AST.\n *\n * @param Object ast - an AST node\n *\n * @param Object | Array<Object> handlers:\n *\n * an object (or an array of objects)\n *\n * Each such object contains a handler function per node.\n * In case of an array of handlers, they are applied in order.\n * A handler may return a transformed node (or a different type).\n *\n * The per-node function may instead be an object with functions pre and post.\n * pre is called before visiting the node, post after.\n * If a handler is a function, it is treated as the pre function, with an empty post.\n *\n * @param Object options:\n *\n * a config object, specifying traversal options:\n *\n * `asNodes`: boolean - whether handlers should receives raw AST nodes\n * (false by default), instead of a `NodePath` wrapper. Note, by default\n * `NodePath` wrapper provides a set of convenient method to manipulate\n * a traversing AST, and also has access to all parents list. A raw\n * nodes traversal should be used in rare cases, when no `NodePath`\n * features are needed.\n *\n * Special hooks:\n *\n * - `shouldRun(ast)` - a predicate determining whether the handler\n * should be applied.\n *\n * NOTE: Multiple handlers are used as an optimization of applying all of\n * them in one AST traversal pass.\n */\n traverse: function traverse(ast, handlers) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { asNodes: false };\n\n\n if (!Array.isArray(handlers)) {\n handlers = [handlers];\n }\n\n // Filter out handlers by result of `shouldRun`, if the method is present.\n handlers = handlers.filter(function (handler) {\n if (typeof handler.shouldRun !== 'function') {\n return true;\n }\n return handler.shouldRun(ast);\n });\n\n NodePath.initRegistry();\n\n // Allow handlers to initializer themselves.\n handlers.forEach(function (handler) {\n if (typeof handler.init === 'function') {\n handler.init(ast);\n }\n });\n\n function getPathFor(node, parent, prop, index) {\n var parentPath = NodePath.getForNode(parent);\n var nodePath = NodePath.getForNode(node, parentPath, prop, index);\n\n return nodePath;\n }\n\n // Handle actual nodes.\n astTraverse(ast, {\n /**\n * Handler on node enter.\n */\n pre: function pre(node, parent, prop, index) {\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = handlers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var handler = _step.value;\n\n // \"Catch-all\" `*` handler.\n if (typeof handler['*'] === 'function') {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handler['*'](nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handler['*'](node, parent, prop, index);\n }\n }\n\n // Per-node handler.\n var handlerFuncPre = void 0;\n if (typeof handler[node.type] === 'function') {\n handlerFuncPre = handler[node.type];\n } else if (typeof handler[node.type] === 'object' && typeof handler[node.type].pre === 'function') {\n handlerFuncPre = handler[node.type].pre;\n }\n\n if (handlerFuncPre) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var _handlerResult = handlerFuncPre.call(handler, nodePath);\n // Explicitly stop traversal.\n if (_handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPre.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n },\n // pre func\n\n /**\n * Handler on node exit.\n */\n post: function post(node, parent, prop, index) {\n if (!node) {\n return;\n }\n\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = handlers[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var handler = _step2.value;\n\n // Per-node handler.\n var handlerFuncPost = void 0;\n if (typeof handler[node.type] === 'object' && typeof handler[node.type].post === 'function') {\n handlerFuncPost = handler[node.type].post;\n }\n\n if (handlerFuncPost) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handlerFuncPost.call(handler, nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPost.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n },\n // post func\n\n /**\n * Skip locations by default.\n */\n skipProperty: function skipProperty(prop) {\n return prop === 'loc';\n }\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DEFAULT_COLLECTION_PROP = 'expressions';\nvar DEFAULT_SINGLE_PROP = 'expression';\n\n/**\n * NodePath class encapsulates a traversing node,\n * its parent node, property name in the parent node, and\n * an index (in case if a node is part of a collection).\n * It also provides set of methods for AST manipulation.\n */\n\nvar NodePath = function () {\n /**\n * NodePath constructor.\n *\n * @param Object node - an AST node\n * @param NodePath parentPath - a nullable parent path\n * @param string property - property name of the node in the parent\n * @param number index - index of the node in a collection.\n */\n function NodePath(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n _classCallCheck(this, NodePath);\n\n this.node = node;\n this.parentPath = parentPath;\n this.parent = parentPath ? parentPath.node : null;\n this.property = property;\n this.index = index;\n }\n\n _createClass(NodePath, [{\n key: '_enforceProp',\n value: function _enforceProp(property) {\n if (!this.node.hasOwnProperty(property)) {\n throw new Error('Node of type ' + this.node.type + ' doesn\\'t have \"' + property + '\" collection.');\n }\n }\n\n /**\n * Sets a node into a children collection or the single child.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param number index - index at which to set\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'setChild',\n value: function setChild(node) {\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n\n var childPath = void 0;\n if (index != null) {\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n this.node[property][index] = node;\n childPath = NodePath.getForNode(node, this, property, index);\n } else {\n if (!property) {\n property = DEFAULT_SINGLE_PROP;\n }\n this._enforceProp(property);\n this.node[property] = node;\n childPath = NodePath.getForNode(node, this, property, null);\n }\n return childPath;\n }\n\n /**\n * Appends a node to a children collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'appendChild',\n value: function appendChild(node) {\n var property = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n var end = this.node[property].length;\n return this.setChild(node, end, property);\n }\n\n /**\n * Inserts a node into a collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to insert into a collection\n * @param number index - index at which to insert\n * @param string property - name of the collection property\n */\n\n }, {\n key: 'insertChildAt',\n value: function insertChildAt(node, index) {\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_COLLECTION_PROP;\n\n this._enforceProp(property);\n\n this.node[property].splice(index, 0, node);\n\n // If we inserted a node before the traversing index,\n // we should increase the later.\n if (index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(+1);\n }\n\n this._rebuildIndex(this.node, property);\n }\n\n /**\n * Removes a node.\n */\n\n }, {\n key: 'remove',\n value: function remove() {\n if (this.isRemoved()) {\n return;\n }\n NodePath.registry.delete(this.node);\n\n this.node = null;\n\n if (!this.parent) {\n return;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property].splice(this.index, 1);\n\n // If we remove a node before the traversing index,\n // we should increase the later.\n if (this.index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(-1);\n }\n\n // Rebuild index.\n this._rebuildIndex(this.parent, this.property);\n\n this.index = null;\n this.property = null;\n\n return;\n }\n\n // A simple node.\n delete this.parent[this.property];\n this.property = null;\n }\n\n /**\n * Rebuilds child nodes index (used on remove/insert).\n */\n\n }, {\n key: '_rebuildIndex',\n value: function _rebuildIndex(parent, property) {\n var parentPath = NodePath.getForNode(parent);\n\n for (var i = 0; i < parent[property].length; i++) {\n var path = NodePath.getForNode(parent[property][i], parentPath, property, i);\n path.index = i;\n }\n }\n\n /**\n * Whether the path was removed.\n */\n\n }, {\n key: 'isRemoved',\n value: function isRemoved() {\n return this.node === null;\n }\n\n /**\n * Replaces a node with the passed one.\n */\n\n }, {\n key: 'replace',\n value: function replace(newNode) {\n NodePath.registry.delete(this.node);\n\n this.node = newNode;\n\n if (!this.parent) {\n return null;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property][this.index] = newNode;\n }\n\n // A simple node.\n else {\n this.parent[this.property] = newNode;\n }\n\n // Rebuild the node path for the new node.\n return NodePath.getForNode(newNode, this.parentPath, this.property, this.index);\n }\n\n /**\n * Updates a node inline.\n */\n\n }, {\n key: 'update',\n value: function update(nodeProps) {\n Object.assign(this.node, nodeProps);\n }\n\n /**\n * Returns parent.\n */\n\n }, {\n key: 'getParent',\n value: function getParent() {\n return this.parentPath;\n }\n\n /**\n * Returns nth child.\n */\n\n }, {\n key: 'getChild',\n value: function getChild() {\n var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.node.expressions) {\n return NodePath.getForNode(this.node.expressions[n], this, DEFAULT_COLLECTION_PROP, n);\n } else if (this.node.expression && n == 0) {\n return NodePath.getForNode(this.node.expression, this, DEFAULT_SINGLE_PROP);\n }\n return null;\n }\n\n /**\n * Whether a path node is syntactically equal to the passed one.\n *\n * NOTE: we don't rely on `source` property from the `loc` data\n * (which would be the fastest comparison), since it might be unsync\n * after several modifications. We use here simple `JSON.stringify`\n * excluding the `loc` data.\n *\n * @param NodePath other - path to compare to.\n * @return boolean\n */\n\n }, {\n key: 'hasEqualSource',\n value: function hasEqualSource(path) {\n return JSON.stringify(this.node, jsonSkipLoc) === JSON.stringify(path.node, jsonSkipLoc);\n }\n\n /**\n * JSON-encodes a node skipping location.\n */\n\n }, {\n key: 'jsonEncode',\n value: function jsonEncode() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n format = _ref.format,\n useLoc = _ref.useLoc;\n\n return JSON.stringify(this.node, useLoc ? null : jsonSkipLoc, format);\n }\n\n /**\n * Returns previous sibling.\n */\n\n }, {\n key: 'getPreviousSibling',\n value: function getPreviousSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index - 1], NodePath.getForNode(this.parent), this.property, this.index - 1);\n }\n\n /**\n * Returns next sibling.\n */\n\n }, {\n key: 'getNextSibling',\n value: function getNextSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index + 1], NodePath.getForNode(this.parent), this.property, this.index + 1);\n }\n\n /**\n * Returns a NodePath instance for a node.\n *\n * The same NodePath can be reused in several places, e.g.\n * a parent node passed for all its children.\n */\n\n }], [{\n key: 'getForNode',\n value: function getForNode(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var prop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1;\n\n if (!node) {\n return null;\n }\n\n if (!NodePath.registry.has(node)) {\n NodePath.registry.set(node, new NodePath(node, parentPath, prop, index == -1 ? null : index));\n }\n\n var path = NodePath.registry.get(node);\n\n if (parentPath !== null) {\n path.parentPath = parentPath;\n path.parent = path.parentPath.node;\n }\n\n if (prop !== null) {\n path.property = prop;\n }\n\n if (index >= 0) {\n path.index = index;\n }\n\n return path;\n }\n\n /**\n * Initializes the NodePath registry. The registry is a map from\n * a node to its NodePath instance.\n */\n\n }, {\n key: 'initRegistry',\n value: function initRegistry() {\n if (!NodePath.registry) {\n NodePath.registry = new Map();\n }\n NodePath.registry.clear();\n }\n\n /**\n * Updates index of a currently traversing collection.\n */\n\n }, {\n key: 'updateTraversingIndex',\n value: function updateTraversingIndex(dx) {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1] += dx;\n }\n\n /**\n * Returns current traversing index.\n */\n\n }, {\n key: 'getTraversingIndex',\n value: function getTraversingIndex() {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1];\n }\n }]);\n\n return NodePath;\n}();\n\nNodePath.initRegistry();\n\n/**\n * Index of a currently traversing collection is stored on top of the\n * `NodePath.traversingIndexStack`. Remove/insert methods can adjust\n * this index.\n */\nNodePath.traversingIndexStack = [];\n\n// Helper function used to skip `loc` in JSON operations.\nfunction jsonSkipLoc(prop, value) {\n if (prop === 'loc') {\n return undefined;\n }\n return value;\n}\n\nmodule.exports = NodePath;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Performs a deep copy of an simple object.\n * Only handles scalar values, arrays and objects.\n *\n * @param obj Object\n */\n\nmodule.exports = function clone(obj) {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n var res = void 0;\n if (Array.isArray(obj)) {\n res = [];\n } else {\n res = {};\n }\n for (var i in obj) {\n res[i] = clone(obj[i]);\n }\n return res;\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = require('./dist/regexp-tree');","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + \"6b30aac3d0fa7ab83001\" + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 9315;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t9315: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], function() { return __webpack_require__(27979); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","module","exports","regexes","regex","family","maxVersion","Infinity","version","minVersion","numbersToRanges","numbers","length","SemverPart","semverify","versionParts","Array","isArray","toString","split","versionPart","semverPart","semver","i","parseInt","isNaN","compareSemvers","a","b","options","major","minor","patch","majorBase","minorBase","patchBase","ignoreMinor","ignorePatch","allowHigherVersions","compareMinor","comparePatch","compareArrays","from","len","clone","value","copy","concat","items","AlternativeNode","expressions","exps","filter","Boolean","type","SimpleCharNode","kind","String","codePoint","NaN","ClassRangeNode","to","CharacterClassNode","CapturingGroupNode","expression","capturing","number","DisjunctionCapturingGroupNode","expr","exprs","disjunction","left","right","pop","reduceRight","DisjunctionNode","DigitPatternNode","NumberPatternNode","quantifier","greedy","numberPattern","RepetitionNode","NumberCharsNode","isNumberPatternNode","node","isCharNode","RegExp","test","isDigitRangeNode","isExpressionNode","parseRegex","replace","classes","visitors","every","reduce","newVisitors","className","visitor","visitorPre","pre","visitorPost","post","nodePath","numberToDigits","num","Number","rayRangeDigitPattern","digit","includes","rangeStart","segmentRangeNumberPattern","zeros","fromNode","toNode","zerosPrefix","segmentToNumberPatterns","digitsInNumber","fromDigits","digitsCount","toDigits","decadeRanges","ranges","decade","push","Math","min","splitToDecadeRanges","parts","map","commonStart","common","currA","currB","diffA","diffB","splitCommonDiff","from1","to1","diffParts","range","middleSegment","_","ri","d","j","patterns","prevNode","merged","exp","unshift","rangeToRegex","digits","other","RangeQuantifierNode","pow","numberPatterns","topNodes","prev","nodes","rayToNumberPatterns","getNumberPatternsPart","numberPatternsCount","regexAst","maxNumbersCount","count","Group","getNumberPatternsCount","numbersCounter","containsNumberPattern","parent","applyVersionsToRegex","versions","finalVersions","maxRequiredPartsCount","max","allowZeroSubversions","shouldRepeatCount","getRequiredSemverPartsCount","numberPatternsPart","versionsPart","rangedVersion","ignoreIndex","prevWasZero","start","createMapper","rangedSemverToRegex","numbersToReplace","slice","shift","replaceNumberPatterns","remove","defaultOptions","getPreUserAgentRegexes","finalOptions","browserRegexes","sourceRegex","matchedVersions","current","Major","Minor","Patch","part","p","versionsListToRanges","applyVersionsToRegexes","browsers","targetRegexes","result","prevFamily","prevRegexIsGlobal","forEach","requestVersions","get","bases","compareOptions","minComparator","ver","maxComparator","comparator","findMatchedVersions","undefined","getRegexesForBrowsers","merge","Map","strVersion","join","set","sort","mergeBrowserVersions","browserslistOptions","browserslist","browser","versionString","versionStringTo","partIndex","i1","v","rangeSemver","getBrowsersList","user","supportedBrowsers","partsRegexes","body","src","getAST","optimizeRegex","flags","compileRegex","getUserAgentRegex","browserslistConfig","getBuilder","clearOnLogout","persist","build","getCurrentUser","getLoggerBuilder","setApp","setUid","uid","browserStorageKey","generateUrl","browserStorage","getItem","_regeneratorRuntime","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","obj","key","desc","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","_typeof","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","state","Error","done","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","methodName","return","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","doneResult","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","skipTempReset","charAt","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","_arrayLikeToArray","arr","arr2","logger","debug","components","Web","NcButton","NcEmptyContent","data","agents","computed","isMobile","navigator","userAgent","filteredSupportedBrowsers","_this","isMobileBrowser","formattedBrowsersList","_this2","list","_browser$split2","_arrayWithHoles","_i","_s","_e","_x","_r","_arr","_n","_d","_iterableToArrayLimit","o","minLen","n","_unsupportedIterableToArray","_nonIterableRest","id","parseFloat","_this2$agents$id","_this2$agents$id2","t","beforeMount","_this3","_callee","_yield$import","_context","args","arguments","apply","methods","forceBrowsing","setItem","urlParams","URLSearchParams","window","location","search","has","redirectPath","Buffer","startsWith","toLowerCase","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","this","_c","_self","staticClass","scopedSlots","_u","proxy","_v","attrs","on","_l","Vue","el","render","h","UnsupportedBrowser","BrowserslistError","noop","loadQueries","getStat","opts","stats","loadConfig","config","loadCountry","loadFeature","currentNode","parseConfig","readConfig","findConfig","clearCaches","oldDataWarning","env","message","captureStackTrace","jsReleases","jsEOL","path","e2c","parse","ANDROID_EVERGREEN_FIRST","isVersionsMatch","versionA","versionB","indexOf","normalize","normalizeElectron","versionToUse","nameMapper","getMajor","getMajorVersions","released","majorVersions","uniq","minimum","selected","array","filtered","fillUsage","generateFilter","sign","parseSimpleInt","x","compare","compareSemver","semverFilterLoose","operator","compareSemverLoose","normalizeVersion","resolved","versionAliases","resolveVersion","filterByYear","since","byName","releaseDate","date","cloneData","aliases","mobileToDesktop","desktopNames","desktop","android","chrome","normalizeAndroidVersions","cloned","androidVersions","chromeVersions","iFirstEvergreen","checkName","filterJumps","nVersions","jump","op_mob","isSupported","queries","QUERIES","index","not","query","select","compose","prepareOpts","prepareQueries","defaults","checkQueries","cache","ignoreUnknownVersions","dangerousExtend","customUsage","cacheKey","JSON","stringify","name1","name2","version1","BROWSERSLIST_DISABLE_CACHE","nodeQuery","matched","nodeVersions","sinceQuery","year","month","day","Date","UTC","coverQuery","coverage","usage","global","place","match","toUpperCase","coveraged","custom","fx","ff","ios","explorer","blackberry","explorermobile","operamini","operamobile","chromeandroid","firefoxandroid","ucandroid","qqandroid","and_chr","and_ff","ie_mob","customStats","dataByBrowser","all","last_major_versions","matches","regexp","last_versions","last_electron_major_versions","last_node_major_versions","last_browser_major_versions","last_electron_versions","last_node_versions","last_browser_versions","unreleased_versions","unreleased_electron_versions","unreleased_browser_versions","last_years","now","years","since_y","since_y_m","since_y_m_d","popularity","popularity_in_my_stats","percentage","popularity_in_config_stats","loadStat","popularity_in_place","cover","cover_in","supports","feature","features","checkDesktop","electron_range","fromToUse","toToUse","parsed","node_range","browser_range","electron_ray","node_ray","browser_ray","alias","firefox_esr","opera_mini_all","electron_version","node_major_version","node_minor_version","node_patch_version","current_node","maintained_node","end","some","phantomjs_1_9","phantomjs_2_1","browser_version","browserslist_config","extends","dead","unknown","release_date","usage_global","full","interval","release","AND_REGEXP","OR_REGEXP","flatten","matchQuery","matchBlock","string","qs","predicate","substr","find","trim","block","A","K","F","G","H","B","JC","C","E","L","M","I","N","D","O","P","Q","R","S","T","U","V","W","X","Y","Z","c","e","f","g","q","r","s","u","w","y","z","KC","zB","J","k","l","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","m","qB","rB","sB","tB","uB","LC","MC","NC","OC","PC","QC","RC","SC","vB","wB","TC","UC","xB","AC","yB","BC","CC","DC","EC","FC","GC","VC","WC","XC","YC","ZC","HC","aC","bC","IC","cC","dC","eC","fC","gC","hC","iC","jC","kC","lC","mC","nC","oC","pC","qC","rC","sC","tC","uC","vC","wC","xC","yC","zC","AD","BD","CD","DD","ED","FD","GD","HD","agentsData","unpackBrowserVersions","versionsData","prefix_exceptions","map2","key2","prefix","browserVersions","___CSS_LOADER_EXPORT___","compatTransforms","_transform","transform","transformsWhitelist","transformToApply","extra","transformName","handler","getExtra","setExtra","_createClass","defineProperties","target","props","descriptor","Constructor","protoProps","staticProps","RegExpTree","re","_ref","groups","source","instance","_classCallCheck","_re","_groups","dotAll","ignoreCase","multiline","sticky","unicode","compile","_toStringResult","exec","group","groupNumber","_hasUFlag","shouldRun","ast","Char","toValue","toSymbol","symbol","_groupNames","init","nameRaw","Backreference","reference","referenceRaw","namedCapturingGroups","xFlag","Alternative","Disjunction","Assertion","assertion","negative","_assertion","CharacterClass","ClassRange","Repetition","Quantifier","escaped","UnicodeProperty","shorthand","binary","generate","_slicedToArray","sliceIterator","_toConsumableArray","currentTransitionMap","sameRow","r1","r2","s1","s2","size","areEquivalent","table","alphabet","_iteratorNormalCompletion8","_didIteratorError8","_iteratorError8","_step8","_iterator8","goToSameSet","originalTransitionS1","originalTransitionS2","minimize","dfa","getTransitionTable","allStates","getAlphabet","accepting","getAcceptingStateNumbers","nonAccepting","Set","add","previous","_loop","newTransitionMap","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","_set","handledStates","_set2","first","rest","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","restSets","_step4","_iterator4","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_step5","_iterator5","handledState","assign","newSets","remaped","idx","minimizedTable","minimizedAcceptingStates","updateAcceptingStates","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","entries","_ref2","_idx","_iteratorNormalCompletion6","_didIteratorError6","_iteratorError6","_step6","_iterator6","originalTransition","_iteratorNormalCompletion7","_didIteratorError7","_iteratorError7","_step7","_iterator7","originalState","setTransitionTable","setAcceptingStateNumbers","DFAMinimizer","EPSILON_CLOSURE","DFA","nfa","_nfa","_originalAcceptingStateNumbers","_acceptingStateNumbers","_originalTransitionTable","_transitionTable","stateNumbers","nfaTable","nfaStates","worklist","nfaAcceptingStates","dfaTable","states","nfaAcceptingState","dfaStateLabel","onSymbol","nfaStatesOnSymbol","nfaStateOnSymbol","dfaStatesOnSymbolSet","dfaStatesOnSymbol","dfaOnSymbolStr","_remapStateNumbers","calculatedDFATable","newStatesMap","transitionTable","originalNumber","newNumber","originalRow","row","_originalNumber","NFA","nfaFromRegExp","builders","toNFA","toDFA","NFAState","EPSILON","char","inState","outState","addTransition","altPair","second","out","in","orPair","alt","_len","fragments","_key","or","_len2","_key2","rep","fragment","repExplicit","plusRep","questionRep","parser","_require","captureLocations","State","_State","ReferenceError","_possibleConstructorReturn","subClass","superClass","_inherits","visited","getTransitionsOnSymbol","symbolTransitions","_epsilonClosure","epsilonTransitions","closure","nextState","getEpsilonClosure","_alphabet","transitions","_acceptingStates","getAcceptingStates","acceptingState","symbols","visitState","getTransitions","combinedState","_ref$accepting","_transitions","toState","optimizationTransforms","optimize","_ref$whitelist","whitelist","_ref$blacklist","blacklist","TransformResult","prevResultString","transformer","newResult","UPPER_A_CP","codePointAt","UPPER_Z_CP","_AZClassRanges","classRange","lower","isSurrogatePair","_getSurrogatePairFrom","trail","lead","floor","getSurrogatePairFromCodePoint","repeat","code","displaySymbolAsValue","sortCharClass","aValue","getSortValue","bValue","isMeta","isControl","fitsInMetas","metas","hasIUFlags","fitsInMeta","meta","fitsInMetaS","fitsInMetaD","fitsInMetaW","combinesWithPrecedingClassRange","fitsInClassRange","isMetaWCharOrCode","combinesWithFollowingClassRange","charCombinesWithPrecedingChars","nbMergedChars","currentExpression","precedingExpresion","_hasIUFlags","splice","getParent","insertChildAt","sources","childPath","getChild","jsonEncode","_hasIFlag","isFullNumberRange","rewriteNumberRanges","hasIFlag","hasUFlag","numberPath","lowerCasePath","upperCasePath","underscorePath","u017fPath","u212aPath","isMetaChar","isLowerCaseRange","isUpperCaseRange","isUnderscore","isCodePoint","rewriteWordRanges","whitespaceRangeTests","nNode","rewriteWhitespaceRanges","isChar","shouldEscape","previousNode","hasAppropriateSiblings","isAppropriateChar","_node$expressions$","getInverseMeta","LOWER_A_CP","LOWER_Z_CP","DIGIT_0_CP","DIGIT_9_CP","fromCodePoint","newChar","parentType","needsEscape","consumeNumbers","startIndex","rtl","siblingNode","abs","isSimpleChar","_hasXFlag","hasXFlag","nbFollowingNumbers","nextSiblingNode","preservesOpeningCurlyBraceEscape","nbPrecedingNumbers","previousSiblingNode","preservesClosingCurlyBraceEscape","preservesEscape","preservesInCharClass","shouldUnescape","NodePath","increaseQuantifierByOne","combineRepeatingPatternLeft","alternative","child","nbPossibleLengths","ceil","getForNode","hasEqualSource","combineWithPreviousRepetition","previousChild","combineRepetitionWithPrevious","rightLength","disjunctionToList","listToDisjunction","uniqueNodesMap","encoded","handlers","charset","shouldProcess","characterClass","rewriteOpenZero","rewriteOpenOne","parentPath","rewriteExactOne","isGreedyOpenRange","extractFromTo","previousSibling","getPreviousSibling","_extractFromTo","previousSiblingFrom","previousSiblingTo","_extractFromTo2","nodeFrom","nodeTo","yytext","yy","__","__loc","yyloc","startOffset","endOffset","startLine","endLine","startColumn","endColumn","productions","_1","_1loc","_2","_3","_4","_2loc","_3loc","_4loc","Node","checkFlags","_loc","separatorIdx","isShorthand","unicodeProperties","isGeneralCategoryValue","isBinaryProperty","isBinaryPropertyName","isValidName","SyntaxError","isValidValue","canonicalName","getCanonicalName","canonicalValue","getCanonicalValue","text","textLoc","capturingGroupsCount","decodeUnicodeGroupName","namedGroups","charRe","chars","uReStart","ucpReStart","NamedGroupRefOrChars","getRange","allowGroupNameDuplicates","checkClassRange","tokens","stack","tokenizer","lexRules","validateUnicodeGroupName","getCurrentState","popState","pushState","lexRulesByConditions","EOF_TOKEN","initString","_string","_cursor","_states","_tokensQueue","_currentLine","_currentColumn","_currentLineBeginOffset","_tokenStartOffset","_tokenEndOffset","_tokenStartLine","_tokenEndLine","_tokenStartColumn","_tokenEndColumn","getStates","begin","getNextToken","onToken","_toToken","hasMoreTokens","lexRulesForState","lexRuleIndex","lexRule","_match","token","tokensToQueue","isEOF","throwUnexpectedToken","line","column","lineSource","lineData","getCursor","getCurrentLine","getCurrentColumn","_captureLocation","nlRe","nlMatch","tokenType","lexer","yyparse","setOptions","getOptions","parseOptions","globalOptions","onParseBegin","shiftedToken","unexpectedEndOfInput","unexpectedToken","_loc2","onShift","semanticValue","productionNumber","production","hasSemanticAction","semanticValueArgs","locationArgs","rhsLength","stackEntry","reduceStackEntry","semanticActionArgs","symbolToReduceWith","onParseEnd","setTokenizer","customTokenizer","getTokenizer","parsingString","isFinite","lastSlash","lastIndexOf","_value$split$slice2","hex","validFlags","seen","flag","ucpReAnywhere","uidRe","leadSurrogate","trailSurrogate","leadSurrogateOnly","trailSurrogateOnly","nonSurrogate","offset","parseError","regexpTreeParser","generatedParseFn","bind","NON_BINARY_PROP_NAMES_TO_ALIASES","General_Category","Script","Script_Extensions","NON_BINARY_ALIASES_TO_PROP_NAMES","inverseMap","BINARY_PROP_NAMES_TO_ALIASES","ASCII","ASCII_Hex_Digit","Alphabetic","Any","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","IDS_Binary_Operator","IDS_Trinary_Operator","ID_Continue","ID_Start","Ideographic","Join_Control","Logical_Order_Exception","Lowercase","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start","BINARY_ALIASES_TO_PROP_NAMES","GENERAL_CATEGORY_VALUE_TO_ALIASES","Cased_Letter","Close_Punctuation","Connector_Punctuation","Control","Currency_Symbol","Dash_Punctuation","Decimal_Number","Enclosing_Mark","Final_Punctuation","Format","Initial_Punctuation","Letter","Letter_Number","Line_Separator","Lowercase_Letter","Mark","Math_Symbol","Modifier_Letter","Modifier_Symbol","Nonspacing_Mark","Open_Punctuation","Other","Other_Letter","Other_Number","Other_Punctuation","Other_Symbol","Paragraph_Separator","Private_Use","Punctuation","Separator","Space_Separator","Spacing_Mark","Surrogate","Titlecase_Letter","Unassigned","Uppercase_Letter","GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES","SCRIPT_VALUE_TO_ALIASES","Adlam","Ahom","Anatolian_Hieroglyphs","Arabic","Armenian","Avestan","Balinese","Bamum","Bassa_Vah","Batak","Bengali","Bhaiksuki","Bopomofo","Brahmi","Braille","Buginese","Buhid","Canadian_Aboriginal","Carian","Caucasian_Albanian","Chakma","Cham","Cherokee","Common","Coptic","Cuneiform","Cypriot","Cyrillic","Deseret","Devanagari","Dogra","Duployan","Egyptian_Hieroglyphs","Elbasan","Ethiopic","Georgian","Glagolitic","Gothic","Grantha","Greek","Gujarati","Gunjala_Gondi","Gurmukhi","Han","Hangul","Hanifi_Rohingya","Hanunoo","Hatran","Hebrew","Hiragana","Imperial_Aramaic","Inherited","Inscriptional_Pahlavi","Inscriptional_Parthian","Javanese","Kaithi","Kannada","Katakana","Kayah_Li","Kharoshthi","Khmer","Khojki","Khudawadi","Lao","Latin","Lepcha","Limbu","Linear_A","Linear_B","Lisu","Lycian","Lydian","Mahajani","Makasar","Malayalam","Mandaic","Manichaean","Marchen","Medefaidrin","Masaram_Gondi","Meetei_Mayek","Mende_Kikakui","Meroitic_Cursive","Meroitic_Hieroglyphs","Miao","Modi","Mongolian","Mro","Multani","Myanmar","Nabataean","New_Tai_Lue","Newa","Nko","Nushu","Ogham","Ol_Chiki","Old_Hungarian","Old_Italic","Old_North_Arabian","Old_Permic","Old_Persian","Old_Sogdian","Old_South_Arabian","Old_Turkic","Oriya","Osage","Osmanya","Pahawh_Hmong","Palmyrene","Pau_Cin_Hau","Phags_Pa","Phoenician","Psalter_Pahlavi","Rejang","Runic","Samaritan","Saurashtra","Sharada","Shavian","Siddham","SignWriting","Sinhala","Sogdian","Sora_Sompeng","Soyombo","Sundanese","Syloti_Nagri","Syriac","Tagalog","Tagbanwa","Tai_Le","Tai_Tham","Tai_Viet","Takri","Tamil","Tangut","Telugu","Thaana","Thai","Tibetan","Tifinagh","Tirhuta","Ugaritic","Vai","Warang_Citi","Yi","Zanabazar_Square","SCRIPT_VALUE_ALIASES_TO_VALUE","inverse","isScriptCategoryValue","isAlias","isGeneralCategoryName","isScriptCategoryName","compatTranspiler","optimizer","_traverse","fa","regexpTree","traverse","toRegExp","compat","compatTranspile","getSource","getFlags","_ast","_source","_regexp","_extra","asNodes","getPathFor","prop","initRegistry","root","skipProperty","visit","res","_prop","traversingIndexStack","updateTraversingIndex","astTraverse","isRemoved","handlerFuncPre","handlerFuncPost","DEFAULT_COLLECTION_PROP","DEFAULT_SINGLE_PROP","property","_enforceProp","setChild","getTraversingIndex","_rebuildIndex","registry","delete","newNode","nodeProps","jsonSkipLoc","format","useLoc","clear","dx","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","chunkIds","priority","notFulfilled","fulfilled","getter","__esModule","mode","ns","def","getOwnPropertyNames","definition","chunkId","promises","globalThis","Function","url","script","needAttach","scripts","document","getElementsByTagName","getAttribute","createElement","timeout","nc","setAttribute","onScriptComplete","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","head","appendChild","nmd","paths","children","scriptUrl","importScripts","currentScript","baseURI","href","installedChunks","installedChunkData","promise","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"file":"core-unsupported-browser.js?v=a7fb6e572aeac986c3b6","mappings":"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M,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,KAAM,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAQ,CAAE,GAAM,MAAQ,CAAE,GAAM,MAAO,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,MAAQ,CAAE,EAAK,GAAI,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,KAAM,GAAM,KAAM,GAAM,MAAQ,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAA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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/create fake namespace object","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/node_modules/@nextcloud/browserslist-config/browserlist.config.js","webpack:///nextcloud/node_modules/ua-regexes-lite/index.js","webpack:///nextcloud/node_modules/browserslist-useragent-regexp/dist/index.js","webpack:///nextcloud/core/src/logger.js","webpack:///nextcloud/core/src/services/BrowsersListService.js","webpack:///nextcloud/core/src/services/BrowserStorageService.js","webpack:///nextcloud/core/src/utils/RedirectUnsupportedBrowsers.js","webpack:///nextcloud/core/src/views/UnsupportedBrowser.vue","webpack:///nextcloud/core/src/views/UnsupportedBrowser.vue?vue&type=script&lang=js&","webpack://nextcloud/./core/src/views/UnsupportedBrowser.vue?95a0","webpack://nextcloud/./core/src/views/UnsupportedBrowser.vue?d53c","webpack://nextcloud/./core/src/views/UnsupportedBrowser.vue?7880","webpack:///nextcloud/core/src/unsupported-browser.js","webpack:///nextcloud/node_modules/browserslist/browser.js","webpack:///nextcloud/node_modules/browserslist/error.js","webpack:///nextcloud/node_modules/browserslist/index.js","webpack:///nextcloud/node_modules/browserslist/parse.js","webpack:///nextcloud/node_modules/caniuse-lite/data/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browsers.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browsers.js","webpack:///nextcloud/core/src/views/UnsupportedBrowser.vue?vue&type=style&index=0&id=3c1e6192&prod&lang=scss&scoped=true&","webpack:///nextcloud/node_modules/electron-to-chromium/versions.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/runtime/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/generator/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa-minimizer.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-from-regexp.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-case-insensitive-lowercase-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-to-chars-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-meta-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-single-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-code-to-simple-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-escape-unescape-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-surrogate-pair-to-single-unicode-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/combine-repeating-patterns-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/disjunction-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/group-single-chars-to-char-class.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifier-range-to-symbol-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifiers-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/remove-empty-group-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/ungroup-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/generated/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js","webpack:///nextcloud/node_modules/regexp-tree/dist/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/utils.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/node-path.js","webpack:///nextcloud/node_modules/regexp-tree/dist/utils/clone.js","webpack:///nextcloud/node_modules/regexp-tree/index.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","module.exports = [\n '>0.25%',\n 'not op_mini all',\n 'not dead',\n 'Firefox ESR',\n];\n","/**\n * @typedef {import('./index.d').UserAgentRegex} UserAgentRegex\n */\n\n/** @type {UserAgentRegex[]} */\nexport const regexes = [\n {\n regex: /IE (\\d+)\\.(\\d+)/,\n family: 'ie',\n maxVersion: [\n 7,\n Infinity,\n Infinity\n ]\n },\n /**\n * IE can be in Compatability Mode (IE 7.0)\n * so we need to check Trident version\n */\n {\n regex: /Trident\\/4\\.0/,\n family: 'ie',\n version: [\n 8,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/5\\.0/,\n family: 'ie',\n version: [\n 9,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/6\\.0/,\n family: 'ie',\n version: [\n 10,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/[78]\\.0/,\n family: 'ie',\n version: [\n 11,\n 0,\n 0\n ]\n },\n {\n regex: /Edge?\\/(\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'edge'\n },\n {\n regex: /Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'firefox'\n },\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'chrome'\n },\n /**\n * Ignore Edge with EdgeHTML engine.\n */\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)([\\d.]+$|.*Safari\\/(?![\\d.]+ Edge\\/[\\d.]+$))/,\n family: 'chrome',\n maxVersion: [\n 70,\n Infinity,\n Infinity\n ]\n },\n /**\n * Safari on iPad have desktop-like useragent\n * Some versions contains letter subversions\n */\n {\n regex: /Maci.+ Version\\/(\\d+)\\.(\\d+)([.,](\\d+)|)( \\(\\w+\\)|)( Mobile\\/\\w+|) Safari\\//,\n family: 'safari'\n },\n /**\n * Presto Opera\n */\n {\n regex: /Opera\\/9\\.80.+Version\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'opera',\n maxVersion: [\n 12,\n 15,\n 0\n ]\n },\n /**\n * Chromium based Opera\n */\n {\n regex: /Chrome.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'opera',\n minVersion: [\n 15,\n 0,\n 0\n ]\n },\n {\n regex: /(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /[^e] (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf',\n version: [\n 7,\n 0,\n 3\n ]\n },\n {\n regex: /Opera Mini/,\n family: 'op_mini'\n },\n {\n regex: /Android Donut/,\n family: 'android',\n version: [\n 1,\n 2,\n 0\n ]\n },\n {\n regex: /Android Eclair/,\n family: 'android',\n version: [\n 2,\n 1,\n 0\n ]\n },\n {\n regex: /Android Froyo/,\n family: 'android',\n version: [\n 2,\n 2,\n 0\n ]\n },\n {\n regex: /Android Gingerbread/,\n family: 'android',\n version: [\n 2,\n 3,\n 0\n ]\n },\n {\n regex: /Android Honeycomb/,\n family: 'android',\n version: [\n 3,\n 0,\n 0\n ]\n },\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'android'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|);(?! ARM; Trident)/,\n family: 'android',\n version: [\n 4,\n 0,\n 0\n ]\n },\n {\n regex: /PlayBook.+RIM Tablet OS (\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n {\n regex: /(Black[bB]erry|BB10).+Version\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n /**\n * Presto Opera Mobile\n */\n {\n regex: /Opera\\/.+Opera Mobi.+Version\\/(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n maxVersion: [\n 12,\n 16,\n 0\n ]\n },\n /**\n * Chromium based Opera Mobile\n */\n {\n regex: /Mobile Safari.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n minVersion: [\n 14,\n 0,\n 0\n ]\n },\n {\n regex: /Android.+Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_ff'\n },\n {\n regex: /Android.+Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_chr'\n },\n {\n regex: /IEMobile[ /](\\d+)\\.(\\d+)/,\n family: 'ie_mob'\n },\n {\n regex: /Android.+(UC? ?Browser|UCWEB|U3)[ /]?(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'and_uc'\n },\n {\n regex: /SamsungBrowser\\/(\\d+)\\.(\\d+)/,\n family: 'samsung'\n },\n {\n regex: /Android.+MQQBrowser\\/(\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'and_qq'\n },\n {\n regex: /baidubrowser[/\\s](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'baidu'\n },\n {\n regex: /K[Aa][Ii]OS\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'kaios'\n }\n]\n","import browserslist from 'browserslist';\nimport RegexpTree from 'regexp-tree';\nimport { regexes } from 'ua-regexes-lite';\n\n/**\n * Array of numbers to array of first and last elements.\n * @param numbers - Array of numbers.\n * @returns Number or two numbers.\n */ function numbersToRanges(numbers) {\n if (typeof numbers === \"number\") {\n return numbers;\n }\n if (numbers.length === 1) {\n return numbers[0];\n }\n return [\n numbers[0],\n numbers[numbers.length - 1]\n ];\n}\n\nvar SemverPart;\n(function(SemverPart) {\n SemverPart[SemverPart[\"Major\"] = 0] = \"Major\";\n SemverPart[SemverPart[\"Minor\"] = 1] = \"Minor\";\n SemverPart[SemverPart[\"Patch\"] = 2] = \"Patch\";\n})(SemverPart || (SemverPart = {}));\n\n/**\n * Get semver from string or array.\n * @param version - Target to convert.\n * @returns Array with semver parts.\n */ function semverify(version) {\n const versionParts = Array.isArray(version) ? version : version.toString().split(\".\");\n if (versionParts[0] === \"all\") {\n return [\n Infinity,\n 0,\n 0\n ];\n }\n let versionPart = null;\n let semverPart = null;\n const semver = [\n 0,\n 0,\n 0\n ];\n for(let i = 0; i < 3; i++){\n versionPart = versionParts[i];\n if (typeof versionPart === \"undefined\") {\n continue;\n }\n semverPart = typeof versionPart === \"number\" ? versionPart : parseInt(versionPart, 10);\n if (isNaN(semverPart)) {\n return null;\n }\n semver[i] = semverPart;\n }\n return semver;\n}\n/**\n * Get semver range.\n * @param from\n * @param to\n * @returns Semver range.\n */ function rangeSemver(from, to) {\n let partIndex = 0;\n const range = [];\n for(let i = 2; i >= 0; i--){\n if (from[i] !== to[i]) {\n partIndex = i;\n break;\n }\n }\n for(let i1 = from[partIndex], max = to[partIndex]; i1 <= max; i1++){\n range.push(from.map((v, j)=>j === partIndex ? i1 : v));\n }\n return range;\n}\n/**\n * Compare semvers.\n * @param a - Semver to compare.\n * @param b - Semver to compare with.\n * @param options - Compare options.\n * @returns Equals or not.\n */ function compareSemvers(a, b, options) {\n const [major, minor, patch] = a;\n const [majorBase, minorBase, patchBase] = b;\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n if (majorBase === Infinity) {\n return true;\n }\n const compareMinor = !ignoreMinor;\n const comparePatch = compareMinor && !ignorePatch;\n if (allowHigherVersions) {\n if (comparePatch && patch < patchBase || compareMinor && minor < minorBase) {\n return false;\n }\n return major >= majorBase;\n }\n if (comparePatch && patch !== patchBase || compareMinor && minor !== minorBase) {\n return false;\n }\n return major === majorBase;\n}\n/**\n * Get required semver parts count.\n * @param version - Semver parts or ranges.\n * @param options - Semver compare options.\n * @returns Required semver parts count.\n */ function getRequiredSemverPartsCount(version, options) {\n const { ignoreMinor , ignorePatch , allowZeroSubversions } = options;\n let shouldRepeatCount = ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowZeroSubversions) {\n for(let i = shouldRepeatCount - 1; i > 0; i--){\n if (version[i] !== 0 || shouldRepeatCount === 1) {\n break;\n }\n shouldRepeatCount--;\n }\n }\n return shouldRepeatCount;\n}\n\n/**\n * Browsers strings to info objects.\n * @param browsersList - Browsers strings with family and version.\n * @returns Browser info objects.\n */ function parseBrowsersList(browsersList) {\n return browsersList.reduce((browsers, browser)=>{\n const [family, versionString, versionStringTo] = browser.split(/ |-/);\n const version = semverify(versionString);\n const versions = !version ? [] : versionStringTo ? rangeSemver(version, semverify(versionStringTo)) : [\n version\n ];\n return versions.reduce((browsers, semver)=>{\n if (semver) {\n browsers.push({\n family,\n version: semver\n });\n }\n return browsers;\n }, browsers);\n }, []);\n}\n/**\n * Request browsers list.\n * @param options - Options to get browsers list.\n * @returns Browser info objects.\n */ function getBrowsersList(options = {}) {\n const { browsers , ...browserslistOptions } = options;\n const browsersList = browserslist(browsers, browserslistOptions);\n const parsedBrowsers = parseBrowsersList(browsersList);\n return parsedBrowsers;\n}\n\n/**\n * Compare two arrays.\n * @param a - Array to compare.\n * @param b - Array to compare.\n * @param from - Index to start compare from.\n * @returns Equals or not.\n */ function compareArrays(a, b, from = 0) {\n const len = a.length;\n for(let i = from; i < len; i++){\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Clone simple object.\n * @param value\n * @returns Object clone.\n */ function clone(value) {\n if (value === null || typeof value !== \"object\") {\n return value;\n }\n /* eslint-disable */ const copy = Array.isArray(value) ? [] : {};\n let i;\n for(i in value){\n copy[i] = clone(value[i]);\n }\n /* eslint-enable */ return copy;\n}\n/**\n * Concat arrays.\n * @param items\n * @returns Concatinated arrays.\n */ function concat(items) {\n return [].concat(...items);\n}\n\n/**\n * Merge browser info object to map with versions.\n * @param browsers - Browser info object to merge.\n * @returns Merged browsers map.\n */ function mergeBrowserVersions(browsers) {\n const merge = new Map();\n browsers.forEach(({ family , version })=>{\n const versions = merge.get(family);\n if (versions) {\n const strVersion = version.join(\".\");\n if (versions.every((_)=>_.join(\".\") !== strVersion)) {\n versions.push(version);\n }\n return;\n }\n merge.set(family, [\n version\n ]);\n });\n merge.forEach((versions)=>{\n versions.sort((a, b)=>{\n for(const i in a){\n if (a[i] !== b[i]) {\n return a[i] - b[i];\n }\n }\n return 0;\n });\n });\n return merge;\n}\n/**\n * Versions to ranged versions.\n * @param versions - Semver versions list.\n * @returns Ranged versions list.\n */ function versionsListToRanges(versions) {\n if (versions.length < 2) {\n return versions;\n }\n const max = versions.length + 1;\n const ranges = [];\n let prev = null;\n let current = versions[0];\n let major = [\n current[SemverPart.Major]\n ];\n let minor = [\n current[SemverPart.Minor]\n ];\n let patch = [\n current[SemverPart.Patch]\n ];\n let part = null;\n for(let i = 1; i < max; i++){\n prev = versions[i - 1];\n current = versions[i] || [];\n for(let p = SemverPart.Major; p <= SemverPart.Patch; p++){\n if ((p === part || part === null) && prev[p] + 1 === current[p] && compareArrays(prev, current, p + 1)) {\n part = p;\n if (p === SemverPart.Major) {\n major.push(current[SemverPart.Major]);\n } else {\n major = current[SemverPart.Major];\n }\n if (p === SemverPart.Minor) {\n minor.push(current[SemverPart.Minor]);\n } else {\n minor = current[SemverPart.Minor];\n }\n if (p === SemverPart.Patch) {\n patch.push(current[SemverPart.Patch]);\n } else {\n patch = current[SemverPart.Patch];\n }\n break;\n }\n if (part === p || prev[p] !== current[p]) {\n ranges.push([\n numbersToRanges(major),\n numbersToRanges(minor),\n numbersToRanges(patch)\n ]);\n major = [\n current[SemverPart.Major]\n ];\n minor = [\n current[SemverPart.Minor]\n ];\n patch = [\n current[SemverPart.Patch]\n ];\n part = null;\n break;\n }\n }\n }\n return ranges;\n}\n\nfunction AstRegExpNode(body) {\n return {\n type: \"RegExp\",\n body,\n flags: \"\"\n };\n}\nfunction AlternativeNode(...expressions) {\n const exps = concat(expressions).filter(Boolean);\n if (exps.length === 1) {\n return exps[0];\n }\n return {\n type: \"Alternative\",\n expressions: exps\n };\n}\nfunction SimpleCharNode(value) {\n return {\n type: \"Char\",\n kind: \"simple\",\n value: String(value),\n codePoint: NaN\n };\n}\nfunction MetaCharNode(value) {\n return {\n type: \"Char\",\n kind: \"meta\",\n value,\n codePoint: NaN\n };\n}\nfunction ClassRangeNode(from, to) {\n return {\n type: \"ClassRange\",\n from,\n to\n };\n}\nfunction CharacterClassNode(...expressions) {\n return {\n type: \"CharacterClass\",\n expressions: concat(expressions).filter(Boolean)\n };\n}\nfunction SimpleQuantifierNode(kind) {\n return {\n type: \"Quantifier\",\n kind,\n greedy: true\n };\n}\nfunction RangeQuantifierNode(from, to) {\n return {\n type: \"Quantifier\",\n kind: \"Range\",\n from,\n to,\n greedy: true\n };\n}\nfunction CapturingGroupNode(expression) {\n return {\n type: \"Group\",\n capturing: true,\n expression,\n number: null\n };\n}\nfunction RepetitionNode(expression, quantifier) {\n return {\n type: \"Repetition\",\n expression,\n quantifier\n };\n}\nfunction DisjunctionNode(...expressions) {\n const exprs = concat(expressions).filter(Boolean);\n if (exprs.length === 1) {\n return exprs[0];\n }\n const disjunction = {\n type: \"Disjunction\",\n left: null,\n right: exprs.pop()\n };\n exprs.reduceRight((disjunction, expr, i)=>{\n if (i === 0) {\n disjunction.left = expr;\n return disjunction;\n }\n disjunction.left = {\n type: \"Disjunction\",\n left: null,\n right: expr\n };\n return disjunction.left;\n }, disjunction);\n return disjunction;\n}\nfunction DisjunctionCapturingGroupNode(...expressions) {\n const expr = DisjunctionNode(...expressions);\n if (expr.type === \"Disjunction\") {\n return CapturingGroupNode(expr);\n }\n return expr;\n}\nfunction DigitPatternNode() {\n return MetaCharNode(\"\\\\d\");\n}\nfunction NumberPatternNode(quantifier = SimpleQuantifierNode(\"+\")) {\n const numberPattern = RepetitionNode(DigitPatternNode(), quantifier);\n return numberPattern;\n}\nfunction NumberCharsNode(value) {\n return AlternativeNode(Array.from(String(value), SimpleCharNode));\n}\n\n/**\n * Check node whether is number pattern.\n * @param node - AST node to check.\n * @returns Is number pattern or not.\n */ function isNumberPatternNode(node) {\n if (node.type === \"Group\" && node.expression.type === \"Repetition\") {\n const { expression , quantifier } = node.expression;\n return expression.type === \"Char\" && expression.value === \"\\\\d\" && quantifier.kind === \"+\" && quantifier.greedy;\n }\n return false;\n}\n/**\n * Check node whether is char node.\n * @param node - AST node to check.\n * @param value - Value to compare.\n * @returns Is char node or not.\n */ function isCharNode(node, value) {\n if (node && node.type === \"Char\") {\n return typeof value === \"undefined\" || value instanceof RegExp && value.test(node.value) || String(value) === node.value;\n }\n return false;\n}\n/**\n * Check node whether is digit range.\n * @param node - AST node to check.\n * @returns Is digit range or not.\n */ function isDigitRangeNode(node) {\n if (node.type === \"CharacterClass\" && node.expressions.length === 1) {\n const [expression] = node.expressions;\n return expression.type === \"ClassRange\" && isCharNode(expression.from, /\\d/) && isCharNode(expression.to, /\\d/);\n }\n return false;\n}\n/**\n * Check node whether is expression.\n * @param node - AST node to check.\n * @returns Is expression node or not.\n */ function isExpressionNode(node) {\n return node.type !== \"RegExp\" && node.type !== \"ClassRange\" && node.type !== \"Quantifier\";\n}\nfunction parseRegex(regex) {\n return typeof regex === \"string\" ? RegexpTree.parse(regex.replace(/^([^/])/, \"/$1\").replace(/([^/])$/, \"$1/\")) : regex instanceof RegExp ? RegexpTree.parse(regex) : regex;\n}\n/**\n * Get regex from string or AST.\n * @param src - String or AST.\n * @returns RegExp.\n */ function toRegex(src) {\n return typeof src === \"string\" ? new RegExp(src) : new RegExp(RegexpTree.generate(src.body), src.flags);\n}\n/**\n * Get string from regex or AST.\n * @param src - RegExp or AST.\n * @returns String.\n */ function toString(src) {\n return typeof src === \"string\" ? src : src instanceof RegExp ? src.toString() : RegexpTree.generate(src);\n}\n\nconst classes = [\n \"RegExp\",\n \"Disjunction\",\n \"Alternative\",\n \"Assertion\",\n \"Char\",\n \"CharacterClass\",\n \"ClassRange\",\n \"Backreference\",\n \"Group\",\n \"Repetition\",\n \"Quantifier\"\n];\n/**\n * Create traversal visitors.\n * @param visitors\n * @returns Traversal handlers.\n */ function visitors(visitors) {\n const { every } = visitors;\n if (!every) {\n return visitors;\n }\n if (typeof every === \"function\") {\n return {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n \"*\": every,\n ...visitors\n };\n }\n return classes.reduce((newVisitors, className)=>{\n const visitor = visitors[className];\n const visitorPre = visitor ? \"pre\" in visitor ? visitor.pre : visitor : null;\n const visitorPost = visitor ? \"post\" in visitor ? visitor.post : null : null;\n newVisitors[className] = {\n pre (nodePath) {\n if (every.pre(nodePath) !== false && visitorPre) {\n return visitorPre(nodePath);\n }\n return true;\n },\n post (nodePath) {\n if (every.post(nodePath) !== false && visitorPost) {\n return visitorPost(nodePath);\n }\n return true;\n }\n };\n return newVisitors;\n }, {});\n}\n\nfunction optimizeRegex(regex) {\n // Optimization requires filled codePoints\n const regexAst = RegexpTree.optimize(parseRegex(toString(regex))).getAST();\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n const { parent , node } = nodePath;\n const { expression } = node;\n node.capturing = true;\n if (parent.type === \"RegExp\" || expression.type !== \"Disjunction\" && parent.type !== \"Repetition\" || expression.type === \"Disjunction\" && parent.type === \"Disjunction\") {\n nodePath.replace(nodePath.node.expression);\n }\n }\n });\n return regexAst;\n}\n/**\n * Merge digits patterns if possible.\n * @param a\n * @param b\n * @returns Merged node.\n */ function mergeDigits(a, b) {\n if (isCharNode(a) && isCharNode(b) && a.value === b.value) {\n return b;\n }\n if (isCharNode(a, /\\d/) && isDigitRangeNode(b) && Number(b.expressions[0].from.value) - Number(a.value) === 1) {\n return {\n ...b,\n expressions: [\n {\n ...b.expressions[0],\n from: a\n }\n ]\n };\n }\n if (isDigitRangeNode(a) && isCharNode(b, /\\d/) && Number(b.value) - Number(a.expressions[0].to.value) === 1) {\n return {\n ...a,\n expressions: [\n {\n ...a.expressions[0],\n to: b\n }\n ]\n };\n }\n return null;\n}\n/**\n * Optimize segment number patterns.\n * @param patterns\n * @returns Optimized segment number patterns.\n */ function optimizeSegmentNumberPatterns(patterns) {\n return patterns.reduce((patterns, node)=>{\n const prevNode = patterns[patterns.length - 1];\n if (prevNode && node.type === \"Alternative\" && prevNode.type === \"Alternative\" && node.expressions.length === prevNode.expressions.length) {\n const merged = prevNode.expressions.reduceRight((exps, exp, i)=>{\n if (!exps) {\n return exps;\n }\n const merged = mergeDigits(exp, node.expressions[i]);\n if (merged) {\n exps.unshift(merged);\n } else {\n return null;\n }\n return exps;\n }, []);\n if (merged) {\n node.expressions = merged;\n patterns.pop();\n }\n }\n patterns.push(node);\n return patterns;\n }, []);\n}\n\n/**\n * Transform number to digits array.\n * @param num - Target number.\n * @returns Digits array.\n */ function numberToDigits(num) {\n return Array.from(num.toString(), Number);\n}\n\n/**\n * Get digit pattern.\n * @param digit - Ray start.\n * @param includes - Include start digit or use next.\n * @returns Digit pattern.\n */ function rayRangeDigitPattern(digit, includes) {\n const rangeStart = digit + Number(!includes);\n if (rangeStart === 0) {\n return DigitPatternNode();\n }\n if (rangeStart === 9) {\n return SimpleCharNode(\"9\");\n }\n if (rangeStart > 9) {\n return null;\n }\n return CharacterClassNode(ClassRangeNode(SimpleCharNode(rangeStart), SimpleCharNode(\"9\")));\n}\n/**\n * Create numeric ray pattern.\n * @param from - Start from this number.\n * @returns Numeric ray pattern parts.\n */ function rayToNumberPatterns(from) {\n if (from === 0) {\n return [\n NumberPatternNode()\n ];\n }\n const digits = numberToDigits(from);\n const digitsCount = digits.length;\n const other = NumberPatternNode(RangeQuantifierNode(digitsCount + 1));\n const zeros = digitsCount - 1;\n if (from / Math.pow(10, zeros) === digits[0]) {\n return [\n AlternativeNode(rayRangeDigitPattern(digits[0], true), Array.from({\n length: zeros\n }, DigitPatternNode)),\n other\n ];\n }\n const raysNumberPatterns = digits.reduce((topNodes, _, i)=>{\n const ri = digitsCount - i - 1;\n const d = i === 0;\n let prev = SimpleCharNode(\"\");\n const nodes = digits.reduce((nodes, digit, j)=>{\n if (j < ri) {\n nodes.push(SimpleCharNode(digit));\n } else if (prev) {\n if (j > ri) {\n nodes.push(DigitPatternNode());\n } else {\n prev = rayRangeDigitPattern(digit, d);\n if (prev) {\n nodes.push(prev);\n } else {\n return [];\n }\n }\n }\n return nodes;\n }, []);\n if (nodes.length) {\n topNodes.push(nodes);\n }\n return topNodes;\n }, []);\n const numberPatterns = raysNumberPatterns.map((_)=>AlternativeNode(_));\n numberPatterns.push(other);\n return numberPatterns;\n}\n\n/**\n * Get digit pattern.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param zeros - Zeros to add as prefix.\n * @returns Digit pattern.\n */ function segmentRangeNumberPattern(from, to, zeros) {\n if (to < from) {\n return null;\n }\n const fromNode = SimpleCharNode(from);\n const toNode = SimpleCharNode(to);\n const zerosPrefix = typeof zeros === \"number\" && zeros > 0 ? Array.from({\n length: zeros\n }, ()=>SimpleCharNode(0)) : [];\n const addPrefix = zerosPrefix.length ? (node)=>AlternativeNode(zerosPrefix, node) : (node)=>node;\n if (from === to) {\n return addPrefix(fromNode);\n }\n if (from === 0 && to === 9) {\n return addPrefix(DigitPatternNode());\n }\n if (to - from === 1) {\n return addPrefix(CharacterClassNode(fromNode, toNode));\n }\n return addPrefix(CharacterClassNode(ClassRangeNode(fromNode, toNode)));\n}\n/**\n * Split segment range to decade ranges.\n * @param from - Segment start.\n * @param to - Segment end.\n * @returns Ranges.\n */ function splitToDecadeRanges(from, to) {\n const ranges = [];\n let num = from;\n let decade = 1;\n do {\n decade *= 10;\n if (num < decade) {\n ranges.push([\n num,\n Math.min(decade - 1, to)\n ]);\n num = decade;\n }\n }while (decade <= to);\n return ranges;\n}\n/**\n * Get common and diffs of two numbers (arrays of digits).\n * @param a - Digits.\n * @param b - Other digits.\n * @returns Common part and diffs.\n */ function splitCommonDiff(a, b) {\n const len = a.length;\n if (len !== b.length || a[0] !== b[0]) {\n return null;\n }\n let common = a[0].toString();\n let currA = 0;\n let currB = 0;\n let diffA = \"\";\n let diffB = \"\";\n for(let i = 1; i < len; i++){\n currA = a[i];\n currB = b[i];\n if (currA === currB) {\n common += currA;\n } else {\n diffA += currA;\n diffB += currB;\n }\n }\n return [\n common,\n parseInt(diffA, 10),\n parseInt(diffB, 10)\n ];\n}\n/**\n * Get segment patterns.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param digitsInNumber - How many digits should be en number. Will be filled by zeros.\n * @returns Segment patterns.\n */ function segmentToNumberPatterns(from, to, digitsInNumber = 0) {\n const fromDigits = numberToDigits(from);\n const digitsCount = fromDigits.length;\n if (from < 10 && to < 10 || from === to) {\n const zeros = digitsInNumber - digitsCount;\n return [\n segmentRangeNumberPattern(from, to, zeros)\n ];\n }\n const toDigits = numberToDigits(to);\n if (digitsCount !== toDigits.length) {\n const decadeRanges = splitToDecadeRanges(from, to);\n const parts = concat(decadeRanges.map(([from, to])=>segmentToNumberPatterns(from, to, digitsInNumber)));\n return parts;\n }\n const commonStart = splitCommonDiff(fromDigits, toDigits);\n if (Array.isArray(commonStart)) {\n const [common, from1, to1] = commonStart;\n const digitsInNumber1 = digitsCount - common.length;\n const diffParts = segmentToNumberPatterns(from1, to1, digitsInNumber1);\n return [\n AlternativeNode(Array.from(common, SimpleCharNode), DisjunctionCapturingGroupNode(diffParts))\n ];\n }\n const range = Array.from({\n length: digitsCount - 1\n });\n const middleSegment = segmentRangeNumberPattern(fromDigits[0] + 1, toDigits[0] - 1);\n const parts1 = [\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(fromDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(digit + d, 9);\n }));\n }),\n // but output more readable\n ...middleSegment ? [\n AlternativeNode(middleSegment, Array.from({\n length: digitsCount - 1\n }, ()=>DigitPatternNode()))\n ] : [],\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(toDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(0, digit - d);\n }));\n })\n ];\n return optimizeSegmentNumberPatterns(parts1);\n}\n\n/**\n * Get regex for given numeric range.\n * @param from - Range start.\n * @param to - Range end.\n * @returns Range pattern.\n */ function rangeToRegex(from, to = Infinity) {\n if (from === Infinity) {\n return NumberPatternNode();\n }\n const numberPatterns = to === Infinity ? rayToNumberPatterns(from) : segmentToNumberPatterns(from, to);\n const regex = DisjunctionCapturingGroupNode(numberPatterns);\n return regex;\n}\n\n/**\n * Find matched versions.\n * @param minVersion - Semver version.\n * @param maxVersion - Semver version.\n * @param bases - Base semver versions.\n * @param options - Semver compare options.\n * @returns Matched versions.\n */ function findMatchedVersions(minVersion, maxVersion, bases, options) {\n const compareOptions = {\n ...options,\n allowHigherVersions: true\n };\n const minComparator = (ver)=>compareSemvers(ver, minVersion, compareOptions);\n const maxComparator = (ver)=>compareSemvers(maxVersion, ver, compareOptions);\n const comparator = minVersion && maxVersion ? (ver)=>minComparator(ver) && maxComparator(ver) : minVersion ? minComparator : maxVersion ? maxComparator : ()=>true;\n return bases.filter(comparator);\n}\n\n/**\n * Get useragent regexes for given browsers.\n * @param browsers - Browsers.\n * @param options - Semver compare options.\n * @param targetRegexes - Override default regexes.\n * @returns User agent regexes.\n */ function getRegexesForBrowsers(browsers, options, targetRegexes = regexes) {\n const result = [];\n let prevFamily = \"\";\n let prevRegexIsGlobal = false;\n targetRegexes.forEach((regex)=>{\n const requestVersions = browsers.get(regex.family);\n if (!requestVersions) {\n return;\n }\n let { version , minVersion , maxVersion } = regex;\n if (version) {\n minVersion = version;\n maxVersion = version;\n }\n let matchedVersions = findMatchedVersions(minVersion, maxVersion, requestVersions, options);\n if (matchedVersions.length) {\n // regex contains global patch\n if (prevFamily === regex.family && prevRegexIsGlobal) {\n version = undefined;\n minVersion = undefined;\n maxVersion = undefined;\n matchedVersions = requestVersions;\n result.pop();\n }\n result.push({\n ...regex,\n version,\n minVersion,\n maxVersion,\n requestVersions,\n matchedVersions\n });\n }\n prevRegexIsGlobal = !version && !minVersion && !maxVersion;\n prevFamily = regex.family;\n });\n return result;\n}\n\n/**\n * Compile regexes.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Objects with info about compiled regexes.\n */ function compileRegexes(regexes) {\n return regexes.map(({ regexAst , ...regex })=>{\n const optimizedRegexAst = optimizeRegex(regexAst);\n return {\n ...regex,\n regexAst: optimizedRegexAst,\n regex: toRegex(optimizedRegexAst)\n };\n });\n}\n/**\n * Compile regex.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Compiled common regex.\n */ function compileRegex(regexes) {\n const partsRegexes = regexes.map(({ regexAst })=>CapturingGroupNode(regexAst.body));\n const regexAst = optimizeRegex(AstRegExpNode(DisjunctionCapturingGroupNode(partsRegexes)));\n return toRegex(regexAst);\n}\n\n/**\n * Get number patterns count from the regex.\n * @param regex - Target regex.\n * @returns Number patterns count.\n */ function getNumberPatternsCount(regex) {\n const regexAst = parseRegex(regex);\n let count = 0;\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node)) {\n count++;\n }\n }\n });\n return count;\n}\nfunction replaceNumberPatterns(regex, numbers, numberPatternsCount) {\n let regexAst = parseRegex(regex);\n const numbersToReplace = typeof numberPatternsCount === \"number\" && numberPatternsCount < numbers.length ? numbers.slice(0, numberPatternsCount) : numbers.slice();\n RegexpTree.traverse(regexAst, visitors({\n every () {\n return Boolean(numbersToReplace.length);\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersToReplace.length) {\n if (regexAst === nodePath.node) {\n regexAst = numbersToReplace.shift();\n } else {\n nodePath.replace(numbersToReplace.shift());\n }\n return false;\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Get from regex part with number patterns.\n * @param regex - Target regex.\n * @param numberPatternsCount - Number patterns to extract.\n * @returns Regex part with number patterns.\n */ function getNumberPatternsPart(regex, numberPatternsCount) {\n const regexAst = parseRegex(regex);\n const maxNumbersCount = Math.min(getNumberPatternsCount(regexAst), numberPatternsCount || Infinity);\n const expressions = [];\n let numbersCounter = 0;\n let containsNumberPattern = false;\n RegexpTree.traverse(regexAst, visitors({\n every: {\n pre ({ node , parent }) {\n if (node === regexAst) {\n return true;\n }\n if (!isExpressionNode(node)) {\n return false;\n }\n if (parent === regexAst) {\n containsNumberPattern = false;\n }\n return numbersCounter < maxNumbersCount;\n },\n post ({ node , parent }) {\n if (node !== regexAst && parent === regexAst && isExpressionNode(node) && (containsNumberPattern || numbersCounter > 0 && numbersCounter < maxNumbersCount)) {\n expressions.push(node);\n }\n }\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersCounter < maxNumbersCount) {\n containsNumberPattern = true;\n numbersCounter++;\n return false;\n }\n return true;\n }\n }));\n if (expressions.length === 1 && !isNumberPatternNode(expressions[0])) {\n return getNumberPatternsPart(expressions[0], maxNumbersCount);\n }\n return expressions;\n}\n/**\n * Ranged semver to regex patterns.\n * @param rangedVersion - Ranged semver.\n * @param options - Semver compare options.\n * @returns Array of regex pattern.\n */ function rangedSemverToRegex(rangedVersion, options) {\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n const ignoreIndex = rangedVersion[0] === Infinity ? 0 : ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowHigherVersions) {\n const numberPatterns = [];\n let prevWasZero = true;\n let d = 0;\n let start = 0;\n const createMapper = (i)=>(range, j)=>{\n if (j >= ignoreIndex) {\n return NumberPatternNode();\n }\n start = Array.isArray(range) ? range[0] : range;\n if (j < i) {\n return NumberCharsNode(start);\n }\n if (j > i) {\n return NumberPatternNode();\n }\n return rangeToRegex(start + d);\n };\n for(let i = ignoreIndex - 1; i >= 0; i--){\n if (prevWasZero && !rangedVersion[i]) {\n continue;\n }\n prevWasZero = false;\n numberPatterns.push(rangedVersion.map(createMapper(i)));\n d = 1;\n }\n return numberPatterns;\n }\n const numberPatterns1 = rangedVersion.map((range, i)=>{\n if (i >= ignoreIndex) {\n return NumberPatternNode();\n }\n if (Array.isArray(range)) {\n return rangeToRegex(range[0], range[1]);\n }\n return NumberCharsNode(range);\n });\n return [\n numberPatterns1\n ];\n}\n\nfunction applyVersionsToRegex(regex, versions, options) {\n const { allowHigherVersions } = options;\n const regexAst = parseRegex(regex);\n const finalVersions = allowHigherVersions && versions.length ? [\n versions[0]\n ] : versions;\n const maxRequiredPartsCount = finalVersions.reduce((maxRequiredPartsCount, version)=>Math.max(maxRequiredPartsCount, getRequiredSemverPartsCount(version, options)), 1);\n const numberPatternsPart = getNumberPatternsPart(regexAst, maxRequiredPartsCount);\n const versionsPart = DisjunctionCapturingGroupNode(...finalVersions.map((version)=>rangedSemverToRegex(version, options).map((parts)=>replaceNumberPatterns(AlternativeNode(clone(numberPatternsPart)), parts, maxRequiredPartsCount))));\n RegexpTree.traverse(regexAst, visitors({\n every (nodePath) {\n if (!numberPatternsPart.length) {\n return false;\n }\n if (nodePath.node === numberPatternsPart[0]) {\n if (numberPatternsPart.length === 1) {\n nodePath.replace(versionsPart);\n } else {\n nodePath.remove();\n }\n numberPatternsPart.shift();\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Apply browser versions to info objects.\n * @param browserRegexes - Objects with requested browser version and regex.\n * @param options - Semver compare options.\n * @returns Objects with requested browser version and regex special for this version.\n */ function applyVersionsToRegexes(browserRegexes, options) {\n return browserRegexes.map(({ regex: sourceRegex , version , maxVersion , matchedVersions , ...other })=>{\n let regexAst = parseRegex(sourceRegex);\n if (!version) {\n regexAst = applyVersionsToRegex(regexAst, versionsListToRanges(matchedVersions), {\n ...options,\n allowHigherVersions: !maxVersion && options.allowHigherVersions\n });\n }\n return {\n regex: null,\n sourceRegex,\n regexAst,\n version,\n maxVersion,\n matchedVersions,\n ...other\n };\n });\n}\n\nconst defaultOptions = {\n ignoreMinor: false,\n ignorePatch: true,\n allowZeroSubversions: false,\n allowHigherVersions: false\n};\n/**\n * Get source regexes objects from browserslist query.\n * @param options - Browserslist and semver compare options.\n * @returns Source regexes objects.\n */ function getPreUserAgentRegexes(options = {}) {\n const finalOptions = {\n ...defaultOptions,\n ...options\n };\n const browsersList = getBrowsersList(finalOptions);\n const mergedBrowsers = mergeBrowserVersions(browsersList);\n const sourceRegexes = getRegexesForBrowsers(mergedBrowsers, finalOptions);\n const versionedRegexes = applyVersionsToRegexes(sourceRegexes, finalOptions);\n return versionedRegexes;\n}\n/**\n * Compile browserslist query to regexes.\n * @param options - Browserslist and semver compare options.\n * @returns Objects with info about compiled regexes.\n */ function getUserAgentRegexes(options = {}) {\n return compileRegexes(getPreUserAgentRegexes(options));\n}\n/**\n * Compile browserslist query to regex.\n * @param options - Browserslist and semver compare options.\n * @returns Compiled regex.\n */ function getUserAgentRegex(options = {}) {\n return compileRegex(getPreUserAgentRegexes(options));\n}\n\nexport { AlternativeNode, AstRegExpNode, CapturingGroupNode, CharacterClassNode, ClassRangeNode, DigitPatternNode, DisjunctionCapturingGroupNode, DisjunctionNode, MetaCharNode, NumberCharsNode, NumberPatternNode, RangeQuantifierNode, RepetitionNode, SemverPart, SimpleCharNode, SimpleQuantifierNode, applyVersionsToRegex, applyVersionsToRegexes, clone, compareArrays, compareSemvers, compileRegex, compileRegexes, concat, defaultOptions, findMatchedVersions, getBrowsersList, getNumberPatternsCount, getNumberPatternsPart, getPreUserAgentRegexes, getRegexesForBrowsers, getRequiredSemverPartsCount, getUserAgentRegex, getUserAgentRegexes, isCharNode, isDigitRangeNode, isExpressionNode, isNumberPatternNode, mergeBrowserVersions, mergeDigits, numberToDigits, numbersToRanges, optimizeRegex, optimizeSegmentNumberPatterns, parseBrowsersList, parseRegex, rangeSemver, rangeToRegex, rangedSemverToRegex, rayRangeDigitPattern, rayToNumberPatterns, replaceNumberPatterns, segmentRangeNumberPattern, segmentToNumberPatterns, semverify, splitCommonDiff, splitToDecadeRanges, toRegex, toString, versionsListToRanges, visitors };\n//# sourceMappingURL=index.js.map\n","/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nconst getLogger = user => {\n\tif (user === null) {\n\t\treturn getLoggerBuilder()\n\t\t\t.setApp('core')\n\t\t\t.build()\n\t}\n\treturn getLoggerBuilder()\n\t\t.setApp('core')\n\t\t.setUid(user.uid)\n\t\t.build()\n}\n\nexport default getLogger(getCurrentUser())\n","/**\n * @copyright 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { getUserAgentRegex } from 'browserslist-useragent-regexp'\n// eslint-disable-next-line n/no-extraneous-import\nimport browserslist from 'browserslist'\nimport browserslistConfig from '@nextcloud/browserslist-config'\n\n// Generate a regex that matches user agents to detect incompatible browsers\nexport const supportedBrowsersRegExp = getUserAgentRegex({ allowHigherVersions: true, browsers: browserslistConfig })\nexport const supportedBrowsers = browserslist(browserslistConfig)\n","/**\n * @copyright 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { getBuilder } from '@nextcloud/browser-storage'\n\nexport default getBuilder('core')\n\t.clearOnLogout()\n\t.persist()\n\t.build()\n","/**\n * @copyright 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport { supportedBrowsersRegExp } from '../services/BrowsersListService.js'\nimport browserStorage from '../services/BrowserStorageService.js'\nimport logger from '../logger.js'\n\nexport const browserStorageKey = 'unsupported-browser-ignore'\nconst redirectPath = generateUrl('/unsupported')\n\nconst isBrowserOverridden = browserStorage.getItem(browserStorageKey) === 'true'\n\n/**\n * Test the current browser user agent against our official browserslist config\n * and redirect if unsupported\n */\nexport const testSupportedBrowser = function() {\n\tif (supportedBrowsersRegExp.test(navigator.userAgent)) {\n\t\tlogger.debug('this browser is officially supported ! 🚀')\n\t\treturn\n\t}\n\n\t// If incompatible BUT ignored, let's keep going\n\tif (isBrowserOverridden) {\n\t\tlogger.debug('this browser is NOT supported but has been manually overridden ! ⚠️')\n\t\treturn\n\t}\n\n\t// If incompatible, NOT overridden AND NOT already on the warning page,\n\t// redirect to the unsupported warning page\n\tif (window.location.pathname.indexOf(redirectPath) === -1) {\n\t\tconst redirectUrl = window.location.href.replace(window.location.origin, '')\n\t\tconst base64Param = Buffer.from(redirectUrl).toString('base64')\n\t\thistory.pushState(null, null, `${redirectPath}?redirect_url=${base64Param}`)\n\t\twindow.location.reload()\n\t}\n}\n"," <!--\n - @copyright 2022 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<template>\n\t<div class=\"content-unsupported-browser guest-box\">\n\t\t<NcEmptyContent>\n\t\t\t{{ t('core', 'This browser is not supported') }}\n\t\t\t<template #icon>\n\t\t\t\t<Web />\n\t\t\t</template>\n\t\t\t<template #action>\n\t\t\t\t<div>\n\t\t\t\t\t<h2>\n\t\t\t\t\t\t{{ t('core', 'Your browser is not supported. Please upgrade to a newer version or a supported one.') }}\n\t\t\t\t\t</h2>\n\t\t\t\t\t<NcButton class=\"content-unsupported-browser__continue\" type=\"primary\" @click=\"forceBrowsing\">\n\t\t\t\t\t\t{{ t('core', 'Continue with this unsupported browser') }}\n\t\t\t\t\t</NcButton>\n\t\t\t\t</div>\n\n\t\t\t\t<ul class=\"content-unsupported-browser__list\">\n\t\t\t\t\t<h3>{{ t('core', 'Supported versions') }}</h3>\n\t\t\t\t\t<li v-for=\"browser in formattedBrowsersList\" :key=\"browser\">\n\t\t\t\t\t\t{{ browser }}\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t</div>\n</template>\n\n<script>\nimport { generateUrl } from '@nextcloud/router'\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport NcEmptyContent from '@nextcloud/vue/dist/Components/NcEmptyContent.js'\nimport Web from 'vue-material-design-icons/Web.vue'\n\nimport { browserStorageKey } from '../utils/RedirectUnsupportedBrowsers.js'\nimport { supportedBrowsers } from '../services/BrowsersListService.js'\nimport browserStorage from '../services/BrowserStorageService.js'\nimport logger from '../logger.js'\n\nlogger.debug('Supported browsers', { supportedBrowsers })\n\nexport default {\n\tname: 'UnsupportedBrowser',\n\tcomponents: {\n\t\tWeb,\n\t\tNcButton,\n\t\tNcEmptyContent,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tagents: {},\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tisMobile() {\n\t\t\treturn /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)\n\t\t},\n\n\t\t/**\n\t\t * Filter out or include mobile/desktop browsers depending\n\t\t * on the current user platform/device\n\t\t */\n\t\tfilteredSupportedBrowsers() {\n\t\t\treturn supportedBrowsers.filter(browser => {\n\t\t\t\tif (!browser) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tif (this.isMobile) {\n\t\t\t\t\treturn this.isMobileBrowser(browser)\n\t\t\t\t}\n\t\t\t\treturn !this.isMobileBrowser(browser)\n\t\t\t})\n\t\t},\n\n\t\tformattedBrowsersList() {\n\t\t\tconst list = {}\n\n\t\t\t// supportedBrowsers is generated by webpack at compilation time\n\t\t\tthis.filteredSupportedBrowsers.forEach(browser => {\n\t\t\t\tconst [id, version] = browser.split(' ')\n\t\t\t\tif (!list[id] || list[id] < parseFloat(version, 10)) {\n\t\t\t\t\tlist[id] = parseFloat(version, 10)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\treturn Object.keys(list).map(id => {\n\t\t\t\tif (!this.agents[id]?.browser) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\n\t\t\t\tconst version = list[id]\n\t\t\t\tconst name = this.agents[id]?.browser\n\t\t\t\treturn this.t('core', '{name} version {version} and above', {\n\t\t\t\t\tname, version,\n\t\t\t\t})\n\t\t\t}).filter(entry => entry !== null)\n\t\t},\n\t},\n\n\tasync beforeMount() {\n\t\t// Dynamic load big list of user agents\n\t\t// eslint-disable-next-line n/no-extraneous-import\n\t\tconst { agents } = await import('caniuse-lite')\n\t\tthis.agents = agents\n\t},\n\n\tmethods: {\n\t\tt,\n\t\tn,\n\n\t\t// Set the flag allowing this browser and redirect to home\n\t\tforceBrowsing() {\n\t\t\tbrowserStorage.setItem(browserStorageKey, true)\n\n\t\t\t// Redirect if there is the data\n\t\t\tconst urlParams = new URLSearchParams(window.location.search)\n\t\t\tif (urlParams.has('redirect_url')) {\n\t\t\t\tconst redirectPath = Buffer.from(urlParams.get('redirect_url'), 'base64').toString() || '/'\n\t\t\t\tif (redirectPath.startsWith('/')) {\n\t\t\t\t\twindow.location = generateUrl(redirectPath)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\twindow.location = generateUrl('/')\n\t\t},\n\n\t\t/**\n\t\t * Detect if the browserslist browser is a mobile one\n\t\t * https://github.com/browserslist/browserslist#query-composition\n\t\t *\n\t\t * @param {string} browser a valid browserlist browser. e.g `and_chr 90`\n\t\t */\n\t\tisMobileBrowser(browser) {\n\t\t\tbrowser = browser.toLowerCase()\n\t\t\treturn browser.includes('and_')\n\t\t\t\t|| browser.includes('android')\n\t\t\t\t|| browser.includes('ios_')\n\t\t\t\t|| browser.includes('mobile')\n\t\t\t\t|| browser.includes('_mob')\n\t\t\t\t|| browser.includes('samsung')\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$spacing: 30px;\n\n.content-unsupported-browser {\n\tdisplay: flex;\n\tjustify-content: center;\n\twidth: 400px;\n\tmax-width: calc(90vw - 2 * $spacing);\n\tmargin: auto;\n\tpadding: $spacing;\n\n\t.empty-content {\n\t\tmargin: 0;\n\t\t&::v-deep .empty-content__icon {\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t&__continue {\n\t\tdisplay: block;\n\t\tmargin: $spacing auto;\n\t}\n\n\t&__list {\n\t\tmargin-top: 2 * $spacing;\n\t\tmargin-bottom: $spacing;\n\t\tli {\n\t\t\ttext-align: left;\n\t\t}\n\t}\n}\n\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=style&index=0&id=3c1e6192&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=style&index=0&id=3c1e6192&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UnsupportedBrowser.vue?vue&type=template&id=3c1e6192&scoped=true&\"\nimport script from \"./UnsupportedBrowser.vue?vue&type=script&lang=js&\"\nexport * from \"./UnsupportedBrowser.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UnsupportedBrowser.vue?vue&type=style&index=0&id=3c1e6192&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3c1e6192\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"content-unsupported-browser guest-box\"},[_c('NcEmptyContent',{scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Web')]},proxy:true},{key:\"action\",fn:function(){return [_c('div',[_c('h2',[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Your browser is not supported. Please upgrade to a newer version or a supported one.'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{staticClass:\"content-unsupported-browser__continue\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.forceBrowsing}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Continue with this unsupported browser'))+\"\\n\\t\\t\\t\\t\")])],1),_vm._v(\" \"),_c('ul',{staticClass:\"content-unsupported-browser__list\"},[_c('h3',[_vm._v(_vm._s(_vm.t('core', 'Supported versions')))]),_vm._v(\" \"),_vm._l((_vm.formattedBrowsersList),function(browser){return _c('li',{key:browser},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(browser)+\"\\n\\t\\t\\t\\t\")])})],2)]},proxy:true}])},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('core', 'This browser is not supported'))+\"\\n\\t\\t\")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport Vue from 'vue'\n\nimport { browserStorageKey } from './utils/RedirectUnsupportedBrowsers.js'\nimport browserStorage from './services/BrowserStorageService.js'\nimport UnsupportedBrowser from './views/UnsupportedBrowser.vue'\n\n// If the ignore token is set, redirect\nif (browserStorage.getItem(browserStorageKey) === 'true') {\n\twindow.location = generateUrl('/')\n}\n\nexport default new Vue({\n\tel: '#unsupported-browser',\n\t// eslint-disable-next-line vue/match-component-file-name\n\tname: 'UnsupportedBrowserRoot',\n\trender: h => h(UnsupportedBrowser),\n})\n","var BrowserslistError = require('./error')\n\nfunction noop() {}\n\nmodule.exports = {\n loadQueries: function loadQueries() {\n throw new BrowserslistError(\n 'Sharable configs are not supported in client-side build of Browserslist'\n )\n },\n\n getStat: function getStat(opts) {\n return opts.stats\n },\n\n loadConfig: function loadConfig(opts) {\n if (opts.config) {\n throw new BrowserslistError(\n 'Browserslist config are not supported in client-side build'\n )\n }\n },\n\n loadCountry: function loadCountry() {\n throw new BrowserslistError(\n 'Country statistics are not supported ' +\n 'in client-side build of Browserslist'\n )\n },\n\n loadFeature: function loadFeature() {\n throw new BrowserslistError(\n 'Supports queries are not available in client-side build of Browserslist'\n )\n },\n\n currentNode: function currentNode(resolve, context) {\n return resolve(['maintained node versions'], context)[0]\n },\n\n parseConfig: noop,\n\n readConfig: noop,\n\n findConfig: noop,\n\n clearCaches: noop,\n\n oldDataWarning: noop,\n\n env: {}\n}\n","function BrowserslistError(message) {\n this.name = 'BrowserslistError'\n this.message = message\n this.browserslist = true\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, BrowserslistError)\n }\n}\n\nBrowserslistError.prototype = Error.prototype\n\nmodule.exports = BrowserslistError\n","var jsReleases = require('node-releases/data/processed/envs.json')\nvar agents = require('caniuse-lite/dist/unpacker/agents').agents\nvar jsEOL = require('node-releases/data/release-schedule/release-schedule.json')\nvar path = require('path')\nvar e2c = require('electron-to-chromium/versions')\n\nvar BrowserslistError = require('./error')\nvar parse = require('./parse')\nvar env = require('./node') // Will load browser.js in webpack\n\nvar YEAR = 365.259641 * 24 * 60 * 60 * 1000\nvar ANDROID_EVERGREEN_FIRST = '37'\nvar OP_MOB_BLINK_FIRST = 14\n\n// Helpers\n\nfunction isVersionsMatch(versionA, versionB) {\n return (versionA + '.').indexOf(versionB + '.') === 0\n}\n\nfunction isEolReleased(name) {\n var version = name.slice(1)\n return browserslist.nodeVersions.some(function (i) {\n return isVersionsMatch(i, version)\n })\n}\n\nfunction normalize(versions) {\n return versions.filter(function (version) {\n return typeof version === 'string'\n })\n}\n\nfunction normalizeElectron(version) {\n var versionToUse = version\n if (version.split('.').length === 3) {\n versionToUse = version.split('.').slice(0, -1).join('.')\n }\n return versionToUse\n}\n\nfunction nameMapper(name) {\n return function mapName(version) {\n return name + ' ' + version\n }\n}\n\nfunction getMajor(version) {\n return parseInt(version.split('.')[0])\n}\n\nfunction getMajorVersions(released, number) {\n if (released.length === 0) return []\n var majorVersions = uniq(released.map(getMajor))\n var minimum = majorVersions[majorVersions.length - number]\n if (!minimum) {\n return released\n }\n var selected = []\n for (var i = released.length - 1; i >= 0; i--) {\n if (minimum > getMajor(released[i])) break\n selected.unshift(released[i])\n }\n return selected\n}\n\nfunction uniq(array) {\n var filtered = []\n for (var i = 0; i < array.length; i++) {\n if (filtered.indexOf(array[i]) === -1) filtered.push(array[i])\n }\n return filtered\n}\n\nfunction fillUsage(result, name, data) {\n for (var i in data) {\n result[name + ' ' + i] = data[i]\n }\n}\n\nfunction generateFilter(sign, version) {\n version = parseFloat(version)\n if (sign === '>') {\n return function (v) {\n return parseFloat(v) > version\n }\n } else if (sign === '>=') {\n return function (v) {\n return parseFloat(v) >= version\n }\n } else if (sign === '<') {\n return function (v) {\n return parseFloat(v) < version\n }\n } else {\n return function (v) {\n return parseFloat(v) <= version\n }\n }\n}\n\nfunction generateSemverFilter(sign, version) {\n version = version.split('.').map(parseSimpleInt)\n version[1] = version[1] || 0\n version[2] = version[2] || 0\n if (sign === '>') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) > 0\n }\n } else if (sign === '>=') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) >= 0\n }\n } else if (sign === '<') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) > 0\n }\n } else {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) >= 0\n }\n }\n}\n\nfunction parseSimpleInt(x) {\n return parseInt(x)\n}\n\nfunction compare(a, b) {\n if (a < b) return -1\n if (a > b) return +1\n return 0\n}\n\nfunction compareSemver(a, b) {\n return (\n compare(parseInt(a[0]), parseInt(b[0])) ||\n compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) ||\n compare(parseInt(a[2] || '0'), parseInt(b[2] || '0'))\n )\n}\n\n// this follows the npm-like semver behavior\nfunction semverFilterLoose(operator, range) {\n range = range.split('.').map(parseSimpleInt)\n if (typeof range[1] === 'undefined') {\n range[1] = 'x'\n }\n // ignore any patch version because we only return minor versions\n // range[2] = 'x'\n switch (operator) {\n case '<=':\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) <= 0\n }\n case '>=':\n default:\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) >= 0\n }\n }\n}\n\n// this follows the npm-like semver behavior\nfunction compareSemverLoose(version, range) {\n if (version[0] !== range[0]) {\n return version[0] < range[0] ? -1 : +1\n }\n if (range[1] === 'x') {\n return 0\n }\n if (version[1] !== range[1]) {\n return version[1] < range[1] ? -1 : +1\n }\n return 0\n}\n\nfunction resolveVersion(data, version) {\n if (data.versions.indexOf(version) !== -1) {\n return version\n } else if (browserslist.versionAliases[data.name][version]) {\n return browserslist.versionAliases[data.name][version]\n } else {\n return false\n }\n}\n\nfunction normalizeVersion(data, version) {\n var resolved = resolveVersion(data, version)\n if (resolved) {\n return resolved\n } else if (data.versions.length === 1) {\n return data.versions[0]\n } else {\n return false\n }\n}\n\nfunction filterByYear(since, context) {\n since = since / 1000\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var versions = Object.keys(data.releaseDate).filter(function (v) {\n var date = data.releaseDate[v]\n return date !== null && date >= since\n })\n return selected.concat(versions.map(nameMapper(data.name)))\n }, [])\n}\n\nfunction cloneData(data) {\n return {\n name: data.name,\n versions: data.versions,\n released: data.released,\n releaseDate: data.releaseDate\n }\n}\n\nfunction byName(name, context) {\n name = name.toLowerCase()\n name = browserslist.aliases[name] || name\n if (context.mobileToDesktop && browserslist.desktopNames[name]) {\n var desktop = browserslist.data[browserslist.desktopNames[name]]\n if (name === 'android') {\n return normalizeAndroidData(cloneData(browserslist.data[name]), desktop)\n } else {\n var cloned = cloneData(desktop)\n cloned.name = name\n return cloned\n }\n }\n return browserslist.data[name]\n}\n\nfunction normalizeAndroidVersions(androidVersions, chromeVersions) {\n var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST)\n return androidVersions\n .filter(function (version) {\n return /^(?:[2-4]\\.|[34]$)/.test(version)\n })\n .concat(chromeVersions.slice(iFirstEvergreen))\n}\n\nfunction normalizeAndroidData(android, chrome) {\n android.released = normalizeAndroidVersions(android.released, chrome.released)\n android.versions = normalizeAndroidVersions(android.versions, chrome.versions)\n android.released.forEach(function (v) {\n if (android.releaseDate[v] === undefined) {\n android.releaseDate[v] = chrome.releaseDate[v]\n }\n })\n return android\n}\n\nfunction checkName(name, context) {\n var data = byName(name, context)\n if (!data) throw new BrowserslistError('Unknown browser ' + name)\n return data\n}\n\nfunction unknownQuery(query) {\n return new BrowserslistError(\n 'Unknown browser query `' +\n query +\n '`. ' +\n 'Maybe you are using old Browserslist or made typo in query.'\n )\n}\n\n// Adjusts last X versions queries for some mobile browsers,\n// where caniuse data jumps from a legacy version to the latest\nfunction filterJumps(list, name, nVersions, context) {\n var jump = 1\n switch (name) {\n case 'android':\n if (context.mobileToDesktop) return list\n var released = browserslist.data.chrome.released\n jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST)\n break\n case 'op_mob':\n var latest = browserslist.data.op_mob.released.slice(-1)[0]\n jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1\n break\n default:\n return list\n }\n if (nVersions <= jump) {\n return list.slice(-1)\n }\n return list.slice(jump - 1 - nVersions)\n}\n\nfunction isSupported(flags) {\n return (\n typeof flags === 'string' &&\n (flags.indexOf('y') >= 0 || flags.indexOf('a') >= 0)\n )\n}\n\nfunction resolve(queries, context) {\n return parse(QUERIES, queries).reduce(function (result, node, index) {\n if (node.not && index === 0) {\n throw new BrowserslistError(\n 'Write any browsers query (for instance, `defaults`) ' +\n 'before `' +\n node.query +\n '`'\n )\n }\n var type = QUERIES[node.type]\n var array = type.select.call(browserslist, context, node).map(function (j) {\n var parts = j.split(' ')\n if (parts[1] === '0') {\n return parts[0] + ' ' + byName(parts[0], context).versions[0]\n } else {\n return j\n }\n })\n\n if (node.compose === 'and') {\n if (node.not) {\n return result.filter(function (j) {\n return array.indexOf(j) === -1\n })\n } else {\n return result.filter(function (j) {\n return array.indexOf(j) !== -1\n })\n }\n } else {\n if (node.not) {\n var filter = {}\n array.forEach(function (j) {\n filter[j] = true\n })\n return result.filter(function (j) {\n return !filter[j]\n })\n }\n return result.concat(array)\n }\n }, [])\n}\n\nfunction prepareOpts(opts) {\n if (typeof opts === 'undefined') opts = {}\n\n if (typeof opts.path === 'undefined') {\n opts.path = path.resolve ? path.resolve('.') : '.'\n }\n\n return opts\n}\n\nfunction prepareQueries(queries, opts) {\n if (typeof queries === 'undefined' || queries === null) {\n var config = browserslist.loadConfig(opts)\n if (config) {\n queries = config\n } else {\n queries = browserslist.defaults\n }\n }\n\n return queries\n}\n\nfunction checkQueries(queries) {\n if (!(typeof queries === 'string' || Array.isArray(queries))) {\n throw new BrowserslistError(\n 'Browser queries must be an array or string. Got ' + typeof queries + '.'\n )\n }\n}\n\nvar cache = {}\n\nfunction browserslist(queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n\n var context = {\n ignoreUnknownVersions: opts.ignoreUnknownVersions,\n dangerousExtend: opts.dangerousExtend,\n mobileToDesktop: opts.mobileToDesktop,\n path: opts.path,\n env: opts.env\n }\n\n env.oldDataWarning(browserslist.data)\n var stats = env.getStat(opts, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n\n var cacheKey = JSON.stringify([queries, context])\n if (cache[cacheKey]) return cache[cacheKey]\n\n var result = uniq(resolve(queries, context)).sort(function (name1, name2) {\n name1 = name1.split(' ')\n name2 = name2.split(' ')\n if (name1[0] === name2[0]) {\n // assumptions on caniuse data\n // 1) version ranges never overlaps\n // 2) if version is not a range, it never contains `-`\n var version1 = name1[1].split('-')[0]\n var version2 = name2[1].split('-')[0]\n return compareSemver(version2.split('.'), version1.split('.'))\n } else {\n return compare(name1[0], name2[0])\n }\n })\n if (!env.env.BROWSERSLIST_DISABLE_CACHE) {\n cache[cacheKey] = result\n }\n return result\n}\n\nbrowserslist.parse = function (queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n return parse(QUERIES, queries)\n}\n\n// Will be filled by Can I Use data below\nbrowserslist.cache = {}\nbrowserslist.data = {}\nbrowserslist.usage = {\n global: {},\n custom: null\n}\n\n// Default browsers query\nbrowserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead']\n\n// Browser names aliases\nbrowserslist.aliases = {\n fx: 'firefox',\n ff: 'firefox',\n ios: 'ios_saf',\n explorer: 'ie',\n blackberry: 'bb',\n explorermobile: 'ie_mob',\n operamini: 'op_mini',\n operamobile: 'op_mob',\n chromeandroid: 'and_chr',\n firefoxandroid: 'and_ff',\n ucandroid: 'and_uc',\n qqandroid: 'and_qq'\n}\n\n// Can I Use only provides a few versions for some browsers (e.g. and_chr).\n// Fallback to a similar browser for unknown versions\n// Note op_mob is not included as its chromium versions are not in sync with Opera desktop\nbrowserslist.desktopNames = {\n and_chr: 'chrome',\n and_ff: 'firefox',\n ie_mob: 'ie',\n android: 'chrome' // has extra processing logic\n}\n\n// Aliases to work with joined versions like `ios_saf 7.0-7.1`\nbrowserslist.versionAliases = {}\n\nbrowserslist.clearCaches = env.clearCaches\nbrowserslist.parseConfig = env.parseConfig\nbrowserslist.readConfig = env.readConfig\nbrowserslist.findConfig = env.findConfig\nbrowserslist.loadConfig = env.loadConfig\n\nbrowserslist.coverage = function (browsers, stats) {\n var data\n if (typeof stats === 'undefined') {\n data = browserslist.usage.global\n } else if (stats === 'my stats') {\n var opts = {}\n opts.path = path.resolve ? path.resolve('.') : '.'\n var customStats = env.getStat(opts)\n if (!customStats) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n data = {}\n for (var browser in customStats) {\n fillUsage(data, browser, customStats[browser])\n }\n } else if (typeof stats === 'string') {\n if (stats.length > 2) {\n stats = stats.toLowerCase()\n } else {\n stats = stats.toUpperCase()\n }\n env.loadCountry(browserslist.usage, stats, browserslist.data)\n data = browserslist.usage[stats]\n } else {\n if ('dataByBrowser' in stats) {\n stats = stats.dataByBrowser\n }\n data = {}\n for (var name in stats) {\n for (var version in stats[name]) {\n data[name + ' ' + version] = stats[name][version]\n }\n }\n }\n\n return browsers.reduce(function (all, i) {\n var usage = data[i]\n if (usage === undefined) {\n usage = data[i.replace(/ \\S+$/, ' 0')]\n }\n return all + (usage || 0)\n }, 0)\n}\n\nfunction nodeQuery(context, node) {\n var matched = browserslist.nodeVersions.filter(function (i) {\n return isVersionsMatch(i, node.version)\n })\n if (matched.length === 0) {\n if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of Node.js'\n )\n }\n }\n return ['node ' + matched[matched.length - 1]]\n}\n\nfunction sinceQuery(context, node) {\n var year = parseInt(node.year)\n var month = parseInt(node.month || '01') - 1\n var day = parseInt(node.day || '01')\n return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context)\n}\n\nfunction coverQuery(context, node) {\n var coverage = parseFloat(node.coverage)\n var usage = browserslist.usage.global\n if (node.place) {\n if (node.place.match(/^my\\s+stats$/i)) {\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n usage = context.customUsage\n } else {\n var place\n if (node.place.length === 2) {\n place = node.place.toUpperCase()\n } else {\n place = node.place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n usage = browserslist.usage[place]\n }\n }\n var versions = Object.keys(usage).sort(function (a, b) {\n return usage[b] - usage[a]\n })\n var coveraged = 0\n var result = []\n var version\n for (var i = 0; i < versions.length; i++) {\n version = versions[i]\n if (usage[version] === 0) break\n coveraged += usage[version]\n result.push(version)\n if (coveraged >= coverage) break\n }\n return result\n}\n\nvar QUERIES = {\n last_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = getMajorVersions(data.released, node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.released.slice(-node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_electron_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var validVersions = getMajorVersions(Object.keys(e2c), node.versions)\n return validVersions.map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return getMajorVersions(browserslist.nodeVersions, node.versions).map(\n function (version) {\n return 'node ' + version\n }\n )\n }\n },\n last_browser_major_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var validVersions = getMajorVersions(data.released, node.versions)\n var list = validVersions.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n last_electron_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(e2c)\n .slice(-node.versions)\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+versions?$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .slice(-node.versions)\n .map(function (version) {\n return 'node ' + version\n })\n }\n },\n last_browser_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var list = data.released.slice(-node.versions).map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n unreleased_versions: {\n matches: [],\n regexp: /^unreleased\\s+versions$/i,\n select: function (context) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.versions.filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n list = list.map(nameMapper(data.name))\n return selected.concat(list)\n }, [])\n }\n },\n unreleased_electron_versions: {\n matches: [],\n regexp: /^unreleased\\s+electron\\s+versions?$/i,\n select: function () {\n return []\n }\n },\n unreleased_browser_versions: {\n matches: ['browser'],\n regexp: /^unreleased\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n return data.versions\n .filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n .map(nameMapper(data.name))\n }\n },\n last_years: {\n matches: ['years'],\n regexp: /^last\\s+(\\d*.?\\d+)\\s+years?$/i,\n select: function (context, node) {\n return filterByYear(Date.now() - YEAR * node.years, context)\n }\n },\n since_y: {\n matches: ['year'],\n regexp: /^since (\\d+)$/i,\n select: sinceQuery\n },\n since_y_m: {\n matches: ['year', 'month'],\n regexp: /^since (\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n since_y_m_d: {\n matches: ['year', 'month', 'day'],\n regexp: /^since (\\d+)-(\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n popularity: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var usage = browserslist.usage.global\n return Object.keys(usage).reduce(function (result, version) {\n if (node.sign === '>') {\n if (usage[version] > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (usage[version] < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (usage[version] <= popularity) {\n result.push(version)\n }\n } else if (usage[version] >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_my_stats: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+my\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_config_stats: {\n matches: ['sign', 'popularity', 'config'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(\\S+)\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var stats = env.loadStat(context, node.config, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_place: {\n matches: ['sign', 'popularity', 'place'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+((alt-)?\\w\\w)$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var place = node.place\n if (place.length === 2) {\n place = place.toUpperCase()\n } else {\n place = place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n var usage = browserslist.usage[place]\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n cover: {\n matches: ['coverage'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%$/i,\n select: coverQuery\n },\n cover_in: {\n matches: ['coverage', 'place'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(my\\s+stats|(alt-)?\\w\\w)$/i,\n select: coverQuery\n },\n supports: {\n matches: ['feature'],\n regexp: /^supports\\s+([\\w-]+)$/,\n select: function (context, node) {\n env.loadFeature(browserslist.cache, node.feature)\n var features = browserslist.cache[node.feature]\n var result = []\n for (var name in features) {\n var data = byName(name, context)\n // Only check desktop when latest released mobile has support\n var checkDesktop =\n context.mobileToDesktop &&\n name in browserslist.desktopNames &&\n isSupported(features[name][data.released.slice(-1)[0]])\n data.versions.forEach(function (version) {\n var flags = features[name][version]\n if (flags === undefined && checkDesktop) {\n flags = features[browserslist.desktopNames[name]][version]\n }\n if (isSupported(flags)) {\n result.push(name + ' ' + version)\n }\n })\n }\n return result\n }\n },\n electron_range: {\n matches: ['from', 'to'],\n regexp: /^electron\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var fromToUse = normalizeElectron(node.from)\n var toToUse = normalizeElectron(node.to)\n var from = parseFloat(node.from)\n var to = parseFloat(node.to)\n if (!e2c[fromToUse]) {\n throw new BrowserslistError('Unknown version ' + from + ' of electron')\n }\n if (!e2c[toToUse]) {\n throw new BrowserslistError('Unknown version ' + to + ' of electron')\n }\n return Object.keys(e2c)\n .filter(function (i) {\n var parsed = parseFloat(i)\n return parsed >= from && parsed <= to\n })\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_range: {\n matches: ['from', 'to'],\n regexp: /^node\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(semverFilterLoose('>=', node.from))\n .filter(semverFilterLoose('<=', node.to))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_range: {\n matches: ['browser', 'from', 'to'],\n regexp: /^(\\w+)\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var from = parseFloat(normalizeVersion(data, node.from) || node.from)\n var to = parseFloat(normalizeVersion(data, node.to) || node.to)\n function filter(v) {\n var parsed = parseFloat(v)\n return parsed >= from && parsed <= to\n }\n return data.released.filter(filter).map(nameMapper(data.name))\n }\n },\n electron_ray: {\n matches: ['sign', 'version'],\n regexp: /^electron\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n return Object.keys(e2c)\n .filter(generateFilter(node.sign, versionToUse))\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_ray: {\n matches: ['sign', 'version'],\n regexp: /^node\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(generateSemverFilter(node.sign, node.version))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_ray: {\n matches: ['browser', 'sign', 'version'],\n regexp: /^(\\w+)\\s*(>=?|<=?)\\s*([\\d.]+)$/,\n select: function (context, node) {\n var version = node.version\n var data = checkName(node.browser, context)\n var alias = browserslist.versionAliases[data.name][version]\n if (alias) version = alias\n return data.released\n .filter(generateFilter(node.sign, version))\n .map(function (v) {\n return data.name + ' ' + v\n })\n }\n },\n firefox_esr: {\n matches: [],\n regexp: /^(firefox|ff|fx)\\s+esr$/i,\n select: function () {\n return ['firefox 102', 'firefox 115']\n }\n },\n opera_mini_all: {\n matches: [],\n regexp: /(operamini|op_mini)\\s+all/i,\n select: function () {\n return ['op_mini all']\n }\n },\n electron_version: {\n matches: ['version'],\n regexp: /^electron\\s+([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n var chrome = e2c[versionToUse]\n if (!chrome) {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of electron'\n )\n }\n return ['chrome ' + chrome]\n }\n },\n node_major_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+)$/i,\n select: nodeQuery\n },\n node_minor_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n node_patch_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n current_node: {\n matches: [],\n regexp: /^current\\s+node$/i,\n select: function (context) {\n return [env.currentNode(resolve, context)]\n }\n },\n maintained_node: {\n matches: [],\n regexp: /^maintained\\s+node\\s+versions$/i,\n select: function (context) {\n var now = Date.now()\n var queries = Object.keys(jsEOL)\n .filter(function (key) {\n return (\n now < Date.parse(jsEOL[key].end) &&\n now > Date.parse(jsEOL[key].start) &&\n isEolReleased(key)\n )\n })\n .map(function (key) {\n return 'node ' + key.slice(1)\n })\n return resolve(queries, context)\n }\n },\n phantomjs_1_9: {\n matches: [],\n regexp: /^phantomjs\\s+1.9$/i,\n select: function () {\n return ['safari 5']\n }\n },\n phantomjs_2_1: {\n matches: [],\n regexp: /^phantomjs\\s+2.1$/i,\n select: function () {\n return ['safari 6']\n }\n },\n browser_version: {\n matches: ['browser', 'version'],\n regexp: /^(\\w+)\\s+(tp|[\\d.]+)$/i,\n select: function (context, node) {\n var version = node.version\n if (/^tp$/i.test(version)) version = 'TP'\n var data = checkName(node.browser, context)\n var alias = normalizeVersion(data, version)\n if (alias) {\n version = alias\n } else {\n if (version.indexOf('.') === -1) {\n alias = version + '.0'\n } else {\n alias = version.replace(/\\.0$/, '')\n }\n alias = normalizeVersion(data, alias)\n if (alias) {\n version = alias\n } else if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + version + ' of ' + node.browser\n )\n }\n }\n return [data.name + ' ' + version]\n }\n },\n browserslist_config: {\n matches: [],\n regexp: /^browserslist config$/i,\n select: function (context) {\n return browserslist(undefined, context)\n }\n },\n extends: {\n matches: ['config'],\n regexp: /^extends (.+)$/i,\n select: function (context, node) {\n return resolve(env.loadQueries(context, node.config), context)\n }\n },\n defaults: {\n matches: [],\n regexp: /^defaults$/i,\n select: function (context) {\n return resolve(browserslist.defaults, context)\n }\n },\n dead: {\n matches: [],\n regexp: /^dead$/i,\n select: function (context) {\n var dead = [\n 'Baidu >= 0',\n 'ie <= 11',\n 'ie_mob <= 11',\n 'bb <= 10',\n 'op_mob <= 12.1',\n 'samsung 4'\n ]\n return resolve(dead, context)\n }\n },\n unknown: {\n matches: [],\n regexp: /^(\\w+)$/i,\n select: function (context, node) {\n if (byName(node.query, context)) {\n throw new BrowserslistError(\n 'Specify versions in Browserslist query for browser ' + node.query\n )\n } else {\n throw unknownQuery(node.query)\n }\n }\n }\n}\n\n// Get and convert Can I Use data\n\n;(function () {\n for (var name in agents) {\n var browser = agents[name]\n browserslist.data[name] = {\n name: name,\n versions: normalize(agents[name].versions),\n released: normalize(agents[name].versions.slice(0, -3)),\n releaseDate: agents[name].release_date\n }\n fillUsage(browserslist.usage.global, name, browser.usage_global)\n\n browserslist.versionAliases[name] = {}\n for (var i = 0; i < browser.versions.length; i++) {\n var full = browser.versions[i]\n if (!full) continue\n\n if (full.indexOf('-') !== -1) {\n var interval = full.split('-')\n for (var j = 0; j < interval.length; j++) {\n browserslist.versionAliases[name][interval[j]] = full\n }\n }\n }\n }\n\n browserslist.nodeVersions = jsReleases.map(function (release) {\n return release.version\n })\n})()\n\nmodule.exports = browserslist\n","var AND_REGEXP = /^\\s+and\\s+(.*)/i\nvar OR_REGEXP = /^(?:,\\s*|\\s+or\\s+)(.*)/i\n\nfunction flatten(array) {\n if (!Array.isArray(array)) return [array]\n return array.reduce(function (a, b) {\n return a.concat(flatten(b))\n }, [])\n}\n\nfunction find(string, predicate) {\n for (var n = 1, max = string.length; n <= max; n++) {\n var parsed = string.substr(-n, n)\n if (predicate(parsed, n, max)) {\n return string.slice(0, -n)\n }\n }\n return ''\n}\n\nfunction matchQuery(all, query) {\n var node = { query: query }\n if (query.indexOf('not ') === 0) {\n node.not = true\n query = query.slice(4)\n }\n\n for (var name in all) {\n var type = all[name]\n var match = query.match(type.regexp)\n if (match) {\n node.type = name\n for (var i = 0; i < type.matches.length; i++) {\n node[type.matches[i]] = match[i + 1]\n }\n return node\n }\n }\n\n node.type = 'unknown'\n return node\n}\n\nfunction matchBlock(all, string, qs) {\n var node\n return find(string, function (parsed, n, max) {\n if (AND_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(AND_REGEXP)[1])\n node.compose = 'and'\n qs.unshift(node)\n return true\n } else if (OR_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(OR_REGEXP)[1])\n node.compose = 'or'\n qs.unshift(node)\n return true\n } else if (n === max) {\n node = matchQuery(all, parsed.trim())\n node.compose = 'or'\n qs.unshift(node)\n return true\n }\n return false\n })\n}\n\nmodule.exports = function parse(all, queries) {\n if (!Array.isArray(queries)) queries = [queries]\n return flatten(\n queries.map(function (block) {\n var qs = []\n do {\n block = matchBlock(all, block, qs)\n } while (block)\n return qs\n })\n )\n}\n","module.exports={A:{A:{K:0,F:0,G:0.0326854,H:0.0435805,A:0,B:0.392224,JC:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"JC\",\"K\",\"F\",\"G\",\"H\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE\",F:{JC:962323200,K:998870400,F:1161129600,G:1237420800,H:1300060800,A:1346716800,B:1381968000}},B:{A:{\"0\":3.56904,C:0,L:0,M:0,I:0.004259,N:0,D:0.004259,O:0.012777,P:0,Q:0.004259,R:0.004259,S:0.004259,T:0.008518,U:0.004259,V:0.004259,W:0.004259,X:0,Y:0.004259,Z:0.004259,a:0,b:0.012777,c:0,d:0,e:0,f:0,g:0,h:0,i:0.008518,j:0,n:0.008518,o:0.008518,p:0.004259,q:0,r:0,s:0.004259,t:0.008518,u:0.012777,v:0.076662,w:0.021295,x:0.029813,y:0.579224,z:0.745325,E:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"C\",\"L\",\"M\",\"I\",\"N\",\"D\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"E\",\"\",\"\",\"\"],E:\"Edge\",F:{\"0\":1685664000,C:1438128000,L:1447286400,M:1470096000,I:1491868800,N:1508198400,D:1525046400,O:1542067200,P:1579046400,Q:1581033600,R:1586736000,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:1611360000,Y:1614816000,Z:1618358400,a:1622073600,b:1626912000,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,n:1651190400,o:1653955200,p:1655942400,q:1659657600,r:1661990400,s:1664755200,t:1666915200,u:1670198400,v:1673481600,w:1675900800,x:1678665600,y:1680825600,z:1683158400,E:1689897600},D:{C:\"ms\",L:\"ms\",M:\"ms\",I:\"ms\",N:\"ms\",D:\"ms\",O:\"ms\"}},C:{A:{\"0\":1.2564,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,KC:0,zB:0,J:0,K:0,F:0,G:0,H:0,A:0,B:0.008518,C:0,L:0,M:0,I:0,N:0,D:0,O:0,k:0,l:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0.012777,PB:0.004259,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0.051108,YB:0,ZB:0,aB:0,bB:0.004259,cB:0,dB:0,\"0B\":0.004259,eB:0,\"1B\":0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0.004259,mB:0,nB:0,oB:0,pB:0.008518,m:0,qB:0,rB:0,sB:0,tB:0,uB:0.051108,P:0,Q:0,R:0,\"2B\":0,S:0,T:0.017036,U:0,V:0,W:0.008518,X:0.004259,Y:0,Z:0,a:0.012777,b:0,c:0,d:0.004259,e:0,f:0,g:0,h:0,i:0,j:0,n:0,o:0.110734,p:0.012777,q:0,r:0.008518,s:0.004259,t:0.008518,u:0.012777,v:0.012777,w:0.012777,x:0.025554,y:0.055367,z:0.660145,E:0.012777,\"3B\":0,\"4B\":0,LC:0,MC:0},B:\"moz\",C:[\"KC\",\"zB\",\"LC\",\"MC\",\"J\",\"1\",\"K\",\"F\",\"G\",\"H\",\"A\",\"B\",\"C\",\"L\",\"M\",\"I\",\"N\",\"D\",\"O\",\"2\",\"k\",\"l\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"0B\",\"eB\",\"1B\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"m\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"P\",\"Q\",\"R\",\"2B\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"E\",\"3B\",\"4B\",\"\"],E:\"Firefox\",F:{\"0\":1686009600,\"1\":1308614400,\"2\":1357603200,\"3\":1368489600,\"4\":1372118400,\"5\":1375747200,\"6\":1379376000,\"7\":1386633600,\"8\":1391472000,\"9\":1395100800,KC:1161648000,zB:1213660800,LC:1246320000,MC:1264032000,J:1300752000,K:1313452800,F:1317081600,G:1317081600,H:1320710400,A:1324339200,B:1327968000,C:1331596800,L:1335225600,M:1338854400,I:1342483200,N:1346112000,D:1349740800,O:1353628800,k:1361232000,l:1364860800,AB:1398729600,BB:1402358400,CB:1405987200,DB:1409616000,EB:1413244800,FB:1417392000,GB:1421107200,HB:1424736000,IB:1428278400,JB:1431475200,KB:1435881600,LB:1439251200,MB:1442880000,NB:1446508800,OB:1450137600,PB:1453852800,QB:1457395200,RB:1461628800,SB:1465257600,TB:1470096000,UB:1474329600,VB:1479168000,WB:1485216000,XB:1488844800,YB:1492560000,ZB:1497312000,aB:1502150400,bB:1506556800,cB:1510617600,dB:1516665600,\"0B\":1520985600,eB:1525824000,\"1B\":1529971200,fB:1536105600,gB:1540252800,hB:1544486400,iB:1548720000,jB:1552953600,kB:1558396800,lB:1562630400,mB:1567468800,nB:1571788800,oB:1575331200,pB:1578355200,m:1581379200,qB:1583798400,rB:1586304000,sB:1588636800,tB:1591056000,uB:1593475200,P:1595894400,Q:1598313600,R:1600732800,\"2B\":1603152000,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392000,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536000,n:1653955200,o:1656374400,p:1658793600,q:1661212800,r:1663632000,s:1666051200,t:1668470400,u:1670889600,v:1673913600,w:1676332800,x:1678752000,y:1681171200,z:1683590400,E:1688428800,\"3B\":null,\"4B\":null}},D:{A:{\"0\":14.553,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,J:0,K:0,F:0,G:0,H:0,A:0,B:0,C:0,L:0,M:0,I:0,N:0,D:0,O:0,k:0,l:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0.008518,GB:0,HB:0,IB:0,JB:0.017036,KB:0,LB:0.012777,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0.008518,TB:0.017036,UB:0.038331,VB:0.008518,WB:0,XB:0.004259,YB:0.008518,ZB:0,aB:0.004259,bB:0.051108,cB:0,dB:0,\"0B\":0,eB:0.017036,\"1B\":0.012777,fB:0,gB:0.004259,hB:0,iB:0.012777,jB:0.029813,kB:0.008518,lB:0.025554,mB:0.051108,nB:0.04259,oB:0.017036,pB:0.025554,m:0.012777,qB:0.059626,rB:0.059626,sB:0.093698,tB:0.025554,uB:0.038331,P:0.200173,Q:0.051108,R:0.051108,S:0.110734,T:0.029813,U:0.089439,V:0.072403,W:0.089439,X:0.046849,Y:0.038331,Z:0.055367,a:0.089439,b:0.038331,c:0.17036,d:0.034072,e:0.021295,f:0.025554,g:0.025554,h:0.063885,i:0.055367,j:0.046849,n:0.04259,o:0.051108,p:0.268317,q:0.063885,r:0.076662,s:0.051108,t:0.059626,u:0.149065,v:1.96766,w:0.123511,x:0.455713,y:0.630332,z:3.9268,E:0.021295,\"3B\":0.021295,\"4B\":0,NC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"J\",\"1\",\"K\",\"F\",\"G\",\"H\",\"A\",\"B\",\"C\",\"L\",\"M\",\"I\",\"N\",\"D\",\"O\",\"2\",\"k\",\"l\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"0B\",\"eB\",\"1B\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"m\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"E\",\"3B\",\"4B\",\"NC\"],E:\"Chrome\",F:{\"0\":1685404800,\"1\":1274745600,\"2\":1332892800,\"3\":1343692800,\"4\":1348531200,\"5\":1352246400,\"6\":1357862400,\"7\":1361404800,\"8\":1364428800,\"9\":1369094400,J:1264377600,K:1283385600,F:1287619200,G:1291248000,H:1296777600,A:1299542400,B:1303862400,C:1307404800,L:1312243200,M:1316131200,I:1316131200,N:1319500800,D:1323734400,O:1328659200,k:1337040000,l:1340668800,AB:1374105600,BB:1376956800,CB:1384214400,DB:1389657600,EB:1392940800,FB:1397001600,GB:1400544000,HB:1405468800,IB:1409011200,JB:1412640000,KB:1416268800,LB:1421798400,MB:1425513600,NB:1429401600,OB:1432080000,PB:1437523200,QB:1441152000,RB:1444780800,SB:1449014400,TB:1453248000,UB:1456963200,VB:1460592000,WB:1464134400,XB:1469059200,YB:1472601600,ZB:1476230400,aB:1480550400,bB:1485302400,cB:1489017600,dB:1492560000,\"0B\":1496707200,eB:1500940800,\"1B\":1504569600,fB:1508198400,gB:1512518400,hB:1516752000,iB:1520294400,jB:1523923200,kB:1527552000,lB:1532390400,mB:1536019200,nB:1539648000,oB:1543968000,pB:1548720000,m:1552348800,qB:1555977600,rB:1559606400,sB:1564444800,tB:1568073600,uB:1571702400,P:1575936000,Q:1580860800,R:1586304000,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272000,a:1621987200,b:1626739200,c:1630368000,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512000,n:1650931200,o:1653350400,p:1655769600,q:1659398400,r:1661817600,s:1664236800,t:1666656000,u:1669680000,v:1673308800,w:1675728000,x:1678147200,y:1680566400,z:1682985600,E:1689724800,\"3B\":null,\"4B\":null,NC:null}},E:{A:{\"1\":0,J:0,K:0,F:0,G:0,H:0,A:0,B:0,C:0,L:0.025554,M:0.12777,I:0.029813,D:0.008518,OC:0,\"5B\":0,PC:0.008518,QC:0,RC:0,SC:0.102216,\"6B\":0,vB:0.008518,wB:0.038331,\"7B\":0.166101,TC:0.332202,UC:0.055367,\"8B\":0.046849,\"9B\":0.106475,xB:0.191655,AC:0.779397,yB:0.080921,BC:0.25554,CC:0.289612,DC:0.706994,EC:0.498303,FC:2.00599,GC:0.021295,VC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"OC\",\"5B\",\"J\",\"1\",\"PC\",\"K\",\"QC\",\"F\",\"RC\",\"G\",\"H\",\"SC\",\"A\",\"6B\",\"B\",\"vB\",\"C\",\"wB\",\"L\",\"7B\",\"M\",\"TC\",\"I\",\"UC\",\"8B\",\"9B\",\"xB\",\"AC\",\"yB\",\"BC\",\"CC\",\"DC\",\"EC\",\"FC\",\"GC\",\"D\",\"VC\"],E:\"Safari\",F:{\"1\":1275868800,OC:1205798400,\"5B\":1226534400,J:1244419200,PC:1311120000,K:1343174400,QC:1382400000,F:1382400000,RC:1410998400,G:1413417600,H:1443657600,SC:1458518400,A:1474329600,\"6B\":1490572800,B:1505779200,vB:1522281600,C:1537142400,wB:1553472000,L:1568851200,\"7B\":1585008000,M:1600214400,TC:1619395200,I:1632096000,UC:1635292800,\"8B\":1639353600,\"9B\":1647216000,xB:1652745600,AC:1658275200,yB:1662940800,BC:1666569600,CC:1670889600,DC:1674432000,EC:1679875200,FC:1684368000,GC:null,D:null,VC:null}},F:{A:{\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0.008518,H:0,B:0.038331,C:0,I:0,N:0,D:0,O:0,k:0,l:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0.004259,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0.017036,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,m:0,qB:0,rB:0,sB:0,tB:0,uB:0,P:0,Q:0,R:0,\"2B\":0,S:0,T:0,U:0.004259,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0,c:0,d:0,e:0.059626,f:0.012777,g:0.021295,h:0.664404,i:1.29048,j:0.012777,WC:0,XC:0,YC:0,ZC:0,vB:0,HC:0,aC:0,wB:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"H\",\"WC\",\"XC\",\"YC\",\"ZC\",\"B\",\"vB\",\"HC\",\"aC\",\"C\",\"wB\",\"I\",\"N\",\"D\",\"O\",\"2\",\"k\",\"l\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"m\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"P\",\"Q\",\"R\",\"2B\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"\",\"\",\"\"],E:\"Opera\",F:{\"2\":1390867200,\"3\":1401753600,\"4\":1405987200,\"5\":1409616000,\"6\":1413331200,\"7\":1417132800,\"8\":1422316800,\"9\":1425945600,H:1150761600,WC:1223424000,XC:1251763200,YC:1267488000,ZC:1277942400,B:1292457600,vB:1302566400,HC:1309219200,aC:1323129600,C:1323129600,wB:1352073600,I:1372723200,N:1377561600,D:1381104000,O:1386288000,k:1393891200,l:1399334400,AB:1430179200,BB:1433808000,CB:1438646400,DB:1442448000,EB:1445904000,FB:1449100800,GB:1454371200,HB:1457308800,IB:1462320000,JB:1465344000,KB:1470096000,LB:1474329600,MB:1477267200,NB:1481587200,OB:1486425600,PB:1490054400,QB:1494374400,RB:1498003200,SB:1502236800,TB:1506470400,UB:1510099200,VB:1515024000,WB:1517961600,XB:1521676800,YB:1525910400,ZB:1530144000,aB:1534982400,bB:1537833600,cB:1543363200,dB:1548201600,eB:1554768000,fB:1561593600,gB:1566259200,hB:1570406400,iB:1573689600,jB:1578441600,kB:1583971200,lB:1587513600,mB:1592956800,nB:1595894400,oB:1600128000,pB:1603238400,m:1613520000,qB:1612224000,rB:1616544000,sB:1619568000,tB:1623715200,uB:1627948800,P:1631577600,Q:1633392000,R:1635984000,\"2B\":1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152000,Z:1660780800,a:1663113600,b:1668816000,c:1668643200,d:1671062400,e:1675209600,f:1677024000,g:1679529600,h:1681948800,i:1684195200,j:1687219200},D:{H:\"o\",B:\"o\",C:\"o\",WC:\"o\",XC:\"o\",YC:\"o\",ZC:\"o\",vB:\"o\",HC:\"o\",aC:\"o\",wB:\"o\"}},G:{A:{G:0,D:0.0227641,\"5B\":0,bC:0,IC:0.00303522,cC:0.00303522,dC:0.00455283,eC:0.0121409,fC:0.00455283,gC:0.00910566,hC:0.0440107,iC:0.00455283,jC:0.062222,kC:0.0303522,lC:0.0197289,mC:0.0166937,nC:0.321733,oC:0.00910566,pC:0.00910566,qC:0.0227641,rC:0.0773981,sC:0.20336,tC:0.374849,uC:0.119891,\"8B\":0.141138,\"9B\":0.160867,xB:0.239782,AC:0.582762,yB:0.648019,BC:1.23837,CC:0.661678,DC:1.56617,EC:1.0259,FC:6.55152,GC:0.0637396},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"5B\",\"bC\",\"IC\",\"cC\",\"dC\",\"eC\",\"G\",\"fC\",\"gC\",\"hC\",\"iC\",\"jC\",\"kC\",\"lC\",\"mC\",\"nC\",\"oC\",\"pC\",\"qC\",\"rC\",\"sC\",\"tC\",\"uC\",\"8B\",\"9B\",\"xB\",\"AC\",\"yB\",\"BC\",\"CC\",\"DC\",\"EC\",\"FC\",\"GC\",\"D\",\"\"],E:\"Safari on iOS\",F:{\"5B\":1270252800,bC:1283904000,IC:1299628800,cC:1331078400,dC:1359331200,eC:1394409600,G:1410912000,fC:1413763200,gC:1442361600,hC:1458518400,iC:1473724800,jC:1490572800,kC:1505779200,lC:1522281600,mC:1537142400,nC:1553472000,oC:1568851200,pC:1572220800,qC:1580169600,rC:1585008000,sC:1600214400,tC:1619395200,uC:1632096000,\"8B\":1639353600,\"9B\":1647216000,xB:1652659200,AC:1658275200,yB:1662940800,BC:1666569600,CC:1670889600,DC:1674432000,EC:1679875200,FC:1684368000,GC:null,D:null}},H:{A:{vC:0.956597},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"vC\",\"\",\"\",\"\"],E:\"Opera Mini\",F:{vC:1426464000}},I:{A:{zB:0,J:0.0252848,E:0,wC:0,xC:0.00842828,yC:0,zC:0.0168566,IC:0.092711,\"0C\":0,\"1C\":0.252848},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"wC\",\"xC\",\"yC\",\"zB\",\"J\",\"zC\",\"IC\",\"0C\",\"1C\",\"E\",\"\",\"\",\"\"],E:\"Android Browser\",F:{wC:1256515200,xC:1274313600,yC:1291593600,zB:1298332800,J:1318896000,zC:1341792000,IC:1374624000,\"0C\":1386547200,\"1C\":1401667200,E:1690243200}},J:{A:{F:0,A:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"F\",\"A\",\"\",\"\",\"\"],E:\"Blackberry Browser\",F:{F:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,m:0,vB:0,HC:0,wB:0},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"vB\",\"HC\",\"C\",\"wB\",\"m\",\"\",\"\",\"\"],E:\"Opera Mobile\",F:{A:1287100800,B:1300752000,vB:1314835200,HC:1318291200,C:1330300800,wB:1349740800,m:1673827200},D:{m:\"webkit\"}},L:{A:{E:38.2012},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"E\",\"\",\"\",\"\"],E:\"Chrome for Android\",F:{E:1690243200}},M:{A:{E:0.281309},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"E\",\"\",\"\",\"\"],E:\"Firefox for Android\",F:{E:1688428800}},N:{A:{A:0,B:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE Mobile\",F:{A:1340150400,B:1353456000}},O:{A:{xB:1.04486},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"xB\",\"\",\"\",\"\"],E:\"UC Browser for Android\",F:{xB:1687132800},D:{xB:\"webkit\"}},P:{A:{J:0.156242,k:0.229156,l:1.74991,\"2C\":0,\"3C\":0,\"4C\":0.0520808,\"5C\":0,\"6C\":0,\"6B\":0,\"7C\":0.0208323,\"8C\":0,\"9C\":0.0208323,AD:0.0208323,BD:0.0104162,yB:0.0416646,CD:0.0416646,DD:0.0416646,ED:0.0833293},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"J\",\"2C\",\"3C\",\"4C\",\"5C\",\"6C\",\"6B\",\"7C\",\"8C\",\"9C\",\"AD\",\"BD\",\"yB\",\"CD\",\"DD\",\"ED\",\"k\",\"l\",\"\",\"\",\"\"],E:\"Samsung Internet\",F:{J:1461024000,\"2C\":1481846400,\"3C\":1509408000,\"4C\":1528329600,\"5C\":1546128000,\"6C\":1554163200,\"6B\":1567900800,\"7C\":1582588800,\"8C\":1593475200,\"9C\":1605657600,AD:1618531200,BD:1629072000,yB:1640736000,CD:1651708800,DD:1659657600,ED:1667260800,k:1677369600,l:1684454400}},Q:{A:{\"7B\":0.155007},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"7B\",\"\",\"\",\"\"],E:\"QQ Browser\",F:{\"7B\":1663718400}},R:{A:{FD:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"FD\",\"\",\"\",\"\"],E:\"Baidu Browser\",F:{FD:1663027200}},S:{A:{GD:0.103338,HD:0},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"GD\",\"HD\",\"\",\"\",\"\"],E:\"KaiOS Browser\",F:{GD:1527811200,HD:1631664000}}};\n","module.exports={\"0\":\"114\",\"1\":\"5\",\"2\":\"19\",\"3\":\"22\",\"4\":\"23\",\"5\":\"24\",\"6\":\"25\",\"7\":\"26\",\"8\":\"27\",\"9\":\"28\",A:\"10\",B:\"11\",C:\"12\",D:\"17\",E:\"115\",F:\"7\",G:\"8\",H:\"9\",I:\"15\",J:\"4\",K:\"6\",L:\"13\",M:\"14\",N:\"16\",O:\"18\",P:\"79\",Q:\"80\",R:\"81\",S:\"83\",T:\"84\",U:\"85\",V:\"86\",W:\"87\",X:\"88\",Y:\"89\",Z:\"90\",a:\"91\",b:\"92\",c:\"93\",d:\"94\",e:\"95\",f:\"96\",g:\"97\",h:\"98\",i:\"99\",j:\"100\",k:\"20\",l:\"21\",m:\"73\",n:\"101\",o:\"102\",p:\"103\",q:\"104\",r:\"105\",s:\"106\",t:\"107\",u:\"108\",v:\"109\",w:\"110\",x:\"111\",y:\"112\",z:\"113\",AB:\"29\",BB:\"30\",CB:\"31\",DB:\"32\",EB:\"33\",FB:\"34\",GB:\"35\",HB:\"36\",IB:\"37\",JB:\"38\",KB:\"39\",LB:\"40\",MB:\"41\",NB:\"42\",OB:\"43\",PB:\"44\",QB:\"45\",RB:\"46\",SB:\"47\",TB:\"48\",UB:\"49\",VB:\"50\",WB:\"51\",XB:\"52\",YB:\"53\",ZB:\"54\",aB:\"55\",bB:\"56\",cB:\"57\",dB:\"58\",eB:\"60\",fB:\"62\",gB:\"63\",hB:\"64\",iB:\"65\",jB:\"66\",kB:\"67\",lB:\"68\",mB:\"69\",nB:\"70\",oB:\"71\",pB:\"72\",qB:\"74\",rB:\"75\",sB:\"76\",tB:\"77\",uB:\"78\",vB:\"11.1\",wB:\"12.1\",xB:\"15.5\",yB:\"16.0\",zB:\"3\",\"0B\":\"59\",\"1B\":\"61\",\"2B\":\"82\",\"3B\":\"116\",\"4B\":\"117\",\"5B\":\"3.2\",\"6B\":\"10.1\",\"7B\":\"13.1\",\"8B\":\"15.2-15.3\",\"9B\":\"15.4\",AC:\"15.6\",BC:\"16.1\",CC:\"16.2\",DC:\"16.3\",EC:\"16.4\",FC:\"16.5\",GC:\"16.6\",HC:\"11.5\",IC:\"4.2-4.3\",JC:\"5.5\",KC:\"2\",LC:\"3.5\",MC:\"3.6\",NC:\"118\",OC:\"3.1\",PC:\"5.1\",QC:\"6.1\",RC:\"7.1\",SC:\"9.1\",TC:\"14.1\",UC:\"15.1\",VC:\"TP\",WC:\"9.5-9.6\",XC:\"10.0-10.1\",YC:\"10.5\",ZC:\"10.6\",aC:\"11.6\",bC:\"4.0-4.1\",cC:\"5.0-5.1\",dC:\"6.0-6.1\",eC:\"7.0-7.1\",fC:\"8.1-8.4\",gC:\"9.0-9.2\",hC:\"9.3\",iC:\"10.0-10.2\",jC:\"10.3\",kC:\"11.0-11.2\",lC:\"11.3-11.4\",mC:\"12.0-12.1\",nC:\"12.2-12.5\",oC:\"13.0-13.1\",pC:\"13.2\",qC:\"13.3\",rC:\"13.4-13.7\",sC:\"14.0-14.4\",tC:\"14.5-14.8\",uC:\"15.0-15.1\",vC:\"all\",wC:\"2.1\",xC:\"2.2\",yC:\"2.3\",zC:\"4.1\",\"0C\":\"4.4\",\"1C\":\"4.4.3-4.4.4\",\"2C\":\"5.0-5.4\",\"3C\":\"6.2-6.4\",\"4C\":\"7.2-7.4\",\"5C\":\"8.2\",\"6C\":\"9.2\",\"7C\":\"11.1-11.2\",\"8C\":\"12.0\",\"9C\":\"13.0\",AD:\"14.0\",BD:\"15.0\",CD:\"17.0\",DD:\"18.0\",ED:\"19.0\",FD:\"13.18\",GD:\"2.5\",HD:\"3.0-3.1\"};\n","module.exports={A:\"ie\",B:\"edge\",C:\"firefox\",D:\"chrome\",E:\"safari\",F:\"opera\",G:\"ios_saf\",H:\"op_mini\",I:\"android\",J:\"bb\",K:\"op_mob\",L:\"and_chr\",M:\"and_ff\",N:\"ie_mob\",O:\"and_uc\",P:\"samsung\",Q:\"and_qq\",R:\"baidu\",S:\"kaios\"};\n","'use strict'\n\nconst browsers = require('./browsers').browsers\nconst versions = require('./browserVersions').browserVersions\nconst agentsData = require('../../data/agents')\n\nfunction unpackBrowserVersions(versionsData) {\n return Object.keys(versionsData).reduce((usage, version) => {\n usage[versions[version]] = versionsData[version]\n return usage\n }, {})\n}\n\nmodule.exports.agents = Object.keys(agentsData).reduce((map, key) => {\n let versionsData = agentsData[key]\n map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => {\n if (entry === 'A') {\n data.usage_global = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'C') {\n data.versions = versionsData[entry].reduce((list, version) => {\n if (version === '') {\n list.push(null)\n } else {\n list.push(versions[version])\n }\n return list\n }, [])\n } else if (entry === 'D') {\n data.prefix_exceptions = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'E') {\n data.browser = versionsData[entry]\n } else if (entry === 'F') {\n data.release_date = Object.keys(versionsData[entry]).reduce(\n (map2, key2) => {\n map2[versions[key2]] = versionsData[entry][key2]\n return map2\n },\n {}\n )\n } else {\n // entry is B\n data.prefix = versionsData[entry]\n }\n return data\n }, {})\n return map\n}, {})\n","module.exports.browserVersions = require('../../data/browserVersions')\n","module.exports.browsers = require('../../data/browsers')\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".content-unsupported-browser[data-v-3c1e6192]{display:flex;justify-content:center;width:400px;max-width:calc(90vw - 60px);margin:auto;padding:30px}.content-unsupported-browser .empty-content[data-v-3c1e6192]{margin:0}.content-unsupported-browser .empty-content[data-v-3c1e6192] .empty-content__icon{opacity:1}.content-unsupported-browser__continue[data-v-3c1e6192]{display:block;margin:30px auto}.content-unsupported-browser__list[data-v-3c1e6192]{margin-top:60px;margin-bottom:30px}.content-unsupported-browser__list li[data-v-3c1e6192]{text-align:left}\", \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/views/UnsupportedBrowser.vue\"],\"names\":[],\"mappings\":\"AAGA,8CACC,YAAA,CACA,sBAAA,CACA,WAAA,CACA,2BAAA,CACA,WAAA,CACA,YARS,CAUT,6DACC,QAAA,CACA,kFACC,SAAA,CAIF,wDACC,aAAA,CACA,gBAAA,CAGD,oDACC,eAAA,CACA,kBAxBQ,CAyBR,uDACC,eAAA\",\"sourcesContent\":[\"\\n$spacing: 30px;\\n\\n.content-unsupported-browser {\\n\\tdisplay: flex;\\n\\tjustify-content: center;\\n\\twidth: 400px;\\n\\tmax-width: calc(90vw - 2 * $spacing);\\n\\tmargin: auto;\\n\\tpadding: $spacing;\\n\\n\\t.empty-content {\\n\\t\\tmargin: 0;\\n\\t\\t&::v-deep .empty-content__icon {\\n\\t\\t\\topacity: 1;\\n\\t\\t}\\n\\t}\\n\\n\\t&__continue {\\n\\t\\tdisplay: block;\\n\\t\\tmargin: $spacing auto;\\n\\t}\\n\\n\\t&__list {\\n\\t\\tmargin-top: 2 * $spacing;\\n\\t\\tmargin-bottom: $spacing;\\n\\t\\tli {\\n\\t\\t\\ttext-align: left;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = {\n\t\"0.20\": \"39\",\n\t\"0.21\": \"41\",\n\t\"0.22\": \"41\",\n\t\"0.23\": \"41\",\n\t\"0.24\": \"41\",\n\t\"0.25\": \"42\",\n\t\"0.26\": \"42\",\n\t\"0.27\": \"43\",\n\t\"0.28\": \"43\",\n\t\"0.29\": \"43\",\n\t\"0.30\": \"44\",\n\t\"0.31\": \"45\",\n\t\"0.32\": \"45\",\n\t\"0.33\": \"45\",\n\t\"0.34\": \"45\",\n\t\"0.35\": \"45\",\n\t\"0.36\": \"47\",\n\t\"0.37\": \"49\",\n\t\"1.0\": \"49\",\n\t\"1.1\": \"50\",\n\t\"1.2\": \"51\",\n\t\"1.3\": \"52\",\n\t\"1.4\": \"53\",\n\t\"1.5\": \"54\",\n\t\"1.6\": \"56\",\n\t\"1.7\": \"58\",\n\t\"1.8\": \"59\",\n\t\"2.0\": \"61\",\n\t\"2.1\": \"61\",\n\t\"3.0\": \"66\",\n\t\"3.1\": \"66\",\n\t\"4.0\": \"69\",\n\t\"4.1\": \"69\",\n\t\"4.2\": \"69\",\n\t\"5.0\": \"73\",\n\t\"6.0\": \"76\",\n\t\"6.1\": \"76\",\n\t\"7.0\": \"78\",\n\t\"7.1\": \"78\",\n\t\"7.2\": \"78\",\n\t\"7.3\": \"78\",\n\t\"8.0\": \"80\",\n\t\"8.1\": \"80\",\n\t\"8.2\": \"80\",\n\t\"8.3\": \"80\",\n\t\"8.4\": \"80\",\n\t\"8.5\": \"80\",\n\t\"9.0\": \"83\",\n\t\"9.1\": \"83\",\n\t\"9.2\": \"83\",\n\t\"9.3\": \"83\",\n\t\"9.4\": \"83\",\n\t\"10.0\": \"85\",\n\t\"10.1\": \"85\",\n\t\"10.2\": \"85\",\n\t\"10.3\": \"85\",\n\t\"10.4\": \"85\",\n\t\"11.0\": \"87\",\n\t\"11.1\": \"87\",\n\t\"11.2\": \"87\",\n\t\"11.3\": \"87\",\n\t\"11.4\": \"87\",\n\t\"11.5\": \"87\",\n\t\"12.0\": \"89\",\n\t\"12.1\": \"89\",\n\t\"12.2\": \"89\",\n\t\"13.0\": \"91\",\n\t\"13.1\": \"91\",\n\t\"13.2\": \"91\",\n\t\"13.3\": \"91\",\n\t\"13.4\": \"91\",\n\t\"13.5\": \"91\",\n\t\"13.6\": \"91\",\n\t\"14.0\": \"93\",\n\t\"14.1\": \"93\",\n\t\"14.2\": \"93\",\n\t\"15.0\": \"94\",\n\t\"15.1\": \"94\",\n\t\"15.2\": \"94\",\n\t\"15.3\": \"94\",\n\t\"15.4\": \"94\",\n\t\"15.5\": \"94\",\n\t\"16.0\": \"96\",\n\t\"16.1\": \"96\",\n\t\"16.2\": \"96\",\n\t\"17.0\": \"98\",\n\t\"17.1\": \"98\",\n\t\"17.2\": \"98\",\n\t\"17.3\": \"98\",\n\t\"17.4\": \"98\",\n\t\"18.0\": \"100\",\n\t\"18.1\": \"100\",\n\t\"18.2\": \"100\",\n\t\"18.3\": \"100\",\n\t\"19.0\": \"102\",\n\t\"19.1\": \"102\",\n\t\"20.0\": \"104\",\n\t\"20.1\": \"104\",\n\t\"20.2\": \"104\",\n\t\"20.3\": \"104\",\n\t\"21.0\": \"106\",\n\t\"21.1\": \"106\",\n\t\"21.2\": \"106\",\n\t\"21.3\": \"106\",\n\t\"21.4\": \"106\",\n\t\"22.0\": \"108\",\n\t\"22.1\": \"108\",\n\t\"22.2\": \"108\",\n\t\"22.3\": \"108\",\n\t\"23.0\": \"110\",\n\t\"23.1\": \"110\",\n\t\"23.2\": \"110\",\n\t\"23.3\": \"110\",\n\t\"24.0\": \"112\",\n\t\"24.1\": \"112\",\n\t\"24.2\": \"112\",\n\t\"24.3\": \"112\",\n\t\"24.4\": \"112\",\n\t\"24.5\": \"112\",\n\t\"24.6\": \"112\",\n\t\"25.0\": \"114\",\n\t\"25.1\": \"114\",\n\t\"25.2\": \"114\",\n\t\"25.3\": \"114\",\n\t\"26.0\": \"116\"\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar compatTransforms = require('./transforms');\nvar _transform = require('../transform');\n\nmodule.exports = {\n /**\n * Translates a regexp in new syntax to equivalent regexp in old syntax.\n *\n * @param string|RegExp|AST - regexp\n * @param Array transformsWhitelist - names of the transforms to apply\n */\n transform: function transform(regexp) {\n var transformsWhitelist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var transformToApply = transformsWhitelist.length > 0 ? transformsWhitelist : Object.keys(compatTransforms);\n\n var result = void 0;\n\n // Collect extra data per transform.\n var extra = {};\n\n transformToApply.forEach(function (transformName) {\n\n if (!compatTransforms.hasOwnProperty(transformName)) {\n throw new Error('Unknown compat-transform: ' + transformName + '. ' + 'Available transforms are: ' + Object.keys(compatTransforms).join(', '));\n }\n\n var handler = compatTransforms[transformName];\n\n result = _transform.transform(regexp, handler);\n regexp = result.getAST();\n\n // Collect `extra` transform result.\n if (typeof handler.getExtra === 'function') {\n extra[transformName] = handler.getExtra();\n }\n });\n\n // Set the final extras for all transforms.\n result.setExtra(extra);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * The `RegExpTree` class provides runtime support for `compat-transpiler`\n * module from `regexp-tree`.\n *\n * E.g. it tracks names of the capturing groups, in order to access the\n * names on the matched result.\n *\n * It's a thin-wrapper on top of original regexp.\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar RegExpTree = function () {\n /**\n * Initializes a `RegExpTree` instance.\n *\n * @param RegExp - a regular expression\n *\n * @param Object state:\n *\n * An extra state which may store any related to transformation\n * data, for example, names of the groups.\n *\n * - flags - original flags\n * - groups - names of the groups, and their indices\n * - source - original source\n */\n function RegExpTree(re, _ref) {\n var flags = _ref.flags,\n groups = _ref.groups,\n source = _ref.source;\n\n _classCallCheck(this, RegExpTree);\n\n this._re = re;\n this._groups = groups;\n\n // Original props.\n this.flags = flags;\n this.source = source || re.source;\n this.dotAll = flags.includes('s');\n\n // Inherited directly from `re`.\n this.global = re.global;\n this.ignoreCase = re.ignoreCase;\n this.multiline = re.multiline;\n this.sticky = re.sticky;\n this.unicode = re.unicode;\n }\n\n /**\n * Facade wrapper for RegExp `test` method.\n */\n\n\n _createClass(RegExpTree, [{\n key: 'test',\n value: function test(string) {\n return this._re.test(string);\n }\n\n /**\n * Facade wrapper for RegExp `compile` method.\n */\n\n }, {\n key: 'compile',\n value: function compile(string) {\n return this._re.compile(string);\n }\n\n /**\n * Facade wrapper for RegExp `toString` method.\n */\n\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._toStringResult) {\n this._toStringResult = '/' + this.source + '/' + this.flags;\n }\n return this._toStringResult;\n }\n\n /**\n * Facade wrapper for RegExp `exec` method.\n */\n\n }, {\n key: 'exec',\n value: function exec(string) {\n var result = this._re.exec(string);\n\n if (!this._groups || !result) {\n return result;\n }\n\n result.groups = {};\n\n for (var group in this._groups) {\n var groupNumber = this._groups[group];\n result.groups[group] = result[groupNumber];\n }\n\n return result;\n }\n }]);\n\n return RegExpTree;\n}();\n\nmodule.exports = {\n RegExpTree: RegExpTree\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/./s` to `/[\\0-\\uFFFF]/`.\n */\n\nmodule.exports = {\n\n // Whether `u` flag present. In which case we transform to\n // \\u{10FFFF} instead of \\uFFFF.\n _hasUFlag: false,\n\n // Only run this plugin if we have `s` flag.\n shouldRun: function shouldRun(ast) {\n var shouldRun = ast.flags.includes('s');\n\n if (!shouldRun) {\n return false;\n }\n\n // Strip the `s` flag.\n ast.flags = ast.flags.replace('s', '');\n\n // Whether we have also `u`.\n this._hasUFlag = ast.flags.includes('u');\n\n return true;\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (node.kind !== 'meta' || node.value !== '.') {\n return;\n }\n\n var toValue = '\\\\uFFFF';\n var toSymbol = '\\uFFFF';\n\n if (this._hasUFlag) {\n toValue = '\\\\u{10FFFF}';\n toSymbol = '\\uDBFF\\uDFFF';\n }\n\n path.replace({\n type: 'CharacterClass',\n expressions: [{\n type: 'ClassRange',\n from: {\n type: 'Char',\n value: '\\\\0',\n kind: 'decimal',\n symbol: '\\0'\n },\n to: {\n type: 'Char',\n value: toValue,\n kind: 'unicode',\n symbol: toSymbol\n }\n }]\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/(?<name>a)\\k<name>/` to `/(a)\\1/`.\n */\n\nmodule.exports = {\n // To track the names of the groups, and return them\n // in the transform result state.\n //\n // A map from name to number: {foo: 2, bar: 4}\n _groupNames: {},\n\n /**\n * Initialises the trasnform.\n */\n init: function init() {\n this._groupNames = {};\n },\n\n\n /**\n * Returns extra state, which eventually is returned to\n */\n getExtra: function getExtra() {\n return this._groupNames;\n },\n Group: function Group(path) {\n var node = path.node;\n\n\n if (!node.name) {\n return;\n }\n\n // Record group name.\n this._groupNames[node.name] = node.number;\n\n delete node.name;\n delete node.nameRaw;\n },\n Backreference: function Backreference(path) {\n var node = path.node;\n\n\n if (node.kind !== 'name') {\n return;\n }\n\n node.kind = 'number';\n node.reference = node.number;\n delete node.referenceRaw;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove `x` flag `/foo/x` to `/foo/`.\n *\n * Note: other features of `x` flags (whitespace, comments) are\n * already removed at parsing stage.\n */\n\nmodule.exports = {\n RegExp: function RegExp(_ref) {\n var node = _ref.node;\n\n if (node.flags.includes('x')) {\n node.flags = node.flags.replace('x', '');\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = {\n // \"dotAll\" `s` flag\n dotAll: require('./compat-dotall-s-transform'),\n\n // Named capturing groups.\n namedCapturingGroups: require('./compat-named-capturing-groups-transform'),\n\n // `x` flag\n xFlag: require('./compat-x-flag-transform')\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\nfunction gen(node) {\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n return '/' + gen(node.body) + '/' + node.flags;\n },\n Alternative: function Alternative(node) {\n return (node.expressions || []).map(gen).join('');\n },\n Disjunction: function Disjunction(node) {\n return gen(node.left) + '|' + gen(node.right);\n },\n Group: function Group(node) {\n var expression = gen(node.expression);\n\n if (node.capturing) {\n // A named group.\n if (node.name) {\n return '(?<' + (node.nameRaw || node.name) + '>' + expression + ')';\n }\n\n return '(' + expression + ')';\n }\n\n return '(?:' + expression + ')';\n },\n Backreference: function Backreference(node) {\n switch (node.kind) {\n case 'number':\n return '\\\\' + node.reference;\n case 'name':\n return '\\\\k<' + (node.referenceRaw || node.reference) + '>';\n default:\n throw new TypeError('Unknown Backreference kind: ' + node.kind);\n }\n },\n Assertion: function Assertion(node) {\n switch (node.kind) {\n case '^':\n case '$':\n case '\\\\b':\n case '\\\\B':\n return node.kind;\n\n case 'Lookahead':\n {\n var assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?!' + assertion + ')';\n }\n\n return '(?=' + assertion + ')';\n }\n\n case 'Lookbehind':\n {\n var _assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?<!' + _assertion + ')';\n }\n\n return '(?<=' + _assertion + ')';\n }\n\n default:\n throw new TypeError('Unknown Assertion kind: ' + node.kind);\n }\n },\n CharacterClass: function CharacterClass(node) {\n var expressions = node.expressions.map(gen).join('');\n\n if (node.negative) {\n return '[^' + expressions + ']';\n }\n\n return '[' + expressions + ']';\n },\n ClassRange: function ClassRange(node) {\n return gen(node.from) + '-' + gen(node.to);\n },\n Repetition: function Repetition(node) {\n return '' + gen(node.expression) + gen(node.quantifier);\n },\n Quantifier: function Quantifier(node) {\n var quantifier = void 0;\n var greedy = node.greedy ? '' : '?';\n\n switch (node.kind) {\n case '+':\n case '?':\n case '*':\n quantifier = node.kind;\n break;\n case 'Range':\n // Exact: {1}\n if (node.from === node.to) {\n quantifier = '{' + node.from + '}';\n }\n // Open: {1,}\n else if (!node.to) {\n quantifier = '{' + node.from + ',}';\n }\n // Closed: {1,3}\n else {\n quantifier = '{' + node.from + ',' + node.to + '}';\n }\n break;\n default:\n throw new TypeError('Unknown Quantifier kind: ' + node.kind);\n }\n\n return '' + quantifier + greedy;\n },\n Char: function Char(node) {\n var value = node.value;\n\n switch (node.kind) {\n case 'simple':\n {\n if (node.escaped) {\n return '\\\\' + value;\n }\n return value;\n }\n\n case 'hex':\n case 'unicode':\n case 'oct':\n case 'decimal':\n case 'control':\n case 'meta':\n return value;\n\n default:\n throw new TypeError('Unknown Char kind: ' + node.kind);\n }\n },\n UnicodeProperty: function UnicodeProperty(node) {\n var escapeChar = node.negative ? 'P' : 'p';\n var namePart = void 0;\n\n if (!node.shorthand && !node.binary) {\n namePart = node.name + '=';\n } else {\n namePart = '';\n }\n\n return '\\\\' + escapeChar + '{' + namePart + node.value + '}';\n }\n};\n\nmodule.exports = {\n /**\n * Generates a regexp string from an AST.\n *\n * @param Object ast - an AST node\n */\n generate: gen\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n// DFA minization.\n\n/**\n * Map from state to current set it goes.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar currentTransitionMap = null;\n\n/**\n * Takes a DFA, and returns a minimized version of it\n * compressing some states to groups (using standard, 0-, 1-,\n * 2-, ... N-equivalence algorithm).\n */\nfunction minimize(dfa) {\n var table = dfa.getTransitionTable();\n var allStates = Object.keys(table);\n var alphabet = dfa.getAlphabet();\n var accepting = dfa.getAcceptingStateNumbers();\n\n currentTransitionMap = {};\n\n var nonAccepting = new Set();\n\n allStates.forEach(function (state) {\n state = Number(state);\n var isAccepting = accepting.has(state);\n\n if (isAccepting) {\n currentTransitionMap[state] = accepting;\n } else {\n nonAccepting.add(state);\n currentTransitionMap[state] = nonAccepting;\n }\n });\n\n // ---------------------------------------------------------------------------\n // Step 1: build equivalent sets.\n\n // All [1..N] equivalent sets.\n var all = [\n // 0-equivalent sets.\n [nonAccepting, accepting].filter(function (set) {\n return set.size > 0;\n })];\n\n var current = void 0;\n var previous = void 0;\n\n // Top of the stack is the current list of sets to analyze.\n current = all[all.length - 1];\n\n // Previous set (to check whether we need to stop).\n previous = all[all.length - 2];\n\n // Until we'll not have the same N and N-1 equivalent rows.\n\n var _loop = function _loop() {\n var newTransitionMap = {};\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = current[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _set = _step3.value;\n\n // Handled states for this set.\n var handledStates = {};\n\n var _set2 = _toArray(_set),\n first = _set2[0],\n rest = _set2.slice(1);\n\n handledStates[first] = new Set([first]);\n\n // Have to compare each from the rest states with\n // the already handled states, and see if they are equivalent.\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n restSets: for (var _iterator4 = rest[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var state = _step4.value;\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = Object.keys(handledStates)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var handledState = _step5.value;\n\n // This and some previously handled state are equivalent --\n // just append this state to the same set.\n if (areEquivalent(state, handledState, table, alphabet)) {\n handledStates[handledState].add(state);\n handledStates[state] = handledStates[handledState];\n continue restSets;\n }\n }\n // Else, this state is not equivalent to any of the\n // handled states -- allocate a new set for it.\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n handledStates[state] = new Set([state]);\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n\n // Add these handled states to all states map.\n\n\n Object.assign(newTransitionMap, handledStates);\n }\n\n // Update current transition map for the handled row.\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n currentTransitionMap = newTransitionMap;\n\n var newSets = new Set(Object.keys(newTransitionMap).map(function (state) {\n return newTransitionMap[state];\n }));\n\n all.push([].concat(_toConsumableArray(newSets)));\n\n // Top of the stack is the current.\n current = all[all.length - 1];\n\n // Previous set.\n previous = all[all.length - 2];\n };\n\n while (!sameRow(current, previous)) {\n _loop();\n }\n\n // ---------------------------------------------------------------------------\n // Step 2: build minimized table from the equivalent sets.\n\n // Remap state numbers from sets to index-based.\n var remaped = new Map();\n var idx = 1;\n current.forEach(function (set) {\n return remaped.set(set, idx++);\n });\n\n // Build the minimized table from the calculated equivalent sets.\n var minimizedTable = {};\n\n var minimizedAcceptingStates = new Set();\n\n var updateAcceptingStates = function updateAcceptingStates(set, idx) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = set[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var state = _step.value;\n\n if (accepting.has(state)) {\n minimizedAcceptingStates.add(idx);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = remaped.entries()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var set = _ref2[0];\n var _idx = _ref2[1];\n\n minimizedTable[_idx] = {};\n var _iteratorNormalCompletion6 = true;\n var _didIteratorError6 = false;\n var _iteratorError6 = undefined;\n\n try {\n for (var _iterator6 = alphabet[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var symbol = _step6.value;\n\n updateAcceptingStates(set, _idx);\n\n // Determine original transition for this symbol from the set.\n var originalTransition = void 0;\n var _iteratorNormalCompletion7 = true;\n var _didIteratorError7 = false;\n var _iteratorError7 = undefined;\n\n try {\n for (var _iterator7 = set[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n var originalState = _step7.value;\n\n originalTransition = table[originalState][symbol];\n if (originalTransition) {\n break;\n }\n }\n } catch (err) {\n _didIteratorError7 = true;\n _iteratorError7 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion7 && _iterator7.return) {\n _iterator7.return();\n }\n } finally {\n if (_didIteratorError7) {\n throw _iteratorError7;\n }\n }\n }\n\n if (originalTransition) {\n minimizedTable[_idx][symbol] = remaped.get(currentTransitionMap[originalTransition]);\n }\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n }\n\n // Update the table, and accepting states on the original DFA.\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n dfa.setTransitionTable(minimizedTable);\n dfa.setAcceptingStateNumbers(minimizedAcceptingStates);\n\n return dfa;\n}\n\nfunction sameRow(r1, r2) {\n if (!r2) {\n return false;\n }\n\n if (r1.length !== r2.length) {\n return false;\n }\n\n for (var i = 0; i < r1.length; i++) {\n var s1 = r1[i];\n var s2 = r2[i];\n\n if (s1.size !== s2.size) {\n return false;\n }\n\n if ([].concat(_toConsumableArray(s1)).sort().join(',') !== [].concat(_toConsumableArray(s2)).sort().join(',')) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether two states are N-equivalent, i.e. whether they go\n * to the same set on a symbol.\n */\nfunction areEquivalent(s1, s2, table, alphabet) {\n var _iteratorNormalCompletion8 = true;\n var _didIteratorError8 = false;\n var _iteratorError8 = undefined;\n\n try {\n for (var _iterator8 = alphabet[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {\n var symbol = _step8.value;\n\n if (!goToSameSet(s1, s2, table, symbol)) {\n return false;\n }\n }\n } catch (err) {\n _didIteratorError8 = true;\n _iteratorError8 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion8 && _iterator8.return) {\n _iterator8.return();\n }\n } finally {\n if (_didIteratorError8) {\n throw _iteratorError8;\n }\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether states go to the same set.\n */\nfunction goToSameSet(s1, s2, table, symbol) {\n if (!currentTransitionMap[s1] || !currentTransitionMap[s2]) {\n return false;\n }\n\n var originalTransitionS1 = table[s1][symbol];\n var originalTransitionS2 = table[s2][symbol];\n\n // If no actual transition on this symbol, treat it as positive.\n if (!originalTransitionS1 && !originalTransitionS2) {\n return true;\n }\n\n // Otherwise, check if they are in the same sets.\n return currentTransitionMap[s1].has(originalTransitionS1) && currentTransitionMap[s2].has(originalTransitionS2);\n}\n\nmodule.exports = {\n minimize: minimize\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DFAMinimizer = require('./dfa-minimizer');\n\nvar _require = require('../special-symbols'),\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * DFA is build by converting from NFA (subset construction).\n */\n\n\nvar DFA = function () {\n function DFA(nfa) {\n _classCallCheck(this, DFA);\n\n this._nfa = nfa;\n }\n\n /**\n * Minimizes DFA.\n */\n\n\n _createClass(DFA, [{\n key: 'minimize',\n value: function minimize() {\n this.getTransitionTable();\n\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._originalTransitionTable = this._transitionTable;\n\n DFAMinimizer.minimize(this);\n }\n\n /**\n * Returns alphabet for this DFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n return this._nfa.getAlphabet();\n }\n\n /**\n * Returns accepting states.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._acceptingStateNumbers;\n }\n\n /**\n * Returns original accepting states.\n */\n\n }, {\n key: 'getOriginaAcceptingStateNumbers',\n value: function getOriginaAcceptingStateNumbers() {\n if (!this._originalAcceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._originalAcceptingStateNumbers;\n }\n\n /**\n * Sets transition table.\n */\n\n }, {\n key: 'setTransitionTable',\n value: function setTransitionTable(table) {\n this._transitionTable = table;\n }\n\n /**\n * Sets accepting states.\n */\n\n }, {\n key: 'setAcceptingStateNumbers',\n value: function setAcceptingStateNumbers(stateNumbers) {\n this._acceptingStateNumbers = stateNumbers;\n }\n\n /**\n * DFA transition table is built from NFA table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (this._transitionTable) {\n return this._transitionTable;\n }\n\n // Calculate from NFA transition table.\n var nfaTable = this._nfa.getTransitionTable();\n var nfaStates = Object.keys(nfaTable);\n\n this._acceptingStateNumbers = new Set();\n\n // Start state of DFA is E(S[nfa])\n var startState = nfaTable[nfaStates[0]][EPSILON_CLOSURE];\n\n // Init the worklist (states which should be in the DFA).\n var worklist = [startState];\n\n var alphabet = this.getAlphabet();\n var nfaAcceptingStates = this._nfa.getAcceptingStateNumbers();\n\n var dfaTable = {};\n\n // Determine whether the combined DFA state is accepting.\n var updateAcceptingStates = function updateAcceptingStates(states) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = nfaAcceptingStates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nfaAcceptingState = _step.value;\n\n // If any of the states from NFA is accepting, DFA's\n // state is accepting as well.\n if (states.indexOf(nfaAcceptingState) !== -1) {\n _this._acceptingStateNumbers.add(states.join(','));\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n while (worklist.length > 0) {\n var states = worklist.shift();\n var dfaStateLabel = states.join(',');\n dfaTable[dfaStateLabel] = {};\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = alphabet[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var symbol = _step2.value;\n\n var onSymbol = [];\n\n // Determine whether the combined state is accepting.\n updateAcceptingStates(states);\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = states[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var state = _step3.value;\n\n var nfaStatesOnSymbol = nfaTable[state][symbol];\n if (!nfaStatesOnSymbol) {\n continue;\n }\n\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = nfaStatesOnSymbol[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nfaStateOnSymbol = _step4.value;\n\n if (!nfaTable[nfaStateOnSymbol]) {\n continue;\n }\n onSymbol.push.apply(onSymbol, _toConsumableArray(nfaTable[nfaStateOnSymbol][EPSILON_CLOSURE]));\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n var dfaStatesOnSymbolSet = new Set(onSymbol);\n var dfaStatesOnSymbol = [].concat(_toConsumableArray(dfaStatesOnSymbolSet));\n\n if (dfaStatesOnSymbol.length > 0) {\n var dfaOnSymbolStr = dfaStatesOnSymbol.join(',');\n\n dfaTable[dfaStateLabel][symbol] = dfaOnSymbolStr;\n\n if (!dfaTable.hasOwnProperty(dfaOnSymbolStr)) {\n worklist.unshift(dfaStatesOnSymbol);\n }\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n\n return this._transitionTable = this._remapStateNumbers(dfaTable);\n }\n\n /**\n * Remaps state numbers in the resulting table:\n * combined states '1,2,3' -> 1, '3,4' -> 2, etc.\n */\n\n }, {\n key: '_remapStateNumbers',\n value: function _remapStateNumbers(calculatedDFATable) {\n var newStatesMap = {};\n\n this._originalTransitionTable = calculatedDFATable;\n var transitionTable = {};\n\n Object.keys(calculatedDFATable).forEach(function (originalNumber, newNumber) {\n newStatesMap[originalNumber] = newNumber + 1;\n });\n\n for (var originalNumber in calculatedDFATable) {\n var originalRow = calculatedDFATable[originalNumber];\n var row = {};\n\n for (var symbol in originalRow) {\n row[symbol] = newStatesMap[originalRow[symbol]];\n }\n\n transitionTable[newStatesMap[originalNumber]] = row;\n }\n\n // Remap accepting states.\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._acceptingStateNumbers = new Set();\n\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = this._originalAcceptingStateNumbers[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var _originalNumber = _step5.value;\n\n this._acceptingStateNumbers.add(newStatesMap[_originalNumber]);\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n return transitionTable;\n }\n\n /**\n * Returns original DFA table, where state numbers\n * are combined numbers from NFA.\n */\n\n }, {\n key: 'getOriginalTransitionTable',\n value: function getOriginalTransitionTable() {\n if (!this._originalTransitionTable) {\n // Original table is determined during table construction.\n this.getTransitionTable();\n }\n return this._originalTransitionTable;\n }\n\n /**\n * Checks whether this DFA accepts a string.\n */\n\n }, {\n key: 'matches',\n value: function matches(string) {\n var state = 1;\n var i = 0;\n var table = this.getTransitionTable();\n\n while (string[i]) {\n state = table[state][string[i++]];\n if (!state) {\n return false;\n }\n }\n\n if (!this.getAcceptingStateNumbers().has(state)) {\n return false;\n }\n\n return true;\n }\n }]);\n\n return DFA;\n}();\n\nmodule.exports = DFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NFA = require('./nfa/nfa');\nvar DFA = require('./dfa/dfa');\n\nvar nfaFromRegExp = require('./nfa/nfa-from-regexp');\nvar builders = require('./nfa/builders');\n\nmodule.exports = {\n\n /**\n * Export NFA and DFA classes.\n */\n NFA: NFA,\n DFA: DFA,\n\n /**\n * Expose builders.\n */\n builders: builders,\n\n /**\n * Builds an NFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toNFA: function toNFA(regexp) {\n return nfaFromRegExp.build(regexp);\n },\n\n\n /**\n * Builds DFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toDFA: function toDFA(regexp) {\n return new DFA(this.toNFA(regexp));\n },\n\n\n /**\n * Returns true if regexp accepts the string.\n */\n test: function test(regexp, string) {\n return this.toDFA(regexp).matches(string);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NFA = require('./nfa');\nvar NFAState = require('./nfa-state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n// -----------------------------------------------------------------------------\n// Char NFA fragment: `c`\n\n/**\n * Char factory.\n *\n * Creates an NFA fragment for a single char.\n *\n * [in] --c--> [out]\n */\n\n\nfunction char(c) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n return new NFA(inState.addTransition(c, outState), outState);\n}\n\n// -----------------------------------------------------------------------------\n// Epsilon NFA fragment\n\n/**\n * Epsilon factory.\n *\n * Creates an NFA fragment for ε (recognizes an empty string).\n *\n * [in] --ε--> [out]\n */\nfunction e() {\n return char(EPSILON);\n}\n\n// -----------------------------------------------------------------------------\n// Alteration NFA fragment: `abc`\n\n/**\n * Creates a connection between two NFA fragments on epsilon transition.\n *\n * [in-a] --a--> [out-a] --ε--> [in-b] --b--> [out-b]\n */\nfunction altPair(first, second) {\n first.out.accepting = false;\n second.out.accepting = true;\n\n first.out.addTransition(EPSILON, second.in);\n\n return new NFA(first.in, second.out);\n}\n\n/**\n * Alteration factory.\n *\n * Creates a alteration NFA for (at least) two NFA-fragments.\n */\nfunction alt(first) {\n for (var _len = arguments.length, fragments = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n fragments[_key - 1] = arguments[_key];\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = fragments[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var fragment = _step.value;\n\n first = altPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Disjunction NFA fragment: `a|b`\n\n/**\n * Creates a disjunction choice between two fragments.\n */\nfunction orPair(first, second) {\n var inState = new NFAState();\n var outState = new NFAState();\n\n inState.addTransition(EPSILON, first.in);\n inState.addTransition(EPSILON, second.in);\n\n outState.accepting = true;\n first.out.accepting = false;\n second.out.accepting = false;\n\n first.out.addTransition(EPSILON, outState);\n second.out.addTransition(EPSILON, outState);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Disjunction factory.\n *\n * Creates a disjunction NFA for (at least) two NFA-fragments.\n */\nfunction or(first) {\n for (var _len2 = arguments.length, fragments = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n fragments[_key2 - 1] = arguments[_key2];\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = fragments[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var fragment = _step2.value;\n\n first = orPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Kleene-closure\n\n/**\n * Kleene star/closure.\n *\n * a*\n */\nfunction repExplicit(fragment) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n // 0 or more.\n inState.addTransition(EPSILON, fragment.in);\n inState.addTransition(EPSILON, outState);\n\n fragment.out.accepting = false;\n fragment.out.addTransition(EPSILON, outState);\n outState.addTransition(EPSILON, fragment.in);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Optimized Kleene-star: just adds ε-transitions from\n * input to the output, and back.\n */\nfunction rep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized Plus: just adds ε-transitions from\n * the output to the input.\n */\nfunction plusRep(fragment) {\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized ? repetition: just adds ε-transitions from\n * the input to the output.\n */\nfunction questionRep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n return fragment;\n}\n\nmodule.exports = {\n alt: alt,\n char: char,\n e: e,\n or: or,\n rep: rep,\n repExplicit: repExplicit,\n plusRep: plusRep,\n questionRep: questionRep\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar parser = require('../../../parser');\n\nvar _require = require('./builders'),\n alt = _require.alt,\n char = _require.char,\n or = _require.or,\n rep = _require.rep,\n plusRep = _require.plusRep,\n questionRep = _require.questionRep;\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\n\nfunction gen(node) {\n if (node && !generator[node.type]) {\n throw new Error(node.type + ' is not supported in NFA/DFA interpreter.');\n }\n\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n if (node.flags !== '') {\n throw new Error('NFA/DFA: Flags are not supported yet.');\n }\n\n return gen(node.body);\n },\n Alternative: function Alternative(node) {\n var fragments = (node.expressions || []).map(gen);\n return alt.apply(undefined, _toConsumableArray(fragments));\n },\n Disjunction: function Disjunction(node) {\n return or(gen(node.left), gen(node.right));\n },\n Repetition: function Repetition(node) {\n switch (node.quantifier.kind) {\n case '*':\n return rep(gen(node.expression));\n case '+':\n return plusRep(gen(node.expression));\n case '?':\n return questionRep(gen(node.expression));\n default:\n throw new Error('Unknown repeatition: ' + node.quantifier.kind + '.');\n }\n },\n Char: function Char(node) {\n if (node.kind !== 'simple') {\n throw new Error('NFA/DFA: Only simple chars are supported yet.');\n }\n\n return char(node.value);\n },\n Group: function Group(node) {\n return gen(node.expression);\n }\n};\n\nmodule.exports = {\n /**\n * Builds an NFA from the passed regexp.\n */\n build: function build(regexp) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n return gen(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar State = require('../state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n/**\n * NFA state.\n *\n * Allows nondeterministic transitions to several states on the\n * same symbol, and also epsilon-transitions.\n */\n\n\nvar NFAState = function (_State) {\n _inherits(NFAState, _State);\n\n function NFAState() {\n _classCallCheck(this, NFAState);\n\n return _possibleConstructorReturn(this, (NFAState.__proto__ || Object.getPrototypeOf(NFAState)).apply(this, arguments));\n }\n\n _createClass(NFAState, [{\n key: 'matches',\n\n\n /**\n * Whether this state matches a string.\n *\n * We maintain set of visited epsilon-states to avoid infinite loops\n * when an epsilon-transition goes eventually to itself.\n *\n * NOTE: this function is rather \"educational\", since we use DFA for strings\n * matching. DFA is built on top of NFA, and uses fast transition table.\n */\n value: function matches(string) {\n var visited = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n\n // An epsilon-state has been visited, stop to avoid infinite loop.\n if (visited.has(this)) {\n return false;\n }\n\n visited.add(this);\n\n // No symbols left..\n if (string.length === 0) {\n // .. and we're in the accepting state.\n if (this.accepting) {\n return true;\n }\n\n // Check if we can reach any accepting state from\n // on the epsilon transitions.\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nextState = _step.value;\n\n if (nextState.matches('', visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return false;\n }\n\n // Else, we get some symbols.\n var symbol = string[0];\n var rest = string.slice(1);\n\n var symbolTransitions = this.getTransitionsOnSymbol(symbol);\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = symbolTransitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _nextState = _step2.value;\n\n if (_nextState.matches(rest)) {\n return true;\n }\n }\n\n // If we couldn't match on symbol, check still epsilon-transitions\n // without consuming the symbol (i.e. continue from `string`, not `rest`).\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _nextState2 = _step3.value;\n\n if (_nextState2.matches(string, visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return false;\n }\n\n /**\n * Returns an ε-closure for this state:\n * self + all states following ε-transitions.\n */\n\n }, {\n key: 'getEpsilonClosure',\n value: function getEpsilonClosure() {\n var _this2 = this;\n\n if (!this._epsilonClosure) {\n (function () {\n var epsilonTransitions = _this2.getTransitionsOnSymbol(EPSILON);\n var closure = _this2._epsilonClosure = new Set();\n closure.add(_this2);\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = epsilonTransitions[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nextState = _step4.value;\n\n if (!closure.has(nextState)) {\n closure.add(nextState);\n var nextClosure = nextState.getEpsilonClosure();\n nextClosure.forEach(function (state) {\n return closure.add(state);\n });\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n })();\n }\n\n return this._epsilonClosure;\n }\n }]);\n\n return NFAState;\n}(State);\n\nmodule.exports = NFAState;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON,\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * NFA fragment.\n *\n * NFA sub-fragments can be combined to a larger NFAs building\n * the resulting machine. Combining the fragments is done by patching\n * edges of the in- and out-states.\n *\n * 2-states implementation, `in`, and `out`. Eventually all transitions\n * go to the same `out`, which can further be connected via ε-transition\n * with other fragment.\n */\n\n\nvar NFA = function () {\n function NFA(inState, outState) {\n _classCallCheck(this, NFA);\n\n this.in = inState;\n this.out = outState;\n }\n\n /**\n * Tries to recognize a string based on this NFA fragment.\n */\n\n\n _createClass(NFA, [{\n key: 'matches',\n value: function matches(string) {\n return this.in.matches(string);\n }\n\n /**\n * Returns an alphabet for this NFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n if (!this._alphabet) {\n this._alphabet = new Set();\n var table = this.getTransitionTable();\n for (var state in table) {\n var transitions = table[state];\n for (var symbol in transitions) {\n if (symbol !== EPSILON_CLOSURE) {\n this._alphabet.add(symbol);\n }\n }\n }\n }\n return this._alphabet;\n }\n\n /**\n * Returns set of accepting states.\n */\n\n }, {\n key: 'getAcceptingStates',\n value: function getAcceptingStates() {\n if (!this._acceptingStates) {\n // States are determined during table construction.\n this.getTransitionTable();\n }\n return this._acceptingStates;\n }\n\n /**\n * Returns accepting state numbers.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n this._acceptingStateNumbers = new Set();\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getAcceptingStates()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var acceptingState = _step.value;\n\n this._acceptingStateNumbers.add(acceptingState.number);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n return this._acceptingStateNumbers;\n }\n\n /**\n * Builds and returns transition table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (!this._transitionTable) {\n this._transitionTable = {};\n this._acceptingStates = new Set();\n\n var visited = new Set();\n var symbols = new Set();\n\n var visitState = function visitState(state) {\n if (visited.has(state)) {\n return;\n }\n\n visited.add(state);\n state.number = visited.size;\n _this._transitionTable[state.number] = {};\n\n if (state.accepting) {\n _this._acceptingStates.add(state);\n }\n\n var transitions = state.getTransitions();\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = transitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var symbol = _ref2[0];\n var symbolTransitions = _ref2[1];\n\n var combinedState = [];\n symbols.add(symbol);\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = symbolTransitions[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var nextState = _step3.value;\n\n visitState(nextState);\n combinedState.push(nextState.number);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n _this._transitionTable[state.number][symbol] = combinedState;\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n };\n\n // Traverse the graph starting from the `in`.\n visitState(this.in);\n\n // Append epsilon-closure column.\n visited.forEach(function (state) {\n delete _this._transitionTable[state.number][EPSILON];\n _this._transitionTable[state.number][EPSILON_CLOSURE] = [].concat(_toConsumableArray(state.getEpsilonClosure())).map(function (s) {\n return s.number;\n });\n });\n }\n\n return this._transitionTable;\n }\n }]);\n\n return NFA;\n}();\n\nmodule.exports = NFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Epsilon, the empty string.\n */\n\nvar EPSILON = 'ε';\n\n/**\n * Epsilon-closure.\n */\nvar EPSILON_CLOSURE = EPSILON + '*';\n\nmodule.exports = {\n EPSILON: EPSILON,\n EPSILON_CLOSURE: EPSILON_CLOSURE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A generic FA State class (base for NFA and DFA).\n *\n * Maintains the transition map, and the flag whether\n * the state is accepting.\n */\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar State = function () {\n function State() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$accepting = _ref.accepting,\n accepting = _ref$accepting === undefined ? false : _ref$accepting;\n\n _classCallCheck(this, State);\n\n /**\n * Outgoing transitions to other states.\n */\n this._transitions = new Map();\n\n /**\n * Whether the state is accepting.\n */\n this.accepting = accepting;\n }\n\n /**\n * Returns transitions for this state.\n */\n\n\n _createClass(State, [{\n key: 'getTransitions',\n value: function getTransitions() {\n return this._transitions;\n }\n\n /**\n * Creates a transition on symbol.\n */\n\n }, {\n key: 'addTransition',\n value: function addTransition(symbol, toState) {\n this.getTransitionsOnSymbol(symbol).add(toState);\n return this;\n }\n\n /**\n * Returns transitions set on symbol.\n */\n\n }, {\n key: 'getTransitionsOnSymbol',\n value: function getTransitionsOnSymbol(symbol) {\n var transitions = this._transitions.get(symbol);\n\n if (!transitions) {\n transitions = new Set();\n this._transitions.set(symbol, transitions);\n }\n\n return transitions;\n }\n }]);\n\n return State;\n}();\n\nmodule.exports = State;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar clone = require('../utils/clone');\nvar parser = require('../parser');\nvar transform = require('../transform');\nvar optimizationTransforms = require('./transforms');\n\nmodule.exports = {\n /**\n * Optimizer transforms a regular expression into an optimized version,\n * replacing some sub-expressions with their idiomatic patterns.\n *\n * @param string | RegExp | AST - a regexp to optimize.\n *\n * @return TransformResult - an optimized regexp.\n *\n * Example:\n *\n * /[a-zA-Z_0-9][a-zA-Z_0-9]*\\e{1,}/\n *\n * Optimized to:\n *\n * /\\w+e+/\n */\n optimize: function optimize(regexp) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$whitelist = _ref.whitelist,\n whitelist = _ref$whitelist === undefined ? [] : _ref$whitelist,\n _ref$blacklist = _ref.blacklist,\n blacklist = _ref$blacklist === undefined ? [] : _ref$blacklist;\n\n var transformsRaw = whitelist.length > 0 ? whitelist : Array.from(optimizationTransforms.keys());\n\n var transformToApply = transformsRaw.filter(function (transform) {\n return !blacklist.includes(transform);\n });\n\n var ast = regexp;\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp);\n }\n\n var result = new transform.TransformResult(ast);\n var prevResultString = void 0;\n\n do {\n // Get a copy of the current state here so\n // we can compare it with the state at the\n // end of the loop.\n prevResultString = result.toString();\n ast = clone(result.getAST());\n\n transformToApply.forEach(function (transformName) {\n if (!optimizationTransforms.has(transformName)) {\n throw new Error('Unknown optimization-transform: ' + transformName + '. ' + 'Available transforms are: ' + Array.from(optimizationTransforms.keys()).join(', '));\n }\n\n var transformer = optimizationTransforms.get(transformName);\n\n // Don't override result just yet since we\n // might want to rollback the transform\n var newResult = transform.transform(ast, transformer);\n\n if (newResult.toString() !== result.toString()) {\n if (newResult.toString().length <= result.toString().length) {\n result = newResult;\n } else {\n // Result has changed but is not shorter:\n // restore ast to its previous state.\n\n ast = clone(result.getAST());\n }\n }\n });\n\n // Keep running the optimizer until it stops\n // making any change to the regexp.\n } while (result.toString() !== prevResultString);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\n/**\n * Transforms case-insensitive regexp to lowercase\n *\n * /AaBbÏ/i -> /aabbï/i\n */\nmodule.exports = {\n _AZClassRanges: null,\n _hasUFlag: false,\n init: function init(ast) {\n this._AZClassRanges = new Set();\n this._hasUFlag = ast.flags.includes('u');\n },\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('i');\n },\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint)) {\n return;\n }\n\n // Engine support for case-insensitive matching without the u flag\n // for characters above \\u1000 does not seem reliable.\n if (!this._hasUFlag && node.codePoint >= 0x1000) {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n // The only class ranges we handle must be inside A-Z.\n // After the `from` char is processed, the isAZClassRange test\n // will be false, so we use a Set to keep track of parents and\n // process the `to` char.\n if (!this._AZClassRanges.has(parent) && !isAZClassRange(parent)) {\n return;\n }\n this._AZClassRanges.add(parent);\n }\n\n var lower = node.symbol.toLowerCase();\n if (lower !== node.symbol) {\n node.value = displaySymbolAsValue(lower, node);\n node.symbol = lower;\n node.codePoint = lower.codePointAt(0);\n }\n }\n};\n\nfunction isAZClassRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n // A-Z\n\n return from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP;\n}\n\nfunction displaySymbolAsValue(symbol, node) {\n var codePoint = symbol.codePointAt(0);\n if (node.kind === 'decimal') {\n return '\\\\' + codePoint;\n }\n if (node.kind === 'oct') {\n return '\\\\0' + codePoint.toString(8);\n }\n if (node.kind === 'hex') {\n return '\\\\x' + codePoint.toString(16);\n }\n if (node.kind === 'unicode') {\n if (node.isSurrogatePair) {\n var _getSurrogatePairFrom = getSurrogatePairFromCodePoint(codePoint),\n lead = _getSurrogatePairFrom.lead,\n trail = _getSurrogatePairFrom.trail;\n\n return '\\\\u' + '0'.repeat(4 - lead.length) + lead + '\\\\u' + '0'.repeat(4 - trail.length) + trail;\n } else if (node.value.includes('{')) {\n return '\\\\u{' + codePoint.toString(16) + '}';\n } else {\n var code = codePoint.toString(16);\n return '\\\\u' + '0'.repeat(4 - code.length) + code;\n }\n }\n // simple\n return symbol;\n}\n\n/**\n * Converts a code point to a surrogate pair.\n * Conversion algorithm is taken from The Unicode Standard 3.0 Section 3.7\n * (https://www.unicode.org/versions/Unicode3.0.0/ch03.pdf)\n * @param {number} codePoint - Between 0x10000 and 0x10ffff\n * @returns {{lead: string, trail: string}}\n */\nfunction getSurrogatePairFromCodePoint(codePoint) {\n var lead = Math.floor((codePoint - 0x10000) / 0x400) + 0xd800;\n var trail = (codePoint - 0x10000) % 0x400 + 0xdc00;\n return {\n lead: lead.toString(16),\n trail: trail.toString(16)\n };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to merge class ranges.\n *\n * [a-ec] -> [a-e]\n * [a-ec-e] -> [a-e]\n * [\\w\\da-f] -> [\\w]\n * [abcdef] -> [a-f]\n */\n\nmodule.exports = {\n _hasIUFlags: false,\n init: function init(ast) {\n this._hasIUFlags = ast.flags.includes('i') && ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var expressions = node.expressions;\n\n var metas = [];\n // Extract metas\n expressions.forEach(function (expression) {\n if (isMeta(expression)) {\n metas.push(expression.value);\n }\n });\n\n expressions.sort(sortCharClass);\n\n for (var i = 0; i < expressions.length; i++) {\n var expression = expressions[i];\n if (fitsInMetas(expression, metas, this._hasIUFlags) || combinesWithPrecedingClassRange(expression, expressions[i - 1]) || combinesWithFollowingClassRange(expression, expressions[i + 1])) {\n expressions.splice(i, 1);\n i--;\n } else {\n var nbMergedChars = charCombinesWithPrecedingChars(expression, i, expressions);\n expressions.splice(i - nbMergedChars + 1, nbMergedChars);\n i -= nbMergedChars;\n }\n }\n }\n};\n\n/**\n * Sorts expressions in char class in the following order:\n * - meta chars, ordered alphabetically by value\n * - chars (except `control` kind) and class ranges, ordered alphabetically (`from` char is used for class ranges)\n * - if ambiguous, class range comes before char\n * - if ambiguous between two class ranges, orders alphabetically by `to` char\n * - control chars, ordered alphabetically by value\n * @param {Object} a - Left Char or ClassRange node\n * @param {Object} b - Right Char or ClassRange node\n * @returns {number}\n */\nfunction sortCharClass(a, b) {\n var aValue = getSortValue(a);\n var bValue = getSortValue(b);\n\n if (aValue === bValue) {\n // We want ClassRange before Char\n // [bb-d] -> [b-db]\n if (a.type === 'ClassRange' && b.type !== 'ClassRange') {\n return -1;\n }\n if (b.type === 'ClassRange' && a.type !== 'ClassRange') {\n return 1;\n }\n if (a.type === 'ClassRange' && b.type === 'ClassRange') {\n return getSortValue(a.to) - getSortValue(b.to);\n }\n if (isMeta(a) && isMeta(b) || isControl(a) && isControl(b)) {\n return a.value < b.value ? -1 : 1;\n }\n }\n return aValue - bValue;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {number}\n */\nfunction getSortValue(expression) {\n if (expression.type === 'Char') {\n if (expression.value === '-') {\n return Infinity;\n }\n if (expression.kind === 'control') {\n return Infinity;\n }\n if (expression.kind === 'meta' && isNaN(expression.codePoint)) {\n return -1;\n }\n return expression.codePoint;\n }\n // ClassRange\n return expression.from.codePoint;\n}\n\n/**\n * Checks if a node is a meta char from the set \\d\\w\\s\\D\\W\\S\n * @param {Object} expression - Char or ClassRange node\n * @param {?string} value\n * @returns {boolean}\n */\nfunction isMeta(expression) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n return expression.type === 'Char' && expression.kind === 'meta' && (value ? expression.value === value : /^\\\\[dws]$/i.test(expression.value));\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {boolean}\n */\nfunction isControl(expression) {\n return expression.type === 'Char' && expression.kind === 'control';\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string[]} metas - Array of meta chars, e.g. [\"\\\\w\", \"\\\\s\"]\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetas(expression, metas, hasIUFlags) {\n for (var i = 0; i < metas.length; i++) {\n if (fitsInMeta(expression, metas[i], hasIUFlags)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string} meta - e.g. \"\\\\w\"\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMeta(expression, meta, hasIUFlags) {\n if (expression.type === 'ClassRange') {\n return fitsInMeta(expression.from, meta, hasIUFlags) && fitsInMeta(expression.to, meta, hasIUFlags);\n }\n\n // Special cases:\n // \\S contains \\w and \\d\n if (meta === '\\\\S' && (isMeta(expression, '\\\\w') || isMeta(expression, '\\\\d'))) {\n return true;\n }\n // \\D contains \\W and \\s\n if (meta === '\\\\D' && (isMeta(expression, '\\\\W') || isMeta(expression, '\\\\s'))) {\n return true;\n }\n // \\w contains \\d\n if (meta === '\\\\w' && isMeta(expression, '\\\\d')) {\n return true;\n }\n // \\W contains \\s\n if (meta === '\\\\W' && isMeta(expression, '\\\\s')) {\n return true;\n }\n\n if (expression.type !== 'Char' || isNaN(expression.codePoint)) {\n return false;\n }\n\n if (meta === '\\\\s') {\n return fitsInMetaS(expression);\n }\n if (meta === '\\\\S') {\n return !fitsInMetaS(expression);\n }\n if (meta === '\\\\d') {\n return fitsInMetaD(expression);\n }\n if (meta === '\\\\D') {\n return !fitsInMetaD(expression);\n }\n if (meta === '\\\\w') {\n return fitsInMetaW(expression, hasIUFlags);\n }\n if (meta === '\\\\W') {\n return !fitsInMetaW(expression, hasIUFlags);\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaS(expression) {\n return expression.codePoint === 0x0009 || // \\t\n expression.codePoint === 0x000a || // \\n\n expression.codePoint === 0x000b || // \\v\n expression.codePoint === 0x000c || // \\f\n expression.codePoint === 0x000d || // \\r\n expression.codePoint === 0x0020 || // space\n expression.codePoint === 0x00a0 || // nbsp\n expression.codePoint === 0x1680 || // part of Zs\n expression.codePoint >= 0x2000 && expression.codePoint <= 0x200a || // part of Zs\n expression.codePoint === 0x2028 || // line separator\n expression.codePoint === 0x2029 || // paragraph separator\n expression.codePoint === 0x202f || // part of Zs\n expression.codePoint === 0x205f || // part of Zs\n expression.codePoint === 0x3000 || // part of Zs\n expression.codePoint === 0xfeff; // zwnbsp\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaD(expression) {\n return expression.codePoint >= 0x30 && expression.codePoint <= 0x39; // 0-9\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetaW(expression, hasIUFlags) {\n return fitsInMetaD(expression) || expression.codePoint >= 0x41 && expression.codePoint <= 0x5a || // A-Z\n expression.codePoint >= 0x61 && expression.codePoint <= 0x7a || // a-z\n expression.value === '_' || hasIUFlags && (expression.codePoint === 0x017f || expression.codePoint === 0x212a);\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithPrecedingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n if (fitsInClassRange(expression, classRange)) {\n // [a-gc] -> [a-g]\n // [a-gc-e] -> [a-g]\n return true;\n } else if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.to.codePoint === expression.codePoint - 1) {\n // [a-de] -> [a-e]\n classRange.to = expression;\n return true;\n } else if (expression.type === 'ClassRange' && expression.from.codePoint <= classRange.to.codePoint + 1 && expression.to.codePoint >= classRange.from.codePoint - 1) {\n // [a-db-f] -> [a-f]\n // [b-fa-d] -> [a-f]\n // [a-cd-f] -> [a-f]\n if (expression.from.codePoint < classRange.from.codePoint) {\n classRange.from = expression.from;\n }\n if (expression.to.codePoint > classRange.to.codePoint) {\n classRange.to = expression.to;\n }\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithFollowingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n // Considering the elements were ordered alphabetically,\n // there is only one case to handle\n // [ab-e] -> [a-e]\n if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.from.codePoint === expression.codePoint + 1) {\n classRange.from = expression;\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - ClassRange node\n * @returns {boolean}\n */\nfunction fitsInClassRange(expression, classRange) {\n if (expression.type === 'Char' && isNaN(expression.codePoint)) {\n return false;\n }\n if (expression.type === 'ClassRange') {\n return fitsInClassRange(expression.from, classRange) && fitsInClassRange(expression.to, classRange);\n }\n return expression.codePoint >= classRange.from.codePoint && expression.codePoint <= classRange.to.codePoint;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Number} index\n * @param {Object[]} expressions - expressions in CharClass\n * @returns {number} - Number of characters combined with expression\n */\nfunction charCombinesWithPrecedingChars(expression, index, expressions) {\n // We only want \\w chars or char codes to keep readability\n if (!isMetaWCharOrCode(expression)) {\n return 0;\n }\n var nbMergedChars = 0;\n while (index > 0) {\n var currentExpression = expressions[index];\n var precedingExpresion = expressions[index - 1];\n if (isMetaWCharOrCode(precedingExpresion) && precedingExpresion.codePoint === currentExpression.codePoint - 1) {\n nbMergedChars++;\n index--;\n } else {\n break;\n }\n }\n\n if (nbMergedChars > 1) {\n expressions[index] = {\n type: 'ClassRange',\n from: expressions[index],\n to: expression\n };\n return nbMergedChars;\n }\n return 0;\n}\n\nfunction isMetaWCharOrCode(expression) {\n return expression && expression.type === 'Char' && !isNaN(expression.codePoint) && (fitsInMetaW(expression, false) || expression.kind === 'unicode' || expression.kind === 'hex' || expression.kind === 'oct' || expression.kind === 'decimal');\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to simplify character classes\n * spanning only one or two chars.\n *\n * [a-a] -> [a]\n * [a-b] -> [ab]\n */\n\nmodule.exports = {\n ClassRange: function ClassRange(path) {\n var node = path.node;\n\n\n if (node.from.codePoint === node.to.codePoint) {\n\n path.replace(node.from);\n } else if (node.from.codePoint === node.to.codePoint - 1) {\n\n path.getParent().insertChildAt(node.to, path.index + 1);\n path.replace(node.from);\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove duplicates from character classes.\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var sources = {};\n\n for (var i = 0; i < node.expressions.length; i++) {\n var childPath = path.getChild(i);\n var source = childPath.jsonEncode();\n\n if (sources.hasOwnProperty(source)) {\n childPath.remove();\n\n // Since we remove the current node.\n // TODO: make it simpler for users with a method.\n i--;\n }\n\n sources[source] = true;\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace standard character classes with\n * their meta symbols equivalents.\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n _hasIFlag: false,\n _hasUFlag: false,\n init: function init(ast) {\n this._hasIFlag = ast.flags.includes('i');\n this._hasUFlag = ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n // [0-9] -> \\d\n rewriteNumberRanges(path);\n\n // [a-zA-Z_0-9] -> \\w\n rewriteWordRanges(path, this._hasIFlag, this._hasUFlag);\n\n // [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s\n rewriteWhitespaceRanges(path);\n }\n};\n\n/**\n * Rewrites number ranges: [0-9] -> \\d\n */\nfunction rewriteNumberRanges(path) {\n var node = path.node;\n\n\n node.expressions.forEach(function (expression, i) {\n if (isFullNumberRange(expression)) {\n path.getChild(i).replace({\n type: 'Char',\n value: '\\\\d',\n kind: 'meta'\n });\n }\n });\n}\n\n/**\n * Rewrites word ranges: [a-zA-Z_0-9] -> \\w\n * Thus, the ranges may go in any order, and other symbols/ranges\n * are kept untouched, e.g. [a-z_\\dA-Z$] -> [\\w$]\n */\nfunction rewriteWordRanges(path, hasIFlag, hasUFlag) {\n var node = path.node;\n\n\n var numberPath = null;\n var lowerCasePath = null;\n var upperCasePath = null;\n var underscorePath = null;\n var u017fPath = null;\n var u212aPath = null;\n\n node.expressions.forEach(function (expression, i) {\n // \\d\n if (isMetaChar(expression, '\\\\d')) {\n numberPath = path.getChild(i);\n }\n\n // a-z\n else if (isLowerCaseRange(expression)) {\n lowerCasePath = path.getChild(i);\n }\n\n // A-Z\n else if (isUpperCaseRange(expression)) {\n upperCasePath = path.getChild(i);\n }\n\n // _\n else if (isUnderscore(expression)) {\n underscorePath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x017f)) {\n u017fPath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x212a)) {\n u212aPath = path.getChild(i);\n }\n });\n\n // If we found the whole pattern, replace it.\n if (numberPath && (lowerCasePath && upperCasePath || hasIFlag && (lowerCasePath || upperCasePath)) && underscorePath && (!hasUFlag || !hasIFlag || u017fPath && u212aPath)) {\n // Put \\w in place of \\d.\n numberPath.replace({\n type: 'Char',\n value: '\\\\w',\n kind: 'meta'\n });\n\n // Other paths are removed.\n if (lowerCasePath) {\n lowerCasePath.remove();\n }\n if (upperCasePath) {\n upperCasePath.remove();\n }\n underscorePath.remove();\n if (u017fPath) {\n u017fPath.remove();\n }\n if (u212aPath) {\n u212aPath.remove();\n }\n }\n}\n\n/**\n * Rewrites whitespace ranges: [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s.\n */\nvar whitespaceRangeTests = [function (node) {\n return isChar(node, ' ');\n}].concat(_toConsumableArray(['\\\\f', '\\\\n', '\\\\r', '\\\\t', '\\\\v'].map(function (char) {\n return function (node) {\n return isMetaChar(node, char);\n };\n})), _toConsumableArray([0x00a0, 0x1680, 0x2028, 0x2029, 0x202f, 0x205f, 0x3000, 0xfeff].map(function (codePoint) {\n return function (node) {\n return isCodePoint(node, codePoint);\n };\n})), [function (node) {\n return node.type === 'ClassRange' && isCodePoint(node.from, 0x2000) && isCodePoint(node.to, 0x200a);\n}]);\n\nfunction rewriteWhitespaceRanges(path) {\n var node = path.node;\n\n\n if (node.expressions.length < whitespaceRangeTests.length || !whitespaceRangeTests.every(function (test) {\n return node.expressions.some(function (expression) {\n return test(expression);\n });\n })) {\n return;\n }\n\n // If we found the whole pattern, replace it.\n\n // Put \\s in place of \\n.\n var nNode = node.expressions.find(function (expression) {\n return isMetaChar(expression, '\\\\n');\n });\n nNode.value = '\\\\s';\n nNode.symbol = undefined;\n nNode.codePoint = NaN;\n\n // Other paths are removed.\n node.expressions.map(function (expression, i) {\n return whitespaceRangeTests.some(function (test) {\n return test(expression);\n }) ? path.getChild(i) : undefined;\n }).filter(Boolean).forEach(function (path) {\n return path.remove();\n });\n}\n\nfunction isFullNumberRange(node) {\n return node.type === 'ClassRange' && node.from.value === '0' && node.to.value === '9';\n}\n\nfunction isChar(node, value) {\n var kind = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'simple';\n\n return node.type === 'Char' && node.value === value && node.kind === kind;\n}\n\nfunction isMetaChar(node, value) {\n return isChar(node, value, 'meta');\n}\n\nfunction isLowerCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'a' && node.to.value === 'z';\n}\n\nfunction isUpperCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'A' && node.to.value === 'Z';\n}\n\nfunction isUnderscore(node) {\n return node.type === 'Char' && node.value === '_' && node.kind === 'simple';\n}\n\nfunction isCodePoint(node, codePoint) {\n return node.type === 'Char' && node.kind === 'unicode' && node.codePoint === codePoint;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char character classes with\n * just that character.\n *\n * [\\d] -> \\d, [^\\w] -> \\W\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n\n if (node.expressions.length !== 1 || !hasAppropriateSiblings(path) || !isAppropriateChar(node.expressions[0])) {\n return;\n }\n\n var _node$expressions$ = node.expressions[0],\n value = _node$expressions$.value,\n kind = _node$expressions$.kind,\n escaped = _node$expressions$.escaped;\n\n\n if (node.negative) {\n // For negative can extract only meta chars like [^\\w] -> \\W\n // cannot do for [^a] -> a (wrong).\n if (!isMeta(value)) {\n return;\n }\n\n value = getInverseMeta(value);\n }\n\n path.replace({\n type: 'Char',\n value: value,\n kind: kind,\n escaped: escaped || shouldEscape(value)\n });\n }\n};\n\nfunction isAppropriateChar(node) {\n return node.type === 'Char' &&\n // We don't extract [\\b] (backspace) since \\b has different\n // semantics (word boundary).\n node.value !== '\\\\b';\n}\n\nfunction isMeta(value) {\n return (/^\\\\[dwsDWS]$/.test(value)\n );\n}\n\nfunction getInverseMeta(value) {\n return (/[dws]/.test(value) ? value.toUpperCase() : value.toLowerCase()\n );\n}\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1[0] to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2[0] to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}\n\n// Note: \\{ and \\} are always preserved to avoid `a[{]2[}]` turning\n// into `a{2}`.\nfunction shouldEscape(value) {\n return (/[*[()+?$./{}|]/.test(value)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\nvar LOWER_A_CP = 'a'.codePointAt(0);\nvar LOWER_Z_CP = 'z'.codePointAt(0);\nvar DIGIT_0_CP = '0'.codePointAt(0);\nvar DIGIT_9_CP = '9'.codePointAt(0);\n\n/**\n * A regexp-tree plugin to transform coded chars into simple chars.\n *\n * \\u0061 -> a\n */\nmodule.exports = {\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint) || node.kind === 'simple') {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n if (!isSimpleRange(parent)) {\n return;\n }\n }\n\n if (!isPrintableASCIIChar(node.codePoint)) {\n return;\n }\n\n var symbol = String.fromCodePoint(node.codePoint);\n var newChar = {\n type: 'Char',\n kind: 'simple',\n value: symbol,\n symbol: symbol,\n codePoint: node.codePoint\n };\n if (needsEscape(symbol, parent.type)) {\n newChar.escaped = true;\n }\n path.replace(newChar);\n }\n};\n\n/**\n * Checks if a range is included either in 0-9, a-z or A-Z\n * @param classRange\n * @returns {boolean}\n */\nfunction isSimpleRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n\n return from.codePoint >= DIGIT_0_CP && from.codePoint <= DIGIT_9_CP && to.codePoint >= DIGIT_0_CP && to.codePoint <= DIGIT_9_CP || from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP || from.codePoint >= LOWER_A_CP && from.codePoint <= LOWER_Z_CP && to.codePoint >= LOWER_A_CP && to.codePoint <= LOWER_Z_CP;\n}\n\n/**\n * Checks if a code point in the range of printable ASCII chars\n * (DEL char excluded)\n * @param codePoint\n * @returns {boolean}\n */\nfunction isPrintableASCIIChar(codePoint) {\n return codePoint >= 0x20 && codePoint <= 0x7e;\n}\n\nfunction needsEscape(symbol, parentType) {\n if (parentType === 'ClassRange' || parentType === 'CharacterClass') {\n return (/[\\]\\\\^-]/.test(symbol)\n );\n }\n\n return (/[*[()+?^$./\\\\|{}]/.test(symbol)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary escape.\n *\n * \\e -> e\n *\n * [\\(] -> [(]\n */\n\nmodule.exports = {\n _hasXFlag: false,\n init: function init(ast) {\n this._hasXFlag = ast.flags.includes('x');\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (!node.escaped) {\n return;\n }\n\n if (shouldUnescape(path, this._hasXFlag)) {\n delete node.escaped;\n }\n }\n};\n\nfunction shouldUnescape(path, hasXFlag) {\n var value = path.node.value,\n index = path.index,\n parent = path.parent;\n\n // In char class (, etc are allowed.\n\n if (parent.type !== 'CharacterClass' && parent.type !== 'ClassRange') {\n return !preservesEscape(value, index, parent, hasXFlag);\n }\n\n return !preservesInCharClass(value, index, parent);\n}\n\n/**\n * \\], \\\\, \\^, \\-\n */\nfunction preservesInCharClass(value, index, parent) {\n if (value === '^') {\n // Avoid [\\^a] turning into [^a]\n return index === 0 && !parent.negative;\n }\n if (value === '-') {\n // Avoid [a\\-z] turning into [a-z]\n return true;\n }\n return (/[\\]\\\\]/.test(value)\n );\n}\n\nfunction preservesEscape(value, index, parent, hasXFlag) {\n if (value === '{') {\n return preservesOpeningCurlyBraceEscape(index, parent);\n }\n\n if (value === '}') {\n return preservesClosingCurlyBraceEscape(index, parent);\n }\n\n if (hasXFlag && /[ #]/.test(value)) {\n return true;\n }\n\n return (/[*[()+?^$./\\\\|]/.test(value)\n );\n}\n\nfunction consumeNumbers(startIndex, parent, rtl) {\n var i = startIndex;\n var siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n\n while (siblingNode && siblingNode.type === 'Char' && siblingNode.kind === 'simple' && !siblingNode.escaped && /\\d/.test(siblingNode.value)) {\n rtl ? i-- : i++;\n siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n }\n\n return Math.abs(startIndex - i);\n}\n\nfunction isSimpleChar(node, value) {\n return node && node.type === 'Char' && node.kind === 'simple' && !node.escaped && node.value === value;\n}\n\nfunction preservesOpeningCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbFollowingNumbers = consumeNumbers(index + 1, parent);\n var i = index + nbFollowingNumbers + 1;\n var nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n if (nbFollowingNumbers) {\n // Avoid \\{3} turning into {3}\n if (isSimpleChar(nextSiblingNode, '}')) {\n return true;\n }\n\n if (isSimpleChar(nextSiblingNode, ',')) {\n nbFollowingNumbers = consumeNumbers(i + 1, parent);\n i = i + nbFollowingNumbers + 1;\n nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid \\{3,} turning into {3,}\n return isSimpleChar(nextSiblingNode, '}');\n }\n }\n return false;\n}\n\nfunction preservesClosingCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbPrecedingNumbers = consumeNumbers(index - 1, parent, true);\n var i = index - nbPrecedingNumbers - 1;\n var previousSiblingNode = i >= 0 && parent.expressions[i];\n\n // Avoid {3\\} turning into {3}\n if (nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{')) {\n return true;\n }\n\n if (isSimpleChar(previousSiblingNode, ',')) {\n nbPrecedingNumbers = consumeNumbers(i - 1, parent, true);\n i = i - nbPrecedingNumbers - 1;\n previousSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid {3,\\} turning into {3,}\n return nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{');\n }\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to transform surrogate pairs into single unicode code point\n *\n * \\ud83d\\ude80 -> \\u{1f680}\n */\n\nmodule.exports = {\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('u');\n },\n Char: function Char(path) {\n var node = path.node;\n\n if (node.kind !== 'unicode' || !node.isSurrogatePair || isNaN(node.codePoint)) {\n return;\n }\n node.value = '\\\\u{' + node.codePoint.toString(16) + '}';\n delete node.isSurrogatePair;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to combine repeating patterns.\n *\n * /^abcabcabc/ -> /^abc{3}/\n * /^(?:abc){2}abc/ -> /^(?:abc){3}/\n * /^abc(?:abc){2}/ -> /^(?:abc){3}/\n */\n\nmodule.exports = {\n Alternative: function Alternative(path) {\n var node = path.node;\n\n // We can skip the first child\n\n var index = 1;\n while (index < node.expressions.length) {\n var child = path.getChild(index);\n index = Math.max(1, combineRepeatingPatternLeft(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineWithPreviousRepetition(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineRepetitionWithPrevious(path, child, index));\n\n index++;\n }\n }\n};\n\n// abcabc -> (?:abc){2}\nfunction combineRepeatingPatternLeft(alternative, child, index) {\n var node = alternative.node;\n\n\n var nbPossibleLengths = Math.ceil(index / 2);\n var i = 0;\n\n while (i < nbPossibleLengths) {\n var startIndex = index - 2 * i - 1;\n var right = void 0,\n left = void 0;\n\n if (i === 0) {\n right = child;\n left = alternative.getChild(startIndex);\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - i, index)), [child.node])\n });\n\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(startIndex, index - i)))\n });\n }\n\n if (right.hasEqualSource(left)) {\n for (var j = 0; j < 2 * i + 1; j++) {\n alternative.getChild(startIndex).remove();\n }\n\n child.replace({\n type: 'Repetition',\n expression: i === 0 && right.node.type !== 'Repetition' ? right.node : {\n type: 'Group',\n capturing: false,\n expression: right.node\n },\n quantifier: {\n type: 'Quantifier',\n kind: 'Range',\n from: 2,\n to: 2,\n greedy: true\n }\n });\n return startIndex;\n }\n\n i++;\n }\n\n return index;\n}\n\n// (?:abc){2}abc -> (?:abc){3}\nfunction combineWithPreviousRepetition(alternative, child, index) {\n var node = alternative.node;\n\n\n var i = 0;\n while (i < index) {\n var previousChild = alternative.getChild(i);\n\n if (previousChild.node.type === 'Repetition' && previousChild.node.quantifier.greedy) {\n var left = previousChild.getChild();\n var right = void 0;\n\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n\n if (i + 1 === index) {\n right = child;\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(i + 1, index + 1)))\n });\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = i; j < index; j++) {\n alternative.getChild(i + 1).remove();\n }\n\n increaseQuantifierByOne(previousChild.node.quantifier);\n\n return i;\n }\n }\n\n i++;\n }\n return index;\n}\n\n// abc(?:abc){2} -> (?:abc){3}\nfunction combineRepetitionWithPrevious(alternative, child, index) {\n var node = alternative.node;\n\n\n if (child.node.type === 'Repetition' && child.node.quantifier.greedy) {\n var right = child.getChild();\n var left = void 0;\n\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n\n var rightLength = void 0;\n if (right.node.type === 'Alternative') {\n rightLength = right.node.expressions.length;\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - rightLength, index)))\n });\n } else {\n rightLength = 1;\n left = alternative.getChild(index - 1);\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = index - rightLength; j < index; j++) {\n alternative.getChild(index - rightLength).remove();\n }\n\n increaseQuantifierByOne(child.node.quantifier);\n\n return index - rightLength;\n }\n }\n return index;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n disjunctionToList = _require.disjunctionToList,\n listToDisjunction = _require.listToDisjunction;\n\n/**\n * Removes duplicates from a disjunction sequence:\n *\n * /(ab|bc|ab)+(xy|xy)+/ -> /(ab|bc)+(xy)+/\n */\n\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node;\n\n // Make unique nodes.\n\n var uniqueNodesMap = {};\n\n var parts = disjunctionToList(node).filter(function (part) {\n var encoded = part ? NodePath.getForNode(part).jsonEncode() : 'null';\n\n // Already recorded this part, filter out.\n if (uniqueNodesMap.hasOwnProperty(encoded)) {\n return false;\n }\n\n uniqueNodesMap[encoded] = part;\n return true;\n });\n\n // Replace with the optimized disjunction.\n path.replace(listToDisjunction(parts));\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char group disjunction to char group\n *\n * a|b|c -> [abc]\n * [12]|3|4 -> [1234]\n * (a|b|c) -> ([abc])\n * (?:a|b|c) -> [abc]\n */\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (!handlers[parent.type]) {\n return;\n }\n\n var charset = new Map();\n\n if (!shouldProcess(node, charset) || !charset.size) {\n return;\n }\n\n var characterClass = {\n type: 'CharacterClass',\n expressions: Array.from(charset.keys()).sort().map(function (key) {\n return charset.get(key);\n })\n };\n\n handlers[parent.type](path.getParent(), characterClass);\n }\n};\n\nvar handlers = {\n RegExp: function RegExp(path, characterClass) {\n var node = path.node;\n\n\n node.body = characterClass;\n },\n Group: function Group(path, characterClass) {\n var node = path.node;\n\n\n if (node.capturing) {\n node.expression = characterClass;\n } else {\n path.replace(characterClass);\n }\n }\n};\n\nfunction shouldProcess(expression, charset) {\n if (!expression) {\n // Abort on empty disjunction part\n return false;\n }\n\n var type = expression.type;\n\n\n if (type === 'Disjunction') {\n var left = expression.left,\n right = expression.right;\n\n\n return shouldProcess(left, charset) && shouldProcess(right, charset);\n } else if (type === 'Char') {\n if (expression.kind === 'meta' && expression.symbol === '.') {\n return false;\n }\n\n var value = expression.value;\n\n\n charset.set(value, expression);\n\n return true;\n } else if (type === 'CharacterClass' && !expression.negative) {\n return expression.expressions.every(function (expression) {\n return shouldProcess(expression, charset);\n });\n }\n\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = new Map([\n// \\ud83d\\ude80 -> \\u{1f680}\n['charSurrogatePairToSingleUnicode', require('./char-surrogate-pair-to-single-unicode-transform')],\n\n// \\u0061 -> a\n['charCodeToSimpleChar', require('./char-code-to-simple-char-transform')],\n\n// /Aa/i -> /aa/i\n['charCaseInsensitiveLowerCaseTransform', require('./char-case-insensitive-lowercase-transform')],\n\n// [\\d\\d] -> [\\d]\n['charClassRemoveDuplicates', require('./char-class-remove-duplicates-transform')],\n\n// a{1,2}a{2,3} -> a{3,5}\n['quantifiersMerge', require('./quantifiers-merge-transform')],\n\n// a{1,} -> a+, a{3,3} -> a{3}, a{1} -> a\n['quantifierRangeToSymbol', require('./quantifier-range-to-symbol-transform')],\n\n// [a-a] -> [a], [a-b] -> [ab]\n['charClassClassrangesToChars', require('./char-class-classranges-to-chars-transform')],\n\n// [0-9] -> [\\d]\n['charClassToMeta', require('./char-class-to-meta-transform')],\n\n// [\\d] -> \\d, [^\\w] -> \\W\n['charClassToSingleChar', require('./char-class-to-single-char-transform')],\n\n// \\e -> e\n['charEscapeUnescape', require('./char-escape-unescape-transform')],\n\n// [a-de-f] -> [a-f]\n['charClassClassrangesMerge', require('./char-class-classranges-merge-transform')],\n\n// (ab|ab) -> (ab)\n['disjunctionRemoveDuplicates', require('./disjunction-remove-duplicates-transform')],\n\n// (a|b|c) -> [abc]\n['groupSingleCharsToCharClass', require('./group-single-chars-to-char-class')],\n\n// (?:)a -> a\n['removeEmptyGroup', require('./remove-empty-group-transform')],\n\n// (?:a) -> a\n['ungroup', require('./ungroup-transform')],\n\n// abcabcabc -> (?:abc){3}\n['combineRepeatingPatterns', require('./combine-repeating-patterns-transform')]]);","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace different range-based quantifiers\n * with their symbol equivalents.\n *\n * a{0,} -> a*\n * a{1,} -> a+\n * a{1} -> a\n *\n * NOTE: the following is automatically handled in the generator:\n *\n * a{3,3} -> a{3}\n */\n\nmodule.exports = {\n Quantifier: function Quantifier(path) {\n var node = path.node;\n\n\n if (node.kind !== 'Range') {\n return;\n }\n\n // a{0,} -> a*\n rewriteOpenZero(path);\n\n // a{1,} -> a+\n rewriteOpenOne(path);\n\n // a{1} -> a\n rewriteExactOne(path);\n }\n};\n\nfunction rewriteOpenZero(path) {\n var node = path.node;\n\n\n if (node.from !== 0 || node.to) {\n return;\n }\n\n node.kind = '*';\n delete node.from;\n}\n\nfunction rewriteOpenOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to) {\n return;\n }\n\n node.kind = '+';\n delete node.from;\n}\n\nfunction rewriteExactOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to !== 1) {\n return;\n }\n\n path.parentPath.replace(path.parentPath.node.expression);\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to merge quantifiers\n *\n * a+a+ -> a{2,}\n * a{2}a{3} -> a{5}\n * a{1,2}a{2,3} -> a{3,5}\n */\n\n\nmodule.exports = {\n Repetition: function Repetition(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (parent.type !== 'Alternative' || !path.index) {\n return;\n }\n\n var previousSibling = path.getPreviousSibling();\n\n if (!previousSibling) {\n return;\n }\n\n if (previousSibling.node.type === 'Repetition') {\n if (!previousSibling.getChild().hasEqualSource(path.getChild())) {\n return;\n }\n\n var _extractFromTo = extractFromTo(previousSibling.node.quantifier),\n previousSiblingFrom = _extractFromTo.from,\n previousSiblingTo = _extractFromTo.to;\n\n var _extractFromTo2 = extractFromTo(node.quantifier),\n nodeFrom = _extractFromTo2.from,\n nodeTo = _extractFromTo2.to;\n\n // It's does not seem reliable to merge quantifiers with different greediness\n // when none of both is a greedy open range\n\n\n if (previousSibling.node.quantifier.greedy !== node.quantifier.greedy && !isGreedyOpenRange(previousSibling.node.quantifier) && !isGreedyOpenRange(node.quantifier)) {\n return;\n }\n\n // a*a* -> a*\n // a*a+ -> a+\n // a+a+ -> a{2,}\n // a{2}a{4} -> a{6}\n // a{1,2}a{2,3} -> a{3,5}\n // a{1,}a{2,} -> a{3,}\n // a+a{2,} -> a{3,}\n\n // a??a{2,} -> a{2,}\n // a*?a{2,} -> a{2,}\n // a+?a{2,} -> a{3,}\n\n node.quantifier.kind = 'Range';\n node.quantifier.from = previousSiblingFrom + nodeFrom;\n if (previousSiblingTo && nodeTo) {\n node.quantifier.to = previousSiblingTo + nodeTo;\n } else {\n delete node.quantifier.to;\n }\n if (isGreedyOpenRange(previousSibling.node.quantifier) || isGreedyOpenRange(node.quantifier)) {\n node.quantifier.greedy = true;\n }\n\n previousSibling.remove();\n } else {\n if (!previousSibling.hasEqualSource(path.getChild())) {\n return;\n }\n\n increaseQuantifierByOne(node.quantifier);\n previousSibling.remove();\n }\n }\n};\n\nfunction isGreedyOpenRange(quantifier) {\n return quantifier.greedy && (quantifier.kind === '+' || quantifier.kind === '*' || quantifier.kind === 'Range' && !quantifier.to);\n}\n\nfunction extractFromTo(quantifier) {\n var from = void 0,\n to = void 0;\n if (quantifier.kind === '*') {\n from = 0;\n } else if (quantifier.kind === '+') {\n from = 1;\n } else if (quantifier.kind === '?') {\n from = 0;\n to = 1;\n } else {\n from = quantifier.from;\n if (quantifier.to) {\n to = quantifier.to;\n }\n }\n return { from: from, to: to };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove non-capturing empty groups.\n *\n * /(?:)a/ -> /a/\n * /a|(?:)/ -> /a|/\n */\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || childPath) {\n return;\n }\n\n if (parent.type === 'Repetition') {\n\n path.getParent().replace(node);\n } else if (parent.type !== 'RegExp') {\n\n path.remove();\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary groups.\n *\n * /(?:a)/ -> /a/\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || !childPath) {\n return;\n }\n\n // Don't optimize \\1(?:0) to \\10\n if (!hasAppropriateSiblings(path)) {\n return;\n }\n\n // Don't optimize /a(?:b|c)/ to /ab|c/\n // but /(?:b|c)/ to /b|c/ is ok\n if (childPath.node.type === 'Disjunction' && parent.type !== 'RegExp') {\n return;\n }\n\n // Don't optimize /(?:ab)+/ to /ab+/\n // but /(?:a)+/ to /a+/ is ok\n // and /(?:[a-d])+/ to /[a-d]+/ is ok too\n if (parent.type === 'Repetition' && childPath.node.type !== 'Char' && childPath.node.type !== 'CharacterClass') {\n return;\n }\n\n if (childPath.node.type === 'Alternative') {\n var parentPath = path.getParent();\n if (parentPath.node.type === 'Alternative') {\n // /abc(?:def)ghi/ When (?:def) is ungrouped its content must be merged with parent alternative\n\n parentPath.replace({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(parent.expressions.slice(0, path.index)), _toConsumableArray(childPath.node.expressions), _toConsumableArray(parent.expressions.slice(path.index + 1)))\n });\n }\n } else {\n path.replace(childPath.node);\n }\n }\n};\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1(?:0) to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2(?:0) to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}","/**\n * LR parser generated by the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * npm install -g syntax-cli\n *\n * syntax-cli --help\n *\n * To regenerate run:\n *\n * syntax-cli \\\n * --grammar ~/path-to-grammar-file \\\n * --mode <parsing-mode> \\\n * --output ~/path-to-output-parser-file.js\n */\n\n'use strict';\n\n/**\n * Matched token text.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar yytext = void 0;\n\n/**\n * Length of the matched token text.\n */\nvar yyleng = void 0;\n\n/**\n * Storage object.\n */\nvar yy = {};\n\n/**\n * Result of semantic action.\n */\nvar __ = void 0;\n\n/**\n * Result location object.\n */\nvar __loc = void 0;\n\nfunction yyloc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n // Epsilon doesn't produce location.\n if (!start || !end) {\n return start || end;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nvar EOF = '$';\n\n/**\n * List of productions (generated by Syntax tool).\n */\nvar productions = [[-1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [0, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n __ = Node({\n type: 'RegExp',\n body: _2,\n flags: checkFlags(_4)\n }, loc(_1loc, _4loc || _3loc));\n}], [1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [1, 0, function () {\n __loc = null;__ = '';\n}], [2, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [2, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1 + _2;\n}], [3, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n // Location for empty disjunction: /|/\n var _loc = null;\n\n if (_2loc) {\n _loc = loc(_1loc || _2loc, _3loc || _2loc);\n };\n\n __ = Node({\n type: 'Disjunction',\n left: _1,\n right: _3\n }, _loc);\n}], [5, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n if (_1.length === 0) {\n __ = null;\n return;\n }\n\n if (_1.length === 1) {\n __ = Node(_1[0], __loc);\n } else {\n __ = Node({\n type: 'Alternative',\n expressions: _1\n }, __loc);\n }\n}], [6, 0, function () {\n __loc = null;__ = [];\n}], [6, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1.concat(_2);\n}], [7, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Node(Object.assign({ type: 'Assertion' }, _1), __loc);\n}], [7, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n __ = _1;\n\n if (_2) {\n __ = Node({\n type: 'Repetition',\n expression: _1,\n quantifier: _2\n }, __loc);\n }\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '^' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '$' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\b' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\B' };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n negative: true,\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n negative: true,\n assertion: _2\n };\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1.slice(1), 'simple', __loc);__.escaped = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);__.isSurrogatePair = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = UnicodeProperty(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'control', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'hex', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'oct', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = GroupRefOrDecChar(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = NamedGroupRefOrChars(_1, _1loc);\n}], [11, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [11, 0], [12, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [12, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n _1.greedy = false;\n __ = _1;\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: getRange(_1)[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[1],\n greedy: true\n }, __loc);\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n var nameRaw = String(_1);\n var name = decodeUnicodeGroupName(nameRaw);\n if (!yy.options.allowGroupNameDuplicates && namedGroups.hasOwnProperty(name)) {\n throw new SyntaxError('Duplicate of the named group \"' + name + '\".');\n }\n\n namedGroups[name] = _1.groupNumber;\n\n __ = Node({\n type: 'Group',\n capturing: true,\n name: name,\n nameRaw: nameRaw,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: true,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [16, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: false,\n expression: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n negative: true,\n expressions: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n expressions: _2\n }, __loc);\n}], [18, 0, function () {\n __loc = null;__ = [];\n}], [18, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [19, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = [_1];\n}], [19, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [19, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [20, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [20, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [20, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}]];\n\n/**\n * Encoded tokens map.\n */\nvar tokens = { \"SLASH\": \"23\", \"CHAR\": \"24\", \"BAR\": \"25\", \"BOS\": \"26\", \"EOS\": \"27\", \"ESC_b\": \"28\", \"ESC_B\": \"29\", \"POS_LA_ASSERT\": \"30\", \"R_PAREN\": \"31\", \"NEG_LA_ASSERT\": \"32\", \"POS_LB_ASSERT\": \"33\", \"NEG_LB_ASSERT\": \"34\", \"ESC_CHAR\": \"35\", \"U_CODE_SURROGATE\": \"36\", \"U_CODE\": \"37\", \"U_PROP_VALUE_EXP\": \"38\", \"CTRL_CH\": \"39\", \"HEX_CODE\": \"40\", \"OCT_CODE\": \"41\", \"DEC_CODE\": \"42\", \"META_CHAR\": \"43\", \"ANY\": \"44\", \"NAMED_GROUP_REF\": \"45\", \"Q_MARK\": \"46\", \"STAR\": \"47\", \"PLUS\": \"48\", \"RANGE_EXACT\": \"49\", \"RANGE_OPEN\": \"50\", \"RANGE_CLOSED\": \"51\", \"NAMED_CAPTURE_GROUP\": \"52\", \"L_PAREN\": \"53\", \"NON_CAPTURE_GROUP\": \"54\", \"NEG_CLASS\": \"55\", \"R_BRACKET\": \"56\", \"L_BRACKET\": \"57\", \"DASH\": \"58\", \"$\": \"59\" };\n\n/**\n * Parsing table (generated by Syntax tool).\n */\nvar table = [{ \"0\": 1, \"23\": \"s2\" }, { \"59\": \"acc\" }, { \"3\": 3, \"4\": 4, \"5\": 5, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"s7\" }, { \"23\": \"r6\", \"25\": \"s12\" }, { \"23\": \"r7\", \"25\": \"r7\", \"31\": \"r7\" }, { \"7\": 14, \"8\": 15, \"9\": 16, \"10\": 25, \"14\": 27, \"15\": 42, \"16\": 43, \"17\": 26, \"23\": \"r9\", \"24\": \"s28\", \"25\": \"r9\", \"26\": \"s17\", \"27\": \"s18\", \"28\": \"s19\", \"29\": \"s20\", \"30\": \"s21\", \"31\": \"r9\", \"32\": \"s22\", \"33\": \"s23\", \"34\": \"s24\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"52\": \"s44\", \"53\": \"s45\", \"54\": \"s46\", \"55\": \"s40\", \"57\": \"s41\" }, { \"1\": 8, \"2\": 9, \"24\": \"s10\", \"59\": \"r3\" }, { \"59\": \"r1\" }, { \"24\": \"s11\", \"59\": \"r2\" }, { \"24\": \"r4\", \"59\": \"r4\" }, { \"24\": \"r5\", \"59\": \"r5\" }, { \"5\": 13, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r8\", \"25\": \"r8\", \"31\": \"r8\" }, { \"23\": \"r11\", \"24\": \"r11\", \"25\": \"r11\", \"26\": \"r11\", \"27\": \"r11\", \"28\": \"r11\", \"29\": \"r11\", \"30\": \"r11\", \"31\": \"r11\", \"32\": \"r11\", \"33\": \"r11\", \"34\": \"r11\", \"35\": \"r11\", \"36\": \"r11\", \"37\": \"r11\", \"38\": \"r11\", \"39\": \"r11\", \"40\": \"r11\", \"41\": \"r11\", \"42\": \"r11\", \"43\": \"r11\", \"44\": \"r11\", \"45\": \"r11\", \"52\": \"r11\", \"53\": \"r11\", \"54\": \"r11\", \"55\": \"r11\", \"57\": \"r11\" }, { \"23\": \"r12\", \"24\": \"r12\", \"25\": \"r12\", \"26\": \"r12\", \"27\": \"r12\", \"28\": \"r12\", \"29\": \"r12\", \"30\": \"r12\", \"31\": \"r12\", \"32\": \"r12\", \"33\": \"r12\", \"34\": \"r12\", \"35\": \"r12\", \"36\": \"r12\", \"37\": \"r12\", \"38\": \"r12\", \"39\": \"r12\", \"40\": \"r12\", \"41\": \"r12\", \"42\": \"r12\", \"43\": \"r12\", \"44\": \"r12\", \"45\": \"r12\", \"52\": \"r12\", \"53\": \"r12\", \"54\": \"r12\", \"55\": \"r12\", \"57\": \"r12\" }, { \"11\": 47, \"12\": 48, \"13\": 49, \"23\": \"r38\", \"24\": \"r38\", \"25\": \"r38\", \"26\": \"r38\", \"27\": \"r38\", \"28\": \"r38\", \"29\": \"r38\", \"30\": \"r38\", \"31\": \"r38\", \"32\": \"r38\", \"33\": \"r38\", \"34\": \"r38\", \"35\": \"r38\", \"36\": \"r38\", \"37\": \"r38\", \"38\": \"r38\", \"39\": \"r38\", \"40\": \"r38\", \"41\": \"r38\", \"42\": \"r38\", \"43\": \"r38\", \"44\": \"r38\", \"45\": \"r38\", \"46\": \"s52\", \"47\": \"s50\", \"48\": \"s51\", \"49\": \"s53\", \"50\": \"s54\", \"51\": \"s55\", \"52\": \"r38\", \"53\": \"r38\", \"54\": \"r38\", \"55\": \"r38\", \"57\": \"r38\" }, { \"23\": \"r14\", \"24\": \"r14\", \"25\": \"r14\", \"26\": \"r14\", \"27\": \"r14\", \"28\": \"r14\", \"29\": \"r14\", \"30\": \"r14\", \"31\": \"r14\", \"32\": \"r14\", \"33\": \"r14\", \"34\": \"r14\", \"35\": \"r14\", \"36\": \"r14\", \"37\": \"r14\", \"38\": \"r14\", \"39\": \"r14\", \"40\": \"r14\", \"41\": \"r14\", \"42\": \"r14\", \"43\": \"r14\", \"44\": \"r14\", \"45\": \"r14\", \"52\": \"r14\", \"53\": \"r14\", \"54\": \"r14\", \"55\": \"r14\", \"57\": \"r14\" }, { \"23\": \"r15\", \"24\": \"r15\", \"25\": \"r15\", \"26\": \"r15\", \"27\": \"r15\", \"28\": \"r15\", \"29\": \"r15\", \"30\": \"r15\", \"31\": \"r15\", \"32\": \"r15\", \"33\": \"r15\", \"34\": \"r15\", \"35\": \"r15\", \"36\": \"r15\", \"37\": \"r15\", \"38\": \"r15\", \"39\": \"r15\", \"40\": \"r15\", \"41\": \"r15\", \"42\": \"r15\", \"43\": \"r15\", \"44\": \"r15\", \"45\": \"r15\", \"52\": \"r15\", \"53\": \"r15\", \"54\": \"r15\", \"55\": \"r15\", \"57\": \"r15\" }, { \"23\": \"r16\", \"24\": \"r16\", \"25\": \"r16\", \"26\": \"r16\", \"27\": \"r16\", \"28\": \"r16\", \"29\": \"r16\", \"30\": \"r16\", \"31\": \"r16\", \"32\": \"r16\", \"33\": \"r16\", \"34\": \"r16\", \"35\": \"r16\", \"36\": \"r16\", \"37\": \"r16\", \"38\": \"r16\", \"39\": \"r16\", \"40\": \"r16\", \"41\": \"r16\", \"42\": \"r16\", \"43\": \"r16\", \"44\": \"r16\", \"45\": \"r16\", \"52\": \"r16\", \"53\": \"r16\", \"54\": \"r16\", \"55\": \"r16\", \"57\": \"r16\" }, { \"23\": \"r17\", \"24\": \"r17\", \"25\": \"r17\", \"26\": \"r17\", \"27\": \"r17\", \"28\": \"r17\", \"29\": \"r17\", \"30\": \"r17\", \"31\": \"r17\", \"32\": \"r17\", \"33\": \"r17\", \"34\": \"r17\", \"35\": \"r17\", \"36\": \"r17\", \"37\": \"r17\", \"38\": \"r17\", \"39\": \"r17\", \"40\": \"r17\", \"41\": \"r17\", \"42\": \"r17\", \"43\": \"r17\", \"44\": \"r17\", \"45\": \"r17\", \"52\": \"r17\", \"53\": \"r17\", \"54\": \"r17\", \"55\": \"r17\", \"57\": \"r17\" }, { \"4\": 57, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 59, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 61, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 63, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r22\", \"24\": \"r22\", \"25\": \"r22\", \"26\": \"r22\", \"27\": \"r22\", \"28\": \"r22\", \"29\": \"r22\", \"30\": \"r22\", \"31\": \"r22\", \"32\": \"r22\", \"33\": \"r22\", \"34\": \"r22\", \"35\": \"r22\", \"36\": \"r22\", \"37\": \"r22\", \"38\": \"r22\", \"39\": \"r22\", \"40\": \"r22\", \"41\": \"r22\", \"42\": \"r22\", \"43\": \"r22\", \"44\": \"r22\", \"45\": \"r22\", \"46\": \"r22\", \"47\": \"r22\", \"48\": \"r22\", \"49\": \"r22\", \"50\": \"r22\", \"51\": \"r22\", \"52\": \"r22\", \"53\": \"r22\", \"54\": \"r22\", \"55\": \"r22\", \"57\": \"r22\" }, { \"23\": \"r23\", \"24\": \"r23\", \"25\": \"r23\", \"26\": \"r23\", \"27\": \"r23\", \"28\": \"r23\", \"29\": \"r23\", \"30\": \"r23\", \"31\": \"r23\", \"32\": \"r23\", \"33\": \"r23\", \"34\": \"r23\", \"35\": \"r23\", \"36\": \"r23\", \"37\": \"r23\", \"38\": \"r23\", \"39\": \"r23\", \"40\": \"r23\", \"41\": \"r23\", \"42\": \"r23\", \"43\": \"r23\", \"44\": \"r23\", \"45\": \"r23\", \"46\": \"r23\", \"47\": \"r23\", \"48\": \"r23\", \"49\": \"r23\", \"50\": \"r23\", \"51\": \"r23\", \"52\": \"r23\", \"53\": \"r23\", \"54\": \"r23\", \"55\": \"r23\", \"57\": \"r23\" }, { \"23\": \"r24\", \"24\": \"r24\", \"25\": \"r24\", \"26\": \"r24\", \"27\": \"r24\", \"28\": \"r24\", \"29\": \"r24\", \"30\": \"r24\", \"31\": \"r24\", \"32\": \"r24\", \"33\": \"r24\", \"34\": \"r24\", \"35\": \"r24\", \"36\": \"r24\", \"37\": \"r24\", \"38\": \"r24\", \"39\": \"r24\", \"40\": \"r24\", \"41\": \"r24\", \"42\": \"r24\", \"43\": \"r24\", \"44\": \"r24\", \"45\": \"r24\", \"46\": \"r24\", \"47\": \"r24\", \"48\": \"r24\", \"49\": \"r24\", \"50\": \"r24\", \"51\": \"r24\", \"52\": \"r24\", \"53\": \"r24\", \"54\": \"r24\", \"55\": \"r24\", \"57\": \"r24\" }, { \"23\": \"r25\", \"24\": \"r25\", \"25\": \"r25\", \"26\": \"r25\", \"27\": \"r25\", \"28\": \"r25\", \"29\": \"r25\", \"30\": \"r25\", \"31\": \"r25\", \"32\": \"r25\", \"33\": \"r25\", \"34\": \"r25\", \"35\": \"r25\", \"36\": \"r25\", \"37\": \"r25\", \"38\": \"r25\", \"39\": \"r25\", \"40\": \"r25\", \"41\": \"r25\", \"42\": \"r25\", \"43\": \"r25\", \"44\": \"r25\", \"45\": \"r25\", \"46\": \"r25\", \"47\": \"r25\", \"48\": \"r25\", \"49\": \"r25\", \"50\": \"r25\", \"51\": \"r25\", \"52\": \"r25\", \"53\": \"r25\", \"54\": \"r25\", \"55\": \"r25\", \"56\": \"r25\", \"57\": \"r25\", \"58\": \"r25\" }, { \"23\": \"r26\", \"24\": \"r26\", \"25\": \"r26\", \"26\": \"r26\", \"27\": \"r26\", \"28\": \"r26\", \"29\": \"r26\", \"30\": \"r26\", \"31\": \"r26\", \"32\": \"r26\", \"33\": \"r26\", \"34\": \"r26\", \"35\": \"r26\", \"36\": \"r26\", \"37\": \"r26\", \"38\": \"r26\", \"39\": \"r26\", \"40\": \"r26\", \"41\": \"r26\", \"42\": \"r26\", \"43\": \"r26\", \"44\": \"r26\", \"45\": \"r26\", \"46\": \"r26\", \"47\": \"r26\", \"48\": \"r26\", \"49\": \"r26\", \"50\": \"r26\", \"51\": \"r26\", \"52\": \"r26\", \"53\": \"r26\", \"54\": \"r26\", \"55\": \"r26\", \"56\": \"r26\", \"57\": \"r26\", \"58\": \"r26\" }, { \"23\": \"r27\", \"24\": \"r27\", \"25\": \"r27\", \"26\": \"r27\", \"27\": \"r27\", \"28\": \"r27\", \"29\": \"r27\", \"30\": \"r27\", \"31\": \"r27\", \"32\": \"r27\", \"33\": \"r27\", \"34\": \"r27\", \"35\": \"r27\", \"36\": \"r27\", \"37\": \"r27\", \"38\": \"r27\", \"39\": \"r27\", \"40\": \"r27\", \"41\": \"r27\", \"42\": \"r27\", \"43\": \"r27\", \"44\": \"r27\", \"45\": \"r27\", \"46\": \"r27\", \"47\": \"r27\", \"48\": \"r27\", \"49\": \"r27\", \"50\": \"r27\", \"51\": \"r27\", \"52\": \"r27\", \"53\": \"r27\", \"54\": \"r27\", \"55\": \"r27\", \"56\": \"r27\", \"57\": \"r27\", \"58\": \"r27\" }, { \"23\": \"r28\", \"24\": \"r28\", \"25\": \"r28\", \"26\": \"r28\", \"27\": \"r28\", \"28\": \"r28\", \"29\": \"r28\", \"30\": \"r28\", \"31\": \"r28\", \"32\": \"r28\", \"33\": \"r28\", \"34\": \"r28\", \"35\": \"r28\", \"36\": \"r28\", \"37\": \"r28\", \"38\": \"r28\", \"39\": \"r28\", \"40\": \"r28\", \"41\": \"r28\", \"42\": \"r28\", \"43\": \"r28\", \"44\": \"r28\", \"45\": \"r28\", \"46\": \"r28\", \"47\": \"r28\", \"48\": \"r28\", \"49\": \"r28\", \"50\": \"r28\", \"51\": \"r28\", \"52\": \"r28\", \"53\": \"r28\", \"54\": \"r28\", \"55\": \"r28\", \"56\": \"r28\", \"57\": \"r28\", \"58\": \"r28\" }, { \"23\": \"r29\", \"24\": \"r29\", \"25\": \"r29\", \"26\": \"r29\", \"27\": \"r29\", \"28\": \"r29\", \"29\": \"r29\", \"30\": \"r29\", \"31\": \"r29\", \"32\": \"r29\", \"33\": \"r29\", \"34\": \"r29\", \"35\": \"r29\", \"36\": \"r29\", \"37\": \"r29\", \"38\": \"r29\", \"39\": \"r29\", \"40\": \"r29\", \"41\": \"r29\", \"42\": \"r29\", \"43\": \"r29\", \"44\": \"r29\", \"45\": \"r29\", \"46\": \"r29\", \"47\": \"r29\", \"48\": \"r29\", \"49\": \"r29\", \"50\": \"r29\", \"51\": \"r29\", \"52\": \"r29\", \"53\": \"r29\", \"54\": \"r29\", \"55\": \"r29\", \"56\": \"r29\", \"57\": \"r29\", \"58\": \"r29\" }, { \"23\": \"r30\", \"24\": \"r30\", \"25\": \"r30\", \"26\": \"r30\", \"27\": \"r30\", \"28\": \"r30\", \"29\": \"r30\", \"30\": \"r30\", \"31\": \"r30\", \"32\": \"r30\", \"33\": \"r30\", \"34\": \"r30\", \"35\": \"r30\", \"36\": \"r30\", \"37\": \"r30\", \"38\": \"r30\", \"39\": \"r30\", \"40\": \"r30\", \"41\": \"r30\", \"42\": \"r30\", \"43\": \"r30\", \"44\": \"r30\", \"45\": \"r30\", \"46\": \"r30\", \"47\": \"r30\", \"48\": \"r30\", \"49\": \"r30\", \"50\": \"r30\", \"51\": \"r30\", \"52\": \"r30\", \"53\": \"r30\", \"54\": \"r30\", \"55\": \"r30\", \"56\": \"r30\", \"57\": \"r30\", \"58\": \"r30\" }, { \"23\": \"r31\", \"24\": \"r31\", \"25\": \"r31\", \"26\": \"r31\", \"27\": \"r31\", \"28\": \"r31\", \"29\": \"r31\", \"30\": \"r31\", \"31\": \"r31\", \"32\": \"r31\", \"33\": \"r31\", \"34\": \"r31\", \"35\": \"r31\", \"36\": \"r31\", \"37\": \"r31\", \"38\": \"r31\", \"39\": \"r31\", \"40\": \"r31\", \"41\": \"r31\", \"42\": \"r31\", \"43\": \"r31\", \"44\": \"r31\", \"45\": \"r31\", \"46\": \"r31\", \"47\": \"r31\", \"48\": \"r31\", \"49\": \"r31\", \"50\": \"r31\", \"51\": \"r31\", \"52\": \"r31\", \"53\": \"r31\", \"54\": \"r31\", \"55\": \"r31\", \"56\": \"r31\", \"57\": \"r31\", \"58\": \"r31\" }, { \"23\": \"r32\", \"24\": \"r32\", \"25\": \"r32\", \"26\": \"r32\", \"27\": \"r32\", \"28\": \"r32\", \"29\": \"r32\", \"30\": \"r32\", \"31\": \"r32\", \"32\": \"r32\", \"33\": \"r32\", \"34\": \"r32\", \"35\": \"r32\", \"36\": \"r32\", \"37\": \"r32\", \"38\": \"r32\", \"39\": \"r32\", \"40\": \"r32\", \"41\": \"r32\", \"42\": \"r32\", \"43\": \"r32\", \"44\": \"r32\", \"45\": \"r32\", \"46\": \"r32\", \"47\": \"r32\", \"48\": \"r32\", \"49\": \"r32\", \"50\": \"r32\", \"51\": \"r32\", \"52\": \"r32\", \"53\": \"r32\", \"54\": \"r32\", \"55\": \"r32\", \"56\": \"r32\", \"57\": \"r32\", \"58\": \"r32\" }, { \"23\": \"r33\", \"24\": \"r33\", \"25\": \"r33\", \"26\": \"r33\", \"27\": \"r33\", \"28\": \"r33\", \"29\": \"r33\", \"30\": \"r33\", \"31\": \"r33\", \"32\": \"r33\", \"33\": \"r33\", \"34\": \"r33\", \"35\": \"r33\", \"36\": \"r33\", \"37\": \"r33\", \"38\": \"r33\", \"39\": \"r33\", \"40\": \"r33\", \"41\": \"r33\", \"42\": \"r33\", \"43\": \"r33\", \"44\": \"r33\", \"45\": \"r33\", \"46\": \"r33\", \"47\": \"r33\", \"48\": \"r33\", \"49\": \"r33\", \"50\": \"r33\", \"51\": \"r33\", \"52\": \"r33\", \"53\": \"r33\", \"54\": \"r33\", \"55\": \"r33\", \"56\": \"r33\", \"57\": \"r33\", \"58\": \"r33\" }, { \"23\": \"r34\", \"24\": \"r34\", \"25\": \"r34\", \"26\": \"r34\", \"27\": \"r34\", \"28\": \"r34\", \"29\": \"r34\", \"30\": \"r34\", \"31\": \"r34\", \"32\": \"r34\", \"33\": \"r34\", \"34\": \"r34\", \"35\": \"r34\", \"36\": \"r34\", \"37\": \"r34\", \"38\": \"r34\", \"39\": \"r34\", \"40\": \"r34\", \"41\": \"r34\", \"42\": \"r34\", \"43\": \"r34\", \"44\": \"r34\", \"45\": \"r34\", \"46\": \"r34\", \"47\": \"r34\", \"48\": \"r34\", \"49\": \"r34\", \"50\": \"r34\", \"51\": \"r34\", \"52\": \"r34\", \"53\": \"r34\", \"54\": \"r34\", \"55\": \"r34\", \"56\": \"r34\", \"57\": \"r34\", \"58\": \"r34\" }, { \"23\": \"r35\", \"24\": \"r35\", \"25\": \"r35\", \"26\": \"r35\", \"27\": \"r35\", \"28\": \"r35\", \"29\": \"r35\", \"30\": \"r35\", \"31\": \"r35\", \"32\": \"r35\", \"33\": \"r35\", \"34\": \"r35\", \"35\": \"r35\", \"36\": \"r35\", \"37\": \"r35\", \"38\": \"r35\", \"39\": \"r35\", \"40\": \"r35\", \"41\": \"r35\", \"42\": \"r35\", \"43\": \"r35\", \"44\": \"r35\", \"45\": \"r35\", \"46\": \"r35\", \"47\": \"r35\", \"48\": \"r35\", \"49\": \"r35\", \"50\": \"r35\", \"51\": \"r35\", \"52\": \"r35\", \"53\": \"r35\", \"54\": \"r35\", \"55\": \"r35\", \"56\": \"r35\", \"57\": \"r35\", \"58\": \"r35\" }, { \"23\": \"r36\", \"24\": \"r36\", \"25\": \"r36\", \"26\": \"r36\", \"27\": \"r36\", \"28\": \"r36\", \"29\": \"r36\", \"30\": \"r36\", \"31\": \"r36\", \"32\": \"r36\", \"33\": \"r36\", \"34\": \"r36\", \"35\": \"r36\", \"36\": \"r36\", \"37\": \"r36\", \"38\": \"r36\", \"39\": \"r36\", \"40\": \"r36\", \"41\": \"r36\", \"42\": \"r36\", \"43\": \"r36\", \"44\": \"r36\", \"45\": \"r36\", \"46\": \"r36\", \"47\": \"r36\", \"48\": \"r36\", \"49\": \"r36\", \"50\": \"r36\", \"51\": \"r36\", \"52\": \"r36\", \"53\": \"r36\", \"54\": \"r36\", \"55\": \"r36\", \"56\": \"r36\", \"57\": \"r36\", \"58\": \"r36\" }, { \"10\": 70, \"18\": 65, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 83, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"23\": \"r47\", \"24\": \"r47\", \"25\": \"r47\", \"26\": \"r47\", \"27\": \"r47\", \"28\": \"r47\", \"29\": \"r47\", \"30\": \"r47\", \"31\": \"r47\", \"32\": \"r47\", \"33\": \"r47\", \"34\": \"r47\", \"35\": \"r47\", \"36\": \"r47\", \"37\": \"r47\", \"38\": \"r47\", \"39\": \"r47\", \"40\": \"r47\", \"41\": \"r47\", \"42\": \"r47\", \"43\": \"r47\", \"44\": \"r47\", \"45\": \"r47\", \"46\": \"r47\", \"47\": \"r47\", \"48\": \"r47\", \"49\": \"r47\", \"50\": \"r47\", \"51\": \"r47\", \"52\": \"r47\", \"53\": \"r47\", \"54\": \"r47\", \"55\": \"r47\", \"57\": \"r47\" }, { \"23\": \"r48\", \"24\": \"r48\", \"25\": \"r48\", \"26\": \"r48\", \"27\": \"r48\", \"28\": \"r48\", \"29\": \"r48\", \"30\": \"r48\", \"31\": \"r48\", \"32\": \"r48\", \"33\": \"r48\", \"34\": \"r48\", \"35\": \"r48\", \"36\": \"r48\", \"37\": \"r48\", \"38\": \"r48\", \"39\": \"r48\", \"40\": \"r48\", \"41\": \"r48\", \"42\": \"r48\", \"43\": \"r48\", \"44\": \"r48\", \"45\": \"r48\", \"46\": \"r48\", \"47\": \"r48\", \"48\": \"r48\", \"49\": \"r48\", \"50\": \"r48\", \"51\": \"r48\", \"52\": \"r48\", \"53\": \"r48\", \"54\": \"r48\", \"55\": \"r48\", \"57\": \"r48\" }, { \"4\": 85, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 87, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 89, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r13\", \"24\": \"r13\", \"25\": \"r13\", \"26\": \"r13\", \"27\": \"r13\", \"28\": \"r13\", \"29\": \"r13\", \"30\": \"r13\", \"31\": \"r13\", \"32\": \"r13\", \"33\": \"r13\", \"34\": \"r13\", \"35\": \"r13\", \"36\": \"r13\", \"37\": \"r13\", \"38\": \"r13\", \"39\": \"r13\", \"40\": \"r13\", \"41\": \"r13\", \"42\": \"r13\", \"43\": \"r13\", \"44\": \"r13\", \"45\": \"r13\", \"52\": \"r13\", \"53\": \"r13\", \"54\": \"r13\", \"55\": \"r13\", \"57\": \"r13\" }, { \"23\": \"r37\", \"24\": \"r37\", \"25\": \"r37\", \"26\": \"r37\", \"27\": \"r37\", \"28\": \"r37\", \"29\": \"r37\", \"30\": \"r37\", \"31\": \"r37\", \"32\": \"r37\", \"33\": \"r37\", \"34\": \"r37\", \"35\": \"r37\", \"36\": \"r37\", \"37\": \"r37\", \"38\": \"r37\", \"39\": \"r37\", \"40\": \"r37\", \"41\": \"r37\", \"42\": \"r37\", \"43\": \"r37\", \"44\": \"r37\", \"45\": \"r37\", \"52\": \"r37\", \"53\": \"r37\", \"54\": \"r37\", \"55\": \"r37\", \"57\": \"r37\" }, { \"23\": \"r39\", \"24\": \"r39\", \"25\": \"r39\", \"26\": \"r39\", \"27\": \"r39\", \"28\": \"r39\", \"29\": \"r39\", \"30\": \"r39\", \"31\": \"r39\", \"32\": \"r39\", \"33\": \"r39\", \"34\": \"r39\", \"35\": \"r39\", \"36\": \"r39\", \"37\": \"r39\", \"38\": \"r39\", \"39\": \"r39\", \"40\": \"r39\", \"41\": \"r39\", \"42\": \"r39\", \"43\": \"r39\", \"44\": \"r39\", \"45\": \"r39\", \"46\": \"s56\", \"52\": \"r39\", \"53\": \"r39\", \"54\": \"r39\", \"55\": \"r39\", \"57\": \"r39\" }, { \"23\": \"r41\", \"24\": \"r41\", \"25\": \"r41\", \"26\": \"r41\", \"27\": \"r41\", \"28\": \"r41\", \"29\": \"r41\", \"30\": \"r41\", \"31\": \"r41\", \"32\": \"r41\", \"33\": \"r41\", \"34\": \"r41\", \"35\": \"r41\", \"36\": \"r41\", \"37\": \"r41\", \"38\": \"r41\", \"39\": \"r41\", \"40\": \"r41\", \"41\": \"r41\", \"42\": \"r41\", \"43\": \"r41\", \"44\": \"r41\", \"45\": \"r41\", \"46\": \"r41\", \"52\": \"r41\", \"53\": \"r41\", \"54\": \"r41\", \"55\": \"r41\", \"57\": \"r41\" }, { \"23\": \"r42\", \"24\": \"r42\", \"25\": \"r42\", \"26\": \"r42\", \"27\": \"r42\", \"28\": \"r42\", \"29\": \"r42\", \"30\": \"r42\", \"31\": \"r42\", \"32\": \"r42\", \"33\": \"r42\", \"34\": \"r42\", \"35\": \"r42\", \"36\": \"r42\", \"37\": \"r42\", \"38\": \"r42\", \"39\": \"r42\", \"40\": \"r42\", \"41\": \"r42\", \"42\": \"r42\", \"43\": \"r42\", \"44\": \"r42\", \"45\": \"r42\", \"46\": \"r42\", \"52\": \"r42\", \"53\": \"r42\", \"54\": \"r42\", \"55\": \"r42\", \"57\": \"r42\" }, { \"23\": \"r43\", \"24\": \"r43\", \"25\": \"r43\", \"26\": \"r43\", \"27\": \"r43\", \"28\": \"r43\", \"29\": \"r43\", \"30\": \"r43\", \"31\": \"r43\", \"32\": \"r43\", \"33\": \"r43\", \"34\": \"r43\", \"35\": \"r43\", \"36\": \"r43\", \"37\": \"r43\", \"38\": \"r43\", \"39\": \"r43\", \"40\": \"r43\", \"41\": \"r43\", \"42\": \"r43\", \"43\": \"r43\", \"44\": \"r43\", \"45\": \"r43\", \"46\": \"r43\", \"52\": \"r43\", \"53\": \"r43\", \"54\": \"r43\", \"55\": \"r43\", \"57\": \"r43\" }, { \"23\": \"r44\", \"24\": \"r44\", \"25\": \"r44\", \"26\": \"r44\", \"27\": \"r44\", \"28\": \"r44\", \"29\": \"r44\", \"30\": \"r44\", \"31\": \"r44\", \"32\": \"r44\", \"33\": \"r44\", \"34\": \"r44\", \"35\": \"r44\", \"36\": \"r44\", \"37\": \"r44\", \"38\": \"r44\", \"39\": \"r44\", \"40\": \"r44\", \"41\": \"r44\", \"42\": \"r44\", \"43\": \"r44\", \"44\": \"r44\", \"45\": \"r44\", \"46\": \"r44\", \"52\": \"r44\", \"53\": \"r44\", \"54\": \"r44\", \"55\": \"r44\", \"57\": \"r44\" }, { \"23\": \"r45\", \"24\": \"r45\", \"25\": \"r45\", \"26\": \"r45\", \"27\": \"r45\", \"28\": \"r45\", \"29\": \"r45\", \"30\": \"r45\", \"31\": \"r45\", \"32\": \"r45\", \"33\": \"r45\", \"34\": \"r45\", \"35\": \"r45\", \"36\": \"r45\", \"37\": \"r45\", \"38\": \"r45\", \"39\": \"r45\", \"40\": \"r45\", \"41\": \"r45\", \"42\": \"r45\", \"43\": \"r45\", \"44\": \"r45\", \"45\": \"r45\", \"46\": \"r45\", \"52\": \"r45\", \"53\": \"r45\", \"54\": \"r45\", \"55\": \"r45\", \"57\": \"r45\" }, { \"23\": \"r46\", \"24\": \"r46\", \"25\": \"r46\", \"26\": \"r46\", \"27\": \"r46\", \"28\": \"r46\", \"29\": \"r46\", \"30\": \"r46\", \"31\": \"r46\", \"32\": \"r46\", \"33\": \"r46\", \"34\": \"r46\", \"35\": \"r46\", \"36\": \"r46\", \"37\": \"r46\", \"38\": \"r46\", \"39\": \"r46\", \"40\": \"r46\", \"41\": \"r46\", \"42\": \"r46\", \"43\": \"r46\", \"44\": \"r46\", \"45\": \"r46\", \"46\": \"r46\", \"52\": \"r46\", \"53\": \"r46\", \"54\": \"r46\", \"55\": \"r46\", \"57\": \"r46\" }, { \"23\": \"r40\", \"24\": \"r40\", \"25\": \"r40\", \"26\": \"r40\", \"27\": \"r40\", \"28\": \"r40\", \"29\": \"r40\", \"30\": \"r40\", \"31\": \"r40\", \"32\": \"r40\", \"33\": \"r40\", \"34\": \"r40\", \"35\": \"r40\", \"36\": \"r40\", \"37\": \"r40\", \"38\": \"r40\", \"39\": \"r40\", \"40\": \"r40\", \"41\": \"r40\", \"42\": \"r40\", \"43\": \"r40\", \"44\": \"r40\", \"45\": \"r40\", \"52\": \"r40\", \"53\": \"r40\", \"54\": \"r40\", \"55\": \"r40\", \"57\": \"r40\" }, { \"25\": \"s12\", \"31\": \"s58\" }, { \"23\": \"r18\", \"24\": \"r18\", \"25\": \"r18\", \"26\": \"r18\", \"27\": \"r18\", \"28\": \"r18\", \"29\": \"r18\", \"30\": \"r18\", \"31\": \"r18\", \"32\": \"r18\", \"33\": \"r18\", \"34\": \"r18\", \"35\": \"r18\", \"36\": \"r18\", \"37\": \"r18\", \"38\": \"r18\", \"39\": \"r18\", \"40\": \"r18\", \"41\": \"r18\", \"42\": \"r18\", \"43\": \"r18\", \"44\": \"r18\", \"45\": \"r18\", \"52\": \"r18\", \"53\": \"r18\", \"54\": \"r18\", \"55\": \"r18\", \"57\": \"r18\" }, { \"25\": \"s12\", \"31\": \"s60\" }, { \"23\": \"r19\", \"24\": \"r19\", \"25\": \"r19\", \"26\": \"r19\", \"27\": \"r19\", \"28\": \"r19\", \"29\": \"r19\", \"30\": \"r19\", \"31\": \"r19\", \"32\": \"r19\", \"33\": \"r19\", \"34\": \"r19\", \"35\": \"r19\", \"36\": \"r19\", \"37\": \"r19\", \"38\": \"r19\", \"39\": \"r19\", \"40\": \"r19\", \"41\": \"r19\", \"42\": \"r19\", \"43\": \"r19\", \"44\": \"r19\", \"45\": \"r19\", \"52\": \"r19\", \"53\": \"r19\", \"54\": \"r19\", \"55\": \"r19\", \"57\": \"r19\" }, { \"25\": \"s12\", \"31\": \"s62\" }, { \"23\": \"r20\", \"24\": \"r20\", \"25\": \"r20\", \"26\": \"r20\", \"27\": \"r20\", \"28\": \"r20\", \"29\": \"r20\", \"30\": \"r20\", \"31\": \"r20\", \"32\": \"r20\", \"33\": \"r20\", \"34\": \"r20\", \"35\": \"r20\", \"36\": \"r20\", \"37\": \"r20\", \"38\": \"r20\", \"39\": \"r20\", \"40\": \"r20\", \"41\": \"r20\", \"42\": \"r20\", \"43\": \"r20\", \"44\": \"r20\", \"45\": \"r20\", \"52\": \"r20\", \"53\": \"r20\", \"54\": \"r20\", \"55\": \"r20\", \"57\": \"r20\" }, { \"25\": \"s12\", \"31\": \"s64\" }, { \"23\": \"r21\", \"24\": \"r21\", \"25\": \"r21\", \"26\": \"r21\", \"27\": \"r21\", \"28\": \"r21\", \"29\": \"r21\", \"30\": \"r21\", \"31\": \"r21\", \"32\": \"r21\", \"33\": \"r21\", \"34\": \"r21\", \"35\": \"r21\", \"36\": \"r21\", \"37\": \"r21\", \"38\": \"r21\", \"39\": \"r21\", \"40\": \"r21\", \"41\": \"r21\", \"42\": \"r21\", \"43\": \"r21\", \"44\": \"r21\", \"45\": \"r21\", \"52\": \"r21\", \"53\": \"r21\", \"54\": \"r21\", \"55\": \"r21\", \"57\": \"r21\" }, { \"56\": \"s72\" }, { \"56\": \"r55\" }, { \"10\": 70, \"20\": 73, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r56\", \"58\": \"s74\" }, { \"24\": \"r62\", \"28\": \"r62\", \"35\": \"r62\", \"36\": \"r62\", \"37\": \"r62\", \"38\": \"r62\", \"39\": \"r62\", \"40\": \"r62\", \"41\": \"r62\", \"42\": \"r62\", \"43\": \"r62\", \"44\": \"r62\", \"45\": \"r62\", \"56\": \"r62\", \"58\": \"r62\" }, { \"24\": \"r63\", \"28\": \"r63\", \"35\": \"r63\", \"36\": \"r63\", \"37\": \"r63\", \"38\": \"r63\", \"39\": \"r63\", \"40\": \"r63\", \"41\": \"r63\", \"42\": \"r63\", \"43\": \"r63\", \"44\": \"r63\", \"45\": \"r63\", \"56\": \"r63\", \"58\": \"r63\" }, { \"24\": \"r64\", \"28\": \"r64\", \"35\": \"r64\", \"36\": \"r64\", \"37\": \"r64\", \"38\": \"r64\", \"39\": \"r64\", \"40\": \"r64\", \"41\": \"r64\", \"42\": \"r64\", \"43\": \"r64\", \"44\": \"r64\", \"45\": \"r64\", \"56\": \"r64\", \"58\": \"r64\" }, { \"24\": \"r65\", \"28\": \"r65\", \"35\": \"r65\", \"36\": \"r65\", \"37\": \"r65\", \"38\": \"r65\", \"39\": \"r65\", \"40\": \"r65\", \"41\": \"r65\", \"42\": \"r65\", \"43\": \"r65\", \"44\": \"r65\", \"45\": \"r65\", \"56\": \"r65\", \"58\": \"r65\" }, { \"23\": \"r52\", \"24\": \"r52\", \"25\": \"r52\", \"26\": \"r52\", \"27\": \"r52\", \"28\": \"r52\", \"29\": \"r52\", \"30\": \"r52\", \"31\": \"r52\", \"32\": \"r52\", \"33\": \"r52\", \"34\": \"r52\", \"35\": \"r52\", \"36\": \"r52\", \"37\": \"r52\", \"38\": \"r52\", \"39\": \"r52\", \"40\": \"r52\", \"41\": \"r52\", \"42\": \"r52\", \"43\": \"r52\", \"44\": \"r52\", \"45\": \"r52\", \"46\": \"r52\", \"47\": \"r52\", \"48\": \"r52\", \"49\": \"r52\", \"50\": \"r52\", \"51\": \"r52\", \"52\": \"r52\", \"53\": \"r52\", \"54\": \"r52\", \"55\": \"r52\", \"57\": \"r52\" }, { \"56\": \"r57\" }, { \"10\": 70, \"21\": 77, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"56\": \"r59\" }, { \"10\": 70, \"20\": 79, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r63\", \"58\": \"s80\" }, { \"10\": 70, \"18\": 78, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r58\" }, { \"56\": \"r60\" }, { \"10\": 70, \"21\": 81, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 82, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r61\" }, { \"56\": \"s84\" }, { \"23\": \"r53\", \"24\": \"r53\", \"25\": \"r53\", \"26\": \"r53\", \"27\": \"r53\", \"28\": \"r53\", \"29\": \"r53\", \"30\": \"r53\", \"31\": \"r53\", \"32\": \"r53\", \"33\": \"r53\", \"34\": \"r53\", \"35\": \"r53\", \"36\": \"r53\", \"37\": \"r53\", \"38\": \"r53\", \"39\": \"r53\", \"40\": \"r53\", \"41\": \"r53\", \"42\": \"r53\", \"43\": \"r53\", \"44\": \"r53\", \"45\": \"r53\", \"46\": \"r53\", \"47\": \"r53\", \"48\": \"r53\", \"49\": \"r53\", \"50\": \"r53\", \"51\": \"r53\", \"52\": \"r53\", \"53\": \"r53\", \"54\": \"r53\", \"55\": \"r53\", \"57\": \"r53\" }, { \"25\": \"s12\", \"31\": \"s86\" }, { \"23\": \"r49\", \"24\": \"r49\", \"25\": \"r49\", \"26\": \"r49\", \"27\": \"r49\", \"28\": \"r49\", \"29\": \"r49\", \"30\": \"r49\", \"31\": \"r49\", \"32\": \"r49\", \"33\": \"r49\", \"34\": \"r49\", \"35\": \"r49\", \"36\": \"r49\", \"37\": \"r49\", \"38\": \"r49\", \"39\": \"r49\", \"40\": \"r49\", \"41\": \"r49\", \"42\": \"r49\", \"43\": \"r49\", \"44\": \"r49\", \"45\": \"r49\", \"46\": \"r49\", \"47\": \"r49\", \"48\": \"r49\", \"49\": \"r49\", \"50\": \"r49\", \"51\": \"r49\", \"52\": \"r49\", \"53\": \"r49\", \"54\": \"r49\", \"55\": \"r49\", \"57\": \"r49\" }, { \"25\": \"s12\", \"31\": \"s88\" }, { \"23\": \"r50\", \"24\": \"r50\", \"25\": \"r50\", \"26\": \"r50\", \"27\": \"r50\", \"28\": \"r50\", \"29\": \"r50\", \"30\": \"r50\", \"31\": \"r50\", \"32\": \"r50\", \"33\": \"r50\", \"34\": \"r50\", \"35\": \"r50\", \"36\": \"r50\", \"37\": \"r50\", \"38\": \"r50\", \"39\": \"r50\", \"40\": \"r50\", \"41\": \"r50\", \"42\": \"r50\", \"43\": \"r50\", \"44\": \"r50\", \"45\": \"r50\", \"46\": \"r50\", \"47\": \"r50\", \"48\": \"r50\", \"49\": \"r50\", \"50\": \"r50\", \"51\": \"r50\", \"52\": \"r50\", \"53\": \"r50\", \"54\": \"r50\", \"55\": \"r50\", \"57\": \"r50\" }, { \"25\": \"s12\", \"31\": \"s90\" }, { \"23\": \"r51\", \"24\": \"r51\", \"25\": \"r51\", \"26\": \"r51\", \"27\": \"r51\", \"28\": \"r51\", \"29\": \"r51\", \"30\": \"r51\", \"31\": \"r51\", \"32\": \"r51\", \"33\": \"r51\", \"34\": \"r51\", \"35\": \"r51\", \"36\": \"r51\", \"37\": \"r51\", \"38\": \"r51\", \"39\": \"r51\", \"40\": \"r51\", \"41\": \"r51\", \"42\": \"r51\", \"43\": \"r51\", \"44\": \"r51\", \"45\": \"r51\", \"46\": \"r51\", \"47\": \"r51\", \"48\": \"r51\", \"49\": \"r51\", \"50\": \"r51\", \"51\": \"r51\", \"52\": \"r51\", \"53\": \"r51\", \"54\": \"r51\", \"55\": \"r51\", \"57\": \"r51\" }];\n\n/**\n * Parsing stack.\n */\nvar stack = [];\n\n/**\n * Tokenizer instance.\n */\nvar tokenizer = void 0;\n/**\n * Generic tokenizer used by the parser in the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * See `--custom-tokinzer` to skip this generation, and use a custom one.\n */\n\nvar lexRules = [[/^#[^\\n]+/, function () {/* skip comments */}], [/^\\s+/, function () {/* skip whitespace */}], [/^-/, function () {\n return 'DASH';\n}], [/^\\//, function () {\n return 'CHAR';\n}], [/^#/, function () {\n return 'CHAR';\n}], [/^\\|/, function () {\n return 'CHAR';\n}], [/^\\./, function () {\n return 'CHAR';\n}], [/^\\{/, function () {\n return 'CHAR';\n}], [/^\\{\\d+\\}/, function () {\n return 'RANGE_EXACT';\n}], [/^\\{\\d+,\\}/, function () {\n return 'RANGE_OPEN';\n}], [/^\\{\\d+,\\d+\\}/, function () {\n return 'RANGE_CLOSED';\n}], [/^\\\\k<(([\\u0041-\\u005a\\u0061-\\u007a\\u00aa\\u00b5\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e-\\u066f\\u0671-\\u06d3\\u06d5\\u06e5-\\u06e6\\u06ee-\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4-\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc-\\u09dd\\u09df-\\u09e1\\u09f0-\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0-\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c-\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60-\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0-\\u0ce1\\u0cf1-\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2-\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065-\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\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\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae-\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5-\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\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\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\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\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a-\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd-\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5-\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\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]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\ude80-\\ude9c\\udea0-\\uded0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf75\\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\\ude10-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd23\\udf00-\\udf1c\\udf27\\udf30-\\udf45\\udfe0-\\udff6]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd44\\udd50-\\udd72\\udd76\\udd83-\\uddb2\\uddc1-\\uddc4\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude2b\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udede\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3d\\udf50\\udf5d-\\udf61]|\\ud805[\\udc00-\\udc34\\udc47-\\udc4a\\udc5f\\udc80-\\udcaf\\udcc4-\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udeb8\\udf00-\\udf1a]|\\ud806[\\udc00-\\udc2b\\udca0-\\udcdf\\udcff\\udda0-\\udda7\\uddaa-\\uddd0\\udde1\\udde3\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude89\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd30\\udd46\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd89\\udd98\\udee0-\\udef2]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf50\\udf93-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99]|\\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[\\udd00-\\udd2c\\udd37-\\udd3d\\udd4e\\udec0-\\udeeb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd4b]|\\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]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\}))(([\\u0030-\\u0039\\u0041-\\u005a\\u005f\\u0061-\\u007a\\u00aa\\u00b5\\u00b7\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0300-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u0483-\\u0487\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u07fd\\u0800-\\u082d\\u0840-\\u085b\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u08d3-\\u08e1\\u08e3-\\u0963\\u0966-\\u096f\\u0971-\\u0983\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bc-\\u09c4\\u09c7-\\u09c8\\u09cb-\\u09ce\\u09d7\\u09dc-\\u09dd\\u09df-\\u09e3\\u09e6-\\u09f1\\u09fc\\u09fe\\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\\u0a81-\\u0a83\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abc-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ad0\\u0ae0-\\u0ae3\\u0ae6-\\u0aef\\u0af9-\\u0aff\\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-\\u0b6f\\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-\\u0bcd\\u0bd0\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\\u0c58-\\u0c5a\\u0c60-\\u0c63\\u0c66-\\u0c6f\\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\\u0d00-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d54-\\u0d57\\u0d5f-\\u0d63\\u0d66-\\u0d6f\\u0d7a-\\u0d7f\\u0d82-\\u0d83\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2-\\u0df3\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u0e50-\\u0e59\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0edc-\\u0edf\\u0f00\\u0f18-\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f47\\u0f49-\\u0f6c\\u0f71-\\u0f84\\u0f86-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1049\\u1050-\\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\\u135d-\\u135f\\u1369-\\u1371\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176c\\u176e-\\u1770\\u1772-\\u1773\\u1780-\\u17d3\\u17d7\\u17dc-\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u19d0-\\u19da\\u1a00-\\u1a1b\\u1a20-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1aa7\\u1ab0-\\u1abd\\u1b00-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1bf3\\u1c00-\\u1c37\\u1c40-\\u1c49\\u1c4d-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1cd0-\\u1cd2\\u1cd4-\\u1cfa\\u1d00-\\u1df9\\u1dfb-\\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\\u203f-\\u2040\\u2054\\u2071\\u207f\\u2090-\\u209c\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d7f-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2de0-\\u2dff\\u3005-\\u3007\\u3021-\\u302f\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua8fd-\\ua92d\\ua930-\\ua953\\ua960-\\ua97c\\ua980-\\ua9c0\\ua9cf-\\ua9d9\\ua9e0-\\ua9fe\\uaa00-\\uaa36\\uaa40-\\uaa4d\\uaa50-\\uaa59\\uaa60-\\uaa76\\uaa7a-\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaef\\uaaf2-\\uaaf6\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabea\\uabec-\\uabed\\uabf0-\\uabf9\\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\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33-\\ufe34\\ufe4d-\\ufe4f\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff10-\\uff19\\uff21-\\uff3a\\uff3f\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\uddfd\\ude80-\\ude9c\\udea0-\\uded0\\udee0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udca0-\\udca9\\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-\\ude35\\ude38-\\ude3a\\ude3f\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee6\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd27\\udd30-\\udd39\\udf00-\\udf1c\\udf27\\udf30-\\udf50\\udfe0-\\udff6]|\\ud804[\\udc00-\\udc46\\udc66-\\udc6f\\udc7f-\\udcba\\udcd0-\\udce8\\udcf0-\\udcf9\\udd00-\\udd34\\udd36-\\udd3f\\udd44-\\udd46\\udd50-\\udd73\\udd76\\udd80-\\uddc4\\uddc9-\\uddcc\\uddd0-\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude37\\ude3e\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udeea\\udef0-\\udef9\\udf00-\\udf03\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3b-\\udf44\\udf47-\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc00-\\udc4a\\udc50-\\udc59\\udc5e-\\udc5f\\udc80-\\udcc5\\udcc7\\udcd0-\\udcd9\\udd80-\\uddb5\\uddb8-\\uddc0\\uddd8-\\udddd\\ude00-\\ude40\\ude44\\ude50-\\ude59\\ude80-\\udeb8\\udec0-\\udec9\\udf00-\\udf1a\\udf1d-\\udf2b\\udf30-\\udf39]|\\ud806[\\udc00-\\udc3a\\udca0-\\udce9\\udcff\\udda0-\\udda7\\uddaa-\\uddd7\\uddda-\\udde1\\udde3-\\udde4\\ude00-\\ude3e\\ude47\\ude50-\\ude99\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc40\\udc50-\\udc59\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd36\\udd3a\\udd3c-\\udd3d\\udd3f-\\udd47\\udd50-\\udd59\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd8e\\udd90-\\udd91\\udd93-\\udd98\\udda0-\\udda9\\udee0-\\udef6]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\ude60-\\ude69\\uded0-\\udeed\\udef0-\\udef4\\udf00-\\udf36\\udf40-\\udf43\\udf50-\\udf59\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf4f-\\udf87\\udf8f-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99\\udc9d-\\udc9e]|\\ud834[\\udd65-\\udd69\\udd6d-\\udd72\\udd7b-\\udd82\\udd85-\\udd8b\\uddaa-\\uddad\\ude42-\\ude44]|\\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\\udfce-\\udfff]|\\ud836[\\ude00-\\ude36\\ude3b-\\ude6c\\ude75\\ude84\\ude9b-\\ude9f\\udea1-\\udeaf]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23-\\udc24\\udc26-\\udc2a\\udd00-\\udd2c\\udd30-\\udd3d\\udd40-\\udd49\\udd4e\\udec0-\\udef9]|\\ud83a[\\udc00-\\udcc4\\udcd0-\\udcd6\\udd00-\\udd4b\\udd50-\\udd59]|\\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]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\udb40[\\udd00-\\uddef])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\})|[\\u200c\\u200d])*>/, function () {\n var groupName = yytext.slice(3, -1);\n validateUnicodeGroupName(groupName, this.getCurrentState());\n return 'NAMED_GROUP_REF';\n}], [/^\\\\b/, function () {\n return 'ESC_b';\n}], [/^\\\\B/, function () {\n return 'ESC_B';\n}], [/^\\\\c[a-zA-Z]/, function () {\n return 'CTRL_CH';\n}], [/^\\\\0\\d{1,2}/, function () {\n return 'OCT_CODE';\n}], [/^\\\\0/, function () {\n return 'DEC_CODE';\n}], [/^\\\\\\d{1,3}/, function () {\n return 'DEC_CODE';\n}], [/^\\\\u[dD][89abAB][0-9a-fA-F]{2}\\\\u[dD][c-fC-F][0-9a-fA-F]{2}/, function () {\n return 'U_CODE_SURROGATE';\n}], [/^\\\\u\\{[0-9a-fA-F]{1,}\\}/, function () {\n return 'U_CODE';\n}], [/^\\\\u[0-9a-fA-F]{4}/, function () {\n return 'U_CODE';\n}], [/^\\\\[pP]\\{\\w+(?:=\\w+)?\\}/, function () {\n return 'U_PROP_VALUE_EXP';\n}], [/^\\\\x[0-9a-fA-F]{2}/, function () {\n return 'HEX_CODE';\n}], [/^\\\\[tnrdDsSwWvf]/, function () {\n return 'META_CHAR';\n}], [/^\\\\\\//, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[ #]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[\\^\\$\\.\\*\\+\\?\\(\\)\\\\\\[\\]\\{\\}\\|\\/]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[^*?+\\[()\\\\|]/, function () {\n var s = this.getCurrentState();\n if (s === 'u_class' && yytext === \"\\\\-\") {\n return 'ESC_CHAR';\n } else if (s === 'u' || s === 'xu' || s === 'u_class') {\n throw new SyntaxError('invalid Unicode escape ' + yytext);\n }\n return 'ESC_CHAR';\n}], [/^\\(/, function () {\n return 'CHAR';\n}], [/^\\)/, function () {\n return 'CHAR';\n}], [/^\\(\\?=/, function () {\n return 'POS_LA_ASSERT';\n}], [/^\\(\\?!/, function () {\n return 'NEG_LA_ASSERT';\n}], [/^\\(\\?<=/, function () {\n return 'POS_LB_ASSERT';\n}], [/^\\(\\?<!/, function () {\n return 'NEG_LB_ASSERT';\n}], [/^\\(\\?:/, function () {\n return 'NON_CAPTURE_GROUP';\n}], [/^\\(\\?<(([\\u0041-\\u005a\\u0061-\\u007a\\u00aa\\u00b5\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e-\\u066f\\u0671-\\u06d3\\u06d5\\u06e5-\\u06e6\\u06ee-\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4-\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc-\\u09dd\\u09df-\\u09e1\\u09f0-\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0-\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c-\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60-\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0-\\u0ce1\\u0cf1-\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2-\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065-\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\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\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae-\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5-\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\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\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\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\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a-\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd-\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5-\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\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]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\ude80-\\ude9c\\udea0-\\uded0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf75\\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\\ude10-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd23\\udf00-\\udf1c\\udf27\\udf30-\\udf45\\udfe0-\\udff6]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd44\\udd50-\\udd72\\udd76\\udd83-\\uddb2\\uddc1-\\uddc4\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude2b\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udede\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3d\\udf50\\udf5d-\\udf61]|\\ud805[\\udc00-\\udc34\\udc47-\\udc4a\\udc5f\\udc80-\\udcaf\\udcc4-\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udeb8\\udf00-\\udf1a]|\\ud806[\\udc00-\\udc2b\\udca0-\\udcdf\\udcff\\udda0-\\udda7\\uddaa-\\uddd0\\udde1\\udde3\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude89\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd30\\udd46\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd89\\udd98\\udee0-\\udef2]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf50\\udf93-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99]|\\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[\\udd00-\\udd2c\\udd37-\\udd3d\\udd4e\\udec0-\\udeeb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd4b]|\\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]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\}))(([\\u0030-\\u0039\\u0041-\\u005a\\u005f\\u0061-\\u007a\\u00aa\\u00b5\\u00b7\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0300-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u0483-\\u0487\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u07fd\\u0800-\\u082d\\u0840-\\u085b\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u08d3-\\u08e1\\u08e3-\\u0963\\u0966-\\u096f\\u0971-\\u0983\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bc-\\u09c4\\u09c7-\\u09c8\\u09cb-\\u09ce\\u09d7\\u09dc-\\u09dd\\u09df-\\u09e3\\u09e6-\\u09f1\\u09fc\\u09fe\\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\\u0a81-\\u0a83\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abc-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ad0\\u0ae0-\\u0ae3\\u0ae6-\\u0aef\\u0af9-\\u0aff\\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-\\u0b6f\\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-\\u0bcd\\u0bd0\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\\u0c58-\\u0c5a\\u0c60-\\u0c63\\u0c66-\\u0c6f\\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\\u0d00-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d54-\\u0d57\\u0d5f-\\u0d63\\u0d66-\\u0d6f\\u0d7a-\\u0d7f\\u0d82-\\u0d83\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2-\\u0df3\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u0e50-\\u0e59\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0edc-\\u0edf\\u0f00\\u0f18-\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f47\\u0f49-\\u0f6c\\u0f71-\\u0f84\\u0f86-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1049\\u1050-\\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\\u135d-\\u135f\\u1369-\\u1371\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176c\\u176e-\\u1770\\u1772-\\u1773\\u1780-\\u17d3\\u17d7\\u17dc-\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u19d0-\\u19da\\u1a00-\\u1a1b\\u1a20-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1aa7\\u1ab0-\\u1abd\\u1b00-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1bf3\\u1c00-\\u1c37\\u1c40-\\u1c49\\u1c4d-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1cd0-\\u1cd2\\u1cd4-\\u1cfa\\u1d00-\\u1df9\\u1dfb-\\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\\u203f-\\u2040\\u2054\\u2071\\u207f\\u2090-\\u209c\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d7f-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2de0-\\u2dff\\u3005-\\u3007\\u3021-\\u302f\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua8fd-\\ua92d\\ua930-\\ua953\\ua960-\\ua97c\\ua980-\\ua9c0\\ua9cf-\\ua9d9\\ua9e0-\\ua9fe\\uaa00-\\uaa36\\uaa40-\\uaa4d\\uaa50-\\uaa59\\uaa60-\\uaa76\\uaa7a-\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaef\\uaaf2-\\uaaf6\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabea\\uabec-\\uabed\\uabf0-\\uabf9\\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\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33-\\ufe34\\ufe4d-\\ufe4f\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff10-\\uff19\\uff21-\\uff3a\\uff3f\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\uddfd\\ude80-\\ude9c\\udea0-\\uded0\\udee0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udca0-\\udca9\\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-\\ude35\\ude38-\\ude3a\\ude3f\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee6\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd27\\udd30-\\udd39\\udf00-\\udf1c\\udf27\\udf30-\\udf50\\udfe0-\\udff6]|\\ud804[\\udc00-\\udc46\\udc66-\\udc6f\\udc7f-\\udcba\\udcd0-\\udce8\\udcf0-\\udcf9\\udd00-\\udd34\\udd36-\\udd3f\\udd44-\\udd46\\udd50-\\udd73\\udd76\\udd80-\\uddc4\\uddc9-\\uddcc\\uddd0-\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude37\\ude3e\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udeea\\udef0-\\udef9\\udf00-\\udf03\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3b-\\udf44\\udf47-\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc00-\\udc4a\\udc50-\\udc59\\udc5e-\\udc5f\\udc80-\\udcc5\\udcc7\\udcd0-\\udcd9\\udd80-\\uddb5\\uddb8-\\uddc0\\uddd8-\\udddd\\ude00-\\ude40\\ude44\\ude50-\\ude59\\ude80-\\udeb8\\udec0-\\udec9\\udf00-\\udf1a\\udf1d-\\udf2b\\udf30-\\udf39]|\\ud806[\\udc00-\\udc3a\\udca0-\\udce9\\udcff\\udda0-\\udda7\\uddaa-\\uddd7\\uddda-\\udde1\\udde3-\\udde4\\ude00-\\ude3e\\ude47\\ude50-\\ude99\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc40\\udc50-\\udc59\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd36\\udd3a\\udd3c-\\udd3d\\udd3f-\\udd47\\udd50-\\udd59\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd8e\\udd90-\\udd91\\udd93-\\udd98\\udda0-\\udda9\\udee0-\\udef6]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\ude60-\\ude69\\uded0-\\udeed\\udef0-\\udef4\\udf00-\\udf36\\udf40-\\udf43\\udf50-\\udf59\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf4f-\\udf87\\udf8f-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99\\udc9d-\\udc9e]|\\ud834[\\udd65-\\udd69\\udd6d-\\udd72\\udd7b-\\udd82\\udd85-\\udd8b\\uddaa-\\uddad\\ude42-\\ude44]|\\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\\udfce-\\udfff]|\\ud836[\\ude00-\\ude36\\ude3b-\\ude6c\\ude75\\ude84\\ude9b-\\ude9f\\udea1-\\udeaf]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23-\\udc24\\udc26-\\udc2a\\udd00-\\udd2c\\udd30-\\udd3d\\udd40-\\udd49\\udd4e\\udec0-\\udef9]|\\ud83a[\\udc00-\\udcc4\\udcd0-\\udcd6\\udd00-\\udd4b\\udd50-\\udd59]|\\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]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\udb40[\\udd00-\\uddef])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\})|[\\u200c\\u200d])*>/, function () {\n yytext = yytext.slice(3, -1);\n validateUnicodeGroupName(yytext, this.getCurrentState());\n return 'NAMED_CAPTURE_GROUP';\n}], [/^\\(/, function () {\n return 'L_PAREN';\n}], [/^\\)/, function () {\n return 'R_PAREN';\n}], [/^[*?+[^$]/, function () {\n return 'CHAR';\n}], [/^\\\\\\]/, function () {\n return 'ESC_CHAR';\n}], [/^\\]/, function () {\n this.popState();return 'R_BRACKET';\n}], [/^\\^/, function () {\n return 'BOS';\n}], [/^\\$/, function () {\n return 'EOS';\n}], [/^\\*/, function () {\n return 'STAR';\n}], [/^\\?/, function () {\n return 'Q_MARK';\n}], [/^\\+/, function () {\n return 'PLUS';\n}], [/^\\|/, function () {\n return 'BAR';\n}], [/^\\./, function () {\n return 'ANY';\n}], [/^\\//, function () {\n return 'SLASH';\n}], [/^[^*?+\\[()\\\\|]/, function () {\n return 'CHAR';\n}], [/^\\[\\^/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'NEG_CLASS';\n}], [/^\\[/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'L_BRACKET';\n}]];\nvar lexRulesByConditions = { \"INITIAL\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"xu\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"x\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u_class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51] };\n\nvar EOF_TOKEN = {\n type: EOF,\n value: ''\n};\n\ntokenizer = {\n initString: function initString(string) {\n this._string = string;\n this._cursor = 0;\n\n this._states = ['INITIAL'];\n this._tokensQueue = [];\n\n this._currentLine = 1;\n this._currentColumn = 0;\n this._currentLineBeginOffset = 0;\n\n /**\n * Matched token location data.\n */\n this._tokenStartOffset = 0;\n this._tokenEndOffset = 0;\n this._tokenStartLine = 1;\n this._tokenEndLine = 1;\n this._tokenStartColumn = 0;\n this._tokenEndColumn = 0;\n\n return this;\n },\n\n\n /**\n * Returns tokenizer states.\n */\n getStates: function getStates() {\n return this._states;\n },\n getCurrentState: function getCurrentState() {\n return this._states[this._states.length - 1];\n },\n pushState: function pushState(state) {\n this._states.push(state);\n },\n begin: function begin(state) {\n this.pushState(state);\n },\n popState: function popState() {\n if (this._states.length > 1) {\n return this._states.pop();\n }\n return this._states[0];\n },\n getNextToken: function getNextToken() {\n // Something was queued, return it.\n if (this._tokensQueue.length > 0) {\n return this.onToken(this._toToken(this._tokensQueue.shift()));\n }\n\n if (!this.hasMoreTokens()) {\n return this.onToken(EOF_TOKEN);\n }\n\n var string = this._string.slice(this._cursor);\n var lexRulesForState = lexRulesByConditions[this.getCurrentState()];\n\n for (var i = 0; i < lexRulesForState.length; i++) {\n var lexRuleIndex = lexRulesForState[i];\n var lexRule = lexRules[lexRuleIndex];\n\n var matched = this._match(string, lexRule[0]);\n\n // Manual handling of EOF token (the end of string). Return it\n // as `EOF` symbol.\n if (string === '' && matched === '') {\n this._cursor++;\n }\n\n if (matched !== null) {\n yytext = matched;\n yyleng = yytext.length;\n var token = lexRule[1].call(this);\n\n if (!token) {\n return this.getNextToken();\n }\n\n // If multiple tokens are returned, save them to return\n // on next `getNextToken` call.\n\n if (Array.isArray(token)) {\n var tokensToQueue = token.slice(1);\n token = token[0];\n if (tokensToQueue.length > 0) {\n var _tokensQueue;\n\n (_tokensQueue = this._tokensQueue).unshift.apply(_tokensQueue, _toConsumableArray(tokensToQueue));\n }\n }\n\n return this.onToken(this._toToken(token, yytext));\n }\n }\n\n if (this.isEOF()) {\n this._cursor++;\n return EOF_TOKEN;\n }\n\n this.throwUnexpectedToken(string[0], this._currentLine, this._currentColumn);\n },\n\n\n /**\n * Throws default \"Unexpected token\" exception, showing the actual\n * line from the source, pointing with the ^ marker to the bad token.\n * In addition, shows `line:column` location.\n */\n throwUnexpectedToken: function throwUnexpectedToken(symbol, line, column) {\n var lineSource = this._string.split('\\n')[line - 1];\n var lineData = '';\n\n if (lineSource) {\n var pad = ' '.repeat(column);\n lineData = '\\n\\n' + lineSource + '\\n' + pad + '^\\n';\n }\n\n throw new SyntaxError(lineData + 'Unexpected token: \"' + symbol + '\" ' + ('at ' + line + ':' + column + '.'));\n },\n getCursor: function getCursor() {\n return this._cursor;\n },\n getCurrentLine: function getCurrentLine() {\n return this._currentLine;\n },\n getCurrentColumn: function getCurrentColumn() {\n return this._currentColumn;\n },\n _captureLocation: function _captureLocation(matched) {\n var nlRe = /\\n/g;\n\n // Absolute offsets.\n this._tokenStartOffset = this._cursor;\n\n // Line-based locations, start.\n this._tokenStartLine = this._currentLine;\n this._tokenStartColumn = this._tokenStartOffset - this._currentLineBeginOffset;\n\n // Extract `\\n` in the matched token.\n var nlMatch = void 0;\n while ((nlMatch = nlRe.exec(matched)) !== null) {\n this._currentLine++;\n this._currentLineBeginOffset = this._tokenStartOffset + nlMatch.index + 1;\n }\n\n this._tokenEndOffset = this._cursor + matched.length;\n\n // Line-based locations, end.\n this._tokenEndLine = this._currentLine;\n this._tokenEndColumn = this._currentColumn = this._tokenEndOffset - this._currentLineBeginOffset;\n },\n _toToken: function _toToken(tokenType) {\n var yytext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n return {\n // Basic data.\n type: tokenType,\n value: yytext,\n\n // Location data.\n startOffset: this._tokenStartOffset,\n endOffset: this._tokenEndOffset,\n startLine: this._tokenStartLine,\n endLine: this._tokenEndLine,\n startColumn: this._tokenStartColumn,\n endColumn: this._tokenEndColumn\n };\n },\n isEOF: function isEOF() {\n return this._cursor === this._string.length;\n },\n hasMoreTokens: function hasMoreTokens() {\n return this._cursor <= this._string.length;\n },\n _match: function _match(string, regexp) {\n var matched = string.match(regexp);\n if (matched) {\n // Handle `\\n` in the matched token to track line numbers.\n this._captureLocation(matched[0]);\n this._cursor += matched[0].length;\n return matched[0];\n }\n return null;\n },\n\n\n /**\n * Allows analyzing, and transforming token. Default implementation\n * just passes the token through.\n */\n onToken: function onToken(token) {\n return token;\n }\n};\n\n/**\n * Expose tokenizer so it can be accessed in semantic actions.\n */\nyy.lexer = tokenizer;\nyy.tokenizer = tokenizer;\n\n/**\n * Global parsing options. Some options can be shadowed per\n * each `parse` call, if the optations are passed.\n *\n * Initalized to the `captureLocations` which is passed\n * from the generator. Other options can be added at runtime.\n */\nyy.options = {\n captureLocations: true\n};\n\n/**\n * Parsing module.\n */\nvar yyparse = {\n /**\n * Sets global parsing options.\n */\n setOptions: function setOptions(options) {\n yy.options = options;\n return this;\n },\n\n\n /**\n * Returns parsing options.\n */\n getOptions: function getOptions() {\n return yy.options;\n },\n\n\n /**\n * Parses a string.\n */\n parse: function parse(string, parseOptions) {\n if (!tokenizer) {\n throw new Error('Tokenizer instance wasn\\'t specified.');\n }\n\n tokenizer.initString(string);\n\n /**\n * If parse options are passed, override global parse options for\n * this call, and later restore global options.\n */\n var globalOptions = yy.options;\n if (parseOptions) {\n yy.options = Object.assign({}, yy.options, parseOptions);\n }\n\n /**\n * Allow callers to do setup work based on the\n * parsing string, and passed options.\n */\n yyparse.onParseBegin(string, tokenizer, yy.options);\n\n stack.length = 0;\n stack.push(0);\n\n var token = tokenizer.getNextToken();\n var shiftedToken = null;\n\n do {\n if (!token) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedEndOfInput();\n }\n\n var state = stack[stack.length - 1];\n var column = tokens[token.type];\n\n if (!table[state].hasOwnProperty(column)) {\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n var entry = table[state][column];\n\n // Shift action.\n if (entry[0] === 's') {\n var _loc2 = null;\n\n if (yy.options.captureLocations) {\n _loc2 = {\n startOffset: token.startOffset,\n endOffset: token.endOffset,\n startLine: token.startLine,\n endLine: token.endLine,\n startColumn: token.startColumn,\n endColumn: token.endColumn\n };\n }\n\n shiftedToken = this.onShift(token);\n\n stack.push({ symbol: tokens[shiftedToken.type], semanticValue: shiftedToken.value, loc: _loc2 }, Number(entry.slice(1)));\n\n token = tokenizer.getNextToken();\n }\n\n // Reduce action.\n else if (entry[0] === 'r') {\n var productionNumber = entry.slice(1);\n var production = productions[productionNumber];\n var hasSemanticAction = typeof production[2] === 'function';\n var semanticValueArgs = hasSemanticAction ? [] : null;\n\n var locationArgs = hasSemanticAction && yy.options.captureLocations ? [] : null;\n\n if (production[1] !== 0) {\n var rhsLength = production[1];\n while (rhsLength-- > 0) {\n stack.pop();\n var stackEntry = stack.pop();\n\n if (hasSemanticAction) {\n semanticValueArgs.unshift(stackEntry.semanticValue);\n\n if (locationArgs) {\n locationArgs.unshift(stackEntry.loc);\n }\n }\n }\n }\n\n var reduceStackEntry = { symbol: production[0] };\n\n if (hasSemanticAction) {\n yytext = shiftedToken ? shiftedToken.value : null;\n yyleng = shiftedToken ? shiftedToken.value.length : null;\n\n var semanticActionArgs = locationArgs !== null ? semanticValueArgs.concat(locationArgs) : semanticValueArgs;\n\n production[2].apply(production, _toConsumableArray(semanticActionArgs));\n\n reduceStackEntry.semanticValue = __;\n\n if (locationArgs) {\n reduceStackEntry.loc = __loc;\n }\n }\n\n var nextState = stack[stack.length - 1];\n var symbolToReduceWith = production[0];\n\n stack.push(reduceStackEntry, table[nextState][symbolToReduceWith]);\n }\n\n // Accept.\n else if (entry === 'acc') {\n stack.pop();\n var parsed = stack.pop();\n\n if (stack.length !== 1 || stack[0] !== 0 || tokenizer.hasMoreTokens()) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n if (parsed.hasOwnProperty('semanticValue')) {\n yy.options = globalOptions;\n yyparse.onParseEnd(parsed.semanticValue);\n return parsed.semanticValue;\n }\n\n yyparse.onParseEnd();\n\n // Restore options.\n yy.options = globalOptions;\n return true;\n }\n } while (tokenizer.hasMoreTokens() || stack.length > 1);\n },\n setTokenizer: function setTokenizer(customTokenizer) {\n tokenizer = customTokenizer;\n return yyparse;\n },\n getTokenizer: function getTokenizer() {\n return tokenizer;\n },\n onParseBegin: function onParseBegin(string, tokenizer, options) {},\n onParseEnd: function onParseEnd(parsed) {},\n\n\n /**\n * Allows analyzing, and transforming shifted token. Default implementation\n * just passes the token through.\n */\n onShift: function onShift(token) {\n return token;\n }\n};\n\n/**\n * Tracks capturing groups.\n */\nvar capturingGroupsCount = 0;\n\n/**\n * Tracks named groups.\n */\nvar namedGroups = {};\n\n/**\n * Parsing string.\n */\nvar parsingString = '';\n\nyyparse.onParseBegin = function (string, lexer) {\n parsingString = string;\n capturingGroupsCount = 0;\n namedGroups = {};\n\n var lastSlash = string.lastIndexOf('/');\n var flags = string.slice(lastSlash);\n\n if (flags.includes('x') && flags.includes('u')) {\n lexer.pushState('xu');\n } else {\n if (flags.includes('x')) {\n lexer.pushState('x');\n }\n if (flags.includes('u')) {\n lexer.pushState('u');\n }\n }\n};\n\n/**\n * On shifting `(` remember its number to used on reduce.\n */\nyyparse.onShift = function (token) {\n if (token.type === 'L_PAREN' || token.type === 'NAMED_CAPTURE_GROUP') {\n token.value = new String(token.value);\n token.value.groupNumber = ++capturingGroupsCount;\n }\n return token;\n};\n\n/**\n * Extracts ranges from the range string.\n */\nfunction getRange(text) {\n var range = text.match(/\\d+/g).map(Number);\n\n if (Number.isFinite(range[1]) && range[1] < range[0]) {\n throw new SyntaxError('Numbers out of order in ' + text + ' quantifier');\n }\n\n return range;\n}\n\n/**\n * Checks class range\n */\nfunction checkClassRange(from, to) {\n if (from.kind === 'control' || to.kind === 'control' || !isNaN(from.codePoint) && !isNaN(to.codePoint) && from.codePoint > to.codePoint) {\n throw new SyntaxError('Range ' + from.value + '-' + to.value + ' out of order in character class');\n }\n}\n\n// ---------------------- Unicode property -------------------------------------------\n\nvar unicodeProperties = require('../unicode/parser-unicode-properties.js');\n\n/**\n * Unicode property.\n */\nfunction UnicodeProperty(matched, loc) {\n var negative = matched[1] === 'P';\n var separatorIdx = matched.indexOf('=');\n\n var name = matched.slice(3, separatorIdx !== -1 ? separatorIdx : -1);\n var value = void 0;\n\n // General_Category allows using only value as a shorthand.\n var isShorthand = separatorIdx === -1 && unicodeProperties.isGeneralCategoryValue(name);\n\n // Binary propery name.\n var isBinaryProperty = separatorIdx === -1 && unicodeProperties.isBinaryPropertyName(name);\n\n if (isShorthand) {\n value = name;\n name = 'General_Category';\n } else if (isBinaryProperty) {\n value = name;\n } else {\n if (!unicodeProperties.isValidName(name)) {\n throw new SyntaxError('Invalid unicode property name: ' + name + '.');\n }\n\n value = matched.slice(separatorIdx + 1, -1);\n\n if (!unicodeProperties.isValidValue(name, value)) {\n throw new SyntaxError('Invalid ' + name + ' unicode property value: ' + value + '.');\n }\n }\n\n return Node({\n type: 'UnicodeProperty',\n name: name,\n value: value,\n negative: negative,\n shorthand: isShorthand,\n binary: isBinaryProperty,\n canonicalName: unicodeProperties.getCanonicalName(name) || name,\n canonicalValue: unicodeProperties.getCanonicalValue(value) || value\n }, loc);\n}\n\n// ----------------------------------------------------------------------------------\n\n\n/**\n * Creates a character node.\n */\nfunction Char(value, kind, loc) {\n var symbol = void 0;\n var codePoint = void 0;\n\n switch (kind) {\n case 'decimal':\n {\n codePoint = Number(value.slice(1));\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'oct':\n {\n codePoint = parseInt(value.slice(1), 8);\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'hex':\n case 'unicode':\n {\n if (value.lastIndexOf('\\\\u') > 0) {\n var _value$split$slice = value.split('\\\\u').slice(1),\n _value$split$slice2 = _slicedToArray(_value$split$slice, 2),\n lead = _value$split$slice2[0],\n trail = _value$split$slice2[1];\n\n lead = parseInt(lead, 16);\n trail = parseInt(trail, 16);\n codePoint = (lead - 0xd800) * 0x400 + (trail - 0xdc00) + 0x10000;\n\n symbol = String.fromCodePoint(codePoint);\n } else {\n var hex = value.slice(2).replace('{', '');\n codePoint = parseInt(hex, 16);\n if (codePoint > 0x10ffff) {\n throw new SyntaxError('Bad character escape sequence: ' + value);\n }\n\n symbol = String.fromCodePoint(codePoint);\n }\n break;\n }\n case 'meta':\n {\n switch (value) {\n case '\\\\t':\n symbol = '\\t';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\n':\n symbol = '\\n';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\r':\n symbol = '\\r';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\v':\n symbol = '\\v';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\f':\n symbol = '\\f';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\b':\n symbol = '\\b';\n codePoint = symbol.codePointAt(0);\n case '\\\\0':\n symbol = '\\0';\n codePoint = 0;\n case '.':\n symbol = '.';\n codePoint = NaN;\n break;\n default:\n codePoint = NaN;\n }\n break;\n }\n case 'simple':\n {\n symbol = value;\n codePoint = symbol.codePointAt(0);\n break;\n }\n }\n\n return Node({\n type: 'Char',\n value: value,\n kind: kind,\n symbol: symbol,\n codePoint: codePoint\n }, loc);\n}\n\n/**\n * Valid flags per current ECMAScript spec and\n * stage 3+ proposals.\n */\nvar validFlags = 'gimsuxy';\n\n/**\n * Checks the flags are valid, and that\n * we don't duplicate flags.\n */\nfunction checkFlags(flags) {\n var seen = new Set();\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = flags[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var flag = _step.value;\n\n if (seen.has(flag) || !validFlags.includes(flag)) {\n throw new SyntaxError('Invalid flags: ' + flags);\n }\n seen.add(flag);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return flags.split('').sort().join('');\n}\n\n/**\n * Parses patterns like \\1, \\2, etc. either as a backreference\n * to a group, or a deciaml char code.\n */\nfunction GroupRefOrDecChar(text, textLoc) {\n var reference = Number(text.slice(1));\n\n if (reference > 0 && reference <= capturingGroupsCount) {\n return Node({\n type: 'Backreference',\n kind: 'number',\n number: reference,\n reference: reference\n }, textLoc);\n }\n\n return Char(text, 'decimal', textLoc);\n}\n\n/**\n * Unicode names.\n */\nvar uReStart = /^\\\\u[0-9a-fA-F]{4}/; // only matches start of string\nvar ucpReStart = /^\\\\u\\{[0-9a-fA-F]{1,}\\}/; // only matches start of string\nvar ucpReAnywhere = /\\\\u\\{[0-9a-fA-F]{1,}\\}/; // matches anywhere in string\n\n/**\n * Validates Unicode group name.\n */\nfunction validateUnicodeGroupName(name, state) {\n var isUnicodeName = ucpReAnywhere.test(name);\n var isUnicodeState = state === 'u' || state === 'xu' || state === 'u_class';\n\n if (isUnicodeName && !isUnicodeState) {\n throw new SyntaxError('invalid group Unicode name \"' + name + '\", use `u` flag.');\n }\n\n return name;\n}\n\n// Matches the following production: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n//\n// RegExpUnicodeEscapeSequence ::\n// `u` LeadSurrogate `\\u` TrailSurrogate # as 'leadSurrogate', 'trailSurrogate'\n// `u` LeadSurrogate # as 'leadSurrogateOnly'\n// `u` TrailSurrogate # as 'trailSurrogateOnly'\n// `u` NonSurrogate # as 'nonSurrogate'\n// `u` `{` CodePoint `}` # as 'codePoint'\n//\n// LeadSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xD800 to 0xDBFF # [dD][89aAbB][0-9a-fA-F]{2}\n//\n// TrailSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xDC00 to 0xDFFF # [dD][c-fC-F][0-9a-fA-F]{2}\n//\n// NonSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is not in the inclusive range 0xD800 to 0xDFFF # [0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2}\n//\n// CodePoint ::\n// HexDigits but only if MV of HexDigits ≤ 0x10FFFF # 0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4})\n//\nvar uidRe = /\\\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\\})/;\n\nfunction decodeUnicodeGroupName(name) {\n return name.replace(new RegExp(uidRe, 'g'), function (_, leadSurrogate, trailSurrogate, leadSurrogateOnly, trailSurrogateOnly, nonSurrogate, codePoint) {\n if (leadSurrogate) {\n return String.fromCodePoint(parseInt(leadSurrogate, 16), parseInt(trailSurrogate, 16));\n }\n if (leadSurrogateOnly) {\n return String.fromCodePoint(parseInt(leadSurrogateOnly, 16));\n }\n if (trailSurrogateOnly) {\n // TODO: Per the spec: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n // > Each `\\u` TrailSurrogate for which the choice of associated `u` LeadSurrogate is ambiguous shall be associated with the nearest possible `u` LeadSurrogate that would otherwise have no corresponding `\\u` TrailSurrogate.\n return String.fromCodePoint(parseInt(trailSurrogateOnly, 16));\n }\n if (nonSurrogate) {\n return String.fromCodePoint(parseInt(nonSurrogate, 16));\n }\n if (codePoint) {\n return String.fromCodePoint(parseInt(codePoint, 16));\n }\n return _;\n });\n}\n\n/**\n * Extracts from `\\k<foo>` pattern either a backreference\n * to a named capturing group (if it presents), or parses it\n * as a list of char: `\\k`, `<`, `f`, etc.\n */\nfunction NamedGroupRefOrChars(text, textLoc) {\n var referenceRaw = text.slice(3, -1);\n var reference = decodeUnicodeGroupName(referenceRaw);\n\n if (namedGroups.hasOwnProperty(reference)) {\n return Node({\n type: 'Backreference',\n kind: 'name',\n number: namedGroups[reference],\n reference: reference,\n referenceRaw: referenceRaw\n }, textLoc);\n }\n\n // Else `\\k<foo>` should be parsed as a list of `Char`s.\n // This is really a 0.01% edge case, but we should handle it.\n\n var startOffset = null;\n var startLine = null;\n var endLine = null;\n var startColumn = null;\n\n if (textLoc) {\n startOffset = textLoc.startOffset;\n startLine = textLoc.startLine;\n endLine = textLoc.endLine;\n startColumn = textLoc.startColumn;\n }\n\n var charRe = /^[\\w$<>]/;\n var loc = void 0;\n\n var chars = [\n // Init to first \\k, taking 2 symbols.\n Char(text.slice(1, 2), 'simple', startOffset ? {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += 2,\n endColumn: startColumn += 2\n } : null)];\n\n // For \\k\n chars[0].escaped = true;\n\n // Other symbols.\n text = text.slice(2);\n\n while (text.length > 0) {\n var matched = null;\n\n // Unicode, \\u003B or \\u{003B}\n if ((matched = text.match(uReStart)) || (matched = text.match(ucpReStart))) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += matched[0].length,\n endColumn: startColumn += matched[0].length\n };\n }\n chars.push(Char(matched[0], 'unicode', loc));\n text = text.slice(matched[0].length);\n }\n\n // Simple char.\n else if (matched = text.match(charRe)) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: ++startOffset,\n endColumn: ++startColumn\n };\n }\n chars.push(Char(matched[0], 'simple', loc));\n text = text.slice(1);\n }\n }\n\n return chars;\n}\n\n/**\n * Creates an AST node with a location.\n */\nfunction Node(node, loc) {\n if (yy.options.captureLocations) {\n node.loc = {\n source: parsingString.slice(loc.startOffset, loc.endOffset),\n start: {\n line: loc.startLine,\n column: loc.startColumn,\n offset: loc.startOffset\n },\n end: {\n line: loc.endLine,\n column: loc.endColumn,\n offset: loc.endOffset\n }\n };\n }\n return node;\n}\n\n/**\n * Creates location node.\n */\nfunction loc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nfunction unexpectedToken(token) {\n if (token.type === EOF) {\n unexpectedEndOfInput();\n }\n\n tokenizer.throwUnexpectedToken(token.value, token.startLine, token.startColumn);\n}\n\nfunction unexpectedEndOfInput() {\n parseError('Unexpected end of input.');\n}\n\nfunction parseError(message) {\n throw new SyntaxError(message);\n}\n\nmodule.exports = yyparse;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar regexpTreeParser = require('./generated/regexp-tree');\n\n/**\n * Original parse function.\n */\nvar generatedParseFn = regexpTreeParser.parse.bind(regexpTreeParser);\n\n/**\n * Parses a regular expression.\n *\n * Override original `regexpTreeParser.parse` to convert a value to a string,\n * since in regexp-tree we may pass strings, and RegExp instance.\n */\nregexpTreeParser.parse = function (regexp, options) {\n return generatedParseFn('' + regexp, options);\n};\n\n// By default do not capture locations; callers may override.\nregexpTreeParser.setOptions({ captureLocations: false });\n\nmodule.exports = regexpTreeParser;","'use strict';\n\n/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\nvar NON_BINARY_PROP_NAMES_TO_ALIASES = {\n General_Category: 'gc',\n Script: 'sc',\n Script_Extensions: 'scx'\n};\n\nvar NON_BINARY_ALIASES_TO_PROP_NAMES = inverseMap(NON_BINARY_PROP_NAMES_TO_ALIASES);\n\nvar BINARY_PROP_NAMES_TO_ALIASES = {\n ASCII: 'ASCII',\n ASCII_Hex_Digit: 'AHex',\n Alphabetic: 'Alpha',\n Any: 'Any',\n Assigned: 'Assigned',\n Bidi_Control: 'Bidi_C',\n Bidi_Mirrored: 'Bidi_M',\n Case_Ignorable: 'CI',\n Cased: 'Cased',\n Changes_When_Casefolded: 'CWCF',\n Changes_When_Casemapped: 'CWCM',\n Changes_When_Lowercased: 'CWL',\n Changes_When_NFKC_Casefolded: 'CWKCF',\n Changes_When_Titlecased: 'CWT',\n Changes_When_Uppercased: 'CWU',\n Dash: 'Dash',\n Default_Ignorable_Code_Point: 'DI',\n Deprecated: 'Dep',\n Diacritic: 'Dia',\n Emoji: 'Emoji',\n Emoji_Component: 'Emoji_Component',\n Emoji_Modifier: 'Emoji_Modifier',\n Emoji_Modifier_Base: 'Emoji_Modifier_Base',\n Emoji_Presentation: 'Emoji_Presentation',\n Extended_Pictographic: 'Extended_Pictographic',\n Extender: 'Ext',\n Grapheme_Base: 'Gr_Base',\n Grapheme_Extend: 'Gr_Ext',\n Hex_Digit: 'Hex',\n IDS_Binary_Operator: 'IDSB',\n IDS_Trinary_Operator: 'IDST',\n ID_Continue: 'IDC',\n ID_Start: 'IDS',\n Ideographic: 'Ideo',\n Join_Control: 'Join_C',\n Logical_Order_Exception: 'LOE',\n Lowercase: 'Lower',\n Math: 'Math',\n Noncharacter_Code_Point: 'NChar',\n Pattern_Syntax: 'Pat_Syn',\n Pattern_White_Space: 'Pat_WS',\n Quotation_Mark: 'QMark',\n Radical: 'Radical',\n Regional_Indicator: 'RI',\n Sentence_Terminal: 'STerm',\n Soft_Dotted: 'SD',\n Terminal_Punctuation: 'Term',\n Unified_Ideograph: 'UIdeo',\n Uppercase: 'Upper',\n Variation_Selector: 'VS',\n White_Space: 'space',\n XID_Continue: 'XIDC',\n XID_Start: 'XIDS'\n};\n\nvar BINARY_ALIASES_TO_PROP_NAMES = inverseMap(BINARY_PROP_NAMES_TO_ALIASES);\n\nvar GENERAL_CATEGORY_VALUE_TO_ALIASES = {\n Cased_Letter: 'LC',\n Close_Punctuation: 'Pe',\n Connector_Punctuation: 'Pc',\n Control: ['Cc', 'cntrl'],\n Currency_Symbol: 'Sc',\n Dash_Punctuation: 'Pd',\n Decimal_Number: ['Nd', 'digit'],\n Enclosing_Mark: 'Me',\n Final_Punctuation: 'Pf',\n Format: 'Cf',\n Initial_Punctuation: 'Pi',\n Letter: 'L',\n Letter_Number: 'Nl',\n Line_Separator: 'Zl',\n Lowercase_Letter: 'Ll',\n Mark: ['M', 'Combining_Mark'],\n Math_Symbol: 'Sm',\n Modifier_Letter: 'Lm',\n Modifier_Symbol: 'Sk',\n Nonspacing_Mark: 'Mn',\n Number: 'N',\n Open_Punctuation: 'Ps',\n Other: 'C',\n Other_Letter: 'Lo',\n Other_Number: 'No',\n Other_Punctuation: 'Po',\n Other_Symbol: 'So',\n Paragraph_Separator: 'Zp',\n Private_Use: 'Co',\n Punctuation: ['P', 'punct'],\n Separator: 'Z',\n Space_Separator: 'Zs',\n Spacing_Mark: 'Mc',\n Surrogate: 'Cs',\n Symbol: 'S',\n Titlecase_Letter: 'Lt',\n Unassigned: 'Cn',\n Uppercase_Letter: 'Lu'\n};\n\nvar GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES = inverseMap(GENERAL_CATEGORY_VALUE_TO_ALIASES);\n\nvar SCRIPT_VALUE_TO_ALIASES = {\n Adlam: 'Adlm',\n Ahom: 'Ahom',\n Anatolian_Hieroglyphs: 'Hluw',\n Arabic: 'Arab',\n Armenian: 'Armn',\n Avestan: 'Avst',\n Balinese: 'Bali',\n Bamum: 'Bamu',\n Bassa_Vah: 'Bass',\n Batak: 'Batk',\n Bengali: 'Beng',\n Bhaiksuki: 'Bhks',\n Bopomofo: 'Bopo',\n Brahmi: 'Brah',\n Braille: 'Brai',\n Buginese: 'Bugi',\n Buhid: 'Buhd',\n Canadian_Aboriginal: 'Cans',\n Carian: 'Cari',\n Caucasian_Albanian: 'Aghb',\n Chakma: 'Cakm',\n Cham: 'Cham',\n Cherokee: 'Cher',\n Common: 'Zyyy',\n Coptic: ['Copt', 'Qaac'],\n Cuneiform: 'Xsux',\n Cypriot: 'Cprt',\n Cyrillic: 'Cyrl',\n Deseret: 'Dsrt',\n Devanagari: 'Deva',\n Dogra: 'Dogr',\n Duployan: 'Dupl',\n Egyptian_Hieroglyphs: 'Egyp',\n Elbasan: 'Elba',\n Ethiopic: 'Ethi',\n Georgian: 'Geor',\n Glagolitic: 'Glag',\n Gothic: 'Goth',\n Grantha: 'Gran',\n Greek: 'Grek',\n Gujarati: 'Gujr',\n Gunjala_Gondi: 'Gong',\n Gurmukhi: 'Guru',\n Han: 'Hani',\n Hangul: 'Hang',\n Hanifi_Rohingya: 'Rohg',\n Hanunoo: 'Hano',\n Hatran: 'Hatr',\n Hebrew: 'Hebr',\n Hiragana: 'Hira',\n Imperial_Aramaic: 'Armi',\n Inherited: ['Zinh', 'Qaai'],\n Inscriptional_Pahlavi: 'Phli',\n Inscriptional_Parthian: 'Prti',\n Javanese: 'Java',\n Kaithi: 'Kthi',\n Kannada: 'Knda',\n Katakana: 'Kana',\n Kayah_Li: 'Kali',\n Kharoshthi: 'Khar',\n Khmer: 'Khmr',\n Khojki: 'Khoj',\n Khudawadi: 'Sind',\n Lao: 'Laoo',\n Latin: 'Latn',\n Lepcha: 'Lepc',\n Limbu: 'Limb',\n Linear_A: 'Lina',\n Linear_B: 'Linb',\n Lisu: 'Lisu',\n Lycian: 'Lyci',\n Lydian: 'Lydi',\n Mahajani: 'Mahj',\n Makasar: 'Maka',\n Malayalam: 'Mlym',\n Mandaic: 'Mand',\n Manichaean: 'Mani',\n Marchen: 'Marc',\n Medefaidrin: 'Medf',\n Masaram_Gondi: 'Gonm',\n Meetei_Mayek: 'Mtei',\n Mende_Kikakui: 'Mend',\n Meroitic_Cursive: 'Merc',\n Meroitic_Hieroglyphs: 'Mero',\n Miao: 'Plrd',\n Modi: 'Modi',\n Mongolian: 'Mong',\n Mro: 'Mroo',\n Multani: 'Mult',\n Myanmar: 'Mymr',\n Nabataean: 'Nbat',\n New_Tai_Lue: 'Talu',\n Newa: 'Newa',\n Nko: 'Nkoo',\n Nushu: 'Nshu',\n Ogham: 'Ogam',\n Ol_Chiki: 'Olck',\n Old_Hungarian: 'Hung',\n Old_Italic: 'Ital',\n Old_North_Arabian: 'Narb',\n Old_Permic: 'Perm',\n Old_Persian: 'Xpeo',\n Old_Sogdian: 'Sogo',\n Old_South_Arabian: 'Sarb',\n Old_Turkic: 'Orkh',\n Oriya: 'Orya',\n Osage: 'Osge',\n Osmanya: 'Osma',\n Pahawh_Hmong: 'Hmng',\n Palmyrene: 'Palm',\n Pau_Cin_Hau: 'Pauc',\n Phags_Pa: 'Phag',\n Phoenician: 'Phnx',\n Psalter_Pahlavi: 'Phlp',\n Rejang: 'Rjng',\n Runic: 'Runr',\n Samaritan: 'Samr',\n Saurashtra: 'Saur',\n Sharada: 'Shrd',\n Shavian: 'Shaw',\n Siddham: 'Sidd',\n SignWriting: 'Sgnw',\n Sinhala: 'Sinh',\n Sogdian: 'Sogd',\n Sora_Sompeng: 'Sora',\n Soyombo: 'Soyo',\n Sundanese: 'Sund',\n Syloti_Nagri: 'Sylo',\n Syriac: 'Syrc',\n Tagalog: 'Tglg',\n Tagbanwa: 'Tagb',\n Tai_Le: 'Tale',\n Tai_Tham: 'Lana',\n Tai_Viet: 'Tavt',\n Takri: 'Takr',\n Tamil: 'Taml',\n Tangut: 'Tang',\n Telugu: 'Telu',\n Thaana: 'Thaa',\n Thai: 'Thai',\n Tibetan: 'Tibt',\n Tifinagh: 'Tfng',\n Tirhuta: 'Tirh',\n Ugaritic: 'Ugar',\n Vai: 'Vaii',\n Warang_Citi: 'Wara',\n Yi: 'Yiii',\n Zanabazar_Square: 'Zanb'\n};\n\nvar SCRIPT_VALUE_ALIASES_TO_VALUE = inverseMap(SCRIPT_VALUE_TO_ALIASES);\n\nfunction inverseMap(data) {\n var inverse = {};\n\n for (var name in data) {\n if (!data.hasOwnProperty(name)) {\n continue;\n }\n var value = data[name];\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n inverse[value[i]] = name;\n }\n } else {\n inverse[value] = name;\n }\n }\n\n return inverse;\n}\n\nfunction isValidName(name) {\n return NON_BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isValidValue(name, value) {\n if (isGeneralCategoryName(name)) {\n return isGeneralCategoryValue(value);\n }\n\n if (isScriptCategoryName(name)) {\n return isScriptCategoryValue(value);\n }\n\n return false;\n}\n\nfunction isAlias(name) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isGeneralCategoryName(name) {\n return name === 'General_Category' || name == 'gc';\n}\n\nfunction isScriptCategoryName(name) {\n return name === 'Script' || name === 'Script_Extensions' || name === 'sc' || name === 'scx';\n}\n\nfunction isGeneralCategoryValue(value) {\n return GENERAL_CATEGORY_VALUE_TO_ALIASES.hasOwnProperty(value) || GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value);\n}\n\nfunction isScriptCategoryValue(value) {\n return SCRIPT_VALUE_TO_ALIASES.hasOwnProperty(value) || SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value);\n}\n\nfunction isBinaryPropertyName(name) {\n return BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction getCanonicalName(name) {\n if (NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n return null;\n}\n\nfunction getCanonicalValue(value) {\n if (GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value)) {\n return GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES[value];\n }\n\n if (SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value)) {\n return SCRIPT_VALUE_ALIASES_TO_VALUE[value];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(value)) {\n return BINARY_ALIASES_TO_PROP_NAMES[value];\n }\n\n return null;\n}\n\nmodule.exports = {\n isAlias: isAlias,\n isValidName: isValidName,\n isValidValue: isValidValue,\n isGeneralCategoryValue: isGeneralCategoryValue,\n isScriptCategoryValue: isScriptCategoryValue,\n isBinaryPropertyName: isBinaryPropertyName,\n getCanonicalName: getCanonicalName,\n getCanonicalValue: getCanonicalValue,\n\n NON_BINARY_PROP_NAMES_TO_ALIASES: NON_BINARY_PROP_NAMES_TO_ALIASES,\n NON_BINARY_ALIASES_TO_PROP_NAMES: NON_BINARY_ALIASES_TO_PROP_NAMES,\n\n BINARY_PROP_NAMES_TO_ALIASES: BINARY_PROP_NAMES_TO_ALIASES,\n BINARY_ALIASES_TO_PROP_NAMES: BINARY_ALIASES_TO_PROP_NAMES,\n\n GENERAL_CATEGORY_VALUE_TO_ALIASES: GENERAL_CATEGORY_VALUE_TO_ALIASES,\n GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES: GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES,\n\n SCRIPT_VALUE_TO_ALIASES: SCRIPT_VALUE_TO_ALIASES,\n SCRIPT_VALUE_ALIASES_TO_VALUE: SCRIPT_VALUE_ALIASES_TO_VALUE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar compatTranspiler = require('./compat-transpiler');\nvar generator = require('./generator');\nvar optimizer = require('./optimizer');\nvar parser = require('./parser');\nvar _transform = require('./transform');\nvar _traverse = require('./traverse');\nvar fa = require('./interpreter/finite-automaton');\n\nvar _require = require('./compat-transpiler/runtime'),\n RegExpTree = _require.RegExpTree;\n\n/**\n * An API object for RegExp processing (parsing/transform/generation).\n */\n\n\nvar regexpTree = {\n /**\n * Parser module exposed.\n */\n parser: parser,\n\n /**\n * Expose finite-automaton module.\n */\n fa: fa,\n\n /**\n * `TransformResult` exposed.\n */\n TransformResult: _transform.TransformResult,\n\n /**\n * Parses a regexp string, producing an AST.\n *\n * @param string regexp\n *\n * a regular expression in different formats: string, AST, RegExp.\n *\n * @param Object options\n *\n * parsing options for this parse call. Default are:\n *\n * - captureLocations: boolean\n * - any other custom options\n *\n * @return Object AST\n */\n parse: function parse(regexp, options) {\n return parser.parse('' + regexp, options);\n },\n\n\n /**\n * Traverses a RegExp AST.\n *\n * @param Object ast\n * @param Object | Array<Object> handlers\n *\n * Each `handler` is an object containing handler function for needed\n * node types. Example:\n *\n * regexpTree.traverse(ast, {\n * onChar(node) {\n * ...\n * },\n * });\n *\n * The value for a node type may also be an object with functions pre and post.\n * This enables more context-aware analyses, e.g. measuring star height.\n */\n traverse: function traverse(ast, handlers, options) {\n return _traverse.traverse(ast, handlers, options);\n },\n\n\n /**\n * Transforms a regular expression.\n *\n * A regexp can be passed in different formats (string, regexp or AST),\n * applying a set of transformations. It is a convenient wrapper\n * on top of \"parse-traverse-generate\" tool chain.\n *\n * @param string | AST | RegExp regexp - a regular expression;\n * @param Object | Array<Object> handlers - a list of handlers.\n *\n * @return TransformResult - a transformation result.\n */\n transform: function transform(regexp, handlers) {\n return _transform.transform(regexp, handlers);\n },\n\n\n /**\n * Generates a RegExp string from an AST.\n *\n * @param Object ast\n *\n * Invariant:\n *\n * regexpTree.generate(regexpTree.parse('/[a-z]+/i')); // '/[a-z]+/i'\n */\n generate: function generate(ast) {\n return generator.generate(ast);\n },\n\n\n /**\n * Creates a RegExp object from a regexp string.\n *\n * @param string regexp\n */\n toRegExp: function toRegExp(regexp) {\n var compat = this.compatTranspile(regexp);\n return new RegExp(compat.getSource(), compat.getFlags());\n },\n\n\n /**\n * Optimizes a regular expression by replacing some\n * sub-expressions with their idiomatic patterns.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n optimize: function optimize(regexp, whitelist) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n blacklist = _ref.blacklist;\n\n return optimizer.optimize(regexp, { whitelist: whitelist, blacklist: blacklist });\n },\n\n\n /**\n * Translates a regular expression in new syntax or in new format\n * into equivalent expressions in old syntax.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n compatTranspile: function compatTranspile(regexp, whitelist) {\n return compatTranspiler.transform(regexp, whitelist);\n },\n\n\n /**\n * Executes a regular expression on a string.\n *\n * @param RegExp|string re - a regular expression.\n * @param string string - a testing string.\n */\n exec: function exec(re, string) {\n if (typeof re === 'string') {\n var compat = this.compatTranspile(re);\n var extra = compat.getExtra();\n\n if (extra.namedCapturingGroups) {\n re = new RegExpTree(compat.toRegExp(), {\n flags: compat.getFlags(),\n source: compat.getSource(),\n groups: extra.namedCapturingGroups\n });\n } else {\n re = compat.toRegExp();\n }\n }\n\n return re.exec(string);\n }\n};\n\nmodule.exports = regexpTree;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar generator = require('../generator');\nvar parser = require('../parser');\nvar traverse = require('../traverse');\n\n/**\n * Transform result.\n */\n\nvar TransformResult = function () {\n /**\n * Initializes a transform result for an AST.\n *\n * @param Object ast - an AST node\n * @param mixed extra - any extra data a transform may return\n */\n function TransformResult(ast) {\n var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n _classCallCheck(this, TransformResult);\n\n this._ast = ast;\n this._source = null;\n this._string = null;\n this._regexp = null;\n this._extra = extra;\n }\n\n _createClass(TransformResult, [{\n key: 'getAST',\n value: function getAST() {\n return this._ast;\n }\n }, {\n key: 'setExtra',\n value: function setExtra(extra) {\n this._extra = extra;\n }\n }, {\n key: 'getExtra',\n value: function getExtra() {\n return this._extra;\n }\n }, {\n key: 'toRegExp',\n value: function toRegExp() {\n if (!this._regexp) {\n this._regexp = new RegExp(this.getSource(), this._ast.flags);\n }\n return this._regexp;\n }\n }, {\n key: 'getSource',\n value: function getSource() {\n if (!this._source) {\n this._source = generator.generate(this._ast.body);\n }\n return this._source;\n }\n }, {\n key: 'getFlags',\n value: function getFlags() {\n return this._ast.flags;\n }\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._string) {\n this._string = generator.generate(this._ast);\n }\n return this._string;\n }\n }]);\n\n return TransformResult;\n}();\n\nmodule.exports = {\n /**\n * Expose `TransformResult`.\n */\n TransformResult: TransformResult,\n\n /**\n * Transforms a regular expression applying a set of\n * transformation handlers.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n *\n * @param Object | Array<Object>:\n *\n * a handler (or a list of handlers) from `traverse` API.\n *\n * @return TransformResult instance.\n *\n * Example:\n *\n * transform(/[a-z]/i, {\n * onChar(path) {\n * const {node} = path;\n *\n * if (...) {\n * path.remove();\n * }\n * }\n * });\n */\n transform: function transform(regexp, handlers) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n traverse.traverse(ast, handlers);\n\n return new TransformResult(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Flattens a nested disjunction node to a list.\n *\n * /a|b|c|d/\n *\n * {{{a, b}, c}, d} -> [a, b, c, d]\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction disjunctionToList(node) {\n if (node.type !== 'Disjunction') {\n throw new TypeError('Expected \"Disjunction\" node, got \"' + node.type + '\"');\n }\n\n var list = [];\n\n if (node.left && node.left.type === 'Disjunction') {\n list.push.apply(list, _toConsumableArray(disjunctionToList(node.left)).concat([node.right]));\n } else {\n list.push(node.left, node.right);\n }\n\n return list;\n}\n\n/**\n * Builds a nested disjunction node from a list.\n *\n * /a|b|c|d/\n *\n * [a, b, c, d] -> {{{a, b}, c}, d}\n */\nfunction listToDisjunction(list) {\n return list.reduce(function (left, right) {\n return {\n type: 'Disjunction',\n left: left,\n right: right\n };\n });\n}\n\n/**\n * Increases a quantifier by one.\n * Does not change greediness.\n * * -> +\n * + -> {2,}\n * ? -> {1,2}\n * {2} -> {3}\n * {2,} -> {3,}\n * {2,3} -> {3,4}\n */\nfunction increaseQuantifierByOne(quantifier) {\n if (quantifier.kind === '*') {\n\n quantifier.kind = '+';\n } else if (quantifier.kind === '+') {\n\n quantifier.kind = 'Range';\n quantifier.from = 2;\n delete quantifier.to;\n } else if (quantifier.kind === '?') {\n\n quantifier.kind = 'Range';\n quantifier.from = 1;\n quantifier.to = 2;\n } else if (quantifier.kind === 'Range') {\n\n quantifier.from += 1;\n if (quantifier.to) {\n quantifier.to += 1;\n }\n }\n}\n\nmodule.exports = {\n disjunctionToList: disjunctionToList,\n listToDisjunction: listToDisjunction,\n increaseQuantifierByOne: increaseQuantifierByOne\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar NodePath = require('./node-path');\n\n/**\n * Does an actual AST traversal, using visitor pattern,\n * and calling set of callbacks.\n *\n * Based on https://github.com/olov/ast-traverse\n *\n * Expects AST in Mozilla Parser API: nodes which are supposed to be\n * handled should have `type` property.\n *\n * @param Object root - a root node to start traversal from.\n *\n * @param Object options - an object with set of callbacks:\n *\n * - `pre(node, parent, prop, index)` - a hook called on node enter\n * - `post`(node, parent, prop, index) - a hook called on node exit\n * - `skipProperty(prop)` - a predicated whether a property should be skipped\n */\nfunction astTraverse(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var pre = options.pre;\n var post = options.post;\n var skipProperty = options.skipProperty;\n\n function visit(node, parent, prop, idx) {\n if (!node || typeof node.type !== 'string') {\n return;\n }\n\n var res = undefined;\n if (pre) {\n res = pre(node, parent, prop, idx);\n }\n\n if (res !== false) {\n\n // A node can be replaced during traversal, so we have to\n // recalculate it from the parent, to avoid traversing \"dead\" nodes.\n if (parent && parent[prop]) {\n if (!isNaN(idx)) {\n node = parent[prop][idx];\n } else {\n node = parent[prop];\n }\n }\n\n for (var _prop in node) {\n if (node.hasOwnProperty(_prop)) {\n if (skipProperty ? skipProperty(_prop, node) : _prop[0] === '$') {\n continue;\n }\n\n var child = node[_prop];\n\n // Collection node.\n //\n // NOTE: a node (or several nodes) can be removed or inserted\n // during traversal.\n //\n // Current traversing index is stored on top of the\n // `NodePath.traversingIndexStack`. The stack is used to support\n // recursive nature of the traversal.\n //\n // In this case `NodePath.traversingIndex` (which we use here) is\n // updated in the NodePath remove/insert methods.\n //\n if (Array.isArray(child)) {\n var index = 0;\n NodePath.traversingIndexStack.push(index);\n while (index < child.length) {\n visit(child[index], node, _prop, index);\n index = NodePath.updateTraversingIndex(+1);\n }\n NodePath.traversingIndexStack.pop();\n }\n\n // Simple node.\n else {\n visit(child, node, _prop);\n }\n }\n }\n }\n\n if (post) {\n post(node, parent, prop, idx);\n }\n }\n\n visit(root, null);\n}\n\nmodule.exports = {\n /**\n * Traverses an AST.\n *\n * @param Object ast - an AST node\n *\n * @param Object | Array<Object> handlers:\n *\n * an object (or an array of objects)\n *\n * Each such object contains a handler function per node.\n * In case of an array of handlers, they are applied in order.\n * A handler may return a transformed node (or a different type).\n *\n * The per-node function may instead be an object with functions pre and post.\n * pre is called before visiting the node, post after.\n * If a handler is a function, it is treated as the pre function, with an empty post.\n *\n * @param Object options:\n *\n * a config object, specifying traversal options:\n *\n * `asNodes`: boolean - whether handlers should receives raw AST nodes\n * (false by default), instead of a `NodePath` wrapper. Note, by default\n * `NodePath` wrapper provides a set of convenient method to manipulate\n * a traversing AST, and also has access to all parents list. A raw\n * nodes traversal should be used in rare cases, when no `NodePath`\n * features are needed.\n *\n * Special hooks:\n *\n * - `shouldRun(ast)` - a predicate determining whether the handler\n * should be applied.\n *\n * NOTE: Multiple handlers are used as an optimization of applying all of\n * them in one AST traversal pass.\n */\n traverse: function traverse(ast, handlers) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { asNodes: false };\n\n\n if (!Array.isArray(handlers)) {\n handlers = [handlers];\n }\n\n // Filter out handlers by result of `shouldRun`, if the method is present.\n handlers = handlers.filter(function (handler) {\n if (typeof handler.shouldRun !== 'function') {\n return true;\n }\n return handler.shouldRun(ast);\n });\n\n NodePath.initRegistry();\n\n // Allow handlers to initializer themselves.\n handlers.forEach(function (handler) {\n if (typeof handler.init === 'function') {\n handler.init(ast);\n }\n });\n\n function getPathFor(node, parent, prop, index) {\n var parentPath = NodePath.getForNode(parent);\n var nodePath = NodePath.getForNode(node, parentPath, prop, index);\n\n return nodePath;\n }\n\n // Handle actual nodes.\n astTraverse(ast, {\n /**\n * Handler on node enter.\n */\n pre: function pre(node, parent, prop, index) {\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = handlers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var handler = _step.value;\n\n // \"Catch-all\" `*` handler.\n if (typeof handler['*'] === 'function') {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handler['*'](nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handler['*'](node, parent, prop, index);\n }\n }\n\n // Per-node handler.\n var handlerFuncPre = void 0;\n if (typeof handler[node.type] === 'function') {\n handlerFuncPre = handler[node.type];\n } else if (typeof handler[node.type] === 'object' && typeof handler[node.type].pre === 'function') {\n handlerFuncPre = handler[node.type].pre;\n }\n\n if (handlerFuncPre) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var _handlerResult = handlerFuncPre.call(handler, nodePath);\n // Explicitly stop traversal.\n if (_handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPre.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n },\n // pre func\n\n /**\n * Handler on node exit.\n */\n post: function post(node, parent, prop, index) {\n if (!node) {\n return;\n }\n\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = handlers[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var handler = _step2.value;\n\n // Per-node handler.\n var handlerFuncPost = void 0;\n if (typeof handler[node.type] === 'object' && typeof handler[node.type].post === 'function') {\n handlerFuncPost = handler[node.type].post;\n }\n\n if (handlerFuncPost) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handlerFuncPost.call(handler, nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPost.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n },\n // post func\n\n /**\n * Skip locations by default.\n */\n skipProperty: function skipProperty(prop) {\n return prop === 'loc';\n }\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DEFAULT_COLLECTION_PROP = 'expressions';\nvar DEFAULT_SINGLE_PROP = 'expression';\n\n/**\n * NodePath class encapsulates a traversing node,\n * its parent node, property name in the parent node, and\n * an index (in case if a node is part of a collection).\n * It also provides set of methods for AST manipulation.\n */\n\nvar NodePath = function () {\n /**\n * NodePath constructor.\n *\n * @param Object node - an AST node\n * @param NodePath parentPath - a nullable parent path\n * @param string property - property name of the node in the parent\n * @param number index - index of the node in a collection.\n */\n function NodePath(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n _classCallCheck(this, NodePath);\n\n this.node = node;\n this.parentPath = parentPath;\n this.parent = parentPath ? parentPath.node : null;\n this.property = property;\n this.index = index;\n }\n\n _createClass(NodePath, [{\n key: '_enforceProp',\n value: function _enforceProp(property) {\n if (!this.node.hasOwnProperty(property)) {\n throw new Error('Node of type ' + this.node.type + ' doesn\\'t have \"' + property + '\" collection.');\n }\n }\n\n /**\n * Sets a node into a children collection or the single child.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param number index - index at which to set\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'setChild',\n value: function setChild(node) {\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n\n var childPath = void 0;\n if (index != null) {\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n this.node[property][index] = node;\n childPath = NodePath.getForNode(node, this, property, index);\n } else {\n if (!property) {\n property = DEFAULT_SINGLE_PROP;\n }\n this._enforceProp(property);\n this.node[property] = node;\n childPath = NodePath.getForNode(node, this, property, null);\n }\n return childPath;\n }\n\n /**\n * Appends a node to a children collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'appendChild',\n value: function appendChild(node) {\n var property = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n var end = this.node[property].length;\n return this.setChild(node, end, property);\n }\n\n /**\n * Inserts a node into a collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to insert into a collection\n * @param number index - index at which to insert\n * @param string property - name of the collection property\n */\n\n }, {\n key: 'insertChildAt',\n value: function insertChildAt(node, index) {\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_COLLECTION_PROP;\n\n this._enforceProp(property);\n\n this.node[property].splice(index, 0, node);\n\n // If we inserted a node before the traversing index,\n // we should increase the later.\n if (index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(+1);\n }\n\n this._rebuildIndex(this.node, property);\n }\n\n /**\n * Removes a node.\n */\n\n }, {\n key: 'remove',\n value: function remove() {\n if (this.isRemoved()) {\n return;\n }\n NodePath.registry.delete(this.node);\n\n this.node = null;\n\n if (!this.parent) {\n return;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property].splice(this.index, 1);\n\n // If we remove a node before the traversing index,\n // we should increase the later.\n if (this.index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(-1);\n }\n\n // Rebuild index.\n this._rebuildIndex(this.parent, this.property);\n\n this.index = null;\n this.property = null;\n\n return;\n }\n\n // A simple node.\n delete this.parent[this.property];\n this.property = null;\n }\n\n /**\n * Rebuilds child nodes index (used on remove/insert).\n */\n\n }, {\n key: '_rebuildIndex',\n value: function _rebuildIndex(parent, property) {\n var parentPath = NodePath.getForNode(parent);\n\n for (var i = 0; i < parent[property].length; i++) {\n var path = NodePath.getForNode(parent[property][i], parentPath, property, i);\n path.index = i;\n }\n }\n\n /**\n * Whether the path was removed.\n */\n\n }, {\n key: 'isRemoved',\n value: function isRemoved() {\n return this.node === null;\n }\n\n /**\n * Replaces a node with the passed one.\n */\n\n }, {\n key: 'replace',\n value: function replace(newNode) {\n NodePath.registry.delete(this.node);\n\n this.node = newNode;\n\n if (!this.parent) {\n return null;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property][this.index] = newNode;\n }\n\n // A simple node.\n else {\n this.parent[this.property] = newNode;\n }\n\n // Rebuild the node path for the new node.\n return NodePath.getForNode(newNode, this.parentPath, this.property, this.index);\n }\n\n /**\n * Updates a node inline.\n */\n\n }, {\n key: 'update',\n value: function update(nodeProps) {\n Object.assign(this.node, nodeProps);\n }\n\n /**\n * Returns parent.\n */\n\n }, {\n key: 'getParent',\n value: function getParent() {\n return this.parentPath;\n }\n\n /**\n * Returns nth child.\n */\n\n }, {\n key: 'getChild',\n value: function getChild() {\n var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.node.expressions) {\n return NodePath.getForNode(this.node.expressions[n], this, DEFAULT_COLLECTION_PROP, n);\n } else if (this.node.expression && n == 0) {\n return NodePath.getForNode(this.node.expression, this, DEFAULT_SINGLE_PROP);\n }\n return null;\n }\n\n /**\n * Whether a path node is syntactically equal to the passed one.\n *\n * NOTE: we don't rely on `source` property from the `loc` data\n * (which would be the fastest comparison), since it might be unsync\n * after several modifications. We use here simple `JSON.stringify`\n * excluding the `loc` data.\n *\n * @param NodePath other - path to compare to.\n * @return boolean\n */\n\n }, {\n key: 'hasEqualSource',\n value: function hasEqualSource(path) {\n return JSON.stringify(this.node, jsonSkipLoc) === JSON.stringify(path.node, jsonSkipLoc);\n }\n\n /**\n * JSON-encodes a node skipping location.\n */\n\n }, {\n key: 'jsonEncode',\n value: function jsonEncode() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n format = _ref.format,\n useLoc = _ref.useLoc;\n\n return JSON.stringify(this.node, useLoc ? null : jsonSkipLoc, format);\n }\n\n /**\n * Returns previous sibling.\n */\n\n }, {\n key: 'getPreviousSibling',\n value: function getPreviousSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index - 1], NodePath.getForNode(this.parent), this.property, this.index - 1);\n }\n\n /**\n * Returns next sibling.\n */\n\n }, {\n key: 'getNextSibling',\n value: function getNextSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index + 1], NodePath.getForNode(this.parent), this.property, this.index + 1);\n }\n\n /**\n * Returns a NodePath instance for a node.\n *\n * The same NodePath can be reused in several places, e.g.\n * a parent node passed for all its children.\n */\n\n }], [{\n key: 'getForNode',\n value: function getForNode(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var prop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1;\n\n if (!node) {\n return null;\n }\n\n if (!NodePath.registry.has(node)) {\n NodePath.registry.set(node, new NodePath(node, parentPath, prop, index == -1 ? null : index));\n }\n\n var path = NodePath.registry.get(node);\n\n if (parentPath !== null) {\n path.parentPath = parentPath;\n path.parent = path.parentPath.node;\n }\n\n if (prop !== null) {\n path.property = prop;\n }\n\n if (index >= 0) {\n path.index = index;\n }\n\n return path;\n }\n\n /**\n * Initializes the NodePath registry. The registry is a map from\n * a node to its NodePath instance.\n */\n\n }, {\n key: 'initRegistry',\n value: function initRegistry() {\n if (!NodePath.registry) {\n NodePath.registry = new Map();\n }\n NodePath.registry.clear();\n }\n\n /**\n * Updates index of a currently traversing collection.\n */\n\n }, {\n key: 'updateTraversingIndex',\n value: function updateTraversingIndex(dx) {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1] += dx;\n }\n\n /**\n * Returns current traversing index.\n */\n\n }, {\n key: 'getTraversingIndex',\n value: function getTraversingIndex() {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1];\n }\n }]);\n\n return NodePath;\n}();\n\nNodePath.initRegistry();\n\n/**\n * Index of a currently traversing collection is stored on top of the\n * `NodePath.traversingIndexStack`. Remove/insert methods can adjust\n * this index.\n */\nNodePath.traversingIndexStack = [];\n\n// Helper function used to skip `loc` in JSON operations.\nfunction jsonSkipLoc(prop, value) {\n if (prop === 'loc') {\n return undefined;\n }\n return value;\n}\n\nmodule.exports = NodePath;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\n/**\n * Performs a deep copy of an simple object.\n * Only handles scalar values, arrays and objects.\n *\n * @param obj Object\n */\n\nmodule.exports = function clone(obj) {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n var res = void 0;\n if (Array.isArray(obj)) {\n res = [];\n } else {\n res = {};\n }\n for (var i in obj) {\n res[i] = clone(obj[i]);\n }\n return res;\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>\n */\n\n'use strict';\n\nmodule.exports = require('./dist/regexp-tree');","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + \"6b30aac3d0fa7ab83001\" + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 9315;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t9315: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], function() { return __webpack_require__(27979); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","module","exports","regexes","regex","family","maxVersion","Infinity","version","minVersion","numbersToRanges","numbers","length","SemverPart","semverify","versionParts","Array","isArray","toString","split","versionPart","semverPart","semver","i","parseInt","isNaN","compareSemvers","a","b","options","major","minor","patch","majorBase","minorBase","patchBase","ignoreMinor","ignorePatch","allowHigherVersions","compareMinor","comparePatch","compareArrays","from","len","clone","value","copy","concat","items","AlternativeNode","expressions","exps","filter","Boolean","type","SimpleCharNode","kind","String","codePoint","NaN","ClassRangeNode","to","CharacterClassNode","CapturingGroupNode","expression","capturing","number","DisjunctionCapturingGroupNode","expr","exprs","disjunction","left","right","pop","reduceRight","DisjunctionNode","DigitPatternNode","NumberPatternNode","quantifier","greedy","numberPattern","RepetitionNode","NumberCharsNode","isNumberPatternNode","node","isCharNode","RegExp","test","isDigitRangeNode","isExpressionNode","parseRegex","replace","classes","visitors","every","reduce","newVisitors","className","visitor","visitorPre","pre","visitorPost","post","nodePath","numberToDigits","num","Number","rayRangeDigitPattern","digit","includes","rangeStart","segmentRangeNumberPattern","zeros","fromNode","toNode","zerosPrefix","segmentToNumberPatterns","digitsInNumber","fromDigits","digitsCount","toDigits","decadeRanges","ranges","decade","push","Math","min","splitToDecadeRanges","parts","map","commonStart","common","currA","currB","diffA","diffB","splitCommonDiff","from1","to1","diffParts","range","middleSegment","_","ri","d","j","patterns","prevNode","merged","exp","unshift","rangeToRegex","digits","other","RangeQuantifierNode","pow","numberPatterns","topNodes","prev","nodes","rayToNumberPatterns","getNumberPatternsPart","numberPatternsCount","regexAst","maxNumbersCount","count","Group","getNumberPatternsCount","numbersCounter","containsNumberPattern","parent","applyVersionsToRegex","versions","finalVersions","maxRequiredPartsCount","max","allowZeroSubversions","shouldRepeatCount","getRequiredSemverPartsCount","numberPatternsPart","versionsPart","rangedVersion","ignoreIndex","prevWasZero","start","createMapper","rangedSemverToRegex","numbersToReplace","slice","shift","replaceNumberPatterns","remove","defaultOptions","getPreUserAgentRegexes","finalOptions","browserRegexes","sourceRegex","matchedVersions","current","Major","Minor","Patch","part","p","versionsListToRanges","applyVersionsToRegexes","browsers","targetRegexes","result","prevFamily","prevRegexIsGlobal","forEach","requestVersions","get","bases","compareOptions","minComparator","ver","maxComparator","comparator","findMatchedVersions","undefined","getRegexesForBrowsers","merge","Map","strVersion","join","set","sort","mergeBrowserVersions","browserslistOptions","browserslist","browser","versionString","versionStringTo","partIndex","i1","v","rangeSemver","getBrowsersList","user","supportedBrowsers","partsRegexes","body","src","getAST","optimizeRegex","flags","compileRegex","getUserAgentRegex","browserslistConfig","getBuilder","clearOnLogout","persist","build","getCurrentUser","getLoggerBuilder","setApp","setUid","uid","browserStorageKey","generateUrl","browserStorage","getItem","_regeneratorRuntime","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","obj","key","desc","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","_typeof","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","state","Error","done","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","methodName","return","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","doneResult","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","skipTempReset","charAt","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","_arrayLikeToArray","arr","arr2","logger","debug","components","Web","NcButton","NcEmptyContent","data","agents","computed","isMobile","navigator","userAgent","filteredSupportedBrowsers","_this","isMobileBrowser","formattedBrowsersList","_this2","list","_browser$split2","_arrayWithHoles","_i","_s","_e","_x","_r","_arr","_n","_d","_iterableToArrayLimit","o","minLen","n","_unsupportedIterableToArray","_nonIterableRest","id","parseFloat","_this2$agents$id","_this2$agents$id2","t","beforeMount","_this3","_callee","_yield$import","_context","args","arguments","apply","methods","forceBrowsing","setItem","urlParams","URLSearchParams","window","location","search","has","redirectPath","Buffer","startsWith","toLowerCase","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","this","_c","_self","staticClass","scopedSlots","_u","proxy","_v","attrs","on","_l","Vue","el","render","h","UnsupportedBrowser","BrowserslistError","noop","loadQueries","getStat","opts","stats","loadConfig","config","loadCountry","loadFeature","currentNode","parseConfig","readConfig","findConfig","clearCaches","oldDataWarning","env","message","captureStackTrace","jsReleases","jsEOL","path","e2c","parse","ANDROID_EVERGREEN_FIRST","isVersionsMatch","versionA","versionB","indexOf","normalize","normalizeElectron","versionToUse","nameMapper","getMajor","getMajorVersions","released","majorVersions","uniq","minimum","selected","array","filtered","fillUsage","generateFilter","sign","parseSimpleInt","x","compare","compareSemver","semverFilterLoose","operator","compareSemverLoose","normalizeVersion","resolved","versionAliases","resolveVersion","filterByYear","since","byName","releaseDate","date","cloneData","aliases","mobileToDesktop","desktopNames","desktop","android","chrome","normalizeAndroidVersions","cloned","androidVersions","chromeVersions","iFirstEvergreen","checkName","filterJumps","nVersions","jump","op_mob","isSupported","queries","QUERIES","index","not","query","select","compose","prepareOpts","prepareQueries","defaults","checkQueries","cache","ignoreUnknownVersions","dangerousExtend","customUsage","cacheKey","JSON","stringify","name1","name2","version1","BROWSERSLIST_DISABLE_CACHE","nodeQuery","matched","nodeVersions","sinceQuery","year","month","day","Date","UTC","coverQuery","coverage","usage","global","place","match","toUpperCase","coveraged","custom","fx","ff","ios","explorer","blackberry","explorermobile","operamini","operamobile","chromeandroid","firefoxandroid","ucandroid","qqandroid","and_chr","and_ff","ie_mob","customStats","dataByBrowser","all","last_major_versions","matches","regexp","last_versions","last_electron_major_versions","last_node_major_versions","last_browser_major_versions","last_electron_versions","last_node_versions","last_browser_versions","unreleased_versions","unreleased_electron_versions","unreleased_browser_versions","last_years","now","years","since_y","since_y_m","since_y_m_d","popularity","popularity_in_my_stats","percentage","popularity_in_config_stats","loadStat","popularity_in_place","cover","cover_in","supports","feature","features","checkDesktop","electron_range","fromToUse","toToUse","parsed","node_range","browser_range","electron_ray","node_ray","browser_ray","alias","firefox_esr","opera_mini_all","electron_version","node_major_version","node_minor_version","node_patch_version","current_node","maintained_node","end","some","phantomjs_1_9","phantomjs_2_1","browser_version","browserslist_config","extends","dead","unknown","release_date","usage_global","full","interval","release","AND_REGEXP","OR_REGEXP","flatten","matchQuery","matchBlock","string","qs","predicate","substr","find","trim","block","A","K","F","G","H","B","JC","C","E","L","M","I","N","D","O","P","Q","R","S","T","U","V","W","X","Y","Z","c","e","f","g","q","r","s","u","w","y","z","KC","zB","J","k","l","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","m","qB","rB","sB","tB","uB","LC","MC","NC","OC","PC","QC","RC","SC","vB","wB","TC","UC","xB","AC","yB","BC","CC","DC","EC","FC","GC","VC","WC","XC","YC","ZC","HC","aC","bC","IC","cC","dC","eC","fC","gC","hC","iC","jC","kC","lC","mC","nC","oC","pC","qC","rC","sC","tC","uC","vC","wC","xC","yC","zC","AD","BD","CD","DD","ED","FD","GD","HD","agentsData","unpackBrowserVersions","versionsData","prefix_exceptions","map2","key2","prefix","browserVersions","___CSS_LOADER_EXPORT___","compatTransforms","_transform","transform","transformsWhitelist","transformToApply","extra","transformName","handler","getExtra","setExtra","_createClass","defineProperties","target","props","descriptor","Constructor","protoProps","staticProps","RegExpTree","re","_ref","groups","source","instance","_classCallCheck","_re","_groups","dotAll","ignoreCase","multiline","sticky","unicode","compile","_toStringResult","exec","group","groupNumber","_hasUFlag","shouldRun","ast","Char","toValue","toSymbol","symbol","_groupNames","init","nameRaw","Backreference","reference","referenceRaw","namedCapturingGroups","xFlag","Alternative","Disjunction","Assertion","assertion","negative","_assertion","CharacterClass","ClassRange","Repetition","Quantifier","escaped","UnicodeProperty","shorthand","binary","generate","_slicedToArray","sliceIterator","_toConsumableArray","currentTransitionMap","sameRow","r1","r2","s1","s2","size","areEquivalent","table","alphabet","_iteratorNormalCompletion8","_didIteratorError8","_iteratorError8","_step8","_iterator8","goToSameSet","originalTransitionS1","originalTransitionS2","minimize","dfa","getTransitionTable","allStates","getAlphabet","accepting","getAcceptingStateNumbers","nonAccepting","Set","add","previous","_loop","newTransitionMap","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","_set","handledStates","_set2","first","rest","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","restSets","_step4","_iterator4","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_step5","_iterator5","handledState","assign","newSets","remaped","idx","minimizedTable","minimizedAcceptingStates","updateAcceptingStates","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","entries","_ref2","_idx","_iteratorNormalCompletion6","_didIteratorError6","_iteratorError6","_step6","_iterator6","originalTransition","_iteratorNormalCompletion7","_didIteratorError7","_iteratorError7","_step7","_iterator7","originalState","setTransitionTable","setAcceptingStateNumbers","DFAMinimizer","EPSILON_CLOSURE","DFA","nfa","_nfa","_originalAcceptingStateNumbers","_acceptingStateNumbers","_originalTransitionTable","_transitionTable","stateNumbers","nfaTable","nfaStates","worklist","nfaAcceptingStates","dfaTable","states","nfaAcceptingState","dfaStateLabel","onSymbol","nfaStatesOnSymbol","nfaStateOnSymbol","dfaStatesOnSymbolSet","dfaStatesOnSymbol","dfaOnSymbolStr","_remapStateNumbers","calculatedDFATable","newStatesMap","transitionTable","originalNumber","newNumber","originalRow","row","_originalNumber","NFA","nfaFromRegExp","builders","toNFA","toDFA","NFAState","EPSILON","char","inState","outState","addTransition","altPair","second","out","in","orPair","alt","_len","fragments","_key","or","_len2","_key2","rep","fragment","repExplicit","plusRep","questionRep","parser","_require","captureLocations","State","_State","ReferenceError","_possibleConstructorReturn","subClass","superClass","_inherits","visited","getTransitionsOnSymbol","symbolTransitions","_epsilonClosure","epsilonTransitions","closure","nextState","getEpsilonClosure","_alphabet","transitions","_acceptingStates","getAcceptingStates","acceptingState","symbols","visitState","getTransitions","combinedState","_ref$accepting","_transitions","toState","optimizationTransforms","optimize","_ref$whitelist","whitelist","_ref$blacklist","blacklist","TransformResult","prevResultString","transformer","newResult","UPPER_A_CP","codePointAt","UPPER_Z_CP","_AZClassRanges","classRange","lower","isSurrogatePair","_getSurrogatePairFrom","trail","lead","floor","getSurrogatePairFromCodePoint","repeat","code","displaySymbolAsValue","sortCharClass","aValue","getSortValue","bValue","isMeta","isControl","fitsInMetas","metas","hasIUFlags","fitsInMeta","meta","fitsInMetaS","fitsInMetaD","fitsInMetaW","combinesWithPrecedingClassRange","fitsInClassRange","isMetaWCharOrCode","combinesWithFollowingClassRange","charCombinesWithPrecedingChars","nbMergedChars","currentExpression","precedingExpresion","_hasIUFlags","splice","getParent","insertChildAt","sources","childPath","getChild","jsonEncode","_hasIFlag","isFullNumberRange","rewriteNumberRanges","hasIFlag","hasUFlag","numberPath","lowerCasePath","upperCasePath","underscorePath","u017fPath","u212aPath","isMetaChar","isLowerCaseRange","isUpperCaseRange","isUnderscore","isCodePoint","rewriteWordRanges","whitespaceRangeTests","nNode","rewriteWhitespaceRanges","isChar","shouldEscape","previousNode","hasAppropriateSiblings","isAppropriateChar","_node$expressions$","getInverseMeta","LOWER_A_CP","LOWER_Z_CP","DIGIT_0_CP","DIGIT_9_CP","fromCodePoint","newChar","parentType","needsEscape","consumeNumbers","startIndex","rtl","siblingNode","abs","isSimpleChar","_hasXFlag","hasXFlag","nbFollowingNumbers","nextSiblingNode","preservesOpeningCurlyBraceEscape","nbPrecedingNumbers","previousSiblingNode","preservesClosingCurlyBraceEscape","preservesEscape","preservesInCharClass","shouldUnescape","NodePath","increaseQuantifierByOne","combineRepeatingPatternLeft","alternative","child","nbPossibleLengths","ceil","getForNode","hasEqualSource","combineWithPreviousRepetition","previousChild","combineRepetitionWithPrevious","rightLength","disjunctionToList","listToDisjunction","uniqueNodesMap","encoded","handlers","charset","shouldProcess","characterClass","rewriteOpenZero","rewriteOpenOne","parentPath","rewriteExactOne","isGreedyOpenRange","extractFromTo","previousSibling","getPreviousSibling","_extractFromTo","previousSiblingFrom","previousSiblingTo","_extractFromTo2","nodeFrom","nodeTo","yytext","yy","__","__loc","yyloc","startOffset","endOffset","startLine","endLine","startColumn","endColumn","productions","_1","_1loc","_2","_3","_4","_2loc","_3loc","_4loc","Node","checkFlags","_loc","separatorIdx","isShorthand","unicodeProperties","isGeneralCategoryValue","isBinaryProperty","isBinaryPropertyName","isValidName","SyntaxError","isValidValue","canonicalName","getCanonicalName","canonicalValue","getCanonicalValue","text","textLoc","capturingGroupsCount","decodeUnicodeGroupName","namedGroups","charRe","chars","uReStart","ucpReStart","NamedGroupRefOrChars","getRange","allowGroupNameDuplicates","checkClassRange","tokens","stack","tokenizer","lexRules","validateUnicodeGroupName","getCurrentState","popState","pushState","lexRulesByConditions","EOF_TOKEN","initString","_string","_cursor","_states","_tokensQueue","_currentLine","_currentColumn","_currentLineBeginOffset","_tokenStartOffset","_tokenEndOffset","_tokenStartLine","_tokenEndLine","_tokenStartColumn","_tokenEndColumn","getStates","begin","getNextToken","onToken","_toToken","hasMoreTokens","lexRulesForState","lexRuleIndex","lexRule","_match","token","tokensToQueue","isEOF","throwUnexpectedToken","line","column","lineSource","lineData","getCursor","getCurrentLine","getCurrentColumn","_captureLocation","nlRe","nlMatch","tokenType","lexer","yyparse","setOptions","getOptions","parseOptions","globalOptions","onParseBegin","shiftedToken","unexpectedEndOfInput","unexpectedToken","_loc2","onShift","semanticValue","productionNumber","production","hasSemanticAction","semanticValueArgs","locationArgs","rhsLength","stackEntry","reduceStackEntry","semanticActionArgs","symbolToReduceWith","onParseEnd","setTokenizer","customTokenizer","getTokenizer","parsingString","isFinite","lastSlash","lastIndexOf","_value$split$slice2","hex","validFlags","seen","flag","ucpReAnywhere","uidRe","leadSurrogate","trailSurrogate","leadSurrogateOnly","trailSurrogateOnly","nonSurrogate","offset","parseError","regexpTreeParser","generatedParseFn","bind","NON_BINARY_PROP_NAMES_TO_ALIASES","General_Category","Script","Script_Extensions","NON_BINARY_ALIASES_TO_PROP_NAMES","inverseMap","BINARY_PROP_NAMES_TO_ALIASES","ASCII","ASCII_Hex_Digit","Alphabetic","Any","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","IDS_Binary_Operator","IDS_Trinary_Operator","ID_Continue","ID_Start","Ideographic","Join_Control","Logical_Order_Exception","Lowercase","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start","BINARY_ALIASES_TO_PROP_NAMES","GENERAL_CATEGORY_VALUE_TO_ALIASES","Cased_Letter","Close_Punctuation","Connector_Punctuation","Control","Currency_Symbol","Dash_Punctuation","Decimal_Number","Enclosing_Mark","Final_Punctuation","Format","Initial_Punctuation","Letter","Letter_Number","Line_Separator","Lowercase_Letter","Mark","Math_Symbol","Modifier_Letter","Modifier_Symbol","Nonspacing_Mark","Open_Punctuation","Other","Other_Letter","Other_Number","Other_Punctuation","Other_Symbol","Paragraph_Separator","Private_Use","Punctuation","Separator","Space_Separator","Spacing_Mark","Surrogate","Titlecase_Letter","Unassigned","Uppercase_Letter","GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES","SCRIPT_VALUE_TO_ALIASES","Adlam","Ahom","Anatolian_Hieroglyphs","Arabic","Armenian","Avestan","Balinese","Bamum","Bassa_Vah","Batak","Bengali","Bhaiksuki","Bopomofo","Brahmi","Braille","Buginese","Buhid","Canadian_Aboriginal","Carian","Caucasian_Albanian","Chakma","Cham","Cherokee","Common","Coptic","Cuneiform","Cypriot","Cyrillic","Deseret","Devanagari","Dogra","Duployan","Egyptian_Hieroglyphs","Elbasan","Ethiopic","Georgian","Glagolitic","Gothic","Grantha","Greek","Gujarati","Gunjala_Gondi","Gurmukhi","Han","Hangul","Hanifi_Rohingya","Hanunoo","Hatran","Hebrew","Hiragana","Imperial_Aramaic","Inherited","Inscriptional_Pahlavi","Inscriptional_Parthian","Javanese","Kaithi","Kannada","Katakana","Kayah_Li","Kharoshthi","Khmer","Khojki","Khudawadi","Lao","Latin","Lepcha","Limbu","Linear_A","Linear_B","Lisu","Lycian","Lydian","Mahajani","Makasar","Malayalam","Mandaic","Manichaean","Marchen","Medefaidrin","Masaram_Gondi","Meetei_Mayek","Mende_Kikakui","Meroitic_Cursive","Meroitic_Hieroglyphs","Miao","Modi","Mongolian","Mro","Multani","Myanmar","Nabataean","New_Tai_Lue","Newa","Nko","Nushu","Ogham","Ol_Chiki","Old_Hungarian","Old_Italic","Old_North_Arabian","Old_Permic","Old_Persian","Old_Sogdian","Old_South_Arabian","Old_Turkic","Oriya","Osage","Osmanya","Pahawh_Hmong","Palmyrene","Pau_Cin_Hau","Phags_Pa","Phoenician","Psalter_Pahlavi","Rejang","Runic","Samaritan","Saurashtra","Sharada","Shavian","Siddham","SignWriting","Sinhala","Sogdian","Sora_Sompeng","Soyombo","Sundanese","Syloti_Nagri","Syriac","Tagalog","Tagbanwa","Tai_Le","Tai_Tham","Tai_Viet","Takri","Tamil","Tangut","Telugu","Thaana","Thai","Tibetan","Tifinagh","Tirhuta","Ugaritic","Vai","Warang_Citi","Yi","Zanabazar_Square","SCRIPT_VALUE_ALIASES_TO_VALUE","inverse","isScriptCategoryValue","isAlias","isGeneralCategoryName","isScriptCategoryName","compatTranspiler","optimizer","_traverse","fa","regexpTree","traverse","toRegExp","compat","compatTranspile","getSource","getFlags","_ast","_source","_regexp","_extra","asNodes","getPathFor","prop","initRegistry","root","skipProperty","visit","res","_prop","traversingIndexStack","updateTraversingIndex","astTraverse","isRemoved","handlerFuncPre","handlerFuncPost","DEFAULT_COLLECTION_PROP","DEFAULT_SINGLE_PROP","property","_enforceProp","setChild","getTraversingIndex","_rebuildIndex","registry","delete","newNode","nodeProps","jsonSkipLoc","format","useLoc","clear","dx","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","chunkIds","priority","notFulfilled","fulfilled","getter","__esModule","mode","ns","def","getOwnPropertyNames","definition","chunkId","promises","globalThis","Function","url","script","needAttach","scripts","document","getElementsByTagName","getAttribute","createElement","timeout","nc","setAttribute","onScriptComplete","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","head","appendChild","nmd","paths","children","scriptUrl","importScripts","currentScript","baseURI","href","installedChunks","installedChunkData","promise","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 2432f072306..3e84bbb1b99 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -14,7 +14,7 @@
"@nextcloud/auth": "^2.1.0",
"@nextcloud/axios": "^2.3.0",
"@nextcloud/browser-storage": "^0.2.0",
- "@nextcloud/browserslist-config": "^2.3.0",
+ "@nextcloud/browserslist-config": "^3.0.0",
"@nextcloud/calendar-availability-vue": "^2.0.0-beta.1",
"@nextcloud/capabilities": "^1.0.4",
"@nextcloud/dialogs": "^5.0.0-beta.2",
@@ -3481,12 +3481,12 @@
}
},
"node_modules/@nextcloud/browserslist-config": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/@nextcloud/browserslist-config/-/browserslist-config-2.3.0.tgz",
- "integrity": "sha512-1Tpkof2e9Q0UicHWahQnXXrubJoqyiaqsH9G52v3cjGeVeH3BCfa1FOa41eBwBSFe2/Jxj/wCH2YVLgIXpWbBg==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@nextcloud/browserslist-config/-/browserslist-config-3.0.0.tgz",
+ "integrity": "sha512-daCnyNBVsWdWjJ5HcaE6jtiDAqaJAGbiWyaTtj/64ztnBget9qEwHC55uA1JNbJOBgNf2lyoQo5rgfatn9sUTw==",
"engines": {
- "node": "^16.0.0",
- "npm": "^7.0.0 || ^8.0.0"
+ "node": "^20.0.0",
+ "npm": "^9.0.0"
}
},
"node_modules/@nextcloud/calendar-availability-vue": {
@@ -3546,6 +3546,11 @@
"npm": "^9.0.0"
}
},
+ "node_modules/@nextcloud/capabilities/node_modules/@nextcloud/browserslist-config": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@nextcloud/browserslist-config/-/browserslist-config-2.2.0.tgz",
+ "integrity": "sha512-kC42RQW5rZjZZsRaEjVlIQpp6aW/yxm+zZdETnrRQnUzcPwBgF4wO4makfGT63Ckd+LkgUW+geesPiPRqxFVew=="
+ },
"node_modules/@nextcloud/capabilities/node_modules/typescript": {
"version": "4.9.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
diff --git a/package.json b/package.json
index 10661fe4893..61d84de77b1 100644
--- a/package.json
+++ b/package.json
@@ -40,7 +40,7 @@
"@nextcloud/auth": "^2.1.0",
"@nextcloud/axios": "^2.3.0",
"@nextcloud/browser-storage": "^0.2.0",
- "@nextcloud/browserslist-config": "^2.3.0",
+ "@nextcloud/browserslist-config": "^3.0.0",
"@nextcloud/calendar-availability-vue": "^2.0.0-beta.1",
"@nextcloud/capabilities": "^1.0.4",
"@nextcloud/dialogs": "^5.0.0-beta.2",