Socket
Socket
Sign inDemoInstall

@adraffy/ens-normalize

Package Overview
Dependencies
Maintainers
1
Versions
51
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@adraffy/ens-normalize - npm Package Compare versions

Comparing version 1.3.12 to 1.3.16

dist/ens-normalize-UTS46.js

3

dist/bidi.js

@@ -83,3 +83,2 @@ function decode_arithmetic(bytes) {

// returns an iterator which returns the next symbol
/*

@@ -93,2 +92,4 @@ export function read_payload(v) {

*/
// returns an iterator which returns the next symbol
function read_payload(v) {

@@ -95,0 +96,0 @@ let pos = 0;

@@ -1,1 +0,1 @@

function A(A,e){let B=Array(A);for(let g=0,w=-1;g<A;g++)B[g]=w+=1+e();return B}function e(e){let B=new Set(A(e(),e)),g=e(),w=A(g,e),r=function(A,e){let B=Array(A);for(let g=0;g<A;g++)B[g]=1+e();return B}(g,e);for(let A=0;A<g;A++)for(let e=0;e<r[A];e++)B.add(w[A]+e);return B}var B=("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",function(A){let e=0;return()=>A[e++]}(function(A){let e=0;function B(){return A[e++]<<8|A[e++]}let g=B(),w=1,r=[0,1];for(let A=1;A<g;A++)r.push(w+=B());let Q=B(),t=e;e+=Q;let D=0,C=0;function u(){return 0==D&&(C=C<<8|A[e++],D=8),C>>--D&1}const F=2**31,E=F>>>1,h=F-1;let n=0;for(let A=0;A<31;A++)n=n<<1|u();let o=[],I=0,M=F;for(;;){let A=Math.floor(((n-I+1)*w-1)/M),e=0,B=g;for(;B-e>1;){let g=e+B>>>1;A<r[g]?B=g:e=g}if(0==e)break;o.push(e);let Q=I+Math.floor(M*r[e]/w),t=I+Math.floor(M*r[e+1]/w)-1;for(;0==((Q^t)&E);)n=n<<1&h|u(),Q=Q<<1&h,t=t<<1&h|1;for(;Q&~t&536870912;)n=n&E|n<<1&h>>>1|u(),Q=Q<<1^E,t=(t^E)<<1|E|1;I=Q,M=1+t-Q}let O=g-4;return o.map((e=>{switch(e-O){case 3:return O+65792+(A[t++]<<16|A[t++]<<8|A[t++]);case 2:return O+256+(A[t++]<<8|A[t++]);case 1:return O+A[t++];default:return e-1}}))}(Uint8Array.from(atob("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"),(A=>A.charCodeAt(0))))));const g=e(B),w=e(B),r=e(B),Q=e(B),t=e(B),D=e(B);function C(A){return A.some((A=>g.has(A)||r.has(A)))}function u(A){if(0==A.length)return;let e=A.length-1;if(g.has(A[0])){if(!A.every((A=>g.has(A)||r.has(A)||Q.has(A)||t.has(A)||D.has(A))))throw new Error("RTL: disallowed properties");for(;D.has(A[e]);)e--;if(e=A[e],!(g.has(e)||Q.has(e)||r.has(e)))throw new Error("RTL: disallowed ending");if(A.some((A=>Q.has(A)))&&A.some((A=>r.has(A))))throw new Error("RTL: AN+EN")}else{if(!w.has(A[0]))throw new Error("unknown direction");if(!A.every((A=>w.has(A)||Q.has(A)||t.has(A)||D.has(A))))throw new Error("LTR: disallowed properties");for(;D.has(A[e]);)e--;if(e=A[e],!w.has(e)&&!Q.has(e))throw new Error("LTR: disallowed ending")}}function F(A){if("string"!=typeof A)throw new TypeError("expected string");return[...A].map((A=>A.codePointAt(0)))}function E(A){return A.split(".").some((A=>C(F(A))))}function h(A){let e=A.split(".").map(F);if(e.some(C))for(let A of e)try{u(A)}catch(e){throw new Error(`Disallowed bidi label "${escape_unicode(String.fromCodePoint(...A))}": ${e.message}`)}}export{h as check_bidi,E as is_bidi_domain_name,C as is_bidi_label,u as validate_bidi_label};
function A(A,e){let r=Array(A);for(let t=0,w=-1;t<A;t++)r[t]=w+=1+e();return r}function e(e){let r=new Set(A(e(),e)),t=e(),w=A(t,e),n=function(A,e){let r=Array(A);for(let t=0;t<A;t++)r[t]=1+e();return r}(t,e);for(let A=0;A<t;A++)for(let e=0;e<n[A];e++)r.add(w[A]+e);return r}var r,t=(r="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",function(A){let e=0;return()=>A[e++]}(function(A){let e=0;function r(){return A[e++]<<8|A[e++]}let t=r(),w=1,n=[0,1];for(let A=1;A<t;A++)n.push(w+=r());let B=r(),o=e;e+=B;let g=0,u=0;function Q(){return 0==g&&(u=u<<8|A[e++],g=8),u>>--g&1}const l=2**31,D=l>>>1,C=l-1;let E=0;for(let A=0;A<31;A++)E=E<<1|Q();let F=[],h=0,f=l;for(;;){let A=Math.floor(((E-h+1)*w-1)/f),e=0,r=t;for(;r-e>1;){let t=e+r>>>1;A<n[t]?r=t:e=t}if(0==e)break;F.push(e);let B=h+Math.floor(f*n[e]/w),o=h+Math.floor(f*n[e+1]/w)-1;for(;0==((B^o)&D);)E=E<<1&C|Q(),B=B<<1&C,o=o<<1&C|1;for(;B&~o&536870912;)E=E&D|E<<1&C>>>1|Q(),B=B<<1^D,o=(o^D)<<1|D|1;h=B,f=1+o-B}let c=t-4;return F.map((e=>{switch(e-c){case 3:return c+65792+(A[o++]<<16|A[o++]<<8|A[o++]);case 2:return c+256+(A[o++]<<8|A[o++]);case 1:return c+A[o++];default:return e-1}}))}(Uint8Array.from(atob(r),(A=>A.charCodeAt(0))))));const w=e(t),n=e(t),B=e(t),o=e(t),g=e(t),u=e(t);function Q(A){return A.some((A=>w.has(A)||B.has(A)))}function l(A){if(0==A.length)return;let e=A.length-1;if(w.has(A[0])){if(!A.every((A=>w.has(A)||B.has(A)||o.has(A)||g.has(A)||u.has(A))))throw new Error("RTL: disallowed properties");for(;u.has(A[e]);)e--;if(e=A[e],!(w.has(e)||o.has(e)||B.has(e)))throw new Error("RTL: disallowed ending");if(A.some((A=>o.has(A)))&&A.some((A=>B.has(A))))throw new Error("RTL: AN+EN")}else{if(!n.has(A[0]))throw new Error("unknown direction");if(!A.every((A=>n.has(A)||o.has(A)||g.has(A)||u.has(A))))throw new Error("LTR: disallowed properties");for(;u.has(A[e]);)e--;if(e=A[e],!n.has(e)&&!o.has(e))throw new Error("LTR: disallowed ending")}}function D(A){if("string"!=typeof A)throw new TypeError("expected string");return[...A].map((A=>A.codePointAt(0)))}function C(A){return A.split(".").some((A=>Q(D(A))))}function E(A){let e=A.split(".").map(D);if(e.some(Q))for(let A of e)try{l(A)}catch(e){throw new Error(`Disallowed bidi label "${escape_unicode(String.fromCodePoint(...A))}": ${e.message}`)}}export{E as check_bidi,C as is_bidi_domain_name,Q as is_bidi_label,l as validate_bidi_label};

@@ -83,3 +83,2 @@ function decode_arithmetic(bytes) {

// returns an iterator which returns the next symbol
/*

@@ -93,2 +92,4 @@ export function read_payload(v) {

*/
// returns an iterator which returns the next symbol
function read_payload(v) {

@@ -305,43 +306,2 @@ let pos = 0;

// this returns [[]] if empty
// {e:[],u:[]} => emoji
// {v:[]} => chars
function tokenized_idna(cps, emoji_parser, tokenizer) {
let chars = [];
let tokens = [];
let labels = [tokens];
function drain() {
if (chars.length > 0) {
tokens.push({v: chars});
chars = [];
}
}
for (let i = 0; i < cps.length; i++) {
if (emoji_parser) {
let [len, e] = emoji_parser(cps, i);
if (len > 0) {
drain();
tokens.push({e, u:cps.slice(i, i+len)}); // these are emoji tokens
i += len - 1;
continue;
}
}
let cp = cps[i];
let token = tokenizer(cp);
if (Array.isArray(token)) { // this is more characters
chars.push(...token);
} else {
drain();
if (token) { // this is a token
tokens.push(token);
} else { // this is a label separator
tokens = []; // create a new label
labels.push(tokens);
}
}
}
drain();
return labels;
}
// returns an emoji parser

@@ -432,2 +392,3 @@ function emoji_parser_factory(r) {

}
// [ED-14c] emoji keycap sequence

@@ -443,2 +404,3 @@ // https://unicode.org/reports/tr51/#def_emoji_keycap_sequence

}
// [ED-15] emoji core sequence

@@ -451,2 +413,3 @@ // emoji_core_sequence := emoji_keycap_sequence | emoji_flag_sequence | chr_mod_pre

if (!emoji0) return [0]; // nope
// [ED-17] emoji sequence

@@ -493,2 +456,3 @@ // emoji_sequence := chr_mod_pre | emoji_zwj_sequence | emoji_tag_sequence

}
// [ED-14a] emoji tag sequence (ETS)

@@ -787,6 +751,6 @@ // https://www.unicode.org/reports/tr51/#def_emoji_tag_sequence

const BUILT = '2022-01-16T00:14:41.340Z';
const BUILT = '2022-05-02T09:44:51.349Z';
const UNICODE = '14.0.0';
const VERSION = '1.3.11';
const IDNA = '2003';
const VERSION = '1.3.16';
const NAME = '2003';
const STOP = read_member_set(r);

@@ -797,8 +761,5 @@ const VALID = read_member_set(r);

const COMBINING_MARKS = read_member_set(r);
const EMOJI_PARSER = r() && emoji_parser_factory(r);
const EMOJI_PARSER = r() && emoji_parser_factory(r); // this is optional
// emoji tokens are as-is
// text tokens are normalized
// note: it's safe to apply to entire
// string but you'd have to retokenize
// collapse emoji or NFC(text) to code points
function flatten_tokens(tokens) {

@@ -842,3 +803,3 @@ return tokens.flatMap(({e, v}) => e ?? nfc(v));

const HYPHEN = 0x2D; // HYPHEN MINUS
let labels = tokenized_idna(explode_cp(name), EMOJI_PARSER, cp => {
let labels = tokenized_idna(nfc(explode_cp(name)), cp => {
// ignored: Remove the code point from the string. This is equivalent to mapping the code point to an empty string.

@@ -858,24 +819,23 @@ if (STOP.has(cp)) return;

// [Processing] 4.) Convert/Validate
if (cps.length >= 4 && cps[2] == HYPHEN && cps[3] == HYPHEN) { // "**--"
if (cps[0] == 0x78 && cps[1] == 0x6E) { // "xn--"
try {
// Attempt to convert the rest of the label to Unicode according to Punycode [RFC3492].
// If that conversion fails, record that there was an error, and continue with the next label.
let cps_decoded = puny_decode(cps.slice(4));
// With either Transitional or Nontransitional Processing, sources already in Punycode are validated without mapping.
// In particular, Punycode containing Deviation characters, such as href="xn--fu-hia.de" (for fuƟ.de) is not remapped.
// This provides a mechanism allowing explicit use of Deviation characters even during a transition period.
[tokens] = tokenized_idna(cps_decoded, EMOJI_PARSER, cp => VALID.has(cp) ? [cp] : []);
let expected = flatten_tokens(tokens);
if (cps_decoded.length != expected.length || !cps_decoded.every((x, i) => x == expected[i])) throw new Error('not normalized');
// Otherwise replace the original label in the string by the results of the conversion.
cps = cps_decoded;
// warning: this could be empty
// warning: this could be "**--"
} catch (err) {
throw label_error(cps, `punycode: ${err.message}`);
}
if (cps.length >= 4 && cps[0] == 0x78 && cps[1] == 0x6E && cps[2] == HYPHEN && cps[3] == HYPHEN) { // "xn--"
try {
// Attempt to convert the rest of the label to Unicode according to Punycode [RFC3492].
// https://www.rfc-editor.org/rfc/rfc3492.html
// If that conversion fails, record that there was an error, and continue with the next label.
let cps_decoded = puny_decode(cps.slice(4));
// With either Transitional or Nontransitional Processing, sources already in Punycode are validated without mapping.
// In particular, Punycode containing Deviation characters, such as href="xn--fu-hia.de" (for fuƟ.de) is not remapped.
// This provides a mechanism allowing explicit use of Deviation characters even during a transition period.
[tokens] = tokenized_idna(cps_decoded, cp => VALID.has(cp) ? [cp] : []);
let expected = flatten_tokens(tokens);
if (cps_decoded.length != expected.length || !cps_decoded.every((x, i) => x == expected[i])) throw new Error('not normalized');
// Otherwise replace the original label in the string by the results of the conversion.
cps = cps_decoded;
// warning: this could be empty
// warning: this could be "**--"
} catch (err) {
throw label_error(cps, `punycode: ${err.message}`);
}
}
// flatten textual part of token to a single list of code-points
// flatten textual part of label into a single list of code-points
let text = tokens.reduce((a, {v}) => {

@@ -891,3 +851,3 @@ if (v) {

// [Validity] 1.) The label must be in Unicode Normalization Form NFC.
// => satsified by nfc() via flatten_label_tokens()
// => satsified by nfc() via flatten_tokens()
// [Validity] 2.) If CheckHyphens, the label must not contain a U+002D HYPHEN-MINUS character in both the third and fourth positions.

@@ -915,3 +875,3 @@ // note: we check this here (rather than above) because puny can expand into "aa--bb"

}
return {tokens, cps, text};
return {/*tokens,*/ cps, text};
});

@@ -944,3 +904,3 @@ // [Validity] 8.) If CheckBidi, and if the domain name is a Bidi domain name, then the label

function ens_tokenize(name) {
return tokenized_idna(explode_cp(name), EMOJI_PARSER, cp => {
return tokenized_idna(explode_cp(name), cp => {
if (STOP.has(cp)) return {};

@@ -955,2 +915,43 @@ if (VALID.has(cp)) return [cp]; // this gets merged into v

export { BUILT, IDNA, UNICODE, VERSION, ens_normalize, ens_tokenize };
// this returns [[]] if empty
// {e:[],u:[]} => emoji
// {v:[]} => chars
function tokenized_idna(cps, tokenizer) {
let chars = [];
let tokens = [];
let labels = [tokens];
function drain() {
if (chars.length > 0) {
tokens.push({v: chars});
chars = [];
}
}
for (let i = 0; i < cps.length; i++) {
if (EMOJI_PARSER) {
let [len, e] = EMOJI_PARSER(cps, i);
if (len > 0) {
drain();
tokens.push({e, u:cps.slice(i, i+len)}); // these are emoji tokens
i += len - 1;
continue;
}
}
let cp = cps[i];
let token = tokenizer(cp);
if (Array.isArray(token)) { // this is more characters
chars.push(...token);
} else {
drain();
if (token) { // this is a token
tokens.push(token);
} else { // this is a label separator
tokens = []; // create a new label
labels.push(tokens);
}
}
}
drain();
return labels;
}
export { BUILT, NAME, UNICODE, VERSION, ens_normalize, ens_tokenize };

@@ -1,1 +0,1 @@

function A(A){return function(A){let w=0;return()=>A[w++]}(function(A){let w=0;function Q(){return A[w++]<<8|A[w++]}let B=Q(),C=1,E=[0,1];for(let A=1;A<B;A++)E.push(C+=Q());let t=Q(),e=w;w+=t;let r=0,M=0;function D(){return 0==r&&(M=M<<8|A[w++],r=8),M>>--r&1}const g=2**31,n=g>>>1,o=g-1;let c=0;for(let A=0;A<31;A++)c=c<<1|D();let i=[],f=0,l=g;for(;;){let A=Math.floor(((c-f+1)*C-1)/l),w=0,Q=B;for(;Q-w>1;){let B=w+Q>>>1;A<E[B]?Q=B:w=B}if(0==w)break;i.push(w);let t=f+Math.floor(l*E[w]/C),e=f+Math.floor(l*E[w+1]/C)-1;for(;0==((t^e)&n);)c=c<<1&o|D(),t=t<<1&o,e=e<<1&o|1;for(;t&~e&536870912;)c=c&n|c<<1&o>>>1|D(),t=t<<1^n,e=(e^n)<<1|n|1;f=t,l=1+e-t}let x=B-4;return i.map((w=>{switch(w-x){case 3:return x+65792+(A[e++]<<16|A[e++]<<8|A[e++]);case 2:return x+256+(A[e++]<<8|A[e++]);case 1:return x+A[e++];default:return w-1}}))}(Uint8Array.from(atob(A),(A=>A.charCodeAt(0)))))}function w(A){return 1&A?~A>>1:A>>1}function Q(A,w){let Q=Array(A);for(let B=0,C=-1;B<A;B++)Q[B]=C+=1+w();return Q}function B(A,Q){let B=Array(A);for(let C=0,E=0;C<A;C++)B[C]=E+=w(Q());return B}function C(A){let w=new Set(Q(A(),A)),B=A(),C=Q(B,A),E=function(A,w){let Q=Array(A);for(let B=0;B<A;B++)Q[B]=1+w();return Q}(B,A);for(let A=0;A<B;A++)for(let Q=0;Q<E[A];Q++)w.add(C[A]+Q);return w}function E(A){let w=[];for(;;){let Q=A();if(0==Q)break;w.push(r(Q,A))}for(;;){let Q=A()-1;if(Q<0)break;w.push(M(Q,A))}return w.flat().sort(((A,w)=>A[0]-w[0]))}function t(A){let w=[];for(;;){let Q=A();if(0==Q)break;w.push(Q)}return w}function e(A,w,Q,C){let E=Array(A).fill().map((()=>[]));for(let t=0;t<w;t++)B(A,Q).forEach(((A,w)=>E[w].push(C?C[A]:A)));return E}function r(A,w){let Q=1+w(),B=w(),C=t(w);return e(C.length,1+A,w).map(((A,w)=>[A[0],A.slice(1),C[w],Q,B]))}function M(A,w){return e(1+w(),1+A,w).map((A=>[A[0],A.slice(1)]))}function D(A,w,Q){let B={};for(;;){let C=w(A);if(0==C.length)break;let E=1+A(),t=Array(E).fill(B);for(let w of C)t=e(E,w,A,Q).map(((A,w)=>{let Q=t[w],B=String.fromCodePoint(...A),C=Q[B];return C||(C=Q[B]={}),C}));t.forEach((A=>A[""]=1))}return B}function g(A,w){for(let[Q,B,C,E,t]of A){let A=w-Q;if(A<0)break;if(C>0){if(A<E*C&&A%E==0){let w=A/E;return B.map((A=>A+w*t))}}else if(0==A)return B}}function n(A){return A.replace(/[^\x20-\x21\x23-\x7A\x7C\x7E]/gu,(A=>{return`{${w=A.codePointAt(0),w.toString(16).toUpperCase().padStart(2,"0")}}`;var w}))}function o(A){if("string"!=typeof A)throw new TypeError("expected string");return[...A].map((A=>A.codePointAt(0)))}function c(A,w,Q){let B=[],C=[],E=[C];function t(){B.length>0&&(C.push({v:B}),B=[])}for(let e=0;e<A.length;e++){if(w){let[Q,B]=w(A,e);if(Q>0){t(),C.push({e:B,u:A.slice(e,e+Q)}),e+=Q-1;continue}}let r=Q(A[e]);Array.isArray(r)?B.push(...r):(t(),r?C.push(r):(C=[],E.push(C)))}return t(),E}var i=A("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");const f=Array(i()).fill().map((()=>C(i))),l=E(i),x=C(i),S=44032;function T(A){return A>=S&&A<55204}function u(A,w){if(A<128)w(A);else if(T(A)){let Q=A-S,B=Q%588/28|0,C=Q%28;w(4352+(Q/588|0)),w(4449+B),C>0&&w(4519+C)}else{let Q=g(l,A);if(Q)for(let A of Q)u(A,w);else w(A)}}function s(A,w){let Q=[];function B(){Q.sort(((A,w)=>A[0]-w[0])).forEach((([A,Q])=>w(A,Q))),Q.length=0}function C(A){let C=1+f.findIndex((w=>w.has(A)));0==C?(B(),w(C,A)):Q.push([C,A])}A.forEach((A=>u(A,C))),B()}var L=A("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");const U=C(L),G=C(L),F=C(L),J=C(L),I=C(L),R=C(L);function N(A){if(0==A.length)return;let w=A.length-1;if(U.has(A[0])){if(!A.every((A=>U.has(A)||F.has(A)||J.has(A)||I.has(A)||R.has(A))))throw new Error("RTL: disallowed properties");for(;R.has(A[w]);)w--;if(w=A[w],!(U.has(w)||J.has(w)||F.has(w)))throw new Error("RTL: disallowed ending");if(A.some((A=>J.has(A)))&&A.some((A=>F.has(A))))throw new Error("RTL: AN+EN")}else{if(!G.has(A[0]))throw new Error("unknown direction");if(!A.every((A=>G.has(A)||J.has(A)||I.has(A)||R.has(A))))throw new Error("LTR: disallowed properties");for(;R.has(A[w]);)w--;if(w=A[w],!G.has(w)&&!J.has(w))throw new Error("LTR: disallowed ending")}}var K=A("ABIAAQB6AEAAOAAoACYAHwAiABgAFgAOAAsACwAMAY8AfgADApQhCD9xcXFxcXFxcW5hcbsGoY8Bf9URLHl4F4mAXgAn6F1DBPgbACv4ZqZU5nHucWhm/wCYRQRDAJcASQwtAe8FzAOHOfQyBvsC+GifBANGRZDdAC4CJSwCIi8GFTgCJSwmLyQpNix4JTpMcXV+rQEGGggji3raLA6mlfECCAxleXQSxKUjTyElAibgTiIC0gHv1AZQBLNgQ6JNVpJS9wlNAHRfAXiOWADp7D9QqYZpggAHGwscRNcB8gB0/yE9LHw3ZzYcITAjCk8BAlASEDEWAjEMCTgFzVsHDywSYVMEXgVBSgCFDAQFAckCphERETMDM2uMA88yLkEnJgYTLi6LB7kBPw0nVwsQ4gE7YHTHG0MAJpANNxIqJ15uH1IFEQDKAm4FfB2eATAAeIwtpywlOBhEJwRXng4sHLli4Q5IYl7584oYIwciAIlLCW1CAFQULjWxMQNQS/8RUSEBKAMWiQavLFEEUAT7AK0E1WULFc3RYR4GDAkRFRAxEhEDAQEABx8IASgjAAJR4QwFEpUiGzjHDw5ylPEUpACEAX4jBRwWExgAGwkSAkFoCRgIAA5XWI6qYXEEjBQARAEhDhAt2CcBFwASAEoTJBMCNQUSphsCAEEXDnKU8Q4OA70WBRQQHmoJLG5nEwoIDmNYjqphcQSGGgBJASASEDPYKA9QDyQSCgQMShMjAxQGAzUCcRkkAIsAuokwVSwLAmIGPhgnKACLCRkAEicBAQbgO8+xBTABBxcQJgAEQDf6MASDMBD0HwwoDAsu9wDA6hMtcgxWABIITU3k0SHxGPGp8QBhA+dvYj7xAEEFTY2l8Q8x0RWBKEEG8QtKx0dLASBJGLFQ8QBfWx4AFKXRDyrPFXMcIgEPEjzcS9Wn/KALJxnXU2YJOBWKOmP82gdIgmNcRsDi+p7FBLYbwm9Uzs1RfCbNpY30PNDOtZBhbqPBybOPeWa7oi+ySNuja7E79Fz+oJqkWRGdXLqRl46pfoUDu0uKXTiGuFf3GtJzAXtJmxI3V8am/mpQnjfi99U7ZkojTh6fKYexodlCUm8Nn5tkJXqdPwxaQiU29Pa8nQxhFccS0ZzA2p+XNo3r68FBGjQNasxwtQH/0ELiOQLNuyc0YqOxCPnfFsvASXVP7enrn5p48UHDGS6NU/kYR37WSJ7+CN+nV4NqWlRTc/nQOuWoDD2Cnkn26E21fE+79xMXG2voqdtyef5eUY6MOoAAPIvdUDW+i16JSxe2+srXAYVvzbE8SKhyxzjFf2rMlgMycfXR8nl6/xF97xDwBSNLExVnK4YUGbAMpgGeHD0vHVXsIK20HyDdJQ9a5Uhwta5o+Tw/HpthmalqVX7v90SgUzjZaEahH3JPOhT8k+LFPClF+c5gMeKg");const k=C(K),H=C(K),V=C(K),p=C(K),Y=C(K),h=C(K),a=C(K);var z=A("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");const b="2022-01-16T00:14:41.340Z",O="14.0.0",P="1.3.11",d="2003",X=C(z),y=C(z),j=C(z),Z=E(z),m=C(z),v=z()&&function(A){const w=C(A),Q=C(A),B=C(A),E=C(A),e=C(A),r=C(A),M=C(A),g=C(A),n=C(A),o=D(A,(A=>Array(A()).fill(1))),c=A()?D(A,t,[...E,...r].sort(((A,w)=>A-w))):1,i=65039,f=8205,l=8419;function x(A,w){if(1===A)return 1;let Q=String.fromCodePoint(...w.filter((A=>A!=i)));return A.hasOwnProperty(Q)?A[Q]:void 0}function S(A,w){let Q=A[w];if(!Q)return;let B=A[w+1];if(g.has(Q)&&B&&M.has(B))return[2,[Q,B]];if(B==i){if(E.has(Q))return[2,[Q]];if(r.has(Q)||e.has(Q))return[2,[Q,i]]}return E.has(Q)||r.has(Q)?[1,[Q]]:void 0}return function(A,C){let E=A[C],t=String.fromCodePoint(E);if(o.hasOwnProperty(t)){let w=o[t],Q=C+1;for(;;){let B=A[Q];if(!B)break;let C=String.fromCodePoint(B);if(!w.hasOwnProperty(C))break;w=w[C],Q++}if(w.hasOwnProperty(""))return[Q-C,A.slice(C,Q)]}let e=A[C+1];if(w.has(E)&&w.has(e))return[2,[E,e]];let r=Q.has(E);if(r&&e===l)return[2,[E,l]];if((r||B.has(E))&&e===i&&A[C+2]===l)return[3,r?[E,l]:[E,i,l]];let M=S(A,C);if(!M)return[0];let[D,g]=M,T=C+D;if(e=A[T],e===f){let w=x(c,g);if(w){let Q,B=[],E=T;for(;A[E++]===f;){let C=S(A,E);if(!C)break;let[t,e]=C;if(w=x(w,e),!w)break;E+=t,1===w?(g.push(f,...e),Q=E):(B.push(f,...e),w.hasOwnProperty("")&&(g.push(...B),B.length=0,Q=E))}if(Q)return[Q-C,g]}}if(n.has(e)){let w=T+1;for(;n.has(A[w]);)w++;if(917631===A[w++])return[w-C,g.concat(A.slice(T,1+w-T))]}return M}}(z);function W(A){return A.flatMap((({e:A,v:w})=>A??function(A){let w=[],Q=[],B=-1,C=0;return s(A,(function(A,E){if(-1===B)0==A?B=E:w.push(E);else if(C>0&&C>=A)0==A?(w.push(B,...Q),Q.length=0,B=E):Q.push(E),C=A;else{let t=function(A,w){if(A>=4352&&A<4371&&w>=4449&&w<4470)return S+(588*(A-4352)+28*(w-4449));if(T(A)&&w>4519&&w<4547&&(A-S)%28==0)return A+(w-4519);for(let[Q,B]of l)if(2==B.length&&B[0]==A&&B[1]==w){if(x.has(Q))break;return Q}return-1}(B,E);t>=0?B=t:0==C&&0==A?(w.push(B),B=E):(Q.push(E),C=A)}})),B>=0&&w.push(B),w.push(...Q),w}(w)))}function q(A,w){return new Error(`Disallowed label "${n(String.fromCodePoint(...A))}": ${w}`)}function $(A){const w=45;let Q=c(o(A),v,(A=>{if(X.has(A))return;if(j.has(A))return[];if(y.has(A))return[A];let w=g(Z,A);if(w)return w;throw new Error(`Disallowed character "${n(String.fromCodePoint(A))}"`)})).map((A=>{let Q=W(A);if(Q.length>=4&&Q[2]==w&&Q[3]==w&&120==Q[0]&&110==Q[1])try{let w=function(A){let w=[],Q=A.lastIndexOf(45);for(let B=0;B<Q;B++){let Q=A[B];if(Q>=128)throw new Error("expected ASCII");w.push(Q)}Q++;let B=0,C=128,E=72;for(;Q<A.length;){let t=B;for(let w=1,C=36;;C+=36){if(Q>=A.length)throw new Error("invalid encoding");let t=A[Q++];if(t>=48&&t<=57)t-=22;else{if(!(t>=97&&t<=122))throw new Error(`invalid character ${t}`);t-=97}B+=t*w;const e=C<=E?1:C>=E+26?26:C-E;if(t<e)break;w*=36-e}let e=w.length+1,r=0==t?B/700|0:B-t>>1;r+=r/e|0;let M=0;for(;r>455;M+=36)r=r/35|0;E=M+36*r/(r+38)|0,C+=B/e|0,B%=e,w.splice(B++,0,C)}return w}(Q.slice(4));[A]=c(w,v,(A=>y.has(A)?[A]:[]));let B=W(A);if(w.length!=B.length||!w.every(((A,w)=>A==B[w])))throw new Error("not normalized");Q=w}catch(A){throw q(Q,`punycode: ${A.message}`)}let B=A.reduce(((A,{v:w})=>(w?A.push(...w):A.length>0&&A.push(65039),A)),[]);if(Q.length>0){if(Q.length>=4&&Q[2]==w&&Q[3]==w)throw q(Q,"invalid label extension");if(Q[0]==w)throw q(Q,"leading hyphen");if(Q[Q.length-1]==w)throw q(Q,"trailing hyphen");if(m.has(Q[0]))throw q(Q,"leading combining mark");try{!function(A){for(let w=0,Q=A.length-1;w<=Q;w++){switch(A[w]){case 8204:if(w>0&&k.has(A[w-1]))continue;if(w>0&&w<Q){let B=w-1;for(;B>0&&H.has(A[B]);)B--;if(V.has(A[B])){let B=w+1;for(;B<Q&&H.has(A[B]);)B++;if(p.has(A[B]))continue}}break;case 8205:if(w>0&&k.has(A[w-1]))continue;break;case 183:if(w>0&&w<Q&&108==A[w-1]&&108==A[w+1])continue;break;case 885:if(w<Q&&Y.has(A[w+1]))continue;break;case 1523:case 1524:if(w>0&&h.has(A[w-1]))continue;break;default:continue}throw new Error(`No context for "${n(String.fromCodePoint(A[w]))}"`)}if(A.some((A=>A>=1632&&A<=1641))&&A.some((A=>A>=1776&&A<=1785)))throw new Error("Disallowed arabic-indic digit mixture");if(A.includes(12539)&&!A.some((A=>a.has(A))))throw new Error("Disallowed katakana")}(B)}catch(A){throw q(Q,A.message)}}return{tokens:A,cps:Q,text:B}}));if(Q.some((A=>A.text.some((A=>U.has(A)||F.has(A))))))for(let{text:A,cps:w}of Q)try{N(A)}catch(A){throw q(w,`bidi: ${A.message}`)}return Q.map((A=>String.fromCodePoint(...A.cps))).join(".")}function _(A){return c(o(A),v,(A=>{if(X.has(A))return{};if(y.has(A))return[A];if(j.has(A))return{i:A};let w=g(Z,A);return w?{m:w,u:[A]}:{d:A}}))[0]}export{b as BUILT,d as IDNA,O as UNICODE,P as VERSION,$ as ens_normalize,_ as ens_tokenize};
function A(A){return function(A){let w=0;return()=>A[w++]}(function(A){let w=0;function Q(){return A[w++]<<8|A[w++]}let B=Q(),C=1,E=[0,1];for(let A=1;A<B;A++)E.push(C+=Q());let t=Q(),e=w;w+=t;let r=0,M=0;function D(){return 0==r&&(M=M<<8|A[w++],r=8),M>>--r&1}const g=2**31,n=g>>>1,o=g-1;let c=0;for(let A=0;A<31;A++)c=c<<1|D();let i=[],f=0,l=g;for(;;){let A=Math.floor(((c-f+1)*C-1)/l),w=0,Q=B;for(;Q-w>1;){let B=w+Q>>>1;A<E[B]?Q=B:w=B}if(0==w)break;i.push(w);let t=f+Math.floor(l*E[w]/C),e=f+Math.floor(l*E[w+1]/C)-1;for(;0==((t^e)&n);)c=c<<1&o|D(),t=t<<1&o,e=e<<1&o|1;for(;t&~e&536870912;)c=c&n|c<<1&o>>>1|D(),t=t<<1^n,e=(e^n)<<1|n|1;f=t,l=1+e-t}let x=B-4;return i.map((w=>{switch(w-x){case 3:return x+65792+(A[e++]<<16|A[e++]<<8|A[e++]);case 2:return x+256+(A[e++]<<8|A[e++]);case 1:return x+A[e++];default:return w-1}}))}(Uint8Array.from(atob(A),(A=>A.charCodeAt(0)))))}function w(A){return 1&A?~A>>1:A>>1}function Q(A,w){let Q=Array(A);for(let B=0,C=-1;B<A;B++)Q[B]=C+=1+w();return Q}function B(A,Q){let B=Array(A);for(let C=0,E=0;C<A;C++)B[C]=E+=w(Q());return B}function C(A){let w=new Set(Q(A(),A)),B=A(),C=Q(B,A),E=function(A,w){let Q=Array(A);for(let B=0;B<A;B++)Q[B]=1+w();return Q}(B,A);for(let A=0;A<B;A++)for(let Q=0;Q<E[A];Q++)w.add(C[A]+Q);return w}function E(A){let w=[];for(;;){let Q=A();if(0==Q)break;w.push(r(Q,A))}for(;;){let Q=A()-1;if(Q<0)break;w.push(M(Q,A))}return w.flat().sort(((A,w)=>A[0]-w[0]))}function t(A){let w=[];for(;;){let Q=A();if(0==Q)break;w.push(Q)}return w}function e(A,w,Q,C){let E=Array(A).fill().map((()=>[]));for(let t=0;t<w;t++)B(A,Q).forEach(((A,w)=>E[w].push(C?C[A]:A)));return E}function r(A,w){let Q=1+w(),B=w(),C=t(w);return e(C.length,1+A,w).map(((A,w)=>[A[0],A.slice(1),C[w],Q,B]))}function M(A,w){return e(1+w(),1+A,w).map((A=>[A[0],A.slice(1)]))}function D(A,w,Q){let B={};for(;;){let C=w(A);if(0==C.length)break;let E=1+A(),t=Array(E).fill(B);for(let w of C)t=e(E,w,A,Q).map(((A,w)=>{let Q=t[w],B=String.fromCodePoint(...A),C=Q[B];return C||(C=Q[B]={}),C}));t.forEach((A=>A[""]=1))}return B}function g(A,w){for(let[Q,B,C,E,t]of A){let A=w-Q;if(A<0)break;if(C>0){if(A<E*C&&A%E==0){let w=A/E;return B.map((A=>A+w*t))}}else if(0==A)return B}}function n(A){return A.replace(/[^\x20-\x21\x23-\x7A\x7C\x7E]/gu,(A=>`{${function(A){return A.toString(16).toUpperCase().padStart(2,"0")}(A.codePointAt(0))}}`))}function o(A){if("string"!=typeof A)throw new TypeError("expected string");return[...A].map((A=>A.codePointAt(0)))}var c=A("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");const i=Array(c()).fill().map((()=>C(c))),f=E(c),l=C(c),x=44032;function S(A){return A>=x&&A<55204}function T(A,w){if(A<128)w(A);else if(S(A)){let Q=A-x,B=Q%588/28|0,C=Q%28;w(4352+(Q/588|0)),w(4449+B),C>0&&w(4519+C)}else{let Q=g(f,A);if(Q)for(let A of Q)T(A,w);else w(A)}}function u(A,w){let Q=[];function B(){Q.sort(((A,w)=>A[0]-w[0])).forEach((([A,Q])=>w(A,Q))),Q.length=0}function C(A){let C=1+i.findIndex((w=>w.has(A)));0==C?(B(),w(C,A)):Q.push([C,A])}A.forEach((A=>T(A,C))),B()}function s(A){let w=[],Q=[],B=-1,C=0;return u(A,(function(A,E){if(-1===B)0==A?B=E:w.push(E);else if(C>0&&C>=A)0==A?(w.push(B,...Q),Q.length=0,B=E):Q.push(E),C=A;else{let t=function(A,w){if(A>=4352&&A<4371&&w>=4449&&w<4470)return x+(588*(A-4352)+28*(w-4449));if(S(A)&&w>4519&&w<4547&&(A-x)%28==0)return A+(w-4519);for(let[Q,B]of f)if(2==B.length&&B[0]==A&&B[1]==w){if(l.has(Q))break;return Q}return-1}(B,E);t>=0?B=t:0==C&&0==A?(w.push(B),B=E):(Q.push(E),C=A)}})),B>=0&&w.push(B),w.push(...Q),w}var L=A("ACUAAQDpAIEAfgBLAFkAawBgADAAVQAmACMAIgAlACAAPQAXABMAFQAOAA0ADAATABIAEgAPABEACwAMAAwAFAAlAA4CiAD2AAMEfQRvDCAA6xbF2ewNxQcEpzEwUhdEIQ4MFPFdAQR+Xghu/sUJhTcAxgAjDIIT11i1UgSFFg5DORgJEggA8l1t/b8GgzAAwgAECncPWK5LBIPsVokBEm8EjVUKOSQHJQoSRAAkpU4lim0AaUYDM38ErACLsk0bwwE9Py5BYQFLAfUFWXmEMgEEQlUcDdxTNj3nMabMOtteTE7wrBKhLiUA8HAuAPZKIwPMS5cW4WkBPiA9AKFuMnGFBgKIGAkPEAICHRQQGRAAWAgAGCY2AV4+HA4+By4BCA4OI0IXAgIaFiELCt72BhR4WAC0AEQCQgLeyQ4dAQs6OQo9Pg4eH4lDGN5VrgAeDh4wDkUlAh4sAgwCAg8NFgAeVCqOBxMZTm4C7AM6BA5lDjQhjj4LAQ4HFn4GBg4dIwAeCQcuIxMRAhsmDoEeGY4WHRkODB6ufj0uEAQMHAAuEm4jBwAeqR0C304J7k4DDg6uIt4BHjAOFQGhni4hKxbeA94hzgAuCW5OEZ6O3gcfAAAQXn40JiAANBIYGBgYGgEVFANZAN4VACAODgPOB/4eVAgODI6l3g8evhVuKC4G3gr+3v7eAJ8xaoQEDxUHDgILBgBXBxchNAFdNxI3ACQGChYOFg4aCZ70BBMHIyzewwQWNDgJPA4LDhCFQRieVWsAGw0uRCASIgQOBxEYUyqCDxlMSDdZCwsPAgQDfAICBhIAFQgUDwIBEg0WERARCQ0xCAYMJwQEAwJ5TaJBAw0BJQEXLw45KRYW1gO0AAEAaklS1AUcGTMlHwAyERcXFxcA3gsKGBsKpb4PF7wVYBwPAPwSKf7c/twFvADjBN8+AQMAA34ADpgelQ9gBRwYYgLm2WYCr9PLGBAJzhANkwEBZU0AcmA8UgHw1AIsBJ8CuREAEAVbADUN4E45AeJxUvNSfwK0AOB9Bl1loWFBA3QYGBgYChoNDlwFIYoDANxjAOdXAMYA2gDfYwGgAzQB6QAzACJ4BL8PPhcAyYhoAKEBMQFUACzlXkPODDwAAzsRChOJRRjAVa4AW09gAAYaAdRQsm8MAndjAC4uCIcD9wTsCFObqROxVN4azu4OThg91H4Cu14+Hg4uAD5yA0j+3v7e/t7+3v7e/t7+3v7e/t7+3v7e/t4A0Pzs/t7+3gIADg4AhG8GAKAAMQFSRzw3tAIeFQABKyA1CkIDArZSNxYGADJxFeAM7kwEnod/ygAbEhkPHAIlEhkTHBEWIxlvEic5XmJrmgYHEHhnxxmTgt4PaXlhsZIQPA4SE81ODwW9wQY9BKBNMI86Q38/5DoAYUwBZXtFAdEsUJZzaW8HCL0B3wBh7A4qGWkkVCMJDh0QPD0eAx4lukgZTkBLLjdyAbYCkyAgWHm8HxsuFBMAGxt4pgHuCv3PAShNdLQIMAATfSQXFEtbDFHyBDQFaQqLAR0AZXkalBkSJQUxFESLGQmmT841T0vm4HcFCA8AdjhaLwBBStseAz1L7BFBDgEVA3YGnBk+BD3oAJoEwlILFppOCwIeDBUQzntD+oaxJbOqEsPmVoztmeEOgU272aOQMCbwOpB/Ypso4k/TTLW0oWpP3Rz3gHw2yY1UgZPtktnZk107pZPg3CQ+O2NJZ4RdQ8VrO8v8sA5Nf64eb7biK378+U434pbsbN5D/nUXJvQoZ2tsF7kCJBqxJCTNIptt2KVrMk9oCmdP0yza2mLjtAXAvD9RwvMgHNASOAHQHieInuWJb1575ohdCFscyN5HjENm6r3fmapvd12TrCubUm7XFYfHvmy8dSIQOESuJavaW0D8rbUXGUc7rPRuiWRnOFLlYcrqLc3LiwzjN7uzF6ECR7SY0Tzdx+FJN5Dl8dSD9VRuo2SKneiXQYjuXJ70nT50AuF9I7taX6vp5rEML9UbCTMpLStDd8XHbeVYsjSuXkuxcXDGzy11XOqM4/Ld+ZRABTvb0FzlY8mXbveszS4/glZhNu5eLJmy5AooQTWVutjvuWDrsDkUZ9am2TOeKMG8TLHRwjVBB4FhPtiujqXvesGvWwQ1w3s89y+jX47rIhp+El9c2QFM4BVQggIR28OeFU3V5TjwdLSSW8/9MAJ+qPuP74Iy+oDcIeIjgCJGHt52YnnwJV5+xKR+HjQws+fTAiOhcOW+zy609VzzQk+y0A7kdHdBBsXBB36UOFdzdYujG5PO1IXoFWrs3trl6gV4JKHvTsSvFdHz22LQv21L1uh45KVqrt+uUQyVd6ulDXkU/TOXxUk+HcujwWsIGjbyNKggFFDe5Mc4eHSKGezjtMlWeigB0nB6+8BrawOjtBF04xeKukf+o037M7ExZxCAGsVZ0PpTtc1TJlHhU+eUkh3LpBhTs2XCQewf98wydOE14KvF948SMOcIGmBFbIJR1V45meM46ACb1xWIaoJ3MkVdmkp7LuDsLQXzO742rKyrd/KspPEmjyviR3dNO/MNxJTes46EMlMdsAMMLPebHcs5hRcRuz1/3OWqWFHqsh7caP90rBA5z+0izaxZSEowxCpGcXJQmNX9ZRy7Wv2wppZZq5X96vy3Rhy6NkxfjqH4/xB5uK7Icux88zxeKS7HmRvYcD8R+lFRBO5I2hpXjDgvpLU+7LiZ7rsriL2IYSB5FoDZgc0aM7b51cp3qP5LO1LVPlSZunn1e/++/NlO4eEbUxhPePIEkeDKLV5SOXSS+SdvvpIbWH7fhP2kZRVCfvWrXrTny8dF2vD0/c17qfSxPu4hBzxzYL0X0HiW3j4APx7arPhNWGGOMWyuGGwuycrdUX3N1O3MCM+qWMORw+vbHSf7dxpmse8hGZvWaY9vtOvMRlFdhveoSnJLhb63k7kZxhLgSnbSVrw4SgaQmAVbn9aMlXJUuAW5/7DeZtB3AXYZJsC8u7TQ3U6MRQH3W0Y+TbKy23n6WDnjFbCNWCdxG69uYaQ65G91unS+/VBV5ogka0CGR7Pv1YajbSPKr+opmKCb8f/fHsNZ6yFhw4UYHSVjedw+2yeZ5IuZ6t35SPLGkb2zQC2XtoVv4vfHXPMH9GXD0mvawBsT2wVm/NdfNcvMGrXSpnK8FBBUUazjP+S4U5ffPk0rTU/FefFYW+Y2Ir95i4j0HghljDTPXjDwRIS9jeeG8RSNJV1X7TJVb/w2cACSCwugUvUcxGm9OQL9SDI=");const U=C(L),G=C(L),F=C(L),J=C(L),I=C(L),R=C(L);function N(A){if(0==A.length)return;let w=A.length-1;if(U.has(A[0])){if(!A.every((A=>U.has(A)||F.has(A)||J.has(A)||I.has(A)||R.has(A))))throw new Error("RTL: disallowed properties");for(;R.has(A[w]);)w--;if(w=A[w],!(U.has(w)||J.has(w)||F.has(w)))throw new Error("RTL: disallowed ending");if(A.some((A=>J.has(A)))&&A.some((A=>F.has(A))))throw new Error("RTL: AN+EN")}else{if(!G.has(A[0]))throw new Error("unknown direction");if(!A.every((A=>G.has(A)||J.has(A)||I.has(A)||R.has(A))))throw new Error("LTR: disallowed properties");for(;R.has(A[w]);)w--;if(w=A[w],!G.has(w)&&!J.has(w))throw new Error("LTR: disallowed ending")}}var K=A("ABIAAQB6AEAAOAAoACYAHwAiABgAFgAOAAsACwAMAY8AfgADApQhCD9xcXFxcXFxcW5hcbsGoY8Bf9URLHl4F4mAXgAn6F1DBPgbACv4ZqZU5nHucWhm/wCYRQRDAJcASQwtAe8FzAOHOfQyBvsC+GifBANGRZDdAC4CJSwCIi8GFTgCJSwmLyQpNix4JTpMcXV+rQEGGggji3raLA6mlfECCAxleXQSxKUjTyElAibgTiIC0gHv1AZQBLNgQ6JNVpJS9wlNAHRfAXiOWADp7D9QqYZpggAHGwscRNcB8gB0/yE9LHw3ZzYcITAjCk8BAlASEDEWAjEMCTgFzVsHDywSYVMEXgVBSgCFDAQFAckCphERETMDM2uMA88yLkEnJgYTLi6LB7kBPw0nVwsQ4gE7YHTHG0MAJpANNxIqJ15uH1IFEQDKAm4FfB2eATAAeIwtpywlOBhEJwRXng4sHLli4Q5IYl7584oYIwciAIlLCW1CAFQULjWxMQNQS/8RUSEBKAMWiQavLFEEUAT7AK0E1WULFc3RYR4GDAkRFRAxEhEDAQEABx8IASgjAAJR4QwFEpUiGzjHDw5ylPEUpACEAX4jBRwWExgAGwkSAkFoCRgIAA5XWI6qYXEEjBQARAEhDhAt2CcBFwASAEoTJBMCNQUSphsCAEEXDnKU8Q4OA70WBRQQHmoJLG5nEwoIDmNYjqphcQSGGgBJASASEDPYKA9QDyQSCgQMShMjAxQGAzUCcRkkAIsAuokwVSwLAmIGPhgnKACLCRkAEicBAQbgO8+xBTABBxcQJgAEQDf6MASDMBD0HwwoDAsu9wDA6hMtcgxWABIITU3k0SHxGPGp8QBhA+dvYj7xAEEFTY2l8Q8x0RWBKEEG8QtKx0dLASBJGLFQ8QBfWx4AFKXRDyrPFXMcIgEPEjzcS9Wn/KALJxnXU2YJOBWKOmP82gdIgmNcRsDi+p7FBLYbwm9Uzs1RfCbNpY30PNDOtZBhbqPBybOPeWa7oi+ySNuja7E79Fz+oJqkWRGdXLqRl46pfoUDu0uKXTiGuFf3GtJzAXtJmxI3V8am/mpQnjfi99U7ZkojTh6fKYexodlCUm8Nn5tkJXqdPwxaQiU29Pa8nQxhFccS0ZzA2p+XNo3r68FBGjQNasxwtQH/0ELiOQLNuyc0YqOxCPnfFsvASXVP7enrn5p48UHDGS6NU/kYR37WSJ7+CN+nV4NqWlRTc/nQOuWoDD2Cnkn26E21fE+79xMXG2voqdtyef5eUY6MOoAAPIvdUDW+i16JSxe2+srXAYVvzbE8SKhyxzjFf2rMlgMycfXR8nl6/xF97xDwBSNLExVnK4YUGbAMpgGeHD0vHVXsIK20HyDdJQ9a5Uhwta5o+Tw/HpthmalqVX7v90SgUzjZaEahH3JPOhT8k+LFPClF+c5gMeKg");const k=C(K),H=C(K),V=C(K),p=C(K),Y=C(K),h=C(K),a=C(K);var z=A("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");const b="2022-05-02T09:44:51.349Z",O="14.0.0",P="1.3.16",d="2003",X=C(z),y=C(z),j=C(z),Z=E(z),m=C(z),v=z()&&function(A){const w=C(A),Q=C(A),B=C(A),E=C(A),e=C(A),r=C(A),M=C(A),g=C(A),n=C(A),o=D(A,(A=>Array(A()).fill(1))),c=A()?D(A,t,[...E,...r].sort(((A,w)=>A-w))):1,i=65039,f=8205,l=8419;function x(A,w){if(1===A)return 1;let Q=String.fromCodePoint(...w.filter((A=>A!=i)));return A.hasOwnProperty(Q)?A[Q]:void 0}function S(A,w){let Q=A[w];if(!Q)return;let B=A[w+1];if(g.has(Q)&&B&&M.has(B))return[2,[Q,B]];if(B==i){if(E.has(Q))return[2,[Q]];if(r.has(Q)||e.has(Q))return[2,[Q,i]]}return E.has(Q)||r.has(Q)?[1,[Q]]:void 0}return function(A,C){let E=A[C],t=String.fromCodePoint(E);if(o.hasOwnProperty(t)){let w=o[t],Q=C+1;for(;;){let B=A[Q];if(!B)break;let C=String.fromCodePoint(B);if(!w.hasOwnProperty(C))break;w=w[C],Q++}if(w.hasOwnProperty(""))return[Q-C,A.slice(C,Q)]}let e=A[C+1];if(w.has(E)&&w.has(e))return[2,[E,e]];let r=Q.has(E);if(r&&e===l)return[2,[E,l]];if((r||B.has(E))&&e===i&&A[C+2]===l)return[3,r?[E,l]:[E,i,l]];let M=S(A,C);if(!M)return[0];let[D,g]=M,T=C+D;if(e=A[T],e===f){let w=x(c,g);if(w){let Q,B=[],E=T;for(;A[E++]===f;){let C=S(A,E);if(!C)break;let[t,e]=C;if(w=x(w,e),!w)break;E+=t,1===w?(g.push(f,...e),Q=E):(B.push(f,...e),w.hasOwnProperty("")&&(g.push(...B),B.length=0,Q=E))}if(Q)return[Q-C,g]}}if(n.has(e)){let w=T+1;for(;n.has(A[w]);)w++;if(917631===A[w++])return[w-C,g.concat(A.slice(T,1+w-T))]}return M}}(z);function W(A){return A.flatMap((({e:A,v:w})=>A??s(w)))}function q(A,w){return new Error(`Disallowed label "${n(String.fromCodePoint(...A))}": ${w}`)}function $(A){const w=45;let Q=AA(s(o(A)),(A=>{if(X.has(A))return;if(j.has(A))return[];if(y.has(A))return[A];let w=g(Z,A);if(w)return w;throw new Error(`Disallowed character "${n(String.fromCodePoint(A))}"`)})).map((A=>{let Q=W(A);if(Q.length>=4&&120==Q[0]&&110==Q[1]&&Q[2]==w&&Q[3]==w)try{let w=function(A){let w=[],Q=A.lastIndexOf(45);for(let B=0;B<Q;B++){let Q=A[B];if(Q>=128)throw new Error("expected ASCII");w.push(Q)}Q++;const B=36;let C=0,E=128,t=72;for(;Q<A.length;){let e=C;for(let w=1,E=B;;E+=B){if(Q>=A.length)throw new Error("invalid encoding");let e=A[Q++];if(e>=48&&e<=57)e-=22;else{if(!(e>=97&&e<=122))throw new Error(`invalid character ${e}`);e-=97}C+=e*w;const r=E<=t?1:E>=t+26?26:E-t;if(e<r)break;w*=B-r}let r=w.length+1,M=0==e?C/700|0:C-e>>1;M+=M/r|0;let D=0;for(;M>455;D+=B)M=M/35|0;t=D+36*M/(M+38)|0,E+=C/r|0,C%=r,w.splice(C++,0,E)}return w}(Q.slice(4));[A]=AA(w,(A=>y.has(A)?[A]:[]));let B=W(A);if(w.length!=B.length||!w.every(((A,w)=>A==B[w])))throw new Error("not normalized");Q=w}catch(A){throw q(Q,`punycode: ${A.message}`)}let B=A.reduce(((A,{v:w})=>(w?A.push(...w):A.length>0&&A.push(65039),A)),[]);if(Q.length>0){if(Q.length>=4&&Q[2]==w&&Q[3]==w)throw q(Q,"invalid label extension");if(Q[0]==w)throw q(Q,"leading hyphen");if(Q[Q.length-1]==w)throw q(Q,"trailing hyphen");if(m.has(Q[0]))throw q(Q,"leading combining mark");try{!function(A){for(let w=0,Q=A.length-1;w<=Q;w++){switch(A[w]){case 8204:if(w>0&&k.has(A[w-1]))continue;if(w>0&&w<Q){let B=w-1;for(;B>0&&H.has(A[B]);)B--;if(V.has(A[B])){let B=w+1;for(;B<Q&&H.has(A[B]);)B++;if(p.has(A[B]))continue}}break;case 8205:if(w>0&&k.has(A[w-1]))continue;break;case 183:if(w>0&&w<Q&&108==A[w-1]&&108==A[w+1])continue;break;case 885:if(w<Q&&Y.has(A[w+1]))continue;break;case 1523:case 1524:if(w>0&&h.has(A[w-1]))continue;break;default:continue}throw new Error(`No context for "${n(String.fromCodePoint(A[w]))}"`)}if(A.some((A=>A>=1632&&A<=1641))&&A.some((A=>A>=1776&&A<=1785)))throw new Error("Disallowed arabic-indic digit mixture");if(A.includes(12539)&&!A.some((A=>a.has(A))))throw new Error("Disallowed katakana")}(B)}catch(A){throw q(Q,A.message)}}return{cps:Q,text:B}}));if(Q.some((A=>A.text.some((A=>U.has(A)||F.has(A))))))for(let{text:A,cps:w}of Q)try{N(A)}catch(A){throw q(w,`bidi: ${A.message}`)}return Q.map((A=>String.fromCodePoint(...A.cps))).join(".")}function _(A){return AA(o(A),(A=>{if(X.has(A))return{};if(y.has(A))return[A];if(j.has(A))return{i:A};let w=g(Z,A);return w?{m:w,u:[A]}:{d:A}}))[0]}function AA(A,w){let Q=[],B=[],C=[B];function E(){Q.length>0&&(B.push({v:Q}),Q=[])}for(let t=0;t<A.length;t++){if(v){let[w,Q]=v(A,t);if(w>0){E(),B.push({e:Q,u:A.slice(t,t+w)}),t+=w-1;continue}}let e=w(A[t]);Array.isArray(e)?Q.push(...e):(E(),e?B.push(e):(B=[],C.push(B)))}return E(),C}export{b as BUILT,d as NAME,O as UNICODE,P as VERSION,$ as ens_normalize,_ as ens_tokenize};

@@ -83,3 +83,2 @@ function decode_arithmetic(bytes) {

// returns an iterator which returns the next symbol
/*

@@ -93,2 +92,4 @@ export function read_payload(v) {

*/
// returns an iterator which returns the next symbol
function read_payload(v) {

@@ -305,43 +306,2 @@ let pos = 0;

// this returns [[]] if empty
// {e:[],u:[]} => emoji
// {v:[]} => chars
function tokenized_idna(cps, emoji_parser, tokenizer) {
let chars = [];
let tokens = [];
let labels = [tokens];
function drain() {
if (chars.length > 0) {
tokens.push({v: chars});
chars = [];
}
}
for (let i = 0; i < cps.length; i++) {
if (emoji_parser) {
let [len, e] = emoji_parser(cps, i);
if (len > 0) {
drain();
tokens.push({e, u:cps.slice(i, i+len)}); // these are emoji tokens
i += len - 1;
continue;
}
}
let cp = cps[i];
let token = tokenizer(cp);
if (Array.isArray(token)) { // this is more characters
chars.push(...token);
} else {
drain();
if (token) { // this is a token
tokens.push(token);
} else { // this is a label separator
tokens = []; // create a new label
labels.push(tokens);
}
}
}
drain();
return labels;
}
// returns an emoji parser

@@ -432,2 +392,3 @@ function emoji_parser_factory(r) {

}
// [ED-14c] emoji keycap sequence

@@ -443,2 +404,3 @@ // https://unicode.org/reports/tr51/#def_emoji_keycap_sequence

}
// [ED-15] emoji core sequence

@@ -451,2 +413,3 @@ // emoji_core_sequence := emoji_keycap_sequence | emoji_flag_sequence | chr_mod_pre

if (!emoji0) return [0]; // nope
// [ED-17] emoji sequence

@@ -493,2 +456,3 @@ // emoji_sequence := chr_mod_pre | emoji_zwj_sequence | emoji_tag_sequence

}
// [ED-14a] emoji tag sequence (ETS)

@@ -787,6 +751,6 @@ // https://www.unicode.org/reports/tr51/#def_emoji_tag_sequence

const BUILT = '2022-01-16T00:14:41.340Z';
const BUILT = '2022-05-02T09:44:51.349Z';
const UNICODE = '14.0.0';
const VERSION = '1.3.11';
const IDNA = '2008';
const VERSION = '1.3.16';
const NAME = '2008';
const STOP = read_member_set(r);

@@ -797,8 +761,5 @@ const VALID = read_member_set(r);

const COMBINING_MARKS = read_member_set(r);
const EMOJI_PARSER = r() && emoji_parser_factory(r);
const EMOJI_PARSER = r() && emoji_parser_factory(r); // this is optional
// emoji tokens are as-is
// text tokens are normalized
// note: it's safe to apply to entire
// string but you'd have to retokenize
// collapse emoji or NFC(text) to code points
function flatten_tokens(tokens) {

@@ -842,3 +803,3 @@ return tokens.flatMap(({e, v}) => e ?? nfc(v));

const HYPHEN = 0x2D; // HYPHEN MINUS
let labels = tokenized_idna(explode_cp(name), EMOJI_PARSER, cp => {
let labels = tokenized_idna(nfc(explode_cp(name)), cp => {
// ignored: Remove the code point from the string. This is equivalent to mapping the code point to an empty string.

@@ -858,24 +819,23 @@ if (STOP.has(cp)) return;

// [Processing] 4.) Convert/Validate
if (cps.length >= 4 && cps[2] == HYPHEN && cps[3] == HYPHEN) { // "**--"
if (cps[0] == 0x78 && cps[1] == 0x6E) { // "xn--"
try {
// Attempt to convert the rest of the label to Unicode according to Punycode [RFC3492].
// If that conversion fails, record that there was an error, and continue with the next label.
let cps_decoded = puny_decode(cps.slice(4));
// With either Transitional or Nontransitional Processing, sources already in Punycode are validated without mapping.
// In particular, Punycode containing Deviation characters, such as href="xn--fu-hia.de" (for fuƟ.de) is not remapped.
// This provides a mechanism allowing explicit use of Deviation characters even during a transition period.
[tokens] = tokenized_idna(cps_decoded, EMOJI_PARSER, cp => VALID.has(cp) ? [cp] : []);
let expected = flatten_tokens(tokens);
if (cps_decoded.length != expected.length || !cps_decoded.every((x, i) => x == expected[i])) throw new Error('not normalized');
// Otherwise replace the original label in the string by the results of the conversion.
cps = cps_decoded;
// warning: this could be empty
// warning: this could be "**--"
} catch (err) {
throw label_error(cps, `punycode: ${err.message}`);
}
if (cps.length >= 4 && cps[0] == 0x78 && cps[1] == 0x6E && cps[2] == HYPHEN && cps[3] == HYPHEN) { // "xn--"
try {
// Attempt to convert the rest of the label to Unicode according to Punycode [RFC3492].
// https://www.rfc-editor.org/rfc/rfc3492.html
// If that conversion fails, record that there was an error, and continue with the next label.
let cps_decoded = puny_decode(cps.slice(4));
// With either Transitional or Nontransitional Processing, sources already in Punycode are validated without mapping.
// In particular, Punycode containing Deviation characters, such as href="xn--fu-hia.de" (for fuƟ.de) is not remapped.
// This provides a mechanism allowing explicit use of Deviation characters even during a transition period.
[tokens] = tokenized_idna(cps_decoded, cp => VALID.has(cp) ? [cp] : []);
let expected = flatten_tokens(tokens);
if (cps_decoded.length != expected.length || !cps_decoded.every((x, i) => x == expected[i])) throw new Error('not normalized');
// Otherwise replace the original label in the string by the results of the conversion.
cps = cps_decoded;
// warning: this could be empty
// warning: this could be "**--"
} catch (err) {
throw label_error(cps, `punycode: ${err.message}`);
}
}
// flatten textual part of token to a single list of code-points
// flatten textual part of label into a single list of code-points
let text = tokens.reduce((a, {v}) => {

@@ -891,3 +851,3 @@ if (v) {

// [Validity] 1.) The label must be in Unicode Normalization Form NFC.
// => satsified by nfc() via flatten_label_tokens()
// => satsified by nfc() via flatten_tokens()
// [Validity] 2.) If CheckHyphens, the label must not contain a U+002D HYPHEN-MINUS character in both the third and fourth positions.

@@ -915,3 +875,3 @@ // note: we check this here (rather than above) because puny can expand into "aa--bb"

}
return {tokens, cps, text};
return {/*tokens,*/ cps, text};
});

@@ -944,3 +904,3 @@ // [Validity] 8.) If CheckBidi, and if the domain name is a Bidi domain name, then the label

function ens_tokenize(name) {
return tokenized_idna(explode_cp(name), EMOJI_PARSER, cp => {
return tokenized_idna(explode_cp(name), cp => {
if (STOP.has(cp)) return {};

@@ -955,2 +915,43 @@ if (VALID.has(cp)) return [cp]; // this gets merged into v

export { BUILT, IDNA, UNICODE, VERSION, ens_normalize, ens_tokenize };
// this returns [[]] if empty
// {e:[],u:[]} => emoji
// {v:[]} => chars
function tokenized_idna(cps, tokenizer) {
let chars = [];
let tokens = [];
let labels = [tokens];
function drain() {
if (chars.length > 0) {
tokens.push({v: chars});
chars = [];
}
}
for (let i = 0; i < cps.length; i++) {
if (EMOJI_PARSER) {
let [len, e] = EMOJI_PARSER(cps, i);
if (len > 0) {
drain();
tokens.push({e, u:cps.slice(i, i+len)}); // these are emoji tokens
i += len - 1;
continue;
}
}
let cp = cps[i];
let token = tokenizer(cp);
if (Array.isArray(token)) { // this is more characters
chars.push(...token);
} else {
drain();
if (token) { // this is a token
tokens.push(token);
} else { // this is a label separator
tokens = []; // create a new label
labels.push(tokens);
}
}
}
drain();
return labels;
}
export { BUILT, NAME, UNICODE, VERSION, ens_normalize, ens_tokenize };

@@ -1,1 +0,1 @@

function A(A){return function(A){let w=0;return()=>A[w++]}(function(A){let w=0;function B(){return A[w++]<<8|A[w++]}let g=B(),Q=1,t=[0,1];for(let A=1;A<g;A++)t.push(Q+=B());let C=B(),r=w;w+=C;let e=0,D=0;function E(){return 0==e&&(D=D<<8|A[w++],e=8),D>>--e&1}const n=2**31,o=n>>>1,M=n-1;let c=0;for(let A=0;A<31;A++)c=c<<1|E();let i=[],x=0,F=n;for(;;){let A=Math.floor(((c-x+1)*Q-1)/F),w=0,B=g;for(;B-w>1;){let g=w+B>>>1;A<t[g]?B=g:w=g}if(0==w)break;i.push(w);let C=x+Math.floor(F*t[w]/Q),r=x+Math.floor(F*t[w+1]/Q)-1;for(;0==((C^r)&o);)c=c<<1&M|E(),C=C<<1&M,r=r<<1&M|1;for(;C&~r&536870912;)c=c&o|c<<1&M>>>1|E(),C=C<<1^o,r=(r^o)<<1|o|1;x=C,F=1+r-C}let u=g-4;return i.map((w=>{switch(w-u){case 3:return u+65792+(A[r++]<<16|A[r++]<<8|A[r++]);case 2:return u+256+(A[r++]<<8|A[r++]);case 1:return u+A[r++];default:return w-1}}))}(Uint8Array.from(atob(A),(A=>A.charCodeAt(0)))))}function w(A){return 1&A?~A>>1:A>>1}function B(A,w){let B=Array(A);for(let g=0,Q=-1;g<A;g++)B[g]=Q+=1+w();return B}function g(A,B){let g=Array(A);for(let Q=0,t=0;Q<A;Q++)g[Q]=t+=w(B());return g}function Q(A){let w=new Set(B(A(),A)),g=A(),Q=B(g,A),t=function(A,w){let B=Array(A);for(let g=0;g<A;g++)B[g]=1+w();return B}(g,A);for(let A=0;A<g;A++)for(let B=0;B<t[A];B++)w.add(Q[A]+B);return w}function t(A){let w=[];for(;;){let B=A();if(0==B)break;w.push(e(B,A))}for(;;){let B=A()-1;if(B<0)break;w.push(D(B,A))}return w.flat().sort(((A,w)=>A[0]-w[0]))}function C(A){let w=[];for(;;){let B=A();if(0==B)break;w.push(B)}return w}function r(A,w,B,Q){let t=Array(A).fill().map((()=>[]));for(let C=0;C<w;C++)g(A,B).forEach(((A,w)=>t[w].push(Q?Q[A]:A)));return t}function e(A,w){let B=1+w(),g=w(),Q=C(w);return r(Q.length,1+A,w).map(((A,w)=>[A[0],A.slice(1),Q[w],B,g]))}function D(A,w){return r(1+w(),1+A,w).map((A=>[A[0],A.slice(1)]))}function E(A,w,B){let g={};for(;;){let Q=w(A);if(0==Q.length)break;let t=1+A(),C=Array(t).fill(g);for(let w of Q)C=r(t,w,A,B).map(((A,w)=>{let B=C[w],g=String.fromCodePoint(...A),Q=B[g];return Q||(Q=B[g]={}),Q}));C.forEach((A=>A[""]=1))}return g}function n(A,w){for(let[B,g,Q,t,C]of A){let A=w-B;if(A<0)break;if(Q>0){if(A<t*Q&&A%t==0){let w=A/t;return g.map((A=>A+w*C))}}else if(0==A)return g}}function o(A){return A.replace(/[^\x20-\x21\x23-\x7A\x7C\x7E]/gu,(A=>{return`{${w=A.codePointAt(0),w.toString(16).toUpperCase().padStart(2,"0")}}`;var w}))}function M(A){if("string"!=typeof A)throw new TypeError("expected string");return[...A].map((A=>A.codePointAt(0)))}function c(A,w,B){let g=[],Q=[],t=[Q];function C(){g.length>0&&(Q.push({v:g}),g=[])}for(let r=0;r<A.length;r++){if(w){let[B,g]=w(A,r);if(B>0){C(),Q.push({e:g,u:A.slice(r,r+B)}),r+=B-1;continue}}let e=B(A[r]);Array.isArray(e)?g.push(...e):(C(),e?Q.push(e):(Q=[],t.push(Q)))}return C(),t}var i=A("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");const x=Array(i()).fill().map((()=>Q(i))),F=t(i),u=Q(i),I=44032;function f(A){return A>=I&&A<55204}function l(A,w){if(A<128)w(A);else if(f(A)){let B=A-I,g=B%588/28|0,Q=B%28;w(4352+(B/588|0)),w(4449+g),Q>0&&w(4519+Q)}else{let B=n(F,A);if(B)for(let A of B)l(A,w);else w(A)}}function Y(A,w){let B=[];function g(){B.sort(((A,w)=>A[0]-w[0])).forEach((([A,B])=>w(A,B))),B.length=0}function Q(A){let Q=1+x.findIndex((w=>w.has(A)));0==Q?(g(),w(Q,A)):B.push([Q,A])}A.forEach((A=>l(A,Q))),g()}var T=A("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");const S=Q(T),s=Q(T),U=Q(T),L=Q(T),K=Q(T),G=Q(T);function h(A){if(0==A.length)return;let w=A.length-1;if(S.has(A[0])){if(!A.every((A=>S.has(A)||U.has(A)||L.has(A)||K.has(A)||G.has(A))))throw new Error("RTL: disallowed properties");for(;G.has(A[w]);)w--;if(w=A[w],!(S.has(w)||L.has(w)||U.has(w)))throw new Error("RTL: disallowed ending");if(A.some((A=>L.has(A)))&&A.some((A=>U.has(A))))throw new Error("RTL: AN+EN")}else{if(!s.has(A[0]))throw new Error("unknown direction");if(!A.every((A=>s.has(A)||L.has(A)||K.has(A)||G.has(A))))throw new Error("LTR: disallowed properties");for(;G.has(A[w]);)w--;if(w=A[w],!s.has(w)&&!L.has(w))throw new Error("LTR: disallowed ending")}}var H=A("ABIAAQB6AEAAOAAoACYAHwAiABgAFgAOAAsACwAMAY8AfgADApQhCD9xcXFxcXFxcW5hcbsGoY8Bf9URLHl4F4mAXgAn6F1DBPgbACv4ZqZU5nHucWhm/wCYRQRDAJcASQwtAe8FzAOHOfQyBvsC+GifBANGRZDdAC4CJSwCIi8GFTgCJSwmLyQpNix4JTpMcXV+rQEGGggji3raLA6mlfECCAxleXQSxKUjTyElAibgTiIC0gHv1AZQBLNgQ6JNVpJS9wlNAHRfAXiOWADp7D9QqYZpggAHGwscRNcB8gB0/yE9LHw3ZzYcITAjCk8BAlASEDEWAjEMCTgFzVsHDywSYVMEXgVBSgCFDAQFAckCphERETMDM2uMA88yLkEnJgYTLi6LB7kBPw0nVwsQ4gE7YHTHG0MAJpANNxIqJ15uH1IFEQDKAm4FfB2eATAAeIwtpywlOBhEJwRXng4sHLli4Q5IYl7584oYIwciAIlLCW1CAFQULjWxMQNQS/8RUSEBKAMWiQavLFEEUAT7AK0E1WULFc3RYR4GDAkRFRAxEhEDAQEABx8IASgjAAJR4QwFEpUiGzjHDw5ylPEUpACEAX4jBRwWExgAGwkSAkFoCRgIAA5XWI6qYXEEjBQARAEhDhAt2CcBFwASAEoTJBMCNQUSphsCAEEXDnKU8Q4OA70WBRQQHmoJLG5nEwoIDmNYjqphcQSGGgBJASASEDPYKA9QDyQSCgQMShMjAxQGAzUCcRkkAIsAuokwVSwLAmIGPhgnKACLCRkAEicBAQbgO8+xBTABBxcQJgAEQDf6MASDMBD0HwwoDAsu9wDA6hMtcgxWABIITU3k0SHxGPGp8QBhA+dvYj7xAEEFTY2l8Q8x0RWBKEEG8QtKx0dLASBJGLFQ8QBfWx4AFKXRDyrPFXMcIgEPEjzcS9Wn/KALJxnXU2YJOBWKOmP82gdIgmNcRsDi+p7FBLYbwm9Uzs1RfCbNpY30PNDOtZBhbqPBybOPeWa7oi+ySNuja7E79Fz+oJqkWRGdXLqRl46pfoUDu0uKXTiGuFf3GtJzAXtJmxI3V8am/mpQnjfi99U7ZkojTh6fKYexodlCUm8Nn5tkJXqdPwxaQiU29Pa8nQxhFccS0ZzA2p+XNo3r68FBGjQNasxwtQH/0ELiOQLNuyc0YqOxCPnfFsvASXVP7enrn5p48UHDGS6NU/kYR37WSJ7+CN+nV4NqWlRTc/nQOuWoDD2Cnkn26E21fE+79xMXG2voqdtyef5eUY6MOoAAPIvdUDW+i16JSxe2+srXAYVvzbE8SKhyxzjFf2rMlgMycfXR8nl6/xF97xDwBSNLExVnK4YUGbAMpgGeHD0vHVXsIK20HyDdJQ9a5Uhwta5o+Tw/HpthmalqVX7v90SgUzjZaEahH3JPOhT8k+LFPClF+c5gMeKg");const k=Q(H),a=Q(H),J=Q(H),N=Q(H),P=Q(H),R=Q(H),O=Q(H);var X=A("AEQDBQK2C9QAywGsAEkBKABxAM0AZwCVADsAZwAnAFsAQABlACwARwAWAE4AGQA1AB4AIwASAE0AFQAjABcALgAoADQAEAAcABYAMwAJAB4ADgATAAwAHAAPABUAFwArADQALwAqADIAEQAtABAAGgAOAA4ADwAaABEAEwAIAAsAFwNVBJ4A1w8WLpPNyxIBLUkJXhMGKAD1AHQzYEUAH20RAVEnA9YBjwFHcjIAFwmcwQDMdMRHEo5P1bwCFAJJogNfRwDCA6cAWnMlIQmHAC8APAGE/RUBXAE1uYQFiQD6PRQDKQUOEgpRGzIKPAUPP8IJBCABLRAfDwAPP0IqBpQiDwrjLA4A5BcjWg8Azxi/VY/PHBEBIgUPDw4gH0zNArgAnwC/Hx83JgT/Xx8fAT9/AA8PJRAILE8PD28Pf38PDx8ADxb/3wM/Cc8vEr8ivwD/DwGiXw4QFr8DvyGvAA8JTy8RIgmPHwMev5kADwPfjxEVb6W/Dv+fFU8wDyAaJAk0CQ0IAhUBKwoYBQwzFR0Yf1VMzAcFAAgqYzo19ggGBAoFAAkIAlmDIALuAQYA+A4KFrcDleIASyqEpZ8O+J0VQRvwEgptAWETfwa7FN1aFsvktL1fC0MfrxBCogAiEAHeUHQBAhxOD9YapjYBWABgANieCgSGbA0gvAY2A/bvqpyEAGByBARiAAAoB4QAIABAApoIVBcAqgDKQCDUCMAuA7YUQAD3MnCoYAAGgh0AHAF8KKwAGgBPAGoBIhveHh0X3hof8QJ4ApcCrjQ2OAMFPAVhBToBezegAGAAPhc2CZYJlyMgVl5SoaDKQ/MAOV3KmuYzABYoACEK8SJfUgBdAKXeACAAPgEElbNoJwgAgQEUwBbAqgAB2r0FYAXlAtCkAsS1AApRIaRqFHgachWINjILAMAoHhQIlABAkNAULi/AACAAAAAyniIA9BVolvFqQAAETqXEaBYaAMxIARKKVgDCKB4UCAJ9BNKQ0BQuB4c56AAAACACNgsFf1a4lvFqQAAETgBBcQw0BwUGApkyApOOQNgCAK5UAWwAphID3ACwcAE/tgoO8CIAApAFQgA2kjkF9s8WA83GAAsDmaIOCjQCjqYCht0/kwM2ngKD9wEkyg4A8OgAigFGAjKSCiaUWgBOAOcKJgAc2b7NEQD5YgsUCxoLGAXWABQAPDASmBB+HkYU5AI2HhXIAAgGAHgAbDqskAWWDayqugEgaIYBdAAKDgDmEABmBAWGme5OrAQkABRwDowAmITWAXwrMgOgAGwBCh6CBXYF1Tzg1wKAAFdiuABRAFwAXQBsAG8AdgBrAHYAbwCEAHEwfxQBVE5TEQADVFhTBwBDANILAqcCzgLTApQCrQL6vAAMAL8APLhNBKkE6glGKTAU4Dr4N2EYEwBCkABKk8rHAbYBmwIoAiU4Ajf/Aq4CowCAANIChzgaNBsCsTgeODcFXrgClQKdAqQBiQGYAqsCsjTsNHsfNPA0ixsAWTWiOAMFPDQSNCk2BDZHNow2TTZUNhk28Jk9VzICggKhArABJwA1BV4FXbS/BW4FdzlXIlKrNOQ0vxcAAVMCVtdXupx7mGZkof0QGAPKDCr2fCgEqFACWFgCeiCwLAGUqKo6YANKHASIZg4A1gAGsEQ0KAAHLgI+YgBwAWYkdgCIIh4AmgFOvAAsbhwBtMoDPDImSAJYAXReBmoCagD2ThwDLgYKAE5GALAAYgB4ADC6Bgz49B6ShAQADiYALgC4IEwB1gHgDBA2l30JQdjFEGQQYQYDTQ5McT8VEAKxD6sL6hEaDNYq0F+iB/ADWAfwA1gDWAfwB/ADWAfwA1gDWANYA1gcD/Af2MUQZA9NBHIFkwWQBNsIiCZOEYYHLQjXVBJ0IxxMA0oBASMqSSE7mDMQJUdMEU0ICAE2R2ysfT0DTDGwVPqQpwPQMlQ5cQYDHnYSpQAvD3ghNbpOg3pMcaUKUE+zV/cARQYAEqsAEuYASQ0oAFAsBj0ASOM02AATRgBNmwBNygBMXRgASmgG4ABQVwBQjgBQSQASNklnTmwCwzqtP/0KJgmYb8B3UwZCEBwnphD4DDQBtgE8De5L2QTyBjwEyh9+GRoPzpWdCKYt3gzuJuQuooBbI/YqhAXuS/U83gtOUWkPWgtmCeQ6ZIFPAyIBDiKMCt4NOghuEPQKymwN5hFGBzoD1kmbAKYHAgsSHTYVtiYRYq0LCjl4Bvwa9wuQJrATKnr9BdQaIgZOASobAADQLuiFsVoyXB1PYAYECyYjyBSpUCENJkC4eEkaHAcWJaoCkkNxSohRNx6UIfc8Pg1nLhRRfQf2PAYZUAuCPJ9GrEUPEdM+jj1JIkpMLQQ2gCwwJ4wJ0A+GDLp8cwFaCSIJsgxyEzIRGDfGCDoHGi6XJScWCCJGlmCbBPigA/QT0gMMBUAJQgcUA7YcLhMvFSoFDoEl2AL0NtYutAKQVoEBGAXMDyYf4BBRR+EO6gicAmYDhCXsAC4VIgAYIpwIRGQAYI/ZUwYuzAjIam0jdQNoFOhiEXQHkg5YB6gcNBXAHOJwyV4MhgkopLAJXAF2CZoBYATkCAo1XIyhIEJnVItZGJwgYkFAXf0CMgxmFaBEvod5AowPbBIcATYBdAc6DQICeBHuEWwQlgjshgU1tjP5OiYEUCGEIBIKKANQbM8LKCb6DPlqAaQSYwMNND5372esYLclF/4HGjLGQWEh8guTT84MnRrCGENULxnlB8AD9Br0J+tBWAYAA6QEFDpOM+8EvgtqCIwJQABKDqQYB9gYawpyjNEBMowBuJoDWJKEAnCQBjgHDABoDIgFeuYAHgKoCKQABgDQA1gAOgKuB54AGgCGQgE+AygwASLmApADlAgyzAGWMAH0KgQcxAwWAPg4bksCw7ICgGtmowXeWQKPAko2AU4mBAZPSFIDsHLiANwATAYU4EgBFqxLzBvkRAHgcCwAyAD8AAY2BwZCAc4B9G4AuAFgCzIJo7S2AU7qKgCEABZsAdgCigDeADYAgPIBVABOBVr6BdQCUEoBEjIZLFhiAbwDIAE0AQ4AegbMjqbKCCAEbgfUAhAcFeIC7y8HtgIDIuATzkLGAr3fVgAyFwBgDAtgXGE0BzJzXtkCJksAUOYAUEM0mjUxVkk2AacBqikCt/ABbasASP8Ct+4Ct60Ct7ACutvNAtICt9wCt88QAFBCAFA/UpJSgwK3pAK8OQBEAMwBwgOYKFgjTcBVTSgmqQptX0Zh7AynDdVEyTpKE9xgUmAzE8ktuBTCFc8lVxk+Gr0nBiXlVQoPBS3UZjEILTR2F70AQClpg0Jjhx4xCkwc6FOSVPktHACyS6MzsA2tGxZEQQVIde5iKxYPCiMCZIICYkNcTrBcNyECofgCaJkCZgoCn4U4HAwCZjwCZicEbwSAA38UA36TOQc5eBg5gzokJAJsGgIyNzgLAm3IAm2v8IsANGhGLAFoAN8A4gBLBgeZDI4A/wzDAA62AncwAnajQAJ5TEQCeLseXdxFr0b0AnxAAnrJAn0KAnzxSAFIfmQlACwWSVlKXBYYSs0C0QIC0M1LKAOIUAOH50TGkTMC8qJdBAMDr0vPTC4mBNBNTU2wAotAAorZwhwIHkRoBrgCjjgCjl1BmIICjtoCjl15UbVTNgtS1VSGApP8ApMNAOoAHVUfVbBV0QcsHCmWhzLieGdFPDoCl6AC77NYIqkAWiYClpACln2dAKpZrVoKgk4APAKWtgKWT1xFXNICmcwCmWVcy10IGgKcnDnDOp4CnBcCn5wCnrmLAB4QMisQAp3yAp6TALY+YTVh8AKe1AKgbwGqAp6gIAKeT6ZjyWQoJiwCJ7ACJn8CoPwCoE3YAqYwAqXPAqgAAH4Cp/NofWiyAARKah1q0gKs5AKsrwKtaAKtAwJXHgJV3QKx4tgDH09smAKyvg4CsucWbOFtZG1JYAMlzgK2XTxAbpEDKUYCuF8CuUgWArkreHA3cOICvRoDLbMDMhICvolyAwMzcgK+G3Mjc1ACw8wCwwVzg3RMNkZ04QM8qAM8mwM9wALFfQLGSALGEYoCyGpSAshFAslQAskvAmSeAt3TeHpieK95JkvRAxikZwMCYfUZ9JUlewxek168EgLPbALPbTBMVNP0FKAAx64Cz3QBKusDThN+TAYC3CgC24sC0lADUl0DU2ABAgNVjYCKQAHMF+5hRnYAgs+DjgLayALZ34QRhEqnPQOGpgAwA2QPhnJa+gBWAt9mAt65dHgC4jDtFQHzMSgB9JwB8tOIAuv0AulxegAC6voC6uUA+kgBugLuigLrnZarlwQC7kADheGYenDhcaIC8wQAagOOF5mUAvcUA5FvA5KIAveZAvnaAvhnmh2arLw4mx8DnYQC/vsBHAA6nx2ftAMFjgOmawOm2gDSxgMGa6GJogYKAwxKAU4BIAK2A0YAnASAumgGALwEbMASjByCAIQMABicPgSeFxiAAWQoIgCM8NwGAOakCKCSA2ZYA3oARAK+uQRWpMYDAKwFFsAD7iJCQwIdHTvaMjY9NtQ2yTZGNjk28DbdNko2JTcQNxkFbU1fbBZfwQCWygU3AJBRHpu+OytgNxa61A40GMsYjsn7BVwFXQVcBV0FaAVdBVwFXQVcBV0FXAVdBVwFXUsaCNyKAK4AAQUHBwppXu4wBM4D8QPmA8IApARQwMAAwASswADsRS4YrQNVBUwFSzFfdDxf7QBYFjOwAI0DzHDMAabsRn9CKygJMBssOzp+ct9vwfYZxyxuAXDXczUcBWQFb8nGyb0I1E7wTwUMPQUFDD0WRwqBXoKQjh2uIhAOIGqyKAoAjMgQAwYSAOVqHiQdPT0oXyxgOyw9KAnGQgpJHaIc10dAX9BTVG9SDzFwWTQAbxBzJF/lOD8gCWygCmcdwBznzAbMAV/OEyQzDg0OAQQEJ36i328/Mk8cybDJsQlqxtDRCmVBjiHSFgCTkqxfGG0+zj0KOJJfkA8iUUxxYDEyWua8FwqC8pJf5g1PDhM4WUhHPAk7SJwxCoaSX34NWCcoHTU2BQqPZvBjCnZkzmAQYDIocwRIYB4+ByAjYLgLB3AValNgUhYGAwRk7GAaYJpggmC4YFBglgR/aGCrAH4GPwUUJD9aMho/Q0yIBg2LAJUBLQ9Kd68AUpKlHSxPHAWeogYeBPARcIrYxgOhYyIBslDHVGlQBumjAcAP8s0LSgU1BBYbDQEsD1EBggJ0A45apg8ABGuIDe6wAQkudJoR8hwFNa1Q8wQVBUpsAP4ARlo9Dx1yhDq+EzoxzsNOAGQZRwoAH0q8AuAgS2wRIgmPHwQeyQB7BKMzDn2mFW+hyE1tYcBqDpA2VSjzSrcOeRIz25NjyLzD9cPcsflfrJCFwF9C4PnxYIEUdPI3YAAQgTkiBsZHm6YLw4yyxmupvjM1Rsz6saExjtWD64gW5YaZEwxUk3qZtsrsZ5egMboqgUPIhixiuh/kR2L812V0VmcNV7ibaqMTCBO0wrEHSSFjXUSQLqXGjcu6xaJvYyoOz8Ce+h4LBCURgA/Qz3CRlP8T3kEHjqBSz9A/30MELVoe926lMl7ox/fnzfa/lcR/CLR8enK8wadg7DgoxHlB8PB8dfvV1cRi3wKGO8QJIsYXC3L0FjAWdnLEjyyuSd/pgvnhyZlm552lTFDiZwonZ/vIJ6Aos/DzqDW4daTS5g9zbinvpgVAobCXyJclKFusuuhMKwjyzGPrauphtKnNc/FzqDkxweYhTnuB0wYE4rKkDq73wkIZhuZDyJQqE7or6oCHDoSWA7kHNvhMtZQZ5Qg9k5rsJBuI+APt/32PSTNUHK2nU9Af4Dk+jnD1DKTwcsS5n0h0kTFjDtgPVpIkNgf2E8pKnfa+1ZANeJ99rdxOsZ87kbXKrnRp2SAr6Kf0FIDSLHOkXRdD4dF7YtOc7cpjYBXviaEvbHXObTeT1YoCyFJ4YkoTQawNr10awrwSpkhDMjJfcarX73vx+eFbeK3rWpk/BZqPITEfrDBiR7wS6KIv9LRab5USpajILCejb+1MWWw+v0bJ1UVB7xYaKsAV2mK9CCt1rrpYK42VLF8y74OutWxWDsOhb4kkpWfahKo6g7qHs1Lc/ou6kANMc+7qw1Po/35R5jW0UZYBAMLX7bsIRJxcQcPvvfjSER24WN6oFg5zG6fBkZaVEhD4lXWP1Bix5Dr/N7h5tq2kAeHbELiuIVccpJRG+eBS5Lceoqoy7RwPoidPxtopoKQy4GTv8LzfES6JsIPpXCCPPP9M5c4pdG+ffo4qmv5XuUCWT1gY2OP27Xk5n6/+1/y4WtBzf0JM5mLhJZ2d4sKDItoJSXA3j4vH7xyBICX8gNmYUYisQR23Sx9Sb3W7Bsw4NieA85jgRLm53AuTN16JQHRtQdY5DEUZrGujL5E9MeGYMc40O78ml375czyGg2ELyskqbnyoV/l5H29xGca7cskmUKhdi6pAXaYHFX73nSBLdTeninOCWaLgOG+XyqvAesshPRlWEpnikpcI0VkO3Qx0mSZHAo7uQVx2hBbvdQL9pYRMcXNxUxzdnDC11r6gPflytg1Z5kIZwxvLsy3oO1ePnSlmb3JvYaos60ODDISW7B/SbSxiZQUVCL+5OlvGqk9EWB9Ejr+0g1DdxOwyq3oEASWP/Hn+apTRLQPETJHUEPZUTvTVv85EnE/OUeAEyT96ayvBzAWGG+LAyZ8ToasFAxtY/KaZxsH10Bmpb94OGPWS+yJFO6wpcaJrr8KXUCtg3pC1Tbf2N1F+3hYNqqA30h3jbSyhuUlg87XkEntavbIQKGd2xEFwhjZjP9MP6Sv1dKFHWTPizgtQsrepg0NW0eUYv+FoClN0lvjLa8naCKaVOxsBfWhu5saI6HpeZ5iW1u8fmmDWY/L4hEKORW0AMh8+tu9DFBtXhSEwrE+Xjk5nQ5i7us+NqqR091ZQpTjpGDo7pxU6I8FrKi6enHLUUB35aCFadMEynpQxV6NHuFzrxhddchZCcEvKyLXftvr2K15XY3XQjv2jHHETeU2Ny3CYzsNjggDLds4msv4J2VTH/m69zHI+Q3+YYQdtwIZTwjcUmlsvcM2NHmR79kwU70G6/B6ZkD/+uzTf1hAjruo5hLTC2F4Zhf856eAsXyQzTiWsdGN1o+L3/VppMd10YJos9B1V5B6GKH2R3JYpIhtU28BPA09B9N4z5/YIywjBmsk8KaWCEeZCp/B64NY0MaqAX6tBFeFbVsSAicmlrs3qhZeJgBYzt9uNOHgbnNB9ojoS3FI0tNHdTFnc7V32/auZTyflO3mvqSHm8AbNsCaJkAYc7w8f5/asTUTFUu26q5nXRpPHqSnFPIfcyUPZxS5K0ipe3BlvF5MAiaj28VCulmIdkbcehCo5x1yOy1JbwaW+rweViwjzQ5JvtTFD/6YiTH7KhApKZXYxS9aCjiKYgyyBh+bbkpg5+5Hqwu8ysdcSK/h3b+K7jhGz3LYHw7W/1TvVXzILYbhw0agnPlUuJ9VHdkbjg1IPhhClMzqQaqNZRLbUfXKsvJHvpHG2UX26atLHVfNJXrKWstO/XYoUkY6lnx1Q9+YlrnFJ+XKsInbLgETZ9HghGXdZOxmQXLn66AQ1UhOD0u9XfGbzh5d9Og1sup9KsC2NPWH9S8MzIqfNIqGZOT8sHybm47xfxZRNh6zmOzRuJNtVaSLQEAy6xhvrSGxowGz+c74KbT3tncTNbOJ2gFYwYRZ7xX1/eLWxv3ZgRx2SGKwjZYDlM9jHch5vTtBHpLQXoweg8DVYv4IiB26/dKd2993gKodpGT7PN7SFOnoK5SqG6Wst06KESAXQZ5EJ8p9oT9aiUIEOYhVFj8jfRl8Zba1Q7LXtpPwX+r9yVHpXiZFKPNtojqck0Nt3EYictILAF0UzcBj3PnwLFAx8tYX2RY9cVGNxJfIQdU/5/9urF0E/UAst8CidenIz3IybkMwFZIJKDQd8C2Opnr0n+G+SA6y2wlc4KL892arnFtMycnKmZsLulvzGA5HnENXsHB7LfgEx2o5GhNOPPSI5h96vBJZM0eCl13ejrw+OleqiLXBLhNl/5SDR/0IMDJnHPkZEQbrnWAKLsDvFW+HjcB2XnFsmsX5b22LJ8QhUzC45H9KeE/4E7HRqiJaES+nSEs/WeUT0LkBHcc3TWqJERUFT0aBuZI9Pu/+ygOKq+Fx2vXtDDEfZD0Lr9bgf/e0bq84eEYPbmMD598I3rPiVdY80qXHKCyewBBpFC2V0LXpLOlKTcRC3PpQjwiNrvno8DtuHcSwlpJ30PDxt63Xapry2PTD7SZrBZc28wWbxIb/CkaLnvTlpOgh3N8z0vtCk7YWfdLKjgpP3jhSKrpPAKbOSumi+iRrgQDwltqOe4OE8icsmkay/gymrv7vUrN3mo0GOCXrh69jcMckhBqWA2PwduMk3thx4M6QfZI0kBtfD9+mfDXYgHhskmHIXUHsMBIh3whzLqY56cH2EX8qGHPBIs8HdEoPj0dj0+u9xvq1YdLnfIF03Gaor0oaIMK/vlkKq6xYdgaIIYcZL2t1BelWDbSY7PYPa1QRdgarb5YlQf1VejbTsEq7jwWQHBC0RIIR6/HvRLeMCfpWFBHv/y2wpzLnZOlQgoJVkrt5E/ln1OB0BzjbQpUuNFH1Yttia+DYDgYbGMgUQnbkkCM7NDHY2RVGcZ2zJRzaVWYWgUmfgVXdCTkxmkWatbUHqKVG0b7YK8Ql9n4vFxeaH+pySzac3VIatu1UZcVbztSExMmOIgFPyFpS4Et2kEM+CW0gLgg6GxhtoNri7dp37sLLCQvNGSRF6qxAfT+NiDTPsDHGalmR0MozNBmFCQXTXwnPoUALQbwiazebTNk4MR4feM1YTX+Fi8Pr5usia+acVeOIEy/HIIKQOHFIpI0oPHVMKWPo+Bsl9yYeFqwMvbJMxegXAv/PIA1KpcPwVWGK78P4V2AU1LP5LShUw/pj1PJ7xvyAqMeEXX7wotX35BkknoiTo0K1vt2RdR2JmjxF5SzwnCCzG5Z6QoGHa2cxutopZMTdRaGv1HeueBpuWaaJjfYGITg5qjuHHKtAczk+wlJmlPyzYrLSLsJlbWWa0+kuzSNf/NyTZR+qGxUhthDpv0ArWwZXGN0TaZVsJTCLFi6A+6UDuJV7bs4wR9II5DKoG8P/VYaSmbpvBOcpGNRD7/2QXbyDu5eIdrc1j7a22ornAqxYijbKBGLn5R9Dem7e16pwfz1bCCtBn9gGy1DSeXxlyK8K4KLHklovmH6kizNbdinMeSa/Mm/Cwr48Dq2nLhbJja9ZiKkQUzv///tBp0U5c/a3LsZIabU4A7CsFbnX/rbvYYBlqTGkohb3m6vSBx46XhezIezkX/Lb8uhTjHDXcnSKYX0i8d5Tcd4zIGFniVBi0o06rKYCRITJrLLP/R0YXVgs/jZHVUhimTsM99GVzOihY91Ru2i9wChs5K8QcSKUTUeG3SEZsEMQM0nEWAi+VwgJA7Ablym5UenHRQgWdBTZ3/+8m6J6oOuQov/q8qvRtq7byIT9unG38oLm+pLDPxhxghdcDQKm94p/o6hQgx0Fm7cTb/xCkMu68U26jscDe/Mw6kc8ZZdWL3YzV4qxWYeKS6gCCcANE2O9LFxjtJqnxCVqP9KscrWUkPhFUHWZGt3AHNnuPAesdS15NphOkMHaQZhi7zPe7u8lR18f55ebXO0v+rRkUVa+FcTifwQXHdGFlU66010pE5p9z0FkI9/lYcfAOS6pnUBKelKf/5EnATf9NbD/15QGFZe1/7ANDhZvcctLudTy+VkFjBUnbF/6A4KPPl3+zmAF114mKl2BGii7CHFVPko1qgW7gCIKfpl3oURXdJZ/QQyqI+xlm1axWO4IoHLAuSckRwMy9DV0FHkAQzllKSILWB9q61h//J90BAxFPWro1pUhhSGfPfynwOmCSQOfjuNY6r5+6HdP66DnI83gNb6EreKwLY6SEYABNtdzaadWBx/jVPWhKheM+FaIrBKl61Dtr1/xNDIB0ogSfbrD3QAUSZh6jzNK5NCDGdSITReViZE8ONJskuC6XDiDJHArGhIiho+S9imN8fe18GHmsKv82zeJ2G1JBWk/bYbu/GaGNFpRHnRtym0ZU48GCDWkI5eOB2HCm3sUUFEstaX9dd3+rIg71yhIR79NckBwpRU7yLhu2AWmuIZuRTx66FqFYAiApj0hIb2PTTxNMjHVadKoGNuNAvbT4nxz8kik5pOrFl8qEkmjmrb8KEvg3OWl8Q54wp3JsSwVU4Z3ErrpLECFgVkHCpKsghsYvlz4jj/EmhwvmaFtAaPUm9PEgtqN8hRhkwlazxA8gBOLfjIFYhV3Kllih3afA81v1xdy2JjhYiQiYEQ+yU0DzYXIGnhcqT0RVe/uiHlh3sgUw5Fc+7pNHsxpL9plTKssCB3GyLhfKi7apaz3WkYNmu8ku1ZfhH4OiVT23k5LS73D4h5RjpCQFvEIo9pks3ntohrX5TuEG4E+sKfW/ac0jPJQ15mDUWETtG4TvLJn4vUIMOQVIlYucsFZNRQZrwvcXpqe0NMDaowmNkngsewxaJHancHim79O5T16Qo3OAptPxd6fhz1bAKZCuY6O+Ohig+7sDzCSKJ1u1KRqB1v8WjE18Qu2iwjPOgFHy5h+gnhuOGPu1x3AI1U6R2+/4cHMZghqBXbOgr9s6146BwRk4TNKAt/4FBTAlcdJF0Mc8peiQPWAR75zdClRAX6dKcNgdwuyji4DdYjzX34KFs+4LxtOFb7l9K8rBMR7Q78d2+GvVIZYEKXp4mtl+teKsvJzIj3mf1w/zcykDgFipsctdfYwY58k+3tNbUAZRdky7QUNBBT+eRo3LcCtCkngpP5Px3O53X+G/T+MuHwqAVlPBED/Xk/Dlf+Pf28EXFM6pErSYp6q6JHLQEPqPJMZFhI5gN5WPEt4kLvFEYT2qhyD7Bjw+uFxh2gOmZvihGpmtTS7Q4jmPD+IFVautIoCL8lmGDbqrqfkZCv9G+ZQSDXCGVaaKfwr8LcQLmxTg1BnnIm73ufg4KHixzyOWpgnhrEGk4I0So7sxDcprJTd2u2FHoOR8q5QjcOiLKr/0zukPmUBkrSXKOFs3s3uPAYhasjwZlR8om6nvn9TJo1J7VCA9dm+W4RaYBgegFIJrLs5+NTOvbyCV1z8sm3ZnG/N3DgUam9c7INe8EKL8ug+20EJ590FYOCU5q13i1rFVcjjIenigfl62+tGb20Qx9HDFkVxr7GqdWYZ/ruCrq6rS6Ub2W/Bpf59d1yGtcmkLpVn2vRke0amTUHsHFwzGtAl4PI6u4K/s8ysYcGDLWPccNHiroFCYqwqFLIBkZDSqPduu4fZFoibluc5TAxFqddGGtu0hzDzoXHaqJVvD4X12BuFQ/mOOqwBScwZY7unMcxWoQIQE/skvguP1K3WrYMKqfo2FTdUxjIu/sMGQulw5kyXbzJ72hqHp12vhTqvCSxACMOr6fLfG4tpIvU87LnjlQ9Syks7/dDhHIevZJX6O3d640QlDdc3OOGn4GB1ulOuyrMFXToujoXZtfuX2imEbfhk03L+5zFO54MDFt14iJAl9fJ1egDUNVs43yMEzeYu+yIJr8F/Y3K0/XrA7LdCaViCGvzSFdvIOGBNyjjV8DcInBXAoAcnxiricmNfeKYKWq3tspq0LDbrWbUhwIBi2hlTxgjJOyelPATW8d68DwsPeTRt+lhnrNgx7YNiTzbVMVeREGDJjIZ5ZbjxUbFo78CZ9KvpTgFNbxNzu5m3VcSLMuHTC6BQTA6Uk1RJw6KkmsutruHNv9Z5Tp4mhayA38dQ+SOOjBs9U65Pju+AHAvJQty6vrP9pcNB7av45nmyU2QArM1ICPqf6UfmFAT10PHsyyx9ACWLiC/8T6SAWjKRwcQvcXBOyh3Ff8EHrk46ZQQwHCYV+t1cJ7BJ3EljqeTh3MJsML0X/DweIJmlxjGJF13p/ei3Yd9EqWhbCm18Zgor3tHARWzJXItK+HqEm95vCtaeVd79eO7SGaDCTmSYAnnbfjq6QUU10nFLZQRfCfnqtrq0+uTBwtp0RFMH/DS+o++pCVy83sZUwE/Xd/x8USrZ2KeRYSyPZOe/8aez1a5NgwExjcPZIYr3fYh8ok1XaQzDHfDmpLwGINzRAQPf0rlpiz71MU4XyOfAdY1x/s7DnUTWdngL0gBiojuVyK2Br55Pc1kOYQsCUyCztZs6PTPMQgHf465sxSnUzIA/Y4E+lnTdPwngsR8CkYkWuWOHHfTeiuKP41glPVS2nJolAt3Cji0UTJZduoCrzG4ugrQTtqZa9XVUSImsxVyDJN0fuVw3WDGDD3txG4Q/vjBu8q6tA");const p="2022-01-16T00:14:41.340Z",V="14.0.0",j="1.3.11",y="2008",b=Q(X),z=Q(X),m=Q(X),d=t(X),Z=Q(X),W=X()&&function(A){const w=Q(A),B=Q(A),g=Q(A),t=Q(A),r=Q(A),e=Q(A),D=Q(A),n=Q(A),o=Q(A),M=E(A,(A=>Array(A()).fill(1))),c=A()?E(A,C,[...t,...e].sort(((A,w)=>A-w))):1,i=65039,x=8205,F=8419;function u(A,w){if(1===A)return 1;let B=String.fromCodePoint(...w.filter((A=>A!=i)));return A.hasOwnProperty(B)?A[B]:void 0}function I(A,w){let B=A[w];if(!B)return;let g=A[w+1];if(n.has(B)&&g&&D.has(g))return[2,[B,g]];if(g==i){if(t.has(B))return[2,[B]];if(e.has(B)||r.has(B))return[2,[B,i]]}return t.has(B)||e.has(B)?[1,[B]]:void 0}return function(A,Q){let t=A[Q],C=String.fromCodePoint(t);if(M.hasOwnProperty(C)){let w=M[C],B=Q+1;for(;;){let g=A[B];if(!g)break;let Q=String.fromCodePoint(g);if(!w.hasOwnProperty(Q))break;w=w[Q],B++}if(w.hasOwnProperty(""))return[B-Q,A.slice(Q,B)]}let r=A[Q+1];if(w.has(t)&&w.has(r))return[2,[t,r]];let e=B.has(t);if(e&&r===F)return[2,[t,F]];if((e||g.has(t))&&r===i&&A[Q+2]===F)return[3,e?[t,F]:[t,i,F]];let D=I(A,Q);if(!D)return[0];let[E,n]=D,f=Q+E;if(r=A[f],r===x){let w=u(c,n);if(w){let B,g=[],t=f;for(;A[t++]===x;){let Q=I(A,t);if(!Q)break;let[C,r]=Q;if(w=u(w,r),!w)break;t+=C,1===w?(n.push(x,...r),B=t):(g.push(x,...r),w.hasOwnProperty("")&&(n.push(...g),g.length=0,B=t))}if(B)return[B-Q,n]}}if(o.has(r)){let w=f+1;for(;o.has(A[w]);)w++;if(917631===A[w++])return[w-Q,n.concat(A.slice(f,1+w-f))]}return D}}(X);function v(A){return A.flatMap((({e:A,v:w})=>A??function(A){let w=[],B=[],g=-1,Q=0;return Y(A,(function(A,t){if(-1===g)0==A?g=t:w.push(t);else if(Q>0&&Q>=A)0==A?(w.push(g,...B),B.length=0,g=t):B.push(t),Q=A;else{let C=function(A,w){if(A>=4352&&A<4371&&w>=4449&&w<4470)return I+(588*(A-4352)+28*(w-4449));if(f(A)&&w>4519&&w<4547&&(A-I)%28==0)return A+(w-4519);for(let[B,g]of F)if(2==g.length&&g[0]==A&&g[1]==w){if(u.has(B))break;return B}return-1}(g,t);C>=0?g=C:0==Q&&0==A?(w.push(g),g=t):(B.push(t),Q=A)}})),g>=0&&w.push(g),w.push(...B),w}(w)))}function q(A,w){return new Error(`Disallowed label "${o(String.fromCodePoint(...A))}": ${w}`)}function $(A){const w=45;let B=c(M(A),W,(A=>{if(b.has(A))return;if(m.has(A))return[];if(z.has(A))return[A];let w=n(d,A);if(w)return w;throw new Error(`Disallowed character "${o(String.fromCodePoint(A))}"`)})).map((A=>{let B=v(A);if(B.length>=4&&B[2]==w&&B[3]==w&&120==B[0]&&110==B[1])try{let w=function(A){let w=[],B=A.lastIndexOf(45);for(let g=0;g<B;g++){let B=A[g];if(B>=128)throw new Error("expected ASCII");w.push(B)}B++;let g=0,Q=128,t=72;for(;B<A.length;){let C=g;for(let w=1,Q=36;;Q+=36){if(B>=A.length)throw new Error("invalid encoding");let C=A[B++];if(C>=48&&C<=57)C-=22;else{if(!(C>=97&&C<=122))throw new Error(`invalid character ${C}`);C-=97}g+=C*w;const r=Q<=t?1:Q>=t+26?26:Q-t;if(C<r)break;w*=36-r}let r=w.length+1,e=0==C?g/700|0:g-C>>1;e+=e/r|0;let D=0;for(;e>455;D+=36)e=e/35|0;t=D+36*e/(e+38)|0,Q+=g/r|0,g%=r,w.splice(g++,0,Q)}return w}(B.slice(4));[A]=c(w,W,(A=>z.has(A)?[A]:[]));let g=v(A);if(w.length!=g.length||!w.every(((A,w)=>A==g[w])))throw new Error("not normalized");B=w}catch(A){throw q(B,`punycode: ${A.message}`)}let g=A.reduce(((A,{v:w})=>(w?A.push(...w):A.length>0&&A.push(65039),A)),[]);if(B.length>0){if(B.length>=4&&B[2]==w&&B[3]==w)throw q(B,"invalid label extension");if(B[0]==w)throw q(B,"leading hyphen");if(B[B.length-1]==w)throw q(B,"trailing hyphen");if(Z.has(B[0]))throw q(B,"leading combining mark");try{!function(A){for(let w=0,B=A.length-1;w<=B;w++){switch(A[w]){case 8204:if(w>0&&k.has(A[w-1]))continue;if(w>0&&w<B){let g=w-1;for(;g>0&&a.has(A[g]);)g--;if(J.has(A[g])){let g=w+1;for(;g<B&&a.has(A[g]);)g++;if(N.has(A[g]))continue}}break;case 8205:if(w>0&&k.has(A[w-1]))continue;break;case 183:if(w>0&&w<B&&108==A[w-1]&&108==A[w+1])continue;break;case 885:if(w<B&&P.has(A[w+1]))continue;break;case 1523:case 1524:if(w>0&&R.has(A[w-1]))continue;break;default:continue}throw new Error(`No context for "${o(String.fromCodePoint(A[w]))}"`)}if(A.some((A=>A>=1632&&A<=1641))&&A.some((A=>A>=1776&&A<=1785)))throw new Error("Disallowed arabic-indic digit mixture");if(A.includes(12539)&&!A.some((A=>O.has(A))))throw new Error("Disallowed katakana")}(g)}catch(A){throw q(B,A.message)}}return{tokens:A,cps:B,text:g}}));if(B.some((A=>A.text.some((A=>S.has(A)||U.has(A))))))for(let{text:A,cps:w}of B)try{h(A)}catch(A){throw q(w,`bidi: ${A.message}`)}return B.map((A=>String.fromCodePoint(...A.cps))).join(".")}function _(A){return c(M(A),W,(A=>{if(b.has(A))return{};if(z.has(A))return[A];if(m.has(A))return{i:A};let w=n(d,A);return w?{m:w,u:[A]}:{d:A}}))[0]}export{p as BUILT,y as IDNA,V as UNICODE,j as VERSION,$ as ens_normalize,_ as ens_tokenize};
function A(A){return function(A){let w=0;return()=>A[w++]}(function(A){let w=0;function B(){return A[w++]<<8|A[w++]}let g=B(),Q=1,t=[0,1];for(let A=1;A<g;A++)t.push(Q+=B());let C=B(),r=w;w+=C;let e=0,D=0;function E(){return 0==e&&(D=D<<8|A[w++],e=8),D>>--e&1}const n=2**31,o=n>>>1,M=n-1;let c=0;for(let A=0;A<31;A++)c=c<<1|E();let i=[],x=0,F=n;for(;;){let A=Math.floor(((c-x+1)*Q-1)/F),w=0,B=g;for(;B-w>1;){let g=w+B>>>1;A<t[g]?B=g:w=g}if(0==w)break;i.push(w);let C=x+Math.floor(F*t[w]/Q),r=x+Math.floor(F*t[w+1]/Q)-1;for(;0==((C^r)&o);)c=c<<1&M|E(),C=C<<1&M,r=r<<1&M|1;for(;C&~r&536870912;)c=c&o|c<<1&M>>>1|E(),C=C<<1^o,r=(r^o)<<1|o|1;x=C,F=1+r-C}let u=g-4;return i.map((w=>{switch(w-u){case 3:return u+65792+(A[r++]<<16|A[r++]<<8|A[r++]);case 2:return u+256+(A[r++]<<8|A[r++]);case 1:return u+A[r++];default:return w-1}}))}(Uint8Array.from(atob(A),(A=>A.charCodeAt(0)))))}function w(A){return 1&A?~A>>1:A>>1}function B(A,w){let B=Array(A);for(let g=0,Q=-1;g<A;g++)B[g]=Q+=1+w();return B}function g(A,B){let g=Array(A);for(let Q=0,t=0;Q<A;Q++)g[Q]=t+=w(B());return g}function Q(A){let w=new Set(B(A(),A)),g=A(),Q=B(g,A),t=function(A,w){let B=Array(A);for(let g=0;g<A;g++)B[g]=1+w();return B}(g,A);for(let A=0;A<g;A++)for(let B=0;B<t[A];B++)w.add(Q[A]+B);return w}function t(A){let w=[];for(;;){let B=A();if(0==B)break;w.push(e(B,A))}for(;;){let B=A()-1;if(B<0)break;w.push(D(B,A))}return w.flat().sort(((A,w)=>A[0]-w[0]))}function C(A){let w=[];for(;;){let B=A();if(0==B)break;w.push(B)}return w}function r(A,w,B,Q){let t=Array(A).fill().map((()=>[]));for(let C=0;C<w;C++)g(A,B).forEach(((A,w)=>t[w].push(Q?Q[A]:A)));return t}function e(A,w){let B=1+w(),g=w(),Q=C(w);return r(Q.length,1+A,w).map(((A,w)=>[A[0],A.slice(1),Q[w],B,g]))}function D(A,w){return r(1+w(),1+A,w).map((A=>[A[0],A.slice(1)]))}function E(A,w,B){let g={};for(;;){let Q=w(A);if(0==Q.length)break;let t=1+A(),C=Array(t).fill(g);for(let w of Q)C=r(t,w,A,B).map(((A,w)=>{let B=C[w],g=String.fromCodePoint(...A),Q=B[g];return Q||(Q=B[g]={}),Q}));C.forEach((A=>A[""]=1))}return g}function n(A,w){for(let[B,g,Q,t,C]of A){let A=w-B;if(A<0)break;if(Q>0){if(A<t*Q&&A%t==0){let w=A/t;return g.map((A=>A+w*C))}}else if(0==A)return g}}function o(A){return A.replace(/[^\x20-\x21\x23-\x7A\x7C\x7E]/gu,(A=>`{${function(A){return A.toString(16).toUpperCase().padStart(2,"0")}(A.codePointAt(0))}}`))}function M(A){if("string"!=typeof A)throw new TypeError("expected string");return[...A].map((A=>A.codePointAt(0)))}var c=A("ABMCuQDBCCEAOQDaACcAcgAZAC0AFwAtABEAJgAOACUEiQNRALQNRygbxexVsVUCJRieAuAASPZlZwBu4QoILXBwcHDwcAJrCe2iQYxsZfepR1yjAE1t7ecAc/kC78r4ABIsL4ogCD5wcHBwcHBwcG1gcLoGoI4BftQRK3l3Foh/XQAm511CBPcaKvdlpVPlcO1wZ2X+AJdEA0IAlgBIDCwB7gXLA4Y49DEG+gL3BKEEogSjBKQEpQSmBKcEqASpBKoErAStBK4EsASyBLP6DwU8AZUFPQGVBT4BlQUJJgUKJgULJgVCBUMFYQYCC0YLRw0pDTkNqQ25DmIOYw5rDmUcwQISHL8CDAsOANBWHOsRICQEgguHdDSa1kwE03+3B57NVy6SAHHFGgHZiLxWOdMGHR2cA1UoEQIHAAE5o9IADjAmDgUPCo0BAgMAhy9T7BAPwR4WNgSLAxJ8FeQvHwDQXgSfEesWchzoGAI3AQFEBQAQPJyVqZ0MzwBNzQBEAGUE9wHThG8DMQFePhmdA1cmA8rNQEkB8S0DABD/VTNpN5IbYx4ASAUfAscGCCuSAFMOuAHvCwThd4QaQgDgAMJSUgQ4CJ4Ad40AqAFWVrBlRRWIDK4D+gCsBUgFFRACAQIGLhmOESYCTRmKHL4CTgI2BXE4cQVDAK1DAvqfodmRADcE8Tj1Hv2R+0wAFKkaoxW5NmMA8P8BnQL6mRk7PwAhUwAzAD4pOTZc5AL7CmUCjtcChw4/xAM2zwKEKALUBXdTBQM2xW0HAQEBAQUBQwCumwL5PwUXpAPs6QTbK4BXUj00AgU6BUkEpgTbBazlABX3SZhOnQL0Ot5ALgpXCclv8XeEBnMQTSfXESkMZQHnAW0OH0wKBSMGbQT7H68ZSw//lc4I1y4PDR8nFS7TgIwkJyq1Bh9MJj0PC39Rmg+LC5cKFTqVgYADUwE/Ir0LDw1rCJ8RJQr7nQ4XEXcHawQHScwA1wczC0MdZxXnJkJi3gs7OakHLRsoC8Em4RNbey4GBRpTBn8BWxsxAQEvGYXiWmNcThBPkQY1C1cj+RTaUFINV0DpeHoaTQdHJdsCw0OiSrlRaB7FIig8bw2YLkVRrggnPDcZgQuzPNBG3UVAEgQ+vz16IntMXgRnsSxhJ70KAQ+3DOt8pAGLCVMJ4wyjE2MRSTf3CGsHS1+XVidHCFNGx2DMBSnRBCUUAwM9BXEJcwdFA+ccXxNgFVsFP4FWAAkDJTcHLuUCwVayAUkF/Q9XIBEQgkgSDxsIzQKXA7UmHQBfFVMASSLNCHWVAJGQClM3Lv0I+WqeI6YDmRUZkxGlB8MOiQfZHGUV8R0TcPpePYY6KNXhCY0BpwnLAZEFFQg7NY2M0iBzZ4WLihjNIJNBcV4uAmMMlxXRRO+HqgK9D50STQFnAaUHaw0zAqkSHxGdFRDHCR2GNjXnNCo6VwSBIbUgQwpZA4FtAAtZJysNKpsB1RKUAz40b3ggZ91g6FYYLwdLMvdBkiIjC8RP/wzOGvMYdFRgGhYH8QQlGyUoHEGJBjED1TVFOn80IATvC5sIvQlxAHsO1QtJCAkYnAqjjQIBY70B6SfLA4nDtQKhwQZpBQc9AJk9uQWrABcATwLZCNUANwEBA4kAawLfB88ASwcBALdzAW8DWRthAVMAFwLBA8UIY/0Bx2ECJVsETfUMRwEpaW58AsPjAoCcZtQGD4oCwAJ7ZwF/VwQ3gHmDA+GjABMRAQ0AfQZFABF5AUfdfP1MABV1AhGhXQD5AS0AN2cHN3MB/wIlEJ8A6QGRC2MJ1OXnAX8AG1sAtQBHEyOdBAIJArsBDwBnALEAIwGFAH8FiwArBgUCgXsRAUNjSl0SiZMB7QNRAWUBPwCrBv2/1/s5CVEEnwgFAhBNFhMC72AH5zMDIxET/0L3Ar4Qh6GSAwJkswJidI0Lf+EvjSA3UgKiKQJoyhEXAmY7Ap+2OE09AmZtAmZYCwSgBLEDA39FA37EDTk4OakHSTm0OlUnHStVAQMjBQJsTwIyaDg8GwJt+QJt4BsAIbwRMWWZJXcRXRUBDwGZARABEwB8NwfKDL8BMD0j9AA/5wJ3YQJ21A8ZAXECeX11AnjsTwmOAA1F4A1HCQJ8cQJ6+hsPCQJ9OwJ9IgWLBVJIMkivDZVWAoGfAoAyAoA3An/gE0mKSo1HG0lK/gLRMwLQ/ktZGQOIgQOIGET3kWQC8tNdNQMD4ANMAExfVwU1AAFNfixN4QKLcQKLCvNNGTkMB08ZJQd1mTfpAo5pAo6OcsknswKPCwKOjqooUeZTZxsvPFMGVLcrApQtApM+ARsATlVQVeFWAjgsTSnHuDMTeJhFbWsGApfRAu/kWFPaAItXApbBApauzgDbWd5aO7N/AG0ClucCloBcdl0DApn9ApmWXPxdOUsCnM059DrPApxIAp/NAp7qDbwAT0FjXEEPCwKeIwKexADnb2FmYiECnwUCoKAB2wKe0VECnoDXJmP6ZFlXXQIn4QImsAKhLQKgfgKjDwKh9gsnAqZhAqYAGwKoMQCvAqgkE2iuaOMANRsbGXtqTmsDAq0VAqzgAq2ZAq00AldPAlYOArITHwAJAx+ACWzJArLvPyUCsxhHbRJtlW16kQMl/wK2jm1xbsIDKXcCuJACuXlHArlcqXBocRMFAr1LArwMcMgDMkMCvrpyNAMzowK+THNUc4ErAsP9AsM2c7R0fWd3dRIDPNkvAzzMAz3xAsWuAsZ5AsZCuwcCyJuDAsh2AsmBAslgAmTPAt4EeKuTeOB5V0wCAxjVDWc0AwJiJhollVZ7PRVexF7tBUMCz50Cz55hfYUABAAlRdEA+N8RAs+lAVsAHANORH59NwLcWQLbvALSgQNSjgNTkQEzA1W+gLsJB3Ey/UgAH5J3J4JOgwUxgwCDvwLa+QLaEIRChHunbgOG1wBhA2RAA4ajiwArAIcC35cC3uodpakC4mHtRgHzYg5ZAfTNAfMEuQLsJScC6aKrMQLrKwLrFgEreQHrKQLuuwLrzpbclzUC7nEDhhKYq3EScdMC8zUAmwOOSAGZxQL3RQORoAOSuQL3ygL6CwL4mJpOmt3tJ2mbUAOdtQL/LAFNAGufTi+f5QMFvwOmnAOnCwED9wMGnKG6ojcFOwMMewLyAHE1DSsBE3MlJUkHMR8hhQ0BQwAlEwOdATnJEZk3AMURX13p4e8ADQG7BQsFAxUFC8sUsUMEawItFy9bIScfBzdTDs8J0R8FDR8Aky8HKYkP9wMpAc8A6QXrAG89n3MBYDEwMTAxLDEwMTAxMDEuMS4xMDEwMTAxMDEsMTAxMDEwMS4xLjEwMTAxMDEwMS4xLjEwMTAxLDEwMTAxLjEwMTAxKjEwMTAxLjEwMTAxMDEuMTAxLjEwMTAxMDEwMTAxLDEsMTAxMDEwMUYxJDFYMSAxJDEkMb8xMDEwMTAxYDEBdQGyMQAuMSgxKDEB51gApwNANjEiMZ8xLjEMMQBeMTAxKDEwMSgxMDEkMTAxKjEwMSoxMDE0MS4xSDE+MSgx0zEyMQA8MQJvApwxBA8DsATDM1IJCRUUCQN3ChkHBjE3KAdTrjE8MTAxJjEANwB2MS4xLjEwMSQxAEUAaDFEMTAxMDEoMSgxAqkzMjcABxgTA50BLAMAITwL9zQPASk80Vnx4+kAFwHDBSZTc3QzBSYAGxSxQzTyMS4xMDEwMbsxADYxMDEwMTAxMDEATQCMMTAxAncCtjEuMS4xMDEwMTAxMDEuMb0xADgxMDEwMS4xOoU6xjEwMS4xMDEwMS4xMDEwMTAxvzEwMZ8A6jEwMSwxMDE6wTsCMS4xMDEAvzjzOw4xMDEwMTAxLjEwMTAxANcBGjEwMS4xMDEwMTAxMDEuMTAxLjEuMTAxMDEUCQD9AWwxMDGzMTAxMDEwMTptOi46KzuoMTAxMDG7MTAxMDEwMTqNO9AxMDEkMTAxuzEwMTAxMDE6oTlKAYgxMDEBZQGeMTAxMDEwMQVhNY810DXfNZg1pzXoNfc1tDXDNgQ2EzXQNd82IDYvNeQ18zY0NkM1+DYHNkg2WTYQNh82YDZvNmA1XxNTNmw2bzZuNvs3OgTCPIk2agIDNw83UjdBNvwTEhNSN7s3YgQ8BOI8mTZWN0s3ngU6v2lTIR9DBkM5GEMSQz0LJ04ZMQ9BCc1anw1agwdVOCMCAOmxAOniGgUDARRbBQAJAxsB1QDvBekAbzWlBPErPgAAKz4AADU+ADMoBDE6NTI7PD0mBj0mAAQ9JgY7JicmAis8Dw4ABwgBKTgBBg0bJDE2AAEBAwIFhwTB9SMm8QElICMmACciI+/vGBfDI9cbAqF2CV/jFP8vECwpDVApDQRKSUQpJi9ONQ0MLktIKSgpDUgAKS5LRCkoKQ0CCUgxNikoMw1CKSQAAwMrJAMlJAADAzEkAAMxNjckERhzThhzThgVGBUYc04Yc04Yc04Yc04YFRgVGHNMGHNOGHNOGHN0e25zbnt6e3pzaHVoc2gXTWgZGHt6ewpZs1S6BQYBFOfLAx8jAbcECwDVBfMAb1sDCgMHCNBEGAPVCxoTzzEPCEl0bfPuvtUITbpVYVJlxVlu6xi8yukTEkTF+I1Bz4RYE53KIyT5DqAze0PwJQnlNxSS1YcpXV+gDEc/C4oNhoy1Ki91qpqCkt0JC6govLXTaVPJD3AwcKH0Xt5qRPRA5eQ6MH8VyPygTIkcSo7sGVE7g/x/2GhuMYWGguyR28kVFce6ihYPUY3W6nXi+/cnjI84LZxeebblXdW5a64/eDHo767XonxSFZGrp5Lgailtk2xq6j5ycujrl9qokkhmb2lwNH56X+6DnQ2pS+S00ufS1dIKqoNMdSmVRVXuUTS8bAdxZpjBZ3GYbUwUd2Gf7NGiMRzjH9sHUU7IFiCwTVgrpwkZsQzAxyaDuftBHFMUbRZ2SqzQoyN8vokQdZdxrQbnZiew5ZTkws54Niofx8wx3MZWJmmaphy/s3augdBb6bMYJK0V8dEraJiQOltirvSWU9Eyc0xfVhTTKdBbeJpnj+5Oj55jy36RY1GRX1MXuQ6d9K5XaR6kBt5bVdj7wQgTqFSwDbmxadyzHfcLdn0lzacx9l+VnyWca+zvr8ky4UAdX7vzBM0CmNNAMhVgcEwdk04NiGGUFPp2qkZQSAh2t+U/OGae4/9NzQa7denjPny3g473yswQVIQLqQCG5RDqpjP4o/xBLx+i2gGQIKO1b6vMN1LATETLBn6qRF2P9SuRORVQeyyMO0zL0+FDTc/n6Sgc/ifEjrUsjHmIfkDkWG7xk4c3bvXSmCUsWxnTx0Z2CedkEM6ZwrfWZ6xaHbLJTtdymk0w0Yx+ozu5gupZB9TNnG9SKZ0QRO30y3vZq/JiCBMyeKXb7KFzP1Sbjhobjrz4ouE7+f4E+1fsM2CNF+XeR/pHiMOSqRfST7NkOyTnKYRJmzyBN7K/Qg/cLptbCWstC7oKhEBw4gE39yLzFy/H2J7LAGHff6chBHUNw8oBFpyoLqlqf0VApfS05bqP4Nk4YrTmNXHol41ujxa/pPxdkQNuev8181lcbbM+CYhQkf6YvG5pOgQUg2rYPiVOMk0IFziGpe/MYh+hx8RvUqkY5fOn/RLoPlBjGK7EF6C7tiirGnaesifWo3UkZ7YKuBzQ/VY9OCL++CeMyjCgyh9t1k3c84D5s93yf+n6q9itHlOXoY42LHOrx9PekKouVooYd4H7oXv7qndtr7Qxtz6ZFiFehmjQ8TUlBN7gLEy4ldleZoGzXnBYw5UCtayPK2O8nbFIe2WuVQudXSzkxihUyv7/d4Uy+JvXxqUGz7eQSo3+YgzSuhz/oM3SJCyNd6unJIwWI0UpPXmgOscRHl52BSX1ChjrJmd8JF+jxfUnAl/Y1Vl7OOycKSdzZnDNIhhjt0DFpwg2+yqNwuJ+1+AtEvvqO/8maMw655nlQ9/4+C4F7sg+ixD9l2v5t1KsuV3TCUGJL1VvM0WWRKKYTlPbR1uX8OJ6/YWm6YwAPFE0ElXSuTwKdEsVA29ur6n6SurYeHbdJKVmImFDAoCvCIZKT73AAguPi9embsaMrFmiIBdsznlKVEpXJhxFDb73WO1JIlG+3jjreBnY53LHLFlOxSB8uamE3mBo9Hi71J/nL88SKUVr9FiUZDM9i1jV8u/M6C7Aa1STDyVwNoCrdPduWFMUSTEW2ORxNk0KEeWAGigBCZ0uQZWEKUXYSLYQzbw6DbiEye/cz9nLqM2iOzOo+pvFqngmBMGV1SZApeEwBcc0OBUlvG/1tuGhVhBxGwYYtqsLkIiQ8FO+A1211X0QJDn6GHLaXEj8rkw9cIYtXrTmwXtyzcmt/eUoAS/CtdaE8DxJlKaf+XRUpSZrUISDsE3T787UDsFAphCizRPUiSeewa+lq53P71ted+SnbPJX4WY4LIgnp2i4Mtsb3RoH8EvwLyl4ZCEks8KEvQnSm5B+J7KC943c8Nuyc/+oXVr3IBLJVsExQqolVUFA4ycod2Y9nhcfbnu8IU82JpIGcaH39i15p4tt5xscCraP5fD1bm8vJetXWZf6ANxe7mIZe9rS00KAVDBJ9Avm4cTq9LAy1KfFMowSMv8zdHHOpQiCaVLP21ysT5RFdVOF72MfyEK2T3l4t9ilzq7txXCE/dBu8OoLT3Ug+2Exxlg1NCuBbSPYtaHpwzbAu9TPVA/QtpIPuxOpgo3ytxtnAZSIGZ/xOKxTDZAx/xlABsvwB3mNpClAUrj70BlyVbEDpCTlfc7+otbovSbzpKU+/cGaPQ5IilEgwwC/+ZG6dumtH25+bRMaLtGa2VkQd+JU1BSRCKJ8VGbzvw0bX6yG3zh9wtFfgLofG2xZPbz9z+HmAjXaC4P4x4d+xmWjCzwKe19s8x5TeasMAeCcS9JPCC3Z2GZTMLbvRmvV/bctlSf5KUT0sNpYTGYJjzwKr8VXzOBmr9QjTGOg6RbCb3bz+Gz//YK6X9htjxHlDo2KX/BamwU0XkWz5T34wdGnawCFAYSJoFvfe6VluZ4Ftz4Q9epbE3cILgM9J6gatoIwrOrf6E9KeqU0MBH/k4DYy7yI52YBoZR/uzoryViLQ0Gcm5sE/z0+0aIiz0VBjF/AN4y27UV1GzGYcBhdCN+DVLKCLG/PSD4aj3C2bNxJF1ulVxu021HdlUIP0vSIcgUXYXxmhyPknJredXe19NvbQCDQVh/L3SzACD+aHRFbvouhbY2dZLE2TI/twwr70Mx9nTZ06kLSEqf4utlWqEtXnqLB5S9h/3Bw8p/AzfT+fzmT6co=");const i=Array(c()).fill().map((()=>Q(c))),x=t(c),F=Q(c),u=44032;function I(A){return A>=u&&A<55204}function f(A,w){if(A<128)w(A);else if(I(A)){let B=A-u,g=B%588/28|0,Q=B%28;w(4352+(B/588|0)),w(4449+g),Q>0&&w(4519+Q)}else{let B=n(x,A);if(B)for(let A of B)f(A,w);else w(A)}}function l(A,w){let B=[];function g(){B.sort(((A,w)=>A[0]-w[0])).forEach((([A,B])=>w(A,B))),B.length=0}function Q(A){let Q=1+i.findIndex((w=>w.has(A)));0==Q?(g(),w(Q,A)):B.push([Q,A])}A.forEach((A=>f(A,Q))),g()}function Y(A){let w=[],B=[],g=-1,Q=0;return l(A,(function(A,t){if(-1===g)0==A?g=t:w.push(t);else if(Q>0&&Q>=A)0==A?(w.push(g,...B),B.length=0,g=t):B.push(t),Q=A;else{let C=function(A,w){if(A>=4352&&A<4371&&w>=4449&&w<4470)return u+(588*(A-4352)+28*(w-4449));if(I(A)&&w>4519&&w<4547&&(A-u)%28==0)return A+(w-4519);for(let[B,g]of x)if(2==g.length&&g[0]==A&&g[1]==w){if(F.has(B))break;return B}return-1}(g,t);C>=0?g=C:0==Q&&0==A?(w.push(g),g=t):(B.push(t),Q=A)}})),g>=0&&w.push(g),w.push(...B),w}var T=A("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");const S=Q(T),s=Q(T),U=Q(T),L=Q(T),K=Q(T),G=Q(T);function h(A){if(0==A.length)return;let w=A.length-1;if(S.has(A[0])){if(!A.every((A=>S.has(A)||U.has(A)||L.has(A)||K.has(A)||G.has(A))))throw new Error("RTL: disallowed properties");for(;G.has(A[w]);)w--;if(w=A[w],!(S.has(w)||L.has(w)||U.has(w)))throw new Error("RTL: disallowed ending");if(A.some((A=>L.has(A)))&&A.some((A=>U.has(A))))throw new Error("RTL: AN+EN")}else{if(!s.has(A[0]))throw new Error("unknown direction");if(!A.every((A=>s.has(A)||L.has(A)||K.has(A)||G.has(A))))throw new Error("LTR: disallowed properties");for(;G.has(A[w]);)w--;if(w=A[w],!s.has(w)&&!L.has(w))throw new Error("LTR: disallowed ending")}}var H=A("ABIAAQB6AEAAOAAoACYAHwAiABgAFgAOAAsACwAMAY8AfgADApQhCD9xcXFxcXFxcW5hcbsGoY8Bf9URLHl4F4mAXgAn6F1DBPgbACv4ZqZU5nHucWhm/wCYRQRDAJcASQwtAe8FzAOHOfQyBvsC+GifBANGRZDdAC4CJSwCIi8GFTgCJSwmLyQpNix4JTpMcXV+rQEGGggji3raLA6mlfECCAxleXQSxKUjTyElAibgTiIC0gHv1AZQBLNgQ6JNVpJS9wlNAHRfAXiOWADp7D9QqYZpggAHGwscRNcB8gB0/yE9LHw3ZzYcITAjCk8BAlASEDEWAjEMCTgFzVsHDywSYVMEXgVBSgCFDAQFAckCphERETMDM2uMA88yLkEnJgYTLi6LB7kBPw0nVwsQ4gE7YHTHG0MAJpANNxIqJ15uH1IFEQDKAm4FfB2eATAAeIwtpywlOBhEJwRXng4sHLli4Q5IYl7584oYIwciAIlLCW1CAFQULjWxMQNQS/8RUSEBKAMWiQavLFEEUAT7AK0E1WULFc3RYR4GDAkRFRAxEhEDAQEABx8IASgjAAJR4QwFEpUiGzjHDw5ylPEUpACEAX4jBRwWExgAGwkSAkFoCRgIAA5XWI6qYXEEjBQARAEhDhAt2CcBFwASAEoTJBMCNQUSphsCAEEXDnKU8Q4OA70WBRQQHmoJLG5nEwoIDmNYjqphcQSGGgBJASASEDPYKA9QDyQSCgQMShMjAxQGAzUCcRkkAIsAuokwVSwLAmIGPhgnKACLCRkAEicBAQbgO8+xBTABBxcQJgAEQDf6MASDMBD0HwwoDAsu9wDA6hMtcgxWABIITU3k0SHxGPGp8QBhA+dvYj7xAEEFTY2l8Q8x0RWBKEEG8QtKx0dLASBJGLFQ8QBfWx4AFKXRDyrPFXMcIgEPEjzcS9Wn/KALJxnXU2YJOBWKOmP82gdIgmNcRsDi+p7FBLYbwm9Uzs1RfCbNpY30PNDOtZBhbqPBybOPeWa7oi+ySNuja7E79Fz+oJqkWRGdXLqRl46pfoUDu0uKXTiGuFf3GtJzAXtJmxI3V8am/mpQnjfi99U7ZkojTh6fKYexodlCUm8Nn5tkJXqdPwxaQiU29Pa8nQxhFccS0ZzA2p+XNo3r68FBGjQNasxwtQH/0ELiOQLNuyc0YqOxCPnfFsvASXVP7enrn5p48UHDGS6NU/kYR37WSJ7+CN+nV4NqWlRTc/nQOuWoDD2Cnkn26E21fE+79xMXG2voqdtyef5eUY6MOoAAPIvdUDW+i16JSxe2+srXAYVvzbE8SKhyxzjFf2rMlgMycfXR8nl6/xF97xDwBSNLExVnK4YUGbAMpgGeHD0vHVXsIK20HyDdJQ9a5Uhwta5o+Tw/HpthmalqVX7v90SgUzjZaEahH3JPOhT8k+LFPClF+c5gMeKg");const k=Q(H),a=Q(H),J=Q(H),N=Q(H),P=Q(H),R=Q(H),O=Q(H);var X=A("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");const p="2022-05-02T09:44:51.349Z",V="14.0.0",j="1.3.16",y="2008",b=Q(X),z=Q(X),m=Q(X),d=t(X),Z=Q(X),W=X()&&function(A){const w=Q(A),B=Q(A),g=Q(A),t=Q(A),r=Q(A),e=Q(A),D=Q(A),n=Q(A),o=Q(A),M=E(A,(A=>Array(A()).fill(1))),c=A()?E(A,C,[...t,...e].sort(((A,w)=>A-w))):1,i=65039,x=8205,F=8419;function u(A,w){if(1===A)return 1;let B=String.fromCodePoint(...w.filter((A=>A!=i)));return A.hasOwnProperty(B)?A[B]:void 0}function I(A,w){let B=A[w];if(!B)return;let g=A[w+1];if(n.has(B)&&g&&D.has(g))return[2,[B,g]];if(g==i){if(t.has(B))return[2,[B]];if(e.has(B)||r.has(B))return[2,[B,i]]}return t.has(B)||e.has(B)?[1,[B]]:void 0}return function(A,Q){let t=A[Q],C=String.fromCodePoint(t);if(M.hasOwnProperty(C)){let w=M[C],B=Q+1;for(;;){let g=A[B];if(!g)break;let Q=String.fromCodePoint(g);if(!w.hasOwnProperty(Q))break;w=w[Q],B++}if(w.hasOwnProperty(""))return[B-Q,A.slice(Q,B)]}let r=A[Q+1];if(w.has(t)&&w.has(r))return[2,[t,r]];let e=B.has(t);if(e&&r===F)return[2,[t,F]];if((e||g.has(t))&&r===i&&A[Q+2]===F)return[3,e?[t,F]:[t,i,F]];let D=I(A,Q);if(!D)return[0];let[E,n]=D,f=Q+E;if(r=A[f],r===x){let w=u(c,n);if(w){let B,g=[],t=f;for(;A[t++]===x;){let Q=I(A,t);if(!Q)break;let[C,r]=Q;if(w=u(w,r),!w)break;t+=C,1===w?(n.push(x,...r),B=t):(g.push(x,...r),w.hasOwnProperty("")&&(n.push(...g),g.length=0,B=t))}if(B)return[B-Q,n]}}if(o.has(r)){let w=f+1;for(;o.has(A[w]);)w++;if(917631===A[w++])return[w-Q,n.concat(A.slice(f,1+w-f))]}return D}}(X);function v(A){return A.flatMap((({e:A,v:w})=>A??Y(w)))}function q(A,w){return new Error(`Disallowed label "${o(String.fromCodePoint(...A))}": ${w}`)}function $(A){const w=45;let B=AA(Y(M(A)),(A=>{if(b.has(A))return;if(m.has(A))return[];if(z.has(A))return[A];let w=n(d,A);if(w)return w;throw new Error(`Disallowed character "${o(String.fromCodePoint(A))}"`)})).map((A=>{let B=v(A);if(B.length>=4&&120==B[0]&&110==B[1]&&B[2]==w&&B[3]==w)try{let w=function(A){let w=[],B=A.lastIndexOf(45);for(let g=0;g<B;g++){let B=A[g];if(B>=128)throw new Error("expected ASCII");w.push(B)}B++;const g=36;let Q=0,t=128,C=72;for(;B<A.length;){let r=Q;for(let w=1,t=g;;t+=g){if(B>=A.length)throw new Error("invalid encoding");let r=A[B++];if(r>=48&&r<=57)r-=22;else{if(!(r>=97&&r<=122))throw new Error(`invalid character ${r}`);r-=97}Q+=r*w;const e=t<=C?1:t>=C+26?26:t-C;if(r<e)break;w*=g-e}let e=w.length+1,D=0==r?Q/700|0:Q-r>>1;D+=D/e|0;let E=0;for(;D>455;E+=g)D=D/35|0;C=E+36*D/(D+38)|0,t+=Q/e|0,Q%=e,w.splice(Q++,0,t)}return w}(B.slice(4));[A]=AA(w,(A=>z.has(A)?[A]:[]));let g=v(A);if(w.length!=g.length||!w.every(((A,w)=>A==g[w])))throw new Error("not normalized");B=w}catch(A){throw q(B,`punycode: ${A.message}`)}let g=A.reduce(((A,{v:w})=>(w?A.push(...w):A.length>0&&A.push(65039),A)),[]);if(B.length>0){if(B.length>=4&&B[2]==w&&B[3]==w)throw q(B,"invalid label extension");if(B[0]==w)throw q(B,"leading hyphen");if(B[B.length-1]==w)throw q(B,"trailing hyphen");if(Z.has(B[0]))throw q(B,"leading combining mark");try{!function(A){for(let w=0,B=A.length-1;w<=B;w++){switch(A[w]){case 8204:if(w>0&&k.has(A[w-1]))continue;if(w>0&&w<B){let g=w-1;for(;g>0&&a.has(A[g]);)g--;if(J.has(A[g])){let g=w+1;for(;g<B&&a.has(A[g]);)g++;if(N.has(A[g]))continue}}break;case 8205:if(w>0&&k.has(A[w-1]))continue;break;case 183:if(w>0&&w<B&&108==A[w-1]&&108==A[w+1])continue;break;case 885:if(w<B&&P.has(A[w+1]))continue;break;case 1523:case 1524:if(w>0&&R.has(A[w-1]))continue;break;default:continue}throw new Error(`No context for "${o(String.fromCodePoint(A[w]))}"`)}if(A.some((A=>A>=1632&&A<=1641))&&A.some((A=>A>=1776&&A<=1785)))throw new Error("Disallowed arabic-indic digit mixture");if(A.includes(12539)&&!A.some((A=>O.has(A))))throw new Error("Disallowed katakana")}(g)}catch(A){throw q(B,A.message)}}return{cps:B,text:g}}));if(B.some((A=>A.text.some((A=>S.has(A)||U.has(A))))))for(let{text:A,cps:w}of B)try{h(A)}catch(A){throw q(w,`bidi: ${A.message}`)}return B.map((A=>String.fromCodePoint(...A.cps))).join(".")}function _(A){return AA(M(A),(A=>{if(b.has(A))return{};if(z.has(A))return[A];if(m.has(A))return{i:A};let w=n(d,A);return w?{m:w,u:[A]}:{d:A}}))[0]}function AA(A,w){let B=[],g=[],Q=[g];function t(){B.length>0&&(g.push({v:B}),B=[])}for(let C=0;C<A.length;C++){if(W){let[w,B]=W(A,C);if(w>0){t(),g.push({e:B,u:A.slice(C,C+w)}),C+=w-1;continue}}let r=w(A[C]);Array.isArray(r)?B.push(...r):(t(),r?g.push(r):(g=[],Q.push(g)))}return t(),Q}export{p as BUILT,y as NAME,V as UNICODE,j as VERSION,$ as ens_normalize,_ as ens_tokenize};

@@ -1,1 +0,1 @@

function A(A){return function(A){let t=0;return()=>A[t++]}(function(A){let t=0;function w(){return A[t++]<<8|A[t++]}let Q=w(),B=1,e=[0,1];for(let A=1;A<Q;A++)e.push(B+=w());let r=w(),n=t;t+=r;let E=0,C=0;function c(){return 0==E&&(C=C<<8|A[t++],E=8),C>>--E&1}const D=2**31,M=D>>>1,o=D-1;let g=0;for(let A=0;A<31;A++)g=g<<1|c();let f=[],i=0,u=D;for(;;){let A=Math.floor(((g-i+1)*B-1)/u),t=0,w=Q;for(;w-t>1;){let Q=t+w>>>1;A<e[Q]?w=Q:t=Q}if(0==t)break;f.push(t);let r=i+Math.floor(u*e[t]/B),n=i+Math.floor(u*e[t+1]/B)-1;for(;0==((r^n)&M);)g=g<<1&o|c(),r=r<<1&o,n=n<<1&o|1;for(;r&~n&536870912;)g=g&M|g<<1&o>>>1|c(),r=r<<1^M,n=(n^M)<<1|M|1;i=r,u=1+n-r}let l=Q-4;return f.map((t=>{switch(t-l){case 3:return l+65792+(A[n++]<<16|A[n++]<<8|A[n++]);case 2:return l+256+(A[n++]<<8|A[n++]);case 1:return l+A[n++];default:return t-1}}))}(Uint8Array.from(atob(A),(A=>A.charCodeAt(0)))))}function t(A){return 1&A?~A>>1:A>>1}function w(A,t){let w=Array(A);for(let Q=0,B=-1;Q<A;Q++)w[Q]=B+=1+t();return w}function Q(A,w){let Q=Array(A);for(let B=0,e=0;B<A;B++)Q[B]=e+=t(w());return Q}function B(A){let t=new Set(w(A(),A)),Q=A(),B=w(Q,A),e=function(A,t){let w=Array(A);for(let Q=0;Q<A;Q++)w[Q]=1+t();return w}(Q,A);for(let A=0;A<Q;A++)for(let w=0;w<e[A];w++)t.add(B[A]+w);return t}function e(A){let t=[];for(;;){let w=A();if(0==w)break;t.push(E(w,A))}for(;;){let w=A()-1;if(w<0)break;t.push(C(w,A))}return t.flat().sort(((A,t)=>A[0]-t[0]))}function r(A){let t=[];for(;;){let w=A();if(0==w)break;t.push(w)}return t}function n(A,t,w,B){let e=Array(A).fill().map((()=>[]));for(let r=0;r<t;r++)Q(A,w).forEach(((A,t)=>e[t].push(B?B[A]:A)));return e}function E(A,t){let w=1+t(),Q=t(),B=r(t);return n(B.length,1+A,t).map(((A,t)=>[A[0],A.slice(1),B[t],w,Q]))}function C(A,t){return n(1+t(),1+A,t).map((A=>[A[0],A.slice(1)]))}function c(A,t,w){let Q={};for(;;){let B=t(A);if(0==B.length)break;let e=1+A(),r=Array(e).fill(Q);for(let t of B)r=n(e,t,A,w).map(((A,t)=>{let w=r[t],Q=String.fromCodePoint(...A),B=w[Q];return B||(B=w[Q]={}),B}));r.forEach((A=>A[""]=1))}return Q}function D(A,t){for(let[w,Q,B,e,r]of A){let A=t-w;if(A<0)break;if(B>0){if(A<e*B&&A%e==0){let t=A/e;return Q.map((A=>A+t*r))}}else if(0==A)return Q}}function M(A){let t=new Uint8Array(A);for(let w=0;w<A;w++)t[w]=256*Math.random()|0;return t}function o(A){return A[Math.random()*A.length|0]}function g(...A){let t=A.length;if(0==t)throw new TypeError("no sets");let w=new Set(A[0]);for(let Q=1;Q<t;Q++){let t=A[Q];for(let A of w)t.has(A)||w.delete(A)}return w}function f(...A){let t=new Set;for(let w of A)for(let A of w)t.add(A);return t}function i(A,t){let{length:w}=A,Q=w-t.length;for(let B=0;0==Q&&B<w;B++)Q=A[B]-t[B];return Q}function u(A,t){return Object.fromEntries(Object.entries(A).map((([A,w])=>[A,t(w)])))}function l(A){return A.toString(16).toUpperCase().padStart(2,"0")}function x(A){return`{${l(A)}}`}function U(A){return/^[\x21-\x7E]+$/gu.test(A)}function F(A){return A.replace(/[^\x20-\x21\x23-\x7A\x7C\x7E]/gu,(A=>x(A.codePointAt(0))))}function s(A,t){return t||(t=x),A.replace(/(?:([\x00-\x20\x7F\xA0\s\u200C\u200D\u{E0020}-\u{E007F}])|([^\x21-\x25\x27-\x3B\x3D\x3F-\x7E]))/gu,((A,w,Q)=>w?t(w.codePointAt(0)):`&#${Q.codePointAt(0)};`))}function T(A,t){let w=[],Q=[];for(let B of A)(t(B)?w:Q).push(B);return A.splice(0,A.length,...Q),w}function S(A){return O(A,((A,t)=>t-A>1)).map((A=>[A[0],A.length]))}function J(A,t,w){let Q=[];A=A.map((A=>A.slice()));for(let B=0;B<A.length;B++){let e=A[B],[r,n]=e;if(-1==r)continue;let E=[e];A:for(let Q=B+1;Q<A.length;Q++){let B=A[Q],[e,C]=B;if(-1==e)continue;let c=r+E.length*t;if(!(e<c)){if(e>c)break;for(let A=0;A<n.length;A++)if(n[A]+E.length*w!=C[A])continue A;E.push(B)}}E.length>1&&(E.forEach((A=>A[0]=-1)),Q.push([r,E.length,n]))}return{linear:Q,nonlinear:A.filter((A=>A[0]>=0))}}function L(A){if("string"!=typeof A)throw new TypeError("expected string");return[...A].map((A=>A.codePointAt(0)))}function N(A){let t=parseInt(A,16);if(!Number.isSafeInteger(t)||t<0)throw new TypeError(`expected code point: ${A}`);return t}function H(A){return A.split(/\s+/).map(N)}function R(A){let t=A.indexOf("..");if(t>=0){let w=N(A.slice(0,t)),Q=N(A.slice(t+2));if(Q<w)throw new Error(`expected non-empty range: ${A}`);return Array(Q-w+1).fill().map(((A,t)=>w+t))}return[N(A)]}function d(A){return A.trim().split(/\s+/).flatMap(R)}function V(A,t){let w=[],Q=0;for(;;){let B=A.indexOf(t,Q);if(-1==B)break;w.push(B),Q=B+1}return w}function I(A,t,w={}){for(let Q of A){let A=t(Q),B=w[A];B||(B=w[A]=[]),B.push(Q)}return w}function a(A,t={}){for(let w of A)t[w]=(t[w]??0)+1;return t}function O(A,t){let w=0,Q=[];for(let B=1;B<A.length;B++)t(A[B-1],A[B])&&(Q.push(A.slice(w,B)),w=B);return w<A.length&&Q.push(A.slice(w)),Q}function h(A,t){let w=[],Q=0;for(;;){let B=A.indexOf(t,Q);if(-1==B)break;w.push(A.slice(Q,B)),Q=B+1}return w.push(A.slice(Q)),w}function k(A){let t=[],w=A.lastIndexOf(45);for(let Q=0;Q<w;Q++){let w=A[Q];if(w>=128)throw new Error("expected ASCII");t.push(w)}w++;let Q=0,B=128,e=72;for(;w<A.length;){let r=Q;for(let t=1,B=36;;B+=36){if(w>=A.length)throw new Error("invalid encoding");let r=A[w++];if(r>=48&&r<=57)r-=22;else{if(!(r>=97&&r<=122))throw new Error(`invalid character ${r}`);r-=97}Q+=r*t;const n=B<=e?1:B>=e+26?26:B-e;if(r<n)break;t*=36-n}let n=t.length+1,E=0==r?Q/700|0:Q-r>>1;E+=E/n|0;let C=0;for(;E>455;C+=36)E=E/35|0;e=C+36*E/(E+38)|0,B+=Q/n|0,Q%=n,t.splice(Q++,0,B)}return t}function Y(A,t,w){let Q=[],B=[],e=[B];function r(){Q.length>0&&(B.push({v:Q}),Q=[])}for(let n=0;n<A.length;n++){if(t){let[w,Q]=t(A,n);if(w>0){r(),B.push({e:Q,u:A.slice(n,n+w)}),n+=w-1;continue}}let E=w(A[n]);Array.isArray(E)?Q.push(...E):(r(),E?B.push(E):(B=[],e.push(B)))}return r(),e}var G=A("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");const K=Array(G()).fill().map((()=>B(G))),z=e(G),X=B(G),Z=44032;function P(A){return A>=Z&&A<55204}function W(A,t){if(A<128)t(A);else if(P(A)){let w=A-Z,Q=w%588/28|0,B=w%28;t(4352+(w/588|0)),t(4449+Q),B>0&&t(4519+B)}else{let w=D(z,A);if(w)for(let A of w)W(A,t);else t(A)}}function b(A,t){let w=[];function Q(){w.sort(((A,t)=>A[0]-t[0])).forEach((([A,w])=>t(A,w))),w.length=0}function B(A){let B=1+K.findIndex((t=>t.has(A)));0==B?(Q(),t(B,A)):w.push([B,A])}A.forEach((A=>W(A,B))),Q()}function j(A){let t=[];return b(A,((A,w)=>t.push(w))),t}function p(A){let t=[],w=[],Q=-1,B=0;return b(A,(function(A,e){if(-1===Q)0==A?Q=e:t.push(e);else if(B>0&&B>=A)0==A?(t.push(Q,...w),w.length=0,Q=e):w.push(e),B=A;else{let r=function(A,t){if(A>=4352&&A<4371&&t>=4449&&t<4470)return Z+(588*(A-4352)+28*(t-4449));if(P(A)&&t>4519&&t<4547&&(A-Z)%28==0)return A+(t-4519);for(let[w,Q]of z)if(2==Q.length&&Q[0]==A&&Q[1]==t){if(X.has(w))break;return w}return-1}(Q,e);r>=0?Q=r:0==B&&0==A?(t.push(Q),Q=e):(w.push(e),B=A)}})),Q>=0&&t.push(Q),t.push(...w),t}var y=A("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");const m=B(y),v=B(y),q=B(y),$=B(y),_=B(y),AA=B(y);function tA(A){if(0==A.length)return;let t=A.length-1;if(m.has(A[0])){if(!A.every((A=>m.has(A)||q.has(A)||$.has(A)||_.has(A)||AA.has(A))))throw new Error("RTL: disallowed properties");for(;AA.has(A[t]);)t--;if(t=A[t],!(m.has(t)||$.has(t)||q.has(t)))throw new Error("RTL: disallowed ending");if(A.some((A=>$.has(A)))&&A.some((A=>q.has(A))))throw new Error("RTL: AN+EN")}else{if(!v.has(A[0]))throw new Error("unknown direction");if(!A.every((A=>v.has(A)||$.has(A)||_.has(A)||AA.has(A))))throw new Error("LTR: disallowed properties");for(;AA.has(A[t]);)t--;if(t=A[t],!v.has(t)&&!$.has(t))throw new Error("LTR: disallowed ending")}}var wA=A("ABIAAQB6AEAAOAAoACYAHwAiABgAFgAOAAsACwAMAY8AfgADApQhCD9xcXFxcXFxcW5hcbsGoY8Bf9URLHl4F4mAXgAn6F1DBPgbACv4ZqZU5nHucWhm/wCYRQRDAJcASQwtAe8FzAOHOfQyBvsC+GifBANGRZDdAC4CJSwCIi8GFTgCJSwmLyQpNix4JTpMcXV+rQEGGggji3raLA6mlfECCAxleXQSxKUjTyElAibgTiIC0gHv1AZQBLNgQ6JNVpJS9wlNAHRfAXiOWADp7D9QqYZpggAHGwscRNcB8gB0/yE9LHw3ZzYcITAjCk8BAlASEDEWAjEMCTgFzVsHDywSYVMEXgVBSgCFDAQFAckCphERETMDM2uMA88yLkEnJgYTLi6LB7kBPw0nVwsQ4gE7YHTHG0MAJpANNxIqJ15uH1IFEQDKAm4FfB2eATAAeIwtpywlOBhEJwRXng4sHLli4Q5IYl7584oYIwciAIlLCW1CAFQULjWxMQNQS/8RUSEBKAMWiQavLFEEUAT7AK0E1WULFc3RYR4GDAkRFRAxEhEDAQEABx8IASgjAAJR4QwFEpUiGzjHDw5ylPEUpACEAX4jBRwWExgAGwkSAkFoCRgIAA5XWI6qYXEEjBQARAEhDhAt2CcBFwASAEoTJBMCNQUSphsCAEEXDnKU8Q4OA70WBRQQHmoJLG5nEwoIDmNYjqphcQSGGgBJASASEDPYKA9QDyQSCgQMShMjAxQGAzUCcRkkAIsAuokwVSwLAmIGPhgnKACLCRkAEicBAQbgO8+xBTABBxcQJgAEQDf6MASDMBD0HwwoDAsu9wDA6hMtcgxWABIITU3k0SHxGPGp8QBhA+dvYj7xAEEFTY2l8Q8x0RWBKEEG8QtKx0dLASBJGLFQ8QBfWx4AFKXRDyrPFXMcIgEPEjzcS9Wn/KALJxnXU2YJOBWKOmP82gdIgmNcRsDi+p7FBLYbwm9Uzs1RfCbNpY30PNDOtZBhbqPBybOPeWa7oi+ySNuja7E79Fz+oJqkWRGdXLqRl46pfoUDu0uKXTiGuFf3GtJzAXtJmxI3V8am/mpQnjfi99U7ZkojTh6fKYexodlCUm8Nn5tkJXqdPwxaQiU29Pa8nQxhFccS0ZzA2p+XNo3r68FBGjQNasxwtQH/0ELiOQLNuyc0YqOxCPnfFsvASXVP7enrn5p48UHDGS6NU/kYR37WSJ7+CN+nV4NqWlRTc/nQOuWoDD2Cnkn26E21fE+79xMXG2voqdtyef5eUY6MOoAAPIvdUDW+i16JSxe2+srXAYVvzbE8SKhyxzjFf2rMlgMycfXR8nl6/xF97xDwBSNLExVnK4YUGbAMpgGeHD0vHVXsIK20HyDdJQ9a5Uhwta5o+Tw/HpthmalqVX7v90SgUzjZaEahH3JPOhT8k+LFPClF+c5gMeKg");const QA=B(wA),BA=B(wA),eA=B(wA),rA=B(wA),nA=B(wA),EA=B(wA),CA=B(wA);var cA=A("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");function DA(A,t){return L(String.fromCodePoint(...t).normalize(A))}function MA(A){return DA("NFC",A)}function oA(A){return DA("NFD",A)}const gA="2022-01-16T00:14:41.340Z",fA="14.0.0",iA="1.3.11",uA="adraffy",lA=B(cA),xA=B(cA),UA=B(cA),FA=e(cA),sA=B(cA),TA=cA()&&function(A){const t=B(A),w=B(A),Q=B(A),e=B(A),n=B(A),E=B(A),C=B(A),D=B(A),M=B(A),o=c(A,(A=>Array(A()).fill(1))),g=A()?c(A,r,[...e,...E].sort(((A,t)=>A-t))):1,f=65039,i=8205,u=8419;function l(A,t){if(1===A)return 1;let w=String.fromCodePoint(...t.filter((A=>A!=f)));return A.hasOwnProperty(w)?A[w]:void 0}function x(A,t){let w=A[t];if(!w)return;let Q=A[t+1];if(D.has(w)&&Q&&C.has(Q))return[2,[w,Q]];if(Q==f){if(e.has(w))return[2,[w]];if(E.has(w)||n.has(w))return[2,[w,f]]}return e.has(w)||E.has(w)?[1,[w]]:void 0}return function(A,B){let e=A[B],r=String.fromCodePoint(e);if(o.hasOwnProperty(r)){let t=o[r],w=B+1;for(;;){let Q=A[w];if(!Q)break;let B=String.fromCodePoint(Q);if(!t.hasOwnProperty(B))break;t=t[B],w++}if(t.hasOwnProperty(""))return[w-B,A.slice(B,w)]}let n=A[B+1];if(t.has(e)&&t.has(n))return[2,[e,n]];let E=w.has(e);if(E&&n===u)return[2,[e,u]];if((E||Q.has(e))&&n===f&&A[B+2]===u)return[3,E?[e,u]:[e,f,u]];let C=x(A,B);if(!C)return[0];let[c,D]=C,U=B+c;if(n=A[U],n===i){let t=l(g,D);if(t){let w,Q=[],e=U;for(;A[e++]===i;){let B=x(A,e);if(!B)break;let[r,n]=B;if(t=l(t,n),!t)break;e+=r,1===t?(D.push(i,...n),w=e):(Q.push(i,...n),t.hasOwnProperty("")&&(D.push(...Q),Q.length=0,w=e))}if(w)return[w-B,D]}}if(M.has(n)){let t=U+1;for(;M.has(A[t]);)t++;if(917631===A[t++])return[t-B,D.concat(A.slice(U,1+t-U))]}return C}}(cA);function SA(A){return A.flatMap((({e:A,v:t})=>A??p(t)))}function JA(A,t){return new Error(`Disallowed label "${F(String.fromCodePoint(...A))}": ${t}`)}function LA(A){const t=45;let w=Y(L(A),TA,(A=>{if(lA.has(A))return;if(UA.has(A))return[];if(xA.has(A))return[A];let t=D(FA,A);if(t)return t;throw new Error(`Disallowed character "${F(String.fromCodePoint(A))}"`)})).map((A=>{let w=SA(A);if(w.length>=4&&w[2]==t&&w[3]==t&&120==w[0]&&110==w[1])try{let t=k(w.slice(4));[A]=Y(t,TA,(A=>xA.has(A)?[A]:[]));let Q=SA(A);if(t.length!=Q.length||!t.every(((A,t)=>A==Q[t])))throw new Error("not normalized");w=t}catch(A){throw JA(w,`punycode: ${A.message}`)}let Q=A.reduce(((A,{v:t})=>(t?A.push(...t):A.length>0&&A.push(65039),A)),[]);if(w.length>0){if(w.length>=4&&w[2]==t&&w[3]==t)throw JA(w,"invalid label extension");if(w[0]==t)throw JA(w,"leading hyphen");if(w[w.length-1]==t)throw JA(w,"trailing hyphen");if(sA.has(w[0]))throw JA(w,"leading combining mark");try{!function(A){for(let t=0,w=A.length-1;t<=w;t++){switch(A[t]){case 8204:if(t>0&&QA.has(A[t-1]))continue;if(t>0&&t<w){let Q=t-1;for(;Q>0&&BA.has(A[Q]);)Q--;if(eA.has(A[Q])){let Q=t+1;for(;Q<w&&BA.has(A[Q]);)Q++;if(rA.has(A[Q]))continue}}break;case 8205:if(t>0&&QA.has(A[t-1]))continue;break;case 183:if(t>0&&t<w&&108==A[t-1]&&108==A[t+1])continue;break;case 885:if(t<w&&nA.has(A[t+1]))continue;break;case 1523:case 1524:if(t>0&&EA.has(A[t-1]))continue;break;default:continue}throw new Error(`No context for "${F(String.fromCodePoint(A[t]))}"`)}if(A.some((A=>A>=1632&&A<=1641))&&A.some((A=>A>=1776&&A<=1785)))throw new Error("Disallowed arabic-indic digit mixture");if(A.includes(12539)&&!A.some((A=>CA.has(A))))throw new Error("Disallowed katakana")}(Q)}catch(A){throw JA(w,A.message)}}return{tokens:A,cps:w,text:Q}}));if(w.some((A=>A.text.some((A=>m.has(A)||q.has(A))))))for(let{text:A,cps:t}of w)try{tA(A)}catch(A){throw JA(t,`bidi: ${A.message}`)}return w.map((A=>String.fromCodePoint(...A.cps))).join(".")}function NA(A){return Y(L(A),TA,(A=>{if(lA.has(A))return{};if(xA.has(A))return[A];if(UA.has(A))return{i:A};let t=D(FA,A);return t?{m:t,u:[A]}:{d:A}}))[0]}export{gA as BUILT,uA as IDNA,fA as UNICODE,iA as VERSION,i as compare_arrays,LA as ens_normalize,NA as ens_tokenize,s as escape_name_for_html,F as escape_unicode,L as explode_cp,I as group_by,l as hex_cp,V as indices_of,U as is_printable_ascii,u as map_values,p as nfc,MA as nfc0,j as nfd,oA as nfd0,N as parse_cp,d as parse_cp_multi_ranges,R as parse_cp_range,H as parse_cp_sequence,k as puny_decode,x as quote_cp,M as random_bytes,o as random_choice,g as set_intersect,f as set_union,S as split_ascending,O as split_between,J as split_linear,h as split_on,T as take_from,a as tally,Y as tokenized_idna};
function A(A){return 1&A?~A>>1:A>>1}function B(A,B){let w=Array(A);for(let g=0,C=-1;g<A;g++)w[g]=C+=1+B();return w}function w(B,w){let g=Array(B);for(let C=0,o=0;C<B;C++)g[C]=o+=A(w());return g}function g(A){let w=new Set(B(A(),A)),g=A(),C=B(g,A),o=function(A,B){let w=Array(A);for(let g=0;g<A;g++)w[g]=1+B();return w}(g,A);for(let A=0;A<g;A++)for(let B=0;B<o[A];B++)w.add(C[A]+B);return w}function C(A){let B=[];for(;;){let w=A();if(0==w)break;B.push(Q(w,A))}for(;;){let w=A()-1;if(w<0)break;B.push(e(w,A))}return B.flat().sort(((A,B)=>A[0]-B[0]))}function o(A){let B=[];for(;;){let w=A();if(0==w)break;B.push(w)}return B}function r(A,B,g,C){let o=Array(A).fill().map((()=>[]));for(let r=0;r<B;r++)w(A,g).forEach(((A,B)=>o[B].push(C?C[A]:A)));return o}function Q(A,B){let w=1+B(),g=B(),C=o(B);return r(C.length,1+A,B).map(((A,B)=>[A[0],A.slice(1),C[B],w,g]))}function e(A,B){return r(1+B(),1+A,B).map((A=>[A[0],A.slice(1)]))}function n(A,B,w){let g={};for(;;){let C=B(A);if(0==C.length)break;let o=1+A(),Q=Array(o).fill(g);for(let B of C)Q=r(o,B,A,w).map(((A,B)=>{let w=Q[B],g=String.fromCodePoint(...A),C=w[g];return C||(C=w[g]={}),C}));Q.forEach((A=>A[""]=1))}return g}function f(A,B){for(let[w,g,C,o,r]of A){let A=B-w;if(A<0)break;if(C>0){if(A<o*C&&A%o==0){let B=A/o;return g.map((A=>A+B*r))}}else if(0==A)return g}}function t(A){return A.replace(/[^\x20-\x21\x23-\x7A\x7C\x7E]/gu,(A=>`{${function(A){return A.toString(16).toUpperCase().padStart(2,"0")}(A.codePointAt(0))}}`))}function D(A){if("string"!=typeof A)throw new TypeError("expected string");return[...A].map((A=>A.codePointAt(0)))}var i,E=(i="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",function(A){let B=0;return()=>A[B++]}(function(A){let B=0;function w(){return A[B++]<<8|A[B++]}let g=w(),C=1,o=[0,1];for(let A=1;A<g;A++)o.push(C+=w());let r=w(),Q=B;B+=r;let e=0,n=0;function f(){return 0==e&&(n=n<<8|A[B++],e=8),n>>--e&1}const t=2**31,D=t>>>1,i=t-1;let E=0;for(let A=0;A<31;A++)E=E<<1|f();let I=[],Y=0,l=t;for(;;){let A=Math.floor(((E-Y+1)*C-1)/l),B=0,w=g;for(;w-B>1;){let g=B+w>>>1;A<o[g]?w=g:B=g}if(0==B)break;I.push(B);let r=Y+Math.floor(l*o[B]/C),Q=Y+Math.floor(l*o[B+1]/C)-1;for(;0==((r^Q)&D);)E=E<<1&i|f(),r=r<<1&i,Q=Q<<1&i|1;for(;r&~Q&536870912;)E=E&D|E<<1&i>>>1|f(),r=r<<1^D,Q=(Q^D)<<1|D|1;Y=r,l=1+Q-r}let u=g-4;return I.map((B=>{switch(B-u){case 3:return u+65792+(A[Q++]<<16|A[Q++]<<8|A[Q++]);case 2:return u+256+(A[Q++]<<8|A[Q++]);case 1:return u+A[Q++];default:return B-1}}))}(Uint8Array.from(atob(i),(A=>A.charCodeAt(0))))));const I="2022-05-02T09:44:51.349Z",Y="14.0.0",l="1.3.16",u="adraffy",c=g(E),F=g(E),k=C(E),M=g(E),h=g(E),J=g(E),U=g(E),G=g(E),T=g(E),K=g(E),N=n(E,(A=>Array(A()).fill(1))),a=n(E,o,[...U,...G].sort(((A,B)=>A-B)));function H(A,B=""){return Object.hasOwn(A,B)}function s(A,B){let w=wA(...B.filter((A=>65039!=A)));if(H(A,w))return A[w]}function S(A,B){let w=A[B];if(!w)return;let g=A[B+1];if(K.has(w)&&g&&T.has(g))return[2,[w,g]];let C=65039===g;return U.has(w)?[C?2:1,[w]]:G.has(w)&&C?[2,[w,65039]]:void 0}function L(A,B){let w=A[B],g=wA(w);if(H(N,g)){let w=N[g],C=B+1;for(;;){let B=A[C];if(!B)break;let g=wA(B);if(!H(w,g))break;w=w[g],C++}if(H(w))return[C-B,A.slice(B,C)]}let C=A[B+1],o=h.has(w);if(o&&8419===C)return[2,[w,8419]];if((o||J.has(w))&&65039===C&&8419===A[B+2])return[3,o?[w,8419]:[w,65039,8419]];let r=S(A,B);if(!r)return[0];let[Q,e]=r,n=B+Q;if(C=A[n],8205===C){let w=s(a,e);if(w){let g,C=[],o=n;for(;8205===A[o++];){let B=S(A,o);if(!B)break;let[r,Q]=B;if(w=s(w,Q),!w)break;o+=r,C.push(8205,...Q),H(w)&&(e.push(...C),C.length=0,g=o)}if(g)return[g-B,e]}}return r}const V=Array(E()).fill().map((()=>g(E))),j=C(E),R=g(E),b=44032;function P(A){return A>=b&&A<55204}function W(A,B){if(A<128)B(A);else if(P(A)){let w=A-b,g=w%588/28|0,C=w%28;B(4352+(w/588|0)),B(4449+g),C>0&&B(4519+C)}else{let w=f(j,A);if(w)for(let A of w)W(A,B);else B(A)}}function d(A,B){let w=[];function g(){w.sort(((A,B)=>A[0]-B[0])).forEach((([A,w])=>B(A,w))),w.length=0}function C(A){let C=1+V.findIndex((B=>B.has(A)));0==C?(g(),B(C,A)):w.push([C,A])}A.forEach((A=>W(A,C))),g()}function x(A){let B=[],w=[],g=-1,C=0;return d(A,(function(A,o){if(-1===g)0==A?g=o:B.push(o);else if(C>0&&C>=A)0==A?(B.push(g,...w),w.length=0,g=o):w.push(o),C=A;else{let r=function(A,B){if(A>=4352&&A<4371&&B>=4449&&B<4470)return b+(588*(A-4352)+28*(B-4449));if(P(A)&&B>4519&&B<4547&&(A-b)%28==0)return A+(B-4519);for(let[w,g]of j)if(2==g.length&&g[0]==A&&g[1]==B){if(R.has(w))break;return w}return-1}(g,o);r>=0?g=r:0==C&&0==A?(B.push(g),g=o):(w.push(o),C=A)}})),g>=0&&B.push(g),B.push(...w),B}const X=V[E()],O=g(E),p=g(E),m=g(E),y=g(E),z=g(E),q=g(E);const v=g(E),Z=g(E),$=g(E),_=g(E),AA=g(E),BA=g(E);const wA=String.fromCodePoint.bind(String);function gA(A){let B=rA(x(D(A)),(A=>{if(46==A)return;if(F.has(A))return[];if(c.has(A))return[A];let B=f(k,A);if(B)return B;throw new Error(`Disallowed character "${t(wA(A))}"`)})).map((A=>({cps:A.flatMap((({e:A,v:B})=>A??B)),text:A.reduce(((A,{v:B})=>(B?A.push(...B):A.length>0&&A.push(65039),A)),[])}))),w=B.some((A=>A.text.some((A=>v.has(A)||$.has(A)))));return B.map((({cps:A,text:B})=>{if(A.length>0){if(M.has(A[0]))throw oA(A,"leading combining mark");try{!function(A){for(let B=0,w=A.length-1;B<=w;B++){switch(A[B]){case 8204:if(B>0&&X.has(A[B-1]))continue;if(B>0&&B<w){let g=B-1;for(;g>0&&O.has(A[g]);)g--;if(p.has(A[g])){let g=B+1;for(;g<w&&O.has(A[g]);)g++;if(m.has(A[g]))continue}}break;case 8205:if(B>0&&X.has(A[B-1]))continue;break;case 183:if(B>0&&B<w&&108==A[B-1]&&108==A[B+1])continue;break;case 885:if(B<w&&y.has(A[B+1]))continue;break;case 1523:case 1524:if(B>0&&z.has(A[B-1]))continue;break;default:continue}throw new Error(`No context for "${t(wA(A[B]))}"`)}if(A.some((A=>A>=1632&&A<=1641))&&A.some((A=>A>=1776&&A<=1785)))throw new Error("Disallowed arabic-indic digit mixture");if(A.includes(12539)&&!A.some((A=>q.has(A))))throw new Error("Disallowed katakana")}(B),w&&function(A){let B=A.length-1;if(v.has(A[0])){if(!A.every((A=>v.has(A)||$.has(A)||_.has(A)||AA.has(A)||BA.has(A))))throw new Error("RTL: disallowed properties");for(;BA.has(A[B]);)B--;if(B=A[B],!(v.has(B)||_.has(B)||$.has(B)))throw new Error("RTL: disallowed ending");if(A.some((A=>_.has(A)))&&A.some((A=>$.has(A))))throw new Error("RTL: AN+EN")}else{if(!Z.has(A[0]))throw new Error("unknown direction");if(!A.every((A=>Z.has(A)||_.has(A)||AA.has(A)||BA.has(A))))throw new Error("LTR: disallowed properties");for(;BA.has(A[B]);)B--;if(B=A[B],!Z.has(B)&&!_.has(B))throw new Error("LTR: disallowed ending")}}(B)}catch(B){throw oA(A,B.message)}}return wA(...A)})).join(wA(46))}function CA(A){return rA(x(D(A)),(A=>{if(46==A)return{};if(c.has(A))return[A];if(F.has(A))return{i:A};let B=f(k,A);return B?{m:B,u:[A]}:{d:A}}))[0]}function oA(A,B){return new Error(`Disallowed label "${t(wA(...A))}": ${B}`)}function rA(A,B){let w=[],g=[],C=[g];function o(){w.length>0&&(g.push({v:w}),w=[])}for(let r=0;r<A.length;r++){let[Q,e]=L(A,r);if(Q>0){o(),g.push({e:e,u:A.slice(r,r+Q)}),r+=Q-1;continue}let n=B(A[r]);Array.isArray(n)?w.push(...n):(o(),n?g.push(n):(g=[],C.push(g)))}return o(),C}export{I as BUILT,u as NAME,Y as UNICODE,l as VERSION,gA as ens_normalize,CA as ens_tokenize};

@@ -83,3 +83,2 @@ function decode_arithmetic(bytes) {

// returns an iterator which returns the next symbol
/*

@@ -93,2 +92,4 @@ export function read_payload(v) {

*/
// returns an iterator which returns the next symbol
function read_payload(v) {

@@ -305,43 +306,2 @@ let pos = 0;

// this returns [[]] if empty
// {e:[],u:[]} => emoji
// {v:[]} => chars
function tokenized_idna(cps, emoji_parser, tokenizer) {
let chars = [];
let tokens = [];
let labels = [tokens];
function drain() {
if (chars.length > 0) {
tokens.push({v: chars});
chars = [];
}
}
for (let i = 0; i < cps.length; i++) {
if (emoji_parser) {
let [len, e] = emoji_parser(cps, i);
if (len > 0) {
drain();
tokens.push({e, u:cps.slice(i, i+len)}); // these are emoji tokens
i += len - 1;
continue;
}
}
let cp = cps[i];
let token = tokenizer(cp);
if (Array.isArray(token)) { // this is more characters
chars.push(...token);
} else {
drain();
if (token) { // this is a token
tokens.push(token);
} else { // this is a label separator
tokens = []; // create a new label
labels.push(tokens);
}
}
}
drain();
return labels;
}
// returns an emoji parser

@@ -432,2 +392,3 @@ function emoji_parser_factory(r) {

}
// [ED-14c] emoji keycap sequence

@@ -443,2 +404,3 @@ // https://unicode.org/reports/tr51/#def_emoji_keycap_sequence

}
// [ED-15] emoji core sequence

@@ -451,2 +413,3 @@ // emoji_core_sequence := emoji_keycap_sequence | emoji_flag_sequence | chr_mod_pre

if (!emoji0) return [0]; // nope
// [ED-17] emoji sequence

@@ -493,2 +456,3 @@ // emoji_sequence := chr_mod_pre | emoji_zwj_sequence | emoji_tag_sequence

}
// [ED-14a] emoji tag sequence (ETS)

@@ -514,183 +478,19 @@ // https://www.unicode.org/reports/tr51/#def_emoji_tag_sequence

var r$2 = read_compressed_payload('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');
// this is a polyfill for normalized forms
// it exists because the ES6 implementation fails many tests
// see: https://adraffy.github.io/ens-normalize.js/test/report-nf.html
// but lib-nf.js is approx 13KB as of 20211221
const COMBINING_RANK = Array(r$2()).fill().map(() => read_member_set(r$2));
const DECOMP = read_mapped_table(r$2);
const COMP_EXCLUSIONS = read_member_set(r$2);
// algorithmic hangul
// https://www.unicode.org/versions/Unicode14.0.0/ch03.pdf
const S0 = 0xAC00;
const L0 = 0x1100;
const V0 = 0x1161;
const T0 = 0x11A7;
const L_COUNT = 19;
const V_COUNT = 21;
const T_COUNT = 28;
const N_COUNT = V_COUNT * T_COUNT;
const S_COUNT = L_COUNT * N_COUNT;
const S1 = S0 + S_COUNT;
const L1 = L0 + L_COUNT;
const V1 = V0 + V_COUNT;
const T1 = T0 + T_COUNT;
function is_hangul(cp) {
return cp >= S0 && cp < S1;
function norm(form, cps) {
return explode_cp(String.fromCodePoint(...cps).normalize(form));
}
function decompose(cp, next) {
if (cp < 0x80) {
next(cp);
} else if (is_hangul(cp)) {
let s_index = cp - S0;
let l_index = s_index / N_COUNT | 0;
let v_index = (s_index % N_COUNT) / T_COUNT | 0;
let t_index = s_index % T_COUNT;
next(L0 + l_index);
next(V0 + v_index);
if (t_index > 0) next(T0 + t_index);
} else {
let mapped = lookup_mapped(DECOMP, cp);
if (mapped) {
for (let cp of mapped) {
decompose(cp, next);
}
} else {
next(cp);
}
}
}
function compose_pair(a, b) {
if (a >= L0 && a < L1 && b >= V0 && b < V1) { // LV
let l_index = a - L0;
let v_index = b - V0;
let lv_index = l_index * N_COUNT + v_index * T_COUNT;
return S0 + lv_index;
} else if (is_hangul(a) && b > T0 && b < T1 && (a - S0) % T_COUNT == 0) {
return a + (b - T0);
} else {
for (let [combined, v] of DECOMP) {
if (v.length == 2 && v[0] == a && v[1] == b) {
if (COMP_EXCLUSIONS.has(combined)) break;
return combined;
}
}
}
return -1;
}
function decomposer(cps, callback) {
let stack = [];
cps.forEach(cp => decompose(cp, next));
drain();
function drain() {
stack.sort((a, b) => a[0] - b[0]).forEach(([rank, cp]) => callback(rank, cp));
stack.length = 0;
}
function next(cp) {
let rank = 1 + COMBINING_RANK.findIndex(table => table.has(cp));
if (rank == 0) {
drain();
callback(rank, cp);
} else {
stack.push([rank, cp]);
}
}
}
function nfc(cps) { return norm('NFC', cps); }
function nfc(cps) {
let ret = [];
let stack = [];
let prev_cp = -1;
let prev_rank = 0;
decomposer(cps, next);
if (prev_cp >= 0) ret.push(prev_cp);
ret.push(...stack);
return ret;
function next(rank, cp) {
if (prev_cp === -1) {
if (rank == 0) {
prev_cp = cp;
} else {
ret.push(cp);
}
} else if (prev_rank > 0 && prev_rank >= rank) {
if (rank == 0) {
ret.push(prev_cp, ...stack);
stack.length = 0;
prev_cp = cp;
} else {
stack.push(cp);
}
prev_rank = rank;
} else {
let composed = compose_pair(prev_cp, cp);
if (composed >= 0) {
prev_cp = composed;
} else if (prev_rank == 0 && rank == 0) {
ret.push(prev_cp);
prev_cp = cp;
} else {
stack.push(cp);
prev_rank = rank;
}
}
}
}
var r$1 = read_compressed_payload('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');
const R_AL = read_member_set(r$1);
const L = read_member_set(r$1);
const AN = read_member_set(r$1);
const EN = read_member_set(r$1);
const ECTOB = read_member_set(r$1); // ES, CS, ET, ON, BN
const NSM = read_member_set(r$1);
// [Validity] 8.) If CheckBidi, and if the domain name is a Bidi domain name, then the label
// must satisfy all six of the numbered conditions in [IDNA2008] RFC 5893, Section 2.
// * The spec is ambiguious regarding when you can determine a domain name is bidi
// * According to IDNATestV2, this is calculated AFTER puny decoding
// https://unicode.org/reports/tr46/#Notation
// A Bidi domain name is a domain name containing at least one character with BIDI_Class R, AL, or AN
function is_bidi_label(cps) {
return cps.some(cp => R_AL.has(cp) || AN.has(cp));
}
function validate_bidi_label(cps) {
if (cps.length == 0) return;
// https://www.rfc-editor.org/rfc/rfc5893.txt
// 1.) The first character must be a character with Bidi property L, R,
// or AL. If it has the R or AL property, it is an RTL label; if it
// has the L property, it is an LTR label.
let last = cps.length - 1;
if (R_AL.has(cps[0])) { // RTL
// 2.) In an RTL label, only characters with the Bidi properties R, AL, AN, EN, ES, CS, ET, ON, BN, or NSM are allowed.
if (!cps.every(cp => R_AL.has(cp) || AN.has(cp) || EN.has(cp) || ECTOB.has(cp) || NSM.has(cp))) throw new Error(`RTL: disallowed properties`);
// 3. In an RTL label, the end of the label must be a character with
// Bidi property R, AL, EN, or AN, followed by zero or more
// characters with Bidi property NSM.
while (NSM.has(cps[last])) last--;
last = cps[last];
if (!(R_AL.has(last) || EN.has(last) || AN.has(last))) throw new Error(`RTL: disallowed ending`);
// 4. In an RTL label, if an EN is present, no AN may be present, and vice versa.
if (cps.some(cp => EN.has(cp)) && cps.some(cp => AN.has(cp))) throw new Error(`RTL: AN+EN`);
} else if (L.has(cps[0])) { // LTR
// 5. In an LTR label, only characters with the Bidi properties L, EN, ES, CS, ET, ON, BN, or NSM are allowed.
if (!cps.every(cp => L.has(cp) || EN.has(cp) || ECTOB.has(cp) || NSM.has(cp))) throw new Error(`LTR: disallowed properties`);
// 6. end with L or EN .. 0+ NSM
while (NSM.has(cps[last])) last--;
last = cps[last];
if (!L.has(last) && !EN.has(last)) throw new Error(`LTR: disallowed ending`);
} else {
throw new Error(`unknown direction`);
}
}
var r = read_compressed_payload('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');
const BUILT = '2022-01-16T00:14:41.340Z';
const BUILT = '2022-05-02T09:44:51.349Z';
const UNICODE = '14.0.0';
const VERSION = '1.3.11';
const IDNA = 'ENS0';
const VERSION = '1.3.16';
const NAME = 'ENS0';
const STOP = read_member_set(r);

@@ -701,8 +501,5 @@ const VALID = read_member_set(r);

const COMBINING_MARKS = read_member_set(r);
const EMOJI_PARSER = r() && emoji_parser_factory(r);
const EMOJI_PARSER = r() && emoji_parser_factory(r); // this is optional
// emoji tokens are as-is
// text tokens are normalized
// note: it's safe to apply to entire
// string but you'd have to retokenize
// collapse emoji or NFC(text) to code points
function flatten_tokens(tokens) {

@@ -746,3 +543,3 @@ return tokens.flatMap(({e, v}) => e ?? nfc(v));

const HYPHEN = 0x2D; // HYPHEN MINUS
let labels = tokenized_idna(explode_cp(name), EMOJI_PARSER, cp => {
let labels = tokenized_idna(nfc(explode_cp(name)), cp => {
// ignored: Remove the code point from the string. This is equivalent to mapping the code point to an empty string.

@@ -762,24 +559,23 @@ if (STOP.has(cp)) return;

// [Processing] 4.) Convert/Validate
if (cps.length >= 4 && cps[2] == HYPHEN && cps[3] == HYPHEN) { // "**--"
if (cps[0] == 0x78 && cps[1] == 0x6E) { // "xn--"
try {
// Attempt to convert the rest of the label to Unicode according to Punycode [RFC3492].
// If that conversion fails, record that there was an error, and continue with the next label.
let cps_decoded = puny_decode(cps.slice(4));
// With either Transitional or Nontransitional Processing, sources already in Punycode are validated without mapping.
// In particular, Punycode containing Deviation characters, such as href="xn--fu-hia.de" (for fuƟ.de) is not remapped.
// This provides a mechanism allowing explicit use of Deviation characters even during a transition period.
[tokens] = tokenized_idna(cps_decoded, EMOJI_PARSER, cp => VALID.has(cp) ? [cp] : []);
let expected = flatten_tokens(tokens);
if (cps_decoded.length != expected.length || !cps_decoded.every((x, i) => x == expected[i])) throw new Error('not normalized');
// Otherwise replace the original label in the string by the results of the conversion.
cps = cps_decoded;
// warning: this could be empty
// warning: this could be "**--"
} catch (err) {
throw label_error(cps, `punycode: ${err.message}`);
}
if (cps.length >= 4 && cps[0] == 0x78 && cps[1] == 0x6E && cps[2] == HYPHEN && cps[3] == HYPHEN) { // "xn--"
try {
// Attempt to convert the rest of the label to Unicode according to Punycode [RFC3492].
// https://www.rfc-editor.org/rfc/rfc3492.html
// If that conversion fails, record that there was an error, and continue with the next label.
let cps_decoded = puny_decode(cps.slice(4));
// With either Transitional or Nontransitional Processing, sources already in Punycode are validated without mapping.
// In particular, Punycode containing Deviation characters, such as href="xn--fu-hia.de" (for fuƟ.de) is not remapped.
// This provides a mechanism allowing explicit use of Deviation characters even during a transition period.
[tokens] = tokenized_idna(cps_decoded, cp => VALID.has(cp) ? [cp] : []);
let expected = flatten_tokens(tokens);
if (cps_decoded.length != expected.length || !cps_decoded.every((x, i) => x == expected[i])) throw new Error('not normalized');
// Otherwise replace the original label in the string by the results of the conversion.
cps = cps_decoded;
// warning: this could be empty
// warning: this could be "**--"
} catch (err) {
throw label_error(cps, `punycode: ${err.message}`);
}
}
// flatten textual part of token to a single list of code-points
// flatten textual part of label into a single list of code-points
let text = tokens.reduce((a, {v}) => {

@@ -795,3 +591,3 @@ if (v) {

// [Validity] 1.) The label must be in Unicode Normalization Form NFC.
// => satsified by nfc() via flatten_label_tokens()
// => satsified by nfc() via flatten_tokens()
// [Validity] 2.) If CheckHyphens, the label must not contain a U+002D HYPHEN-MINUS character in both the third and fourth positions.

@@ -813,21 +609,7 @@ // note: we check this here (rather than above) because puny can expand into "aa--bb"

}
return {tokens, cps, text};
return {/*tokens,*/ cps, text};
});
// [Validity] 8.) If CheckBidi, and if the domain name is a Bidi domain name, then the label
// must satisfy all six of the numbered conditions in [IDNA2008] RFC 5893, Section 2.
/*BIDI*/
// * The spec is ambiguious regarding when you can determine a domain name is bidi
// * According to IDNATestV2, this is calculated AFTER puny decoding
// https://unicode.org/reports/tr46/#Notation
// A Bidi domain name is a domain name containing at least one character with BIDI_Class R, AL, or AN
if (labels.some(x => is_bidi_label(x.text))) {
for (let {text, cps} of labels) {
try {
validate_bidi_label(text);
} catch (err) {
throw label_error(cps, `bidi: ${err.message}`);
}
}
}
/*~BIDI*/
return labels.map(x => String.fromCodePoint(...x.cps)).join('.');

@@ -842,3 +624,3 @@ }

function ens_tokenize(name) {
return tokenized_idna(explode_cp(name), EMOJI_PARSER, cp => {
return tokenized_idna(explode_cp(name), cp => {
if (STOP.has(cp)) return {};

@@ -853,2 +635,43 @@ if (VALID.has(cp)) return [cp]; // this gets merged into v

export { BUILT, IDNA, UNICODE, VERSION, ens_normalize, ens_tokenize };
// this returns [[]] if empty
// {e:[],u:[]} => emoji
// {v:[]} => chars
function tokenized_idna(cps, tokenizer) {
let chars = [];
let tokens = [];
let labels = [tokens];
function drain() {
if (chars.length > 0) {
tokens.push({v: chars});
chars = [];
}
}
for (let i = 0; i < cps.length; i++) {
if (EMOJI_PARSER) {
let [len, e] = EMOJI_PARSER(cps, i);
if (len > 0) {
drain();
tokens.push({e, u:cps.slice(i, i+len)}); // these are emoji tokens
i += len - 1;
continue;
}
}
let cp = cps[i];
let token = tokenizer(cp);
if (Array.isArray(token)) { // this is more characters
chars.push(...token);
} else {
drain();
if (token) { // this is a token
tokens.push(token);
} else { // this is a label separator
tokens = []; // create a new label
labels.push(tokens);
}
}
}
drain();
return labels;
}
export { BUILT, NAME, UNICODE, VERSION, ens_normalize, ens_tokenize };

@@ -1,1 +0,1 @@

function A(A){return function(A){let w=0;return()=>A[w++]}(function(A){let w=0;function B(){return A[w++]<<8|A[w++]}let Q=B(),r=1,t=[0,1];for(let A=1;A<Q;A++)t.push(r+=B());let C=B(),E=w;w+=C;let e=0,M=0;function D(){return 0==e&&(M=M<<8|A[w++],e=8),M>>--e&1}const g=2**31,n=g>>>1,o=g-1;let l=0;for(let A=0;A<31;A++)l=l<<1|D();let i=[],x=0,U=g;for(;;){let A=Math.floor(((l-x+1)*r-1)/U),w=0,B=Q;for(;B-w>1;){let Q=w+B>>>1;A<t[Q]?B=Q:w=Q}if(0==w)break;i.push(w);let C=x+Math.floor(U*t[w]/r),E=x+Math.floor(U*t[w+1]/r)-1;for(;0==((C^E)&n);)l=l<<1&o|D(),C=C<<1&o,E=E<<1&o|1;for(;C&~E&536870912;)l=l&n|l<<1&o>>>1|D(),C=C<<1^n,E=(E^n)<<1|n|1;x=C,U=1+E-C}let c=Q-4;return i.map((w=>{switch(w-c){case 3:return c+65792+(A[E++]<<16|A[E++]<<8|A[E++]);case 2:return c+256+(A[E++]<<8|A[E++]);case 1:return c+A[E++];default:return w-1}}))}(Uint8Array.from(atob(A),(A=>A.charCodeAt(0)))))}function w(A){return 1&A?~A>>1:A>>1}function B(A,w){let B=Array(A);for(let Q=0,r=-1;Q<A;Q++)B[Q]=r+=1+w();return B}function Q(A,B){let Q=Array(A);for(let r=0,t=0;r<A;r++)Q[r]=t+=w(B());return Q}function r(A){let w=new Set(B(A(),A)),Q=A(),r=B(Q,A),t=function(A,w){let B=Array(A);for(let Q=0;Q<A;Q++)B[Q]=1+w();return B}(Q,A);for(let A=0;A<Q;A++)for(let B=0;B<t[A];B++)w.add(r[A]+B);return w}function t(A){let w=[];for(;;){let B=A();if(0==B)break;w.push(e(B,A))}for(;;){let B=A()-1;if(B<0)break;w.push(M(B,A))}return w.flat().sort(((A,w)=>A[0]-w[0]))}function C(A){let w=[];for(;;){let B=A();if(0==B)break;w.push(B)}return w}function E(A,w,B,r){let t=Array(A).fill().map((()=>[]));for(let C=0;C<w;C++)Q(A,B).forEach(((A,w)=>t[w].push(r?r[A]:A)));return t}function e(A,w){let B=1+w(),Q=w(),r=C(w);return E(r.length,1+A,w).map(((A,w)=>[A[0],A.slice(1),r[w],B,Q]))}function M(A,w){return E(1+w(),1+A,w).map((A=>[A[0],A.slice(1)]))}function D(A,w,B){let Q={};for(;;){let r=w(A);if(0==r.length)break;let t=1+A(),C=Array(t).fill(Q);for(let w of r)C=E(t,w,A,B).map(((A,w)=>{let B=C[w],Q=String.fromCodePoint(...A),r=B[Q];return r||(r=B[Q]={}),r}));C.forEach((A=>A[""]=1))}return Q}function g(A,w){for(let[B,Q,r,t,C]of A){let A=w-B;if(A<0)break;if(r>0){if(A<t*r&&A%t==0){let w=A/t;return Q.map((A=>A+w*C))}}else if(0==A)return Q}}function n(A){return A.replace(/[^\x20-\x21\x23-\x7A\x7C\x7E]/gu,(A=>{return`{${w=A.codePointAt(0),w.toString(16).toUpperCase().padStart(2,"0")}}`;var w}))}function o(A){if("string"!=typeof A)throw new TypeError("expected string");return[...A].map((A=>A.codePointAt(0)))}function l(A,w,B){let Q=[],r=[],t=[r];function C(){Q.length>0&&(r.push({v:Q}),Q=[])}for(let E=0;E<A.length;E++){if(w){let[B,Q]=w(A,E);if(B>0){C(),r.push({e:Q,u:A.slice(E,E+B)}),E+=B-1;continue}}let e=B(A[E]);Array.isArray(e)?Q.push(...e):(C(),e?r.push(e):(r=[],t.push(r)))}return C(),t}var i=A("ABMCuQDBCCEAOQDaACcAcgAZAC0AFwAtABEAJgAOACUEiQNRALQNRygbxexVsVUCJRieAuAASPZlZwBu4QoILXBwcHDwcAJrCe2iQYxsZfepR1yjAE1t7ecAc/kC78r4ABIsL4ogCD5wcHBwcHBwcG1gcLoGoI4BftQRK3l3Foh/XQAm511CBPcaKvdlpVPlcO1wZ2X+AJdEA0IAlgBIDCwB7gXLA4Y49DEG+gL3BKEEogSjBKQEpQSmBKcEqASpBKoErAStBK4EsASyBLP6DwU8AZUFPQGVBT4BlQUJJgUKJgULJgVCBUMFYQYCC0YLRw0pDTkNqQ25DmIOYw5rDmUcwQISHL8CDAsOANBWHOsRICQEgguHdDSa1kwE03+3B57NVy6SAHHFGgHZiLxWOdMGHR2cA1UoEQIHAAE5o9IADjAmDgUPCo0BAgMAhy9T7BAPwR4WNgSLAxJ8FeQvHwDQXgSfEesWchzoGAI3AQFEBQAQPJyVqZ0MzwBNzQBEAGUE9wHThG8DMQFePhmdA1cmA8rNQEkB8S0DABD/VTNpN5IbYx4ASAUfAscGCCuSAFMOuAHvCwThd4QaQgDgAMJSUgQ4CJ4Ad40AqAFWVrBlRRWIDK4D+gCsBUgFFRACAQIGLhmOESYCTRmKHL4CTgI2BXE4cQVDAK1DAvqfodmRADcE8Tj1Hv2R+0wAFKkaoxW5NmMA8P8BnQL6mRk7PwAhUwAzAD4pOTZc5AL7CmUCjtcChw4/xAM2zwKEKALUBXdTBQM2xW0HAQEBAQUBQwCumwL5PwUXpAPs6QTbK4BXUj00AgU6BUkEpgTbBazlABX3SZhOnQL0Ot5ALgpXCclv8XeEBnMQTSfXESkMZQHnAW0OH0wKBSMGbQT7H68ZSw//lc4I1y4PDR8nFS7TgIwkJyq1Bh9MJj0PC39Rmg+LC5cKFTqVgYADUwE/Ir0LDw1rCJ8RJQr7nQ4XEXcHawQHScwA1wczC0MdZxXnJkJi3gs7OakHLRsoC8Em4RNbey4GBRpTBn8BWxsxAQEvGYXiWmNcThBPkQY1C1cj+RTaUFINV0DpeHoaTQdHJdsCw0OiSrlRaB7FIig8bw2YLkVRrggnPDcZgQuzPNBG3UVAEgQ+vz16IntMXgRnsSxhJ70KAQ+3DOt8pAGLCVMJ4wyjE2MRSTf3CGsHS1+XVidHCFNGx2DMBSnRBCUUAwM9BXEJcwdFA+ccXxNgFVsFP4FWAAkDJTcHLuUCwVayAUkF/Q9XIBEQgkgSDxsIzQKXA7UmHQBfFVMASSLNCHWVAJGQClM3Lv0I+WqeI6YDmRUZkxGlB8MOiQfZHGUV8R0TcPpePYY6KNXhCY0BpwnLAZEFFQg7NY2M0iBzZ4WLihjNIJNBcV4uAmMMlxXRRO+HqgK9D50STQFnAaUHaw0zAqkSHxGdFRDHCR2GNjXnNCo6VwSBIbUgQwpZA4FtAAtZJysNKpsB1RKUAz40b3ggZ91g6FYYLwdLMvdBkiIjC8RP/wzOGvMYdFRgGhYH8QQlGyUoHEGJBjED1TVFOn80IATvC5sIvQlxAHsO1QtJCAkYnAqjjQIBY70B6SfLA4nDtQKhwQZpBQc9AJk9uQWrABcATwLZCNUANwEBA4kAawLfB88ASwcBALdzAW8DWRthAVMAFwLBA8UIY/0Bx2ECJVsETfUMRwEpaW58AsPjAoCcZtQGD4oCwAJ7ZwF/VwQ3gHmDA+GjABMRAQ0AfQZFABF5AUfdfP1MABV1AhGhXQD5AS0AN2cHN3MB/wIlEJ8A6QGRC2MJ1OXnAX8AG1sAtQBHEyOdBAIJArsBDwBnALEAIwGFAH8FiwArBgUCgXsRAUNjSl0SiZMB7QNRAWUBPwCrBv2/1/s5CVEEnwgFAhBNFhMC72AH5zMDIxET/0L3Ar4Qh6GSAwJkswJidI0Lf+EvjSA3UgKiKQJoyhEXAmY7Ap+2OE09AmZtAmZYCwSgBLEDA39FA37EDTk4OakHSTm0OlUnHStVAQMjBQJsTwIyaDg8GwJt+QJt4BsAIbwRMWWZJXcRXRUBDwGZARABEwB8NwfKDL8BMD0j9AA/5wJ3YQJ21A8ZAXECeX11AnjsTwmOAA1F4A1HCQJ8cQJ6+hsPCQJ9OwJ9IgWLBVJIMkivDZVWAoGfAoAyAoA3An/gE0mKSo1HG0lK/gLRMwLQ/ktZGQOIgQOIGET3kWQC8tNdNQMD4ANMAExfVwU1AAFNfixN4QKLcQKLCvNNGTkMB08ZJQd1mTfpAo5pAo6OcsknswKPCwKOjqooUeZTZxsvPFMGVLcrApQtApM+ARsATlVQVeFWAjgsTSnHuDMTeJhFbWsGApfRAu/kWFPaAItXApbBApauzgDbWd5aO7N/AG0ClucCloBcdl0DApn9ApmWXPxdOUsCnM059DrPApxIAp/NAp7qDbwAT0FjXEEPCwKeIwKexADnb2FmYiECnwUCoKAB2wKe0VECnoDXJmP6ZFlXXQIn4QImsAKhLQKgfgKjDwKh9gsnAqZhAqYAGwKoMQCvAqgkE2iuaOMANRsbGXtqTmsDAq0VAqzgAq2ZAq00AldPAlYOArITHwAJAx+ACWzJArLvPyUCsxhHbRJtlW16kQMl/wK2jm1xbsIDKXcCuJACuXlHArlcqXBocRMFAr1LArwMcMgDMkMCvrpyNAMzowK+THNUc4ErAsP9AsM2c7R0fWd3dRIDPNkvAzzMAz3xAsWuAsZ5AsZCuwcCyJuDAsh2AsmBAslgAmTPAt4EeKuTeOB5V0wCAxjVDWc0AwJiJhollVZ7PRVexF7tBUMCz50Cz55hfYUABAAlRdEA+N8RAs+lAVsAHANORH59NwLcWQLbvALSgQNSjgNTkQEzA1W+gLsJB3Ey/UgAH5J3J4JOgwUxgwCDvwLa+QLaEIRChHunbgOG1wBhA2RAA4ajiwArAIcC35cC3uodpakC4mHtRgHzYg5ZAfTNAfMEuQLsJScC6aKrMQLrKwLrFgEreQHrKQLuuwLrzpbclzUC7nEDhhKYq3EScdMC8zUAmwOOSAGZxQL3RQORoAOSuQL3ygL6CwL4mJpOmt3tJ2mbUAOdtQL/LAFNAGufTi+f5QMFvwOmnAOnCwED9wMGnKG6ojcFOwMMewLyAHE1DSsBE3MlJUkHMR8hhQ0BQwAlEwOdATnJEZk3AMURX13p4e8ADQG7BQsFAxUFC8sUsUMEawItFy9bIScfBzdTDs8J0R8FDR8Aky8HKYkP9wMpAc8A6QXrAG89n3MBYDEwMTAxLDEwMTAxMDEuMS4xMDEwMTAxMDEsMTAxMDEwMS4xLjEwMTAxMDEwMS4xLjEwMTAxLDEwMTAxLjEwMTAxKjEwMTAxLjEwMTAxMDEuMTAxLjEwMTAxMDEwMTAxLDEsMTAxMDEwMUYxJDFYMSAxJDEkMb8xMDEwMTAxYDEBdQGyMQAuMSgxKDEB51gApwNANjEiMZ8xLjEMMQBeMTAxKDEwMSgxMDEkMTAxKjEwMSoxMDE0MS4xSDE+MSgx0zEyMQA8MQJvApwxBA8DsATDM1IJCRUUCQN3ChkHBjE3KAdTrjE8MTAxJjEANwB2MS4xLjEwMSQxAEUAaDFEMTAxMDEoMSgxAqkzMjcABxgTA50BLAMAITwL9zQPASk80Vnx4+kAFwHDBSZTc3QzBSYAGxSxQzTyMS4xMDEwMbsxADYxMDEwMTAxMDEATQCMMTAxAncCtjEuMS4xMDEwMTAxMDEuMb0xADgxMDEwMS4xOoU6xjEwMS4xMDEwMS4xMDEwMTAxvzEwMZ8A6jEwMSwxMDE6wTsCMS4xMDEAvzjzOw4xMDEwMTAxLjEwMTAxANcBGjEwMS4xMDEwMTAxMDEuMTAxLjEuMTAxMDEUCQD9AWwxMDGzMTAxMDEwMTptOi46KzuoMTAxMDG7MTAxMDEwMTqNO9AxMDEkMTAxuzEwMTAxMDE6oTlKAYgxMDEBZQGeMTAxMDEwMQVhNY810DXfNZg1pzXoNfc1tDXDNgQ2EzXQNd82IDYvNeQ18zY0NkM1+DYHNkg2WTYQNh82YDZvNmA1XxNTNmw2bzZuNvs3OgTCPIk2agIDNw83UjdBNvwTEhNSN7s3YgQ8BOI8mTZWN0s3ngU6v2lTIR9DBkM5GEMSQz0LJ04ZMQ9BCc1anw1agwdVOCMCAOmxAOniGgUDARRbBQAJAxsB1QDvBekAbzWlBPErPgAAKz4AADU+ADMoBDE6NTI7PD0mBj0mAAQ9JgY7JicmAis8Dw4ABwgBKTgBBg0bJDE2AAEBAwIFhwTB9SMm8QElICMmACciI+/vGBfDI9cbAqF2CV/jFP8vECwpDVApDQRKSUQpJi9ONQ0MLktIKSgpDUgAKS5LRCkoKQ0CCUgxNikoMw1CKSQAAwMrJAMlJAADAzEkAAMxNjckERhzThhzThgVGBUYc04Yc04Yc04Yc04YFRgVGHNMGHNOGHNOGHN0e25zbnt6e3pzaHVoc2gXTWgZGHt6ewpZs1S6BQYBFOfLAx8jAbcECwDVBfMAb1sDCgMHCNBEGAPVCxoTzzEPCEl0bfPuvtUITbpVYVJlxVlu6xi8yukTEkTF+I1Bz4RYE53KIyT5DqAze0PwJQnlNxSS1YcpXV+gDEc/C4oNhoy1Ki91qpqCkt0JC6govLXTaVPJD3AwcKH0Xt5qRPRA5eQ6MH8VyPygTIkcSo7sGVE7g/x/2GhuMYWGguyR28kVFce6ihYPUY3W6nXi+/cnjI84LZxeebblXdW5a64/eDHo767XonxSFZGrp5Lgailtk2xq6j5ycujrl9qokkhmb2lwNH56X+6DnQ2pS+S00ufS1dIKqoNMdSmVRVXuUTS8bAdxZpjBZ3GYbUwUd2Gf7NGiMRzjH9sHUU7IFiCwTVgrpwkZsQzAxyaDuftBHFMUbRZ2SqzQoyN8vokQdZdxrQbnZiew5ZTkws54Niofx8wx3MZWJmmaphy/s3augdBb6bMYJK0V8dEraJiQOltirvSWU9Eyc0xfVhTTKdBbeJpnj+5Oj55jy36RY1GRX1MXuQ6d9K5XaR6kBt5bVdj7wQgTqFSwDbmxadyzHfcLdn0lzacx9l+VnyWca+zvr8ky4UAdX7vzBM0CmNNAMhVgcEwdk04NiGGUFPp2qkZQSAh2t+U/OGae4/9NzQa7denjPny3g473yswQVIQLqQCG5RDqpjP4o/xBLx+i2gGQIKO1b6vMN1LATETLBn6qRF2P9SuRORVQeyyMO0zL0+FDTc/n6Sgc/ifEjrUsjHmIfkDkWG7xk4c3bvXSmCUsWxnTx0Z2CedkEM6ZwrfWZ6xaHbLJTtdymk0w0Yx+ozu5gupZB9TNnG9SKZ0QRO30y3vZq/JiCBMyeKXb7KFzP1Sbjhobjrz4ouE7+f4E+1fsM2CNF+XeR/pHiMOSqRfST7NkOyTnKYRJmzyBN7K/Qg/cLptbCWstC7oKhEBw4gE39yLzFy/H2J7LAGHff6chBHUNw8oBFpyoLqlqf0VApfS05bqP4Nk4YrTmNXHol41ujxa/pPxdkQNuev8181lcbbM+CYhQkf6YvG5pOgQUg2rYPiVOMk0IFziGpe/MYh+hx8RvUqkY5fOn/RLoPlBjGK7EF6C7tiirGnaesifWo3UkZ7YKuBzQ/VY9OCL++CeMyjCgyh9t1k3c84D5s93yf+n6q9itHlOXoY42LHOrx9PekKouVooYd4H7oXv7qndtr7Qxtz6ZFiFehmjQ8TUlBN7gLEy4ldleZoGzXnBYw5UCtayPK2O8nbFIe2WuVQudXSzkxihUyv7/d4Uy+JvXxqUGz7eQSo3+YgzSuhz/oM3SJCyNd6unJIwWI0UpPXmgOscRHl52BSX1ChjrJmd8JF+jxfUnAl/Y1Vl7OOycKSdzZnDNIhhjt0DFpwg2+yqNwuJ+1+AtEvvqO/8maMw655nlQ9/4+C4F7sg+ixD9l2v5t1KsuV3TCUGJL1VvM0WWRKKYTlPbR1uX8OJ6/YWm6YwAPFE0ElXSuTwKdEsVA29ur6n6SurYeHbdJKVmImFDAoCvCIZKT73AAguPi9embsaMrFmiIBdsznlKVEpXJhxFDb73WO1JIlG+3jjreBnY53LHLFlOxSB8uamE3mBo9Hi71J/nL88SKUVr9FiUZDM9i1jV8u/M6C7Aa1STDyVwNoCrdPduWFMUSTEW2ORxNk0KEeWAGigBCZ0uQZWEKUXYSLYQzbw6DbiEye/cz9nLqM2iOzOo+pvFqngmBMGV1SZApeEwBcc0OBUlvG/1tuGhVhBxGwYYtqsLkIiQ8FO+A1211X0QJDn6GHLaXEj8rkw9cIYtXrTmwXtyzcmt/eUoAS/CtdaE8DxJlKaf+XRUpSZrUISDsE3T787UDsFAphCizRPUiSeewa+lq53P71ted+SnbPJX4WY4LIgnp2i4Mtsb3RoH8EvwLyl4ZCEks8KEvQnSm5B+J7KC943c8Nuyc/+oXVr3IBLJVsExQqolVUFA4ycod2Y9nhcfbnu8IU82JpIGcaH39i15p4tt5xscCraP5fD1bm8vJetXWZf6ANxe7mIZe9rS00KAVDBJ9Avm4cTq9LAy1KfFMowSMv8zdHHOpQiCaVLP21ysT5RFdVOF72MfyEK2T3l4t9ilzq7txXCE/dBu8OoLT3Ug+2Exxlg1NCuBbSPYtaHpwzbAu9TPVA/QtpIPuxOpgo3ytxtnAZSIGZ/xOKxTDZAx/xlABsvwB3mNpClAUrj70BlyVbEDpCTlfc7+otbovSbzpKU+/cGaPQ5IilEgwwC/+ZG6dumtH25+bRMaLtGa2VkQd+JU1BSRCKJ8VGbzvw0bX6yG3zh9wtFfgLofG2xZPbz9z+HmAjXaC4P4x4d+xmWjCzwKe19s8x5TeasMAeCcS9JPCC3Z2GZTMLbvRmvV/bctlSf5KUT0sNpYTGYJjzwKr8VXzOBmr9QjTGOg6RbCb3bz+Gz//YK6X9htjxHlDo2KX/BamwU0XkWz5T34wdGnawCFAYSJoFvfe6VluZ4Ftz4Q9epbE3cILgM9J6gatoIwrOrf6E9KeqU0MBH/k4DYy7yI52YBoZR/uzoryViLQ0Gcm5sE/z0+0aIiz0VBjF/AN4y27UV1GzGYcBhdCN+DVLKCLG/PSD4aj3C2bNxJF1ulVxu021HdlUIP0vSIcgUXYXxmhyPknJredXe19NvbQCDQVh/L3SzACD+aHRFbvouhbY2dZLE2TI/twwr70Mx9nTZ06kLSEqf4utlWqEtXnqLB5S9h/3Bw8p/AzfT+fzmT6co=");const x=Array(i()).fill().map((()=>r(i))),U=t(i),c=r(i),f=44032;function u(A){return A>=f&&A<55204}function I(A,w){if(A<128)w(A);else if(u(A)){let B=A-f,Q=B%588/28|0,r=B%28;w(4352+(B/588|0)),w(4449+Q),r>0&&w(4519+r)}else{let B=g(U,A);if(B)for(let A of B)I(A,w);else w(A)}}function s(A,w){let B=[];function Q(){B.sort(((A,w)=>A[0]-w[0])).forEach((([A,B])=>w(A,B))),B.length=0}function r(A){let r=1+x.findIndex((w=>w.has(A)));0==r?(Q(),w(r,A)):B.push([r,A])}A.forEach((A=>I(A,r))),Q()}var F=A("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");const T=r(F),S=r(F),G=r(F),L=r(F),K=r(F),N=r(F);function R(A){if(0==A.length)return;let w=A.length-1;if(T.has(A[0])){if(!A.every((A=>T.has(A)||G.has(A)||L.has(A)||K.has(A)||N.has(A))))throw new Error("RTL: disallowed properties");for(;N.has(A[w]);)w--;if(w=A[w],!(T.has(w)||L.has(w)||G.has(w)))throw new Error("RTL: disallowed ending");if(A.some((A=>L.has(A)))&&A.some((A=>G.has(A))))throw new Error("RTL: AN+EN")}else{if(!S.has(A[0]))throw new Error("unknown direction");if(!A.every((A=>S.has(A)||L.has(A)||K.has(A)||N.has(A))))throw new Error("LTR: disallowed properties");for(;N.has(A[w]);)w--;if(w=A[w],!S.has(w)&&!L.has(w))throw new Error("LTR: disallowed ending")}}var J=A("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");const k="2022-01-16T00:14:41.340Z",H="14.0.0",h="1.3.11",Y="ENS0",O=r(J),b=r(J),V=r(J),P=t(J),X=r(J),Z=J()&&function(A){const w=r(A),B=r(A),Q=r(A),t=r(A),E=r(A),e=r(A),M=r(A),g=r(A),n=r(A),o=D(A,(A=>Array(A()).fill(1))),l=A()?D(A,C,[...t,...e].sort(((A,w)=>A-w))):1,i=65039,x=8205,U=8419;function c(A,w){if(1===A)return 1;let B=String.fromCodePoint(...w.filter((A=>A!=i)));return A.hasOwnProperty(B)?A[B]:void 0}function f(A,w){let B=A[w];if(!B)return;let Q=A[w+1];if(g.has(B)&&Q&&M.has(Q))return[2,[B,Q]];if(Q==i){if(t.has(B))return[2,[B]];if(e.has(B)||E.has(B))return[2,[B,i]]}return t.has(B)||e.has(B)?[1,[B]]:void 0}return function(A,r){let t=A[r],C=String.fromCodePoint(t);if(o.hasOwnProperty(C)){let w=o[C],B=r+1;for(;;){let Q=A[B];if(!Q)break;let r=String.fromCodePoint(Q);if(!w.hasOwnProperty(r))break;w=w[r],B++}if(w.hasOwnProperty(""))return[B-r,A.slice(r,B)]}let E=A[r+1];if(w.has(t)&&w.has(E))return[2,[t,E]];let e=B.has(t);if(e&&E===U)return[2,[t,U]];if((e||Q.has(t))&&E===i&&A[r+2]===U)return[3,e?[t,U]:[t,i,U]];let M=f(A,r);if(!M)return[0];let[D,g]=M,u=r+D;if(E=A[u],E===x){let w=c(l,g);if(w){let B,Q=[],t=u;for(;A[t++]===x;){let r=f(A,t);if(!r)break;let[C,E]=r;if(w=c(w,E),!w)break;t+=C,1===w?(g.push(x,...E),B=t):(Q.push(x,...E),w.hasOwnProperty("")&&(g.push(...Q),Q.length=0,B=t))}if(B)return[B-r,g]}}if(n.has(E)){let w=u+1;for(;n.has(A[w]);)w++;if(917631===A[w++])return[w-r,g.concat(A.slice(u,1+w-u))]}return M}}(J);function z(A){return A.flatMap((({e:A,v:w})=>A??function(A){let w=[],B=[],Q=-1,r=0;return s(A,(function(A,t){if(-1===Q)0==A?Q=t:w.push(t);else if(r>0&&r>=A)0==A?(w.push(Q,...B),B.length=0,Q=t):B.push(t),r=A;else{let C=function(A,w){if(A>=4352&&A<4371&&w>=4449&&w<4470)return f+(588*(A-4352)+28*(w-4449));if(u(A)&&w>4519&&w<4547&&(A-f)%28==0)return A+(w-4519);for(let[B,Q]of U)if(2==Q.length&&Q[0]==A&&Q[1]==w){if(c.has(B))break;return B}return-1}(Q,t);C>=0?Q=C:0==r&&0==A?(w.push(Q),Q=t):(B.push(t),r=A)}})),Q>=0&&w.push(Q),w.push(...B),w}(w)))}function d(A,w){return new Error(`Disallowed label "${n(String.fromCodePoint(...A))}": ${w}`)}function a(A){const w=45;let B=l(o(A),Z,(A=>{if(O.has(A))return;if(V.has(A))return[];if(b.has(A))return[A];let w=g(P,A);if(w)return w;throw new Error(`Disallowed character "${n(String.fromCodePoint(A))}"`)})).map((A=>{let B=z(A);if(B.length>=4&&B[2]==w&&B[3]==w&&120==B[0]&&110==B[1])try{let w=function(A){let w=[],B=A.lastIndexOf(45);for(let Q=0;Q<B;Q++){let B=A[Q];if(B>=128)throw new Error("expected ASCII");w.push(B)}B++;let Q=0,r=128,t=72;for(;B<A.length;){let C=Q;for(let w=1,r=36;;r+=36){if(B>=A.length)throw new Error("invalid encoding");let C=A[B++];if(C>=48&&C<=57)C-=22;else{if(!(C>=97&&C<=122))throw new Error(`invalid character ${C}`);C-=97}Q+=C*w;const E=r<=t?1:r>=t+26?26:r-t;if(C<E)break;w*=36-E}let E=w.length+1,e=0==C?Q/700|0:Q-C>>1;e+=e/E|0;let M=0;for(;e>455;M+=36)e=e/35|0;t=M+36*e/(e+38)|0,r+=Q/E|0,Q%=E,w.splice(Q++,0,r)}return w}(B.slice(4));[A]=l(w,Z,(A=>b.has(A)?[A]:[]));let Q=z(A);if(w.length!=Q.length||!w.every(((A,w)=>A==Q[w])))throw new Error("not normalized");B=w}catch(A){throw d(B,`punycode: ${A.message}`)}let Q=A.reduce(((A,{v:w})=>(w?A.push(...w):A.length>0&&A.push(65039),A)),[]);if(B.length>0){if(B.length>=4&&B[2]==w&&B[3]==w)throw d(B,"invalid label extension");if(B[0]==w)throw d(B,"leading hyphen");if(B[B.length-1]==w)throw d(B,"trailing hyphen");if(X.has(B[0]))throw d(B,"leading combining mark")}return{tokens:A,cps:B,text:Q}}));if(B.some((A=>A.text.some((A=>T.has(A)||G.has(A))))))for(let{text:A,cps:w}of B)try{R(A)}catch(A){throw d(w,`bidi: ${A.message}`)}return B.map((A=>String.fromCodePoint(...A.cps))).join(".")}function y(A){return l(o(A),Z,(A=>{if(O.has(A))return{};if(b.has(A))return[A];if(V.has(A))return{i:A};let w=g(P,A);return w?{m:w,u:[A]}:{d:A}}))[0]}export{k as BUILT,Y as IDNA,H as UNICODE,h as VERSION,a as ens_normalize,y as ens_tokenize};
function A(A){return 1&A?~A>>1:A>>1}function r(A,r){let t=Array(A);for(let w=0,e=-1;w<A;w++)t[w]=e+=1+r();return t}function t(r,t){let w=Array(r);for(let e=0,n=0;e<r;e++)w[e]=n+=A(t());return w}function w(A){let t=new Set(r(A(),A)),w=A(),e=r(w,A),n=function(A,r){let t=Array(A);for(let w=0;w<A;w++)t[w]=1+r();return t}(w,A);for(let A=0;A<w;A++)for(let r=0;r<n[A];r++)t.add(e[A]+r);return t}function e(A){let r=[];for(;;){let t=A();if(0==t)break;r.push(t)}return r}function n(A,r,w,e){let n=Array(A).fill().map((()=>[]));for(let B=0;B<r;B++)t(A,w).forEach(((A,r)=>n[r].push(e?e[A]:A)));return n}function B(A,r){let t=1+r(),w=r(),B=e(r);return n(B.length,1+A,r).map(((A,r)=>[A[0],A.slice(1),B[r],t,w]))}function Q(A,r){return n(1+r(),1+A,r).map((A=>[A[0],A.slice(1)]))}function C(A,r,t){let w={};for(;;){let e=r(A);if(0==e.length)break;let B=1+A(),Q=Array(B).fill(w);for(let r of e)Q=n(B,r,A,t).map(((A,r)=>{let t=Q[r],w=String.fromCodePoint(...A),e=t[w];return e||(e=t[w]={}),e}));Q.forEach((A=>A[""]=1))}return w}function i(A,r){for(let[t,w,e,n,B]of A){let A=r-t;if(A<0)break;if(e>0){if(A<n*e&&A%n==0){let r=A/n;return w.map((A=>A+r*B))}}else if(0==A)return w}}function f(A){return A.replace(/[^\x20-\x21\x23-\x7A\x7C\x7E]/gu,(A=>`{${function(A){return A.toString(16).toUpperCase().padStart(2,"0")}(A.codePointAt(0))}}`))}function o(A){if("string"!=typeof A)throw new TypeError("expected string");return[...A].map((A=>A.codePointAt(0)))}function g(A){return function(A,r){return o(String.fromCodePoint(...r).normalize(A))}("NFC",A)}var l,D=(l="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",function(A){let r=0;return()=>A[r++]}(function(A){let r=0;function t(){return A[r++]<<8|A[r++]}let w=t(),e=1,n=[0,1];for(let A=1;A<w;A++)n.push(e+=t());let B=t(),Q=r;r+=B;let C=0,i=0;function f(){return 0==C&&(i=i<<8|A[r++],C=8),i>>--C&1}const o=2**31,g=o>>>1,l=o-1;let D=0;for(let A=0;A<31;A++)D=D<<1|f();let u=[],E=0,c=o;for(;;){let A=Math.floor(((D-E+1)*e-1)/c),r=0,t=w;for(;t-r>1;){let w=r+t>>>1;A<n[w]?t=w:r=w}if(0==r)break;u.push(r);let B=E+Math.floor(c*n[r]/e),Q=E+Math.floor(c*n[r+1]/e)-1;for(;0==((B^Q)&g);)D=D<<1&l|f(),B=B<<1&l,Q=Q<<1&l|1;for(;B&~Q&536870912;)D=D&g|D<<1&l>>>1|f(),B=B<<1^g,Q=(Q^g)<<1|g|1;E=B,c=1+Q-B}let U=w-4;return u.map((r=>{switch(r-U){case 3:return U+65792+(A[Q++]<<16|A[Q++]<<8|A[Q++]);case 2:return U+256+(A[Q++]<<8|A[Q++]);case 1:return U+A[Q++];default:return r-1}}))}(Uint8Array.from(atob(l),(A=>A.charCodeAt(0))))));const u="2022-05-02T09:44:51.349Z",E="14.0.0",c="1.3.16",U="ENS0",M=w(D),I=w(D),s=w(D),K=function(A){let r=[];for(;;){let t=A();if(0==t)break;r.push(B(t,A))}for(;;){let t=A()-1;if(t<0)break;r.push(Q(t,A))}return r.flat().sort(((A,r)=>A[0]-r[0]))}(D),G=w(D),k=D()&&function(A){const r=w(A),t=w(A),n=w(A),B=w(A),Q=w(A),i=w(A),f=w(A),o=w(A),g=w(A),l=C(A,(A=>Array(A()).fill(1))),D=A()?C(A,e,[...B,...i].sort(((A,r)=>A-r))):1,u=65039,E=8205,c=8419;function U(A,r){if(1===A)return 1;let t=String.fromCodePoint(...r.filter((A=>A!=u)));return A.hasOwnProperty(t)?A[t]:void 0}function M(A,r){let t=A[r];if(!t)return;let w=A[r+1];if(o.has(t)&&w&&f.has(w))return[2,[t,w]];if(w==u){if(B.has(t))return[2,[t]];if(i.has(t)||Q.has(t))return[2,[t,u]]}return B.has(t)||i.has(t)?[1,[t]]:void 0}return function(A,w){let e=A[w],B=String.fromCodePoint(e);if(l.hasOwnProperty(B)){let r=l[B],t=w+1;for(;;){let w=A[t];if(!w)break;let e=String.fromCodePoint(w);if(!r.hasOwnProperty(e))break;r=r[e],t++}if(r.hasOwnProperty(""))return[t-w,A.slice(w,t)]}let Q=A[w+1];if(r.has(e)&&r.has(Q))return[2,[e,Q]];let C=t.has(e);if(C&&Q===c)return[2,[e,c]];if((C||n.has(e))&&Q===u&&A[w+2]===c)return[3,C?[e,c]:[e,u,c]];let i=M(A,w);if(!i)return[0];let[f,o]=i,I=w+f;if(Q=A[I],Q===E){let r=U(D,o);if(r){let t,e=[],n=I;for(;A[n++]===E;){let w=M(A,n);if(!w)break;let[B,Q]=w;if(r=U(r,Q),!r)break;n+=B,1===r?(o.push(E,...Q),t=n):(e.push(E,...Q),r.hasOwnProperty("")&&(o.push(...e),e.length=0,t=n))}if(t)return[t-w,o]}}if(g.has(Q)){let r=I+1;for(;g.has(A[r]);)r++;if(917631===A[r++])return[r-w,o.concat(A.slice(I,1+r-I))]}return i}}(D);function F(A){return A.flatMap((({e:A,v:r})=>A??g(r)))}function h(A,r){return new Error(`Disallowed label "${f(String.fromCodePoint(...A))}": ${r}`)}function b(A){const r=45;return Y(g(o(A)),(A=>{if(M.has(A))return;if(s.has(A))return[];if(I.has(A))return[A];let r=i(K,A);if(r)return r;throw new Error(`Disallowed character "${f(String.fromCodePoint(A))}"`)})).map((A=>{let t=F(A);if(t.length>=4&&120==t[0]&&110==t[1]&&t[2]==r&&t[3]==r)try{let r=function(A){let r=[],t=A.lastIndexOf(45);for(let w=0;w<t;w++){let t=A[w];if(t>=128)throw new Error("expected ASCII");r.push(t)}t++;const w=36;let e=0,n=128,B=72;for(;t<A.length;){let Q=e;for(let r=1,n=w;;n+=w){if(t>=A.length)throw new Error("invalid encoding");let Q=A[t++];if(Q>=48&&Q<=57)Q-=22;else{if(!(Q>=97&&Q<=122))throw new Error(`invalid character ${Q}`);Q-=97}e+=Q*r;const C=n<=B?1:n>=B+26?26:n-B;if(Q<C)break;r*=w-C}let C=r.length+1,i=0==Q?e/700|0:e-Q>>1;i+=i/C|0;let f=0;for(;i>455;f+=w)i=i/35|0;B=f+36*i/(i+38)|0,n+=e/C|0,e%=C,r.splice(e++,0,n)}return r}(t.slice(4));[A]=Y(r,(A=>I.has(A)?[A]:[]));let w=F(A);if(r.length!=w.length||!r.every(((A,r)=>A==w[r])))throw new Error("not normalized");t=r}catch(A){throw h(t,`punycode: ${A.message}`)}let w=A.reduce(((A,{v:r})=>(r?A.push(...r):A.length>0&&A.push(65039),A)),[]);if(t.length>0){if(t.length>=4&&t[2]==r&&t[3]==r)throw h(t,"invalid label extension");if(t[0]==r)throw h(t,"leading hyphen");if(t[t.length-1]==r)throw h(t,"trailing hyphen");if(G.has(t[0]))throw h(t,"leading combining mark")}return{cps:t,text:w}})).map((A=>String.fromCodePoint(...A.cps))).join(".")}function N(A){return Y(o(A),(A=>{if(M.has(A))return{};if(I.has(A))return[A];if(s.has(A))return{i:A};let r=i(K,A);return r?{m:r,u:[A]}:{d:A}}))[0]}function Y(A,r){let t=[],w=[],e=[w];function n(){t.length>0&&(w.push({v:t}),t=[])}for(let B=0;B<A.length;B++){if(k){let[r,t]=k(A,B);if(r>0){n(),w.push({e:t,u:A.slice(B,B+r)}),B+=r-1;continue}}let Q=r(A[B]);Array.isArray(Q)?t.push(...Q):(n(),Q?w.push(Q):(w=[],e.push(w)))}return n(),e}export{u as BUILT,U as NAME,E as UNICODE,c as VERSION,b as ens_normalize,N as ens_tokenize};

@@ -83,3 +83,2 @@ function decode_arithmetic(bytes) {

// returns an iterator which returns the next symbol
/*

@@ -93,2 +92,4 @@ export function read_payload(v) {

*/
// returns an iterator which returns the next symbol
function read_payload(v) {

@@ -249,270 +250,147 @@ let pos = 0;

// https://datatracker.ietf.org/doc/html/rfc3492
// adapted from https://github.com/mathiasbynens/punycode.js
// puny format: "xn--{ascii}-{0-9a-z}"
// this function receives normalized cps such that:
// * no uppercase
// * no overflow (#section-6.4)
var r = read_compressed_payload('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');
function puny_decode(cps) {
let ret = [];
let pos = cps.lastIndexOf(0x2D); // hyphen
for (let i = 0; i < pos; i++) {
let cp = cps[i];
if (cp >= 0x80) throw new Error('expected ASCII');
ret.push(cp);
}
pos++; // skip hyphen
// #section-5
const BASE = 36;
const T_MIN = 1;
const T_MAX = 26;
const SKEW = 38;
const DAMP = 700;
const MAX_DELTA = (BASE - T_MIN) * T_MAX >> 1;
let i = 0, n = 128, bias = 72;
while (pos < cps.length) {
let prev = i;
for (let w = 1, k = BASE; ; k += BASE) {
if (pos >= cps.length) throw new Error(`invalid encoding`);
let cp = cps[pos++];
if (cp >= 0x30 && cp <= 0x39) { // 0-9
cp -= 0x16; // 26 + (code - 0x30)
} else if (cp >= 0x61 && cp <= 0x7A) { // a-z
cp -= 0x61;
} else {
throw new Error(`invalid character ${cp}`);
}
i += cp * w;
const t = k <= bias ? T_MIN : (k >= bias + T_MAX ? T_MAX : k - bias);
if (cp < t) break;
w *= BASE - t;
}
let len = ret.length + 1;
let delta = prev == 0 ? (i / DAMP)|0 : (i - prev) >> 1;
delta += (delta / len)|0;
let k = 0;
for (; delta > MAX_DELTA; k += BASE) {
delta = (delta / (BASE - T_MIN))|0;
}
bias = (k + (BASE - T_MIN + 1) * delta / (delta + SKEW))|0;
n += (i / len)|0;
i %= len;
ret.splice(i++, 0, n);
}
return ret;
}
// built: 2022-05-02T09:44:51.349Z
// this returns [[]] if empty
// {e:[],u:[]} => emoji
// {v:[]} => chars
function tokenized_idna(cps, emoji_parser, tokenizer) {
let chars = [];
let tokens = [];
let labels = [tokens];
function drain() {
if (chars.length > 0) {
tokens.push({v: chars});
chars = [];
}
}
for (let i = 0; i < cps.length; i++) {
if (emoji_parser) {
let [len, e] = emoji_parser(cps, i);
if (len > 0) {
drain();
tokens.push({e, u:cps.slice(i, i+len)}); // these are emoji tokens
i += len - 1;
continue;
}
}
let cp = cps[i];
let token = tokenizer(cp);
if (Array.isArray(token)) { // this is more characters
chars.push(...token);
} else {
drain();
if (token) { // this is a token
tokens.push(token);
} else { // this is a label separator
tokens = []; // create a new label
labels.push(tokens);
}
}
}
drain();
return labels;
}
const FE0F = 0xFE0F;
const ZWJ = 0x200D;
const STOP = 0x2E;
const KEYCAP_END = 0x20E3;
// returns an emoji parser
function emoji_parser_factory(r) {
const REGIONAL = read_member_set(r);
const KEYCAP_DROP = read_member_set(r);
const KEYCAP_REQ = read_member_set(r);
const STYLE_DROP = read_member_set(r);
const STYLE_REQ = read_member_set(r);
const STYLE_OPT = read_member_set(r);
const MODIFIER = read_member_set(r);
const MODIFIER_BASE = read_member_set(r);
const TAG_SPEC = read_member_set(r);
const VALID = read_member_set(r);
const IGNORED = read_member_set(r);
const MAPPED = read_mapped_table(r);
const COMBINING_MARKS = read_member_set(r);
// read whitelist for exact sequences
const SEQ_ROOT = read_tree(r, x => Array(x()).fill(1));
const KEYCAP_LEGACY = read_member_set(r);
const KEYCAP_REQ = read_member_set(r);
const STYLE_LEGACY = read_member_set(r);
const STYLE_REQ = read_member_set(r);
const MODIFIER = read_member_set(r);
const MODIFIER_BASE = read_member_set(r);
// read whitelist for zwj sequences (optional)
const ZWJ_ANY = 1;
const ZWJ_ROOT = r() ? read_tree(r, read_zero_terminated_array, [...STYLE_DROP, ...STYLE_OPT].sort((a, b) => a - b)) : ZWJ_ANY;
const SEQ_ROOT = read_tree(r, x => Array(x()).fill(1));
const ZWJ_ROOT = read_tree(r, read_zero_terminated_array, [...STYLE_LEGACY, ...STYLE_REQ].sort((a, b) => a - b));
const FE0F = 0xFE0F;
const ZWJ = 0x200D;
const KEYCAP_END = 0x20E3;
const TAG_END = 0xE007F;
function follow_zwj(parent, cps) {
if (parent === ZWJ_ANY) return ZWJ_ANY;
let key = String.fromCodePoint(...cps.filter(cp => cp != FE0F));
if (parent.hasOwnProperty(key)) return parent[key];
function has_own(obj, key = '') {
return Object.hasOwn(obj, key);
}
function follow_zwj(parent, cps) {
let key = FCP(...cps.filter(cp => cp != FE0F));
if (has_own(parent, key)) return parent[key];
}
/*
// quirks-mode to allow BASE+Style+MODIFIER+Style
function find_emoji_styled(cps, pos) {
let cp = cps[pos];
if (!cp) return;
let styled = cps[pos+1] === FE0F;
if (STYLE_LEGACY.has(cp)) return [styled ? 2 : 1, [cp]];
if (STYLE_REQ.has(cp) && styled) return [2, [cp, FE0F]];
}
function find_emoji_chr_mod_pre(cps, pos) {
let a = find_emoji_styled(cps, pos);
// emoji_modifier_sequence := emoji_modifier_base emoji_modifier
// Caution: the emoji_modifier_base could be styled
if (a && MODIFIER_BASE.has(a[1][0])) {
let b = find_emoji_styled(cps, pos + a[0]);
if (b && MODIFIER.has(b[1][0])) {
return [a[0] + b[0], [...a[1], ...b[1]]];
}
}
function find_emoji_chr_mod_pre(cps, pos) {
let cp = cps[pos];
if (!cp) return;
let cp2 = cps[pos+1];
// emoji_modifier_sequence := emoji_modifier_base emoji_modifier
if (MODIFIER_BASE.has(cp) && cp2 && MODIFIER.has(cp2)) {
return [2, [cp, cp2]];
return a;
}
*/
function find_emoji_chr_mod_pre(cps, pos) {
let a = cps[pos];
if (!a) return;
let b = cps[pos+1];
if (MODIFIER_BASE.has(a) && b && MODIFIER.has(b)) return [2, [a, b]];
let styled = b === FE0F;
if (STYLE_LEGACY.has(a)) return [styled ? 2 : 1, [a]];
if (STYLE_REQ.has(a) && styled) return [2, [a, FE0F]];
}
function parse_emoji(cps, pos0) {
let cp0 = cps[pos0];
// check whitelist for a match
let seq_key = FCP(cp0);
if (has_own(SEQ_ROOT, seq_key)) { // potential match
let node = SEQ_ROOT[seq_key];
let pos = pos0 + 1; // check remaining chars
while (true) {
let cp = cps[pos];
if (!cp) break; // end of string
let key = FCP(cp);
if (!has_own(node, key)) break; // no more possibilities
node = node[key];
pos++;
}
// emoji_modifier_base is a emoji_character
// emoji_presentation_sequence := emoji_character \x{FE0F}
// but some emoji dont need presentation
// and previously valid emoji are already registered
// we call these emoji optional
if (cp2 == FE0F) {
// these drop FE0F
if (STYLE_DROP.has(cp)) return [2, [cp]];
// these keep FE0F
if (STYLE_OPT.has(cp) || STYLE_REQ.has(cp)) return [2, [cp, FE0F]];
if (has_own(node)) { // this was a terminator
return [pos - pos0, cps.slice(pos0, pos)];
}
// emoji_character
if (STYLE_DROP.has(cp) || STYLE_OPT.has(cp)) {
return [1, [cp]];
}
}
// note: this doesn't use any bound checks
return function(cps, pos0) {
let cp0 = cps[pos0];
// check whitelist for a match
let seq_key = String.fromCodePoint(cp0);
if (SEQ_ROOT.hasOwnProperty(seq_key)) { // potential match
let node = SEQ_ROOT[seq_key];
let pos = pos0 + 1; // check remaining chars
while (true) {
let cp = cps[pos];
if (!cp) break; // end of string
let key = String.fromCodePoint(cp);
if (!node.hasOwnProperty(key)) break; // no more possibilities
node = node[key];
pos++;
}
if (node.hasOwnProperty('')) { // this was a terminator
return [pos - pos0, cps.slice(pos0, pos)];
}
}
let cp1 = cps[pos0+1];
// [ED-14] emoji flag sequence
// https://www.unicode.org/reports/tr51/#def_emoji_flag_sequence
// A sequence of two Regional Indicator characters, where the corresponding ASCII characters are valid region sequences as specified
if (REGIONAL.has(cp0) && REGIONAL.has(cp1)) {
// emoji_flag_sequence := regional_indicator regional_indicator
return [2, [cp0, cp1]];
}
// [ED-14c] emoji keycap sequence
// https://unicode.org/reports/tr51/#def_emoji_keycap_sequence
// A sequence of the following form:
// emoji_keycap_sequence := [0-9#*] \x{FE0F 20E3}
let keycap_og = KEYCAP_DROP.has(cp0);
if (keycap_og && cp1 === KEYCAP_END) {
return [2, [cp0, KEYCAP_END]];
} else if ((keycap_og || KEYCAP_REQ.has(cp0)) && cp1 === FE0F && cps[pos0+2] === KEYCAP_END) {
return [3, keycap_og ? [cp0, KEYCAP_END] : [cp0, FE0F, KEYCAP_END]];
}
// [ED-15] emoji core sequence
// emoji_core_sequence := emoji_keycap_sequence | emoji_flag_sequence | chr_mod_pre
// chr_mod_pre = emoji_character | emoji_presentation_sequence | emoji_modifier_sequence
//
// we've handed keycap and flag already
let emoji0 = find_emoji_chr_mod_pre(cps, pos0); // chr_mod_pre?
if (!emoji0) return [0]; // nope
// [ED-17] emoji sequence
// emoji_sequence := chr_mod_pre | emoji_zwj_sequence | emoji_tag_sequence
let [n0, v0] = emoji0;
let pos1 = pos0 + n0;
cp1 = cps[pos1]; // the character following the emoji
if (cp1 === ZWJ) { // maybe...
// [ED-16] emoji zwj sequence
// emoji_zwj_sequence := emoji_zwj_element ( \x{200d} emoji_zwj_element )+
// [ED-15a] emoji zwj element
// emoji_zwj_element := emoji_character | emoji_presentation_sequence | emoji_modifier_sequence
let node = follow_zwj(ZWJ_ROOT, v0);
if (node) { // whitelist or disabled
let queue = [];
let pos = pos1;
let pos_last;
while (cps[pos++] === ZWJ) { // zwj?
let emoji = find_emoji_chr_mod_pre(cps, pos); // zwj+emoji?
if (!emoji) break;
let [n, v] = emoji;
node = follow_zwj(node, v); // traverse the tree
if (!node) break;
pos += n;
if (node === ZWJ_ANY) {
v0.push(ZWJ, ...v);
pos_last = pos;
} else {
queue.push(ZWJ, ...v); // save chars that dont form a complete sequence yet
if (node.hasOwnProperty('')) { // this is a valid sequence
v0.push(...queue); // drain queue
queue.length = 0;
pos_last = pos;
}
}
let cp1 = cps[pos0+1];
// [ED-14] emoji flag sequence
// https://www.unicode.org/reports/tr51/#def_emoji_flag_sequence
// Ignored!
//
// [ED-14c] emoji keycap sequence
// https://unicode.org/reports/tr51/#def_emoji_keycap_sequence
// A sequence of the following form:
// emoji_keycap_sequence := [0-9#*] \x{FE0F 20E3}
let keycap_og = KEYCAP_LEGACY.has(cp0);
if (keycap_og && cp1 === KEYCAP_END) {
return [2, [cp0, KEYCAP_END]];
} else if ((keycap_og || KEYCAP_REQ.has(cp0)) && cp1 === FE0F && cps[pos0+2] === KEYCAP_END) {
return [3, keycap_og ? [cp0, KEYCAP_END] : [cp0, FE0F, KEYCAP_END]];
}
// [ED-15] emoji core sequence
// emoji_core_sequence := emoji_keycap_sequence | emoji_flag_sequence | chr_mod_pre
// chr_mod_pre = emoji_character | emoji_presentation_sequence | emoji_modifier_sequence
let emoji0 = find_emoji_chr_mod_pre(cps, pos0);
if (!emoji0) return [0];
// [ED-17] emoji sequence
// emoji_sequence := chr_mod_pre | emoji_zwj_sequence | emoji_tag_sequence
let [n0, v0] = emoji0;
let pos1 = pos0 + n0;
cp1 = cps[pos1]; // the character following the emoji
if (cp1 === ZWJ) { // maybe...
// [ED-16] emoji zwj sequence
// emoji_zwj_sequence := emoji_zwj_element ( \x{200d} emoji_zwj_element )+
// [ED-15a] emoji zwj element
// emoji_zwj_element := emoji_character | emoji_presentation_sequence | emoji_modifier_sequence
let node = follow_zwj(ZWJ_ROOT, v0);
if (node) { // whitelisted
let queue = [];
let pos = pos1;
let pos_last;
while (cps[pos++] === ZWJ) { // zwj?
let emoji = find_emoji_chr_mod_pre(cps, pos); // zwj+emoji?
if (!emoji) break;
let [n, v] = emoji;
node = follow_zwj(node, v); // traverse the tree
if (!node) break;
pos += n;
queue.push(ZWJ, ...v); // save chars that dont form a complete sequence yet
if (has_own(node)) { // this is a valid sequence
v0.push(...queue); // drain queue
queue.length = 0;
pos_last = pos;
}
if (pos_last) {
// if set, v0 correponds to the longest zwj sequence
// that matches the whitelist
return [pos_last - pos0, v0];
}
}
}
// [ED-14a] emoji tag sequence (ETS)
// https://www.unicode.org/reports/tr51/#def_emoji_tag_sequence
// A sequence of the following form:
// emoji_tag_sequence := tag_base tag_spec tag_end
// tag_base := emoji_character
// | emoji_modifier_sequence => emoji_modifier_base emoji_modifier
// | emoji_presentation_sequence => emoji_character \x{FE0F}
// tag_spec := [\x{E0020}-\x{E007E}]+
// tag_end := \x{E007F}
if (TAG_SPEC.has(cp1)) {
let pos = pos1 + 1;
while (TAG_SPEC.has(cps[pos])) pos++;
if (cps[pos++] === TAG_END) {
return [pos - pos0, v0.concat(cps.slice(pos1, 1 + pos - pos1))];
if (pos_last) {
// v0 correponds to the longest zwj sequence that matches the whitelist
return [pos_last - pos0, v0];
}
}
return emoji0;
};
}
return emoji0;
}
var r$3 = read_compressed_payload('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');
// ************************************************************
// from nf.js
const COMBINING_RANK = Array(r()).fill().map(() => read_member_set(r));
const DECOMP = read_mapped_table(r);
const COMP_EXCLUSIONS = read_member_set(r);
const COMBINING_RANK = Array(r$3()).fill().map(() => read_member_set(r$3));
const DECOMP = read_mapped_table(r$3);
const COMP_EXCLUSIONS = read_member_set(r$3);
// algorithmic hangul
// https://www.unicode.org/versions/Unicode14.0.0/ch03.pdf
const S0 = 0xAC00;

@@ -531,6 +409,6 @@ const L0 = 0x1100;

const T1 = T0 + T_COUNT;
function is_hangul(cp) {
return cp >= S0 && cp < S1;
}
function decompose(cp, next) {

@@ -576,3 +454,2 @@ if (cp < 0x80) {

}
function decomposer(cps, callback) {

@@ -596,3 +473,2 @@ let stack = [];

}
function nfc(cps) {

@@ -638,64 +514,12 @@ let ret = [];

var r$2 = read_compressed_payload('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');
// ************************************************************
// from context.js
const VIRAMA = COMBINING_RANK[r()];
const JOIN_T = read_member_set(r);
const JOIN_LD = read_member_set(r);
const JOIN_RD = read_member_set(r);
const SCRIPT_GREEK = read_member_set(r);
const SCRIPT_HEBREW = read_member_set(r);
const SCRIPT_HKH = read_member_set(r);
const R_AL = read_member_set(r$2);
const L = read_member_set(r$2);
const AN = read_member_set(r$2);
const EN = read_member_set(r$2);
const ECTOB = read_member_set(r$2); // ES, CS, ET, ON, BN
const NSM = read_member_set(r$2);
// [Validity] 8.) If CheckBidi, and if the domain name is a Bidi domain name, then the label
// must satisfy all six of the numbered conditions in [IDNA2008] RFC 5893, Section 2.
// * The spec is ambiguious regarding when you can determine a domain name is bidi
// * According to IDNATestV2, this is calculated AFTER puny decoding
// https://unicode.org/reports/tr46/#Notation
// A Bidi domain name is a domain name containing at least one character with BIDI_Class R, AL, or AN
function is_bidi_label(cps) {
return cps.some(cp => R_AL.has(cp) || AN.has(cp));
}
function validate_bidi_label(cps) {
if (cps.length == 0) return;
// https://www.rfc-editor.org/rfc/rfc5893.txt
// 1.) The first character must be a character with Bidi property L, R,
// or AL. If it has the R or AL property, it is an RTL label; if it
// has the L property, it is an LTR label.
let last = cps.length - 1;
if (R_AL.has(cps[0])) { // RTL
// 2.) In an RTL label, only characters with the Bidi properties R, AL, AN, EN, ES, CS, ET, ON, BN, or NSM are allowed.
if (!cps.every(cp => R_AL.has(cp) || AN.has(cp) || EN.has(cp) || ECTOB.has(cp) || NSM.has(cp))) throw new Error(`RTL: disallowed properties`);
// 3. In an RTL label, the end of the label must be a character with
// Bidi property R, AL, EN, or AN, followed by zero or more
// characters with Bidi property NSM.
while (NSM.has(cps[last])) last--;
last = cps[last];
if (!(R_AL.has(last) || EN.has(last) || AN.has(last))) throw new Error(`RTL: disallowed ending`);
// 4. In an RTL label, if an EN is present, no AN may be present, and vice versa.
if (cps.some(cp => EN.has(cp)) && cps.some(cp => AN.has(cp))) throw new Error(`RTL: AN+EN`);
} else if (L.has(cps[0])) { // LTR
// 5. In an LTR label, only characters with the Bidi properties L, EN, ES, CS, ET, ON, BN, or NSM are allowed.
if (!cps.every(cp => L.has(cp) || EN.has(cp) || ECTOB.has(cp) || NSM.has(cp))) throw new Error(`LTR: disallowed properties`);
// 6. end with L or EN .. 0+ NSM
while (NSM.has(cps[last])) last--;
last = cps[last];
if (!L.has(last) && !EN.has(last)) throw new Error(`LTR: disallowed ending`);
} else {
throw new Error(`unknown direction`);
}
}
var r$1 = read_compressed_payload('ABIAAQB6AEAAOAAoACYAHwAiABgAFgAOAAsACwAMAY8AfgADApQhCD9xcXFxcXFxcW5hcbsGoY8Bf9URLHl4F4mAXgAn6F1DBPgbACv4ZqZU5nHucWhm/wCYRQRDAJcASQwtAe8FzAOHOfQyBvsC+GifBANGRZDdAC4CJSwCIi8GFTgCJSwmLyQpNix4JTpMcXV+rQEGGggji3raLA6mlfECCAxleXQSxKUjTyElAibgTiIC0gHv1AZQBLNgQ6JNVpJS9wlNAHRfAXiOWADp7D9QqYZpggAHGwscRNcB8gB0/yE9LHw3ZzYcITAjCk8BAlASEDEWAjEMCTgFzVsHDywSYVMEXgVBSgCFDAQFAckCphERETMDM2uMA88yLkEnJgYTLi6LB7kBPw0nVwsQ4gE7YHTHG0MAJpANNxIqJ15uH1IFEQDKAm4FfB2eATAAeIwtpywlOBhEJwRXng4sHLli4Q5IYl7584oYIwciAIlLCW1CAFQULjWxMQNQS/8RUSEBKAMWiQavLFEEUAT7AK0E1WULFc3RYR4GDAkRFRAxEhEDAQEABx8IASgjAAJR4QwFEpUiGzjHDw5ylPEUpACEAX4jBRwWExgAGwkSAkFoCRgIAA5XWI6qYXEEjBQARAEhDhAt2CcBFwASAEoTJBMCNQUSphsCAEEXDnKU8Q4OA70WBRQQHmoJLG5nEwoIDmNYjqphcQSGGgBJASASEDPYKA9QDyQSCgQMShMjAxQGAzUCcRkkAIsAuokwVSwLAmIGPhgnKACLCRkAEicBAQbgO8+xBTABBxcQJgAEQDf6MASDMBD0HwwoDAsu9wDA6hMtcgxWABIITU3k0SHxGPGp8QBhA+dvYj7xAEEFTY2l8Q8x0RWBKEEG8QtKx0dLASBJGLFQ8QBfWx4AFKXRDyrPFXMcIgEPEjzcS9Wn/KALJxnXU2YJOBWKOmP82gdIgmNcRsDi+p7FBLYbwm9Uzs1RfCbNpY30PNDOtZBhbqPBybOPeWa7oi+ySNuja7E79Fz+oJqkWRGdXLqRl46pfoUDu0uKXTiGuFf3GtJzAXtJmxI3V8am/mpQnjfi99U7ZkojTh6fKYexodlCUm8Nn5tkJXqdPwxaQiU29Pa8nQxhFccS0ZzA2p+XNo3r68FBGjQNasxwtQH/0ELiOQLNuyc0YqOxCPnfFsvASXVP7enrn5p48UHDGS6NU/kYR37WSJ7+CN+nV4NqWlRTc/nQOuWoDD2Cnkn26E21fE+79xMXG2voqdtyef5eUY6MOoAAPIvdUDW+i16JSxe2+srXAYVvzbE8SKhyxzjFf2rMlgMycfXR8nl6/xF97xDwBSNLExVnK4YUGbAMpgGeHD0vHVXsIK20HyDdJQ9a5Uhwta5o+Tw/HpthmalqVX7v90SgUzjZaEahH3JPOhT8k+LFPClF+c5gMeKg');
const VIRAMA = read_member_set(r$1);
const JOIN_T = read_member_set(r$1);
const JOIN_LD = read_member_set(r$1);
const JOIN_RD = read_member_set(r$1);
const SCRIPT_GREEK = read_member_set(r$1);
const SCRIPT_HEBREW = read_member_set(r$1);
const SCRIPT_HKH = read_member_set(r$1);
// cps is a list of codepoints
// could be empty
function validate_context(cps) {

@@ -761,3 +585,3 @@ // apply relative checks

// we only fall-through if no context was matched
throw new Error(`No context for "${escape_unicode(String.fromCodePoint(cps[i]))}"`);
throw new Error(`No context for "${escape_unicode(FCP(cps[i]))}"`);
}

@@ -774,3 +598,3 @@ // apply global checks

// For All Characters: If cp .in. 0660..0669 Then False; End For
if (cps.some(cp => cp >= 0x0660 && cp <= 0x0669) && cps.some(cp => cp >= 0x06F0 && cp <= 0x06F9)) {
if (cps.some(cp => cp >= 0x660 && cp <= 0x669) && cps.some(cp => cp >= 0x6F0 && cp <= 0x6F9)) {
throw new Error(`Disallowed arabic-indic digit mixture`);

@@ -787,24 +611,48 @@ }

var r = read_compressed_payload('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');
// ************************************************************
// from bidi.js
// built: 2022-01-16T00:14:41.340Z
const STOP = read_member_set(r);
const VALID = read_member_set(r);
const IGNORED = read_member_set(r);
const MAPPED = read_mapped_table(r);
const COMBINING_MARKS = read_member_set(r);
const EMOJI_PARSER = r() && emoji_parser_factory(r);
const R_AL = read_member_set(r);
const L = read_member_set(r);
const AN = read_member_set(r);
const EN = read_member_set(r);
const ECTOB = read_member_set(r); // ES, CS, ET, ON, BN
const NSM = read_member_set(r);
// emoji tokens are as-is
// text tokens are normalized
// note: it's safe to apply to entire
// string but you'd have to retokenize
function flatten_tokens(tokens) {
return tokens.flatMap(({e, v}) => e ?? nfc(v));
function is_bidi_label(cps) {
return cps.some(cp => R_AL.has(cp) || AN.has(cp));
}
function label_error(cps, message) {
return new Error(`Disallowed label "${escape_unicode(String.fromCodePoint(...cps))}": ${message}`);
function validate_bidi_label(cps) {
// https://www.rfc-editor.org/rfc/rfc5893.txt
// 1.) The first character must be a character with Bidi property L, R,
// or AL. If it has the R or AL property, it is an RTL label; if it
// has the L property, it is an LTR label.
let last = cps.length - 1;
if (R_AL.has(cps[0])) { // RTL
// 2.) In an RTL label, only characters with the Bidi properties R, AL, AN, EN, ES, CS, ET, ON, BN, or NSM are allowed.
if (!cps.every(cp => R_AL.has(cp) || AN.has(cp) || EN.has(cp) || ECTOB.has(cp) || NSM.has(cp))) throw new Error(`RTL: disallowed properties`);
// 3. In an RTL label, the end of the label must be a character with
// Bidi property R, AL, EN, or AN, followed by zero or more
// characters with Bidi property NSM.
while (NSM.has(cps[last])) last--;
last = cps[last];
if (!(R_AL.has(last) || EN.has(last) || AN.has(last))) throw new Error(`RTL: disallowed ending`);
// 4. In an RTL label, if an EN is present, no AN may be present, and vice versa.
if (cps.some(cp => EN.has(cp)) && cps.some(cp => AN.has(cp))) throw new Error(`RTL: AN+EN`);
} else if (L.has(cps[0])) { // LTR
// 5. In an LTR label, only characters with the Bidi properties L, EN, ES, CS, ET, ON, BN, or NSM are allowed.
if (!cps.every(cp => L.has(cp) || EN.has(cp) || ECTOB.has(cp) || NSM.has(cp))) throw new Error(`LTR: disallowed properties`);
// 6. end with L or EN .. 0+ NSM
while (NSM.has(cps[last])) last--;
last = cps[last];
if (!L.has(last) && !EN.has(last)) throw new Error(`LTR: disallowed ending`);
} else {
throw new Error(`unknown direction`);
}
}
// ************************************************************
const FCP = String.fromCodePoint.bind(String);
// Primary API

@@ -815,117 +663,44 @@ // throws TypeError if not a string

function ens_normalize(name) {
//
// Original Specification:
// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-137.md
// "UTS46 with the options transitional=false and useSTD3AsciiRules=true."
// * IDNA 2003 or 2008 = not-specified
// * CheckHyphens = true
// * CheckJoiners = true
// * CheckBidi = not-specified
// * ContextJ = not-specified
// * ContextO = not-specified
//
// This Library:
// * IDNA 2008 w/ an UTS-51 emoji parser
// * Alternative stops are disallowed
// * ContextJ = ContextO = true
// * CheckBidi = yes (if xbidi = no)
// see: build-tables.js
//
// https://www.unicode.org/reports/tr51/
// https://unicode.org/reports/tr46/#Processing
// https://unicode.org/reports/tr46/#Validity_Criteria
// [Processing] 1.) Map
// [Processing] 2.) Normalize: Normalize the domain_name string to Unicode Normalization Form C.
// [Processing] 3.) Break: Break the string into labels at U+002E ( . ) FULL STOP.
const HYPHEN = 0x2D; // HYPHEN MINUS
let labels = tokenized_idna(explode_cp(name), EMOJI_PARSER, cp => {
// ignored: Remove the code point from the string. This is equivalent to mapping the code point to an empty string.
if (STOP.has(cp)) return;
let labels = parse_tokens(nfc(explode_cp(name)), cp => {
if (STOP == cp) return;
if (IGNORED.has(cp)) return [];
// deviation: Leave the code point unchanged in the string.
// valid: Leave the code point unchanged in the string.
if (VALID.has(cp)) return [cp];
// mapped: Replace the code point in the string by the value for the mapping in Section 5, IDNA Mapping Table.
let mapped = lookup_mapped(MAPPED, cp);
if (mapped) return mapped;
// disallowed: Leave the code point unchanged in the string, and record that there was an error.
throw new Error(`Disallowed character "${escape_unicode(String.fromCodePoint(cp))}"`);
throw new Error(`Disallowed character "${escape_unicode(FCP(cp))}"`);
}).map(tokens => {
let cps = flatten_tokens(tokens);
// [Processing] 4.) Convert/Validate
if (cps.length >= 4 && cps[2] == HYPHEN && cps[3] == HYPHEN) { // "**--"
if (cps[0] == 0x78 && cps[1] == 0x6E) { // "xn--"
try {
// Attempt to convert the rest of the label to Unicode according to Punycode [RFC3492].
// If that conversion fails, record that there was an error, and continue with the next label.
let cps_decoded = puny_decode(cps.slice(4));
// With either Transitional or Nontransitional Processing, sources already in Punycode are validated without mapping.
// In particular, Punycode containing Deviation characters, such as href="xn--fu-hia.de" (for fuƟ.de) is not remapped.
// This provides a mechanism allowing explicit use of Deviation characters even during a transition period.
[tokens] = tokenized_idna(cps_decoded, EMOJI_PARSER, cp => VALID.has(cp) ? [cp] : []);
let expected = flatten_tokens(tokens);
if (cps_decoded.length != expected.length || !cps_decoded.every((x, i) => x == expected[i])) throw new Error('not normalized');
// Otherwise replace the original label in the string by the results of the conversion.
cps = cps_decoded;
// warning: this could be empty
// warning: this could be "**--"
} catch (err) {
throw label_error(cps, `punycode: ${err.message}`);
}
}
}
// flatten textual part of token to a single list of code-points
// flatten tokens into codepoints
let cps = tokens.flatMap(({e, v}) => e ?? v);
// flatten textual-tokens into codepoints
let text = tokens.reduce((a, {v}) => {
if (v) {
a.push(...v);
a.push(...v); // keep all text
} else if (a.length > 0) { // emoji at the start of the label are deleted
a.push(0xFE0F); // remaining emoji are replaced by FE0F (which is NSM)
a.push(FE0F); // remaining emoji are replaced by FE0F (which is NSM)
}
return a;
}, []);
return {cps, text};
});
// https://unicode.org/reports/tr46/#Notation
// A Bidi domain name is a domain name containing at least one character with BIDI_Class R, AL, or AN
let check_bidi = labels.some(x => is_bidi_label(x.text));
// [Validity] 8.) If CheckBidi, and if the domain name is a Bidi domain name, then the label
// must satisfy all six of the numbered conditions in [IDNA2008] RFC 5893, Section 2.
return labels.map(({cps, text}) => {
if (cps.length > 0) {
// [Validity] 1.) The label must be in Unicode Normalization Form NFC.
// => satsified by nfc() via flatten_label_tokens()
// [Validity] 2.) If CheckHyphens, the label must not contain a U+002D HYPHEN-MINUS character in both the third and fourth positions.
// note: we check this here (rather than above) because puny can expand into "aa--bb"
if (cps.length >= 4 && cps[2] == HYPHEN && cps[3] == HYPHEN) throw label_error(cps, `invalid label extension`);
// [Validity] 3.) If CheckHyphens, the label must neither begin nor end with a U+002D HYPHEN-MINUS character.
if (cps[0] == HYPHEN) throw label_error(cps, `leading hyphen`);
if (cps[cps.length - 1] == HYPHEN) throw label_error(cps, `trailing hyphen`);
// [Validity] 4.) The label must not contain a U+002E ( . ) FULL STOP.
// => satisfied by [Processing] 3.) Break
// [Validity] 5.) The label must not begin with a combining mark, that is: General_Category=Mark.
if (COMBINING_MARKS.has(cps[0])) throw label_error(cps, `leading combining mark`);
// [Validity] 6.) For Nontransitional Processing, each value must be either valid or deviation.
// => satisfied by tokenized_idna()
// [Validity] 7.) If CheckJoiners, the label must satisify the ContextJ rules
/*CONTEXT*/
if (COMBINING_MARKS.has(cps[0])) {
throw label_error(cps, `leading combining mark`);
}
try {
validate_context(text); // this also does ContextO
if (check_bidi) {
validate_bidi_label(text);
}
} catch (err) {
throw label_error(cps, err.message);
}
/*~CONTEXT*/
// [Validity] 8.) see below
}
return {tokens, cps, text};
});
// [Validity] 8.) If CheckBidi, and if the domain name is a Bidi domain name, then the label
// must satisfy all six of the numbered conditions in [IDNA2008] RFC 5893, Section 2.
/*BIDI*/
// * The spec is ambiguious regarding when you can determine a domain name is bidi
// * According to IDNATestV2, this is calculated AFTER puny decoding
// https://unicode.org/reports/tr46/#Notation
// A Bidi domain name is a domain name containing at least one character with BIDI_Class R, AL, or AN
if (labels.some(x => is_bidi_label(x.text))) {
for (let {text, cps} of labels) {
try {
validate_bidi_label(text);
} catch (err) {
throw label_error(cps, `bidi: ${err.message}`);
}
}
}
/*~BIDI*/
return labels.map(x => String.fromCodePoint(...x.cps)).join('.');
return FCP(...cps);
}).join(FCP(STOP));
}

@@ -939,4 +714,4 @@

function ens_tokenize(name) {
return tokenized_idna(explode_cp(name), EMOJI_PARSER, cp => {
if (STOP.has(cp)) return {};
return parse_tokens(nfc(explode_cp(name)), cp => {
if (STOP == cp) return {};
if (VALID.has(cp)) return [cp]; // this gets merged into v

@@ -950,2 +725,45 @@ if (IGNORED.has(cp)) return {i: cp};

function label_error(cps, message) {
return new Error(`Disallowed label "${escape_unicode(FCP(...cps))}": ${message}`);
}
// returns [[]] if empty
// {e:[],u:[]} => emoji
// {v:[]} => chars
function parse_tokens(cps, tokenizer) {
let chars = [];
let tokens = [];
let labels = [tokens];
function drain() {
if (chars.length > 0) {
tokens.push({v: chars});
chars = [];
}
}
for (let i = 0; i < cps.length; i++) {
let [len, e] = parse_emoji(cps, i);
if (len > 0) {
drain();
tokens.push({e, u:cps.slice(i, i+len)}); // these are emoji tokens
i += len - 1;
continue;
}
let cp = cps[i];
let token = tokenizer(cp);
if (Array.isArray(token)) { // this is more characters
chars.push(...token);
} else {
drain();
if (token) { // this is a token
tokens.push(token);
} else { // this is a label separator
tokens = []; // create a new label
labels.push(tokens);
}
}
}
drain();
return labels;
}
export { ens_normalize, ens_tokenize };

@@ -1,1 +0,1 @@

function A(A){return function(A){let w=0;return()=>A[w++]}(function(A){let w=0;function Q(){return A[w++]<<8|A[w++]}let B=Q(),E=1,t=[0,1];for(let A=1;A<B;A++)t.push(E+=Q());let e=Q(),r=w;w+=e;let C=0,D=0;function M(){return 0==C&&(D=D<<8|A[w++],C=8),D>>--C&1}const n=2**31,g=n>>>1,c=n-1;let o=0;for(let A=0;A<31;A++)o=o<<1|M();let U=[],F=0,x=n;for(;;){let A=Math.floor(((o-F+1)*E-1)/x),w=0,Q=B;for(;Q-w>1;){let B=w+Q>>>1;A<t[B]?Q=B:w=B}if(0==w)break;U.push(w);let e=F+Math.floor(x*t[w]/E),r=F+Math.floor(x*t[w+1]/E)-1;for(;0==((e^r)&g);)o=o<<1&c|M(),e=e<<1&c,r=r<<1&c|1;for(;e&~r&536870912;)o=o&g|o<<1&c>>>1|M(),e=e<<1^g,r=(r^g)<<1|g|1;F=e,x=1+r-e}let i=B-4;return U.map((w=>{switch(w-i){case 3:return i+65792+(A[r++]<<16|A[r++]<<8|A[r++]);case 2:return i+256+(A[r++]<<8|A[r++]);case 1:return i+A[r++];default:return w-1}}))}(Uint8Array.from(atob(A),(A=>A.charCodeAt(0)))))}function w(A){return 1&A?~A>>1:A>>1}function Q(A,w){let Q=Array(A);for(let B=0,E=-1;B<A;B++)Q[B]=E+=1+w();return Q}function B(A,Q){let B=Array(A);for(let E=0,t=0;E<A;E++)B[E]=t+=w(Q());return B}function E(A){let w=new Set(Q(A(),A)),B=A(),E=Q(B,A),t=function(A,w){let Q=Array(A);for(let B=0;B<A;B++)Q[B]=1+w();return Q}(B,A);for(let A=0;A<B;A++)for(let Q=0;Q<t[A];Q++)w.add(E[A]+Q);return w}function t(A){let w=[];for(;;){let Q=A();if(0==Q)break;w.push(C(Q,A))}for(;;){let Q=A()-1;if(Q<0)break;w.push(D(Q,A))}return w.flat().sort(((A,w)=>A[0]-w[0]))}function e(A){let w=[];for(;;){let Q=A();if(0==Q)break;w.push(Q)}return w}function r(A,w,Q,E){let t=Array(A).fill().map((()=>[]));for(let e=0;e<w;e++)B(A,Q).forEach(((A,w)=>t[w].push(E?E[A]:A)));return t}function C(A,w){let Q=1+w(),B=w(),E=e(w);return r(E.length,1+A,w).map(((A,w)=>[A[0],A.slice(1),E[w],Q,B]))}function D(A,w){return r(1+w(),1+A,w).map((A=>[A[0],A.slice(1)]))}function M(A,w,Q){let B={};for(;;){let E=w(A);if(0==E.length)break;let t=1+A(),e=Array(t).fill(B);for(let w of E)e=r(t,w,A,Q).map(((A,w)=>{let Q=e[w],B=String.fromCodePoint(...A),E=Q[B];return E||(E=Q[B]={}),E}));e.forEach((A=>A[""]=1))}return B}function n(A,w){for(let[Q,B,E,t,e]of A){let A=w-Q;if(A<0)break;if(E>0){if(A<t*E&&A%t==0){let w=A/t;return B.map((A=>A+w*e))}}else if(0==A)return B}}function g(A){return A.replace(/[^\x20-\x21\x23-\x7A\x7C\x7E]/gu,(A=>{return`{${w=A.codePointAt(0),w.toString(16).toUpperCase().padStart(2,"0")}}`;var w}))}function c(A){if("string"!=typeof A)throw new TypeError("expected string");return[...A].map((A=>A.codePointAt(0)))}function o(A,w,Q){let B=[],E=[],t=[E];function e(){B.length>0&&(E.push({v:B}),B=[])}for(let r=0;r<A.length;r++){if(w){let[Q,B]=w(A,r);if(Q>0){e(),E.push({e:B,u:A.slice(r,r+Q)}),r+=Q-1;continue}}let C=Q(A[r]);Array.isArray(C)?B.push(...C):(e(),C?E.push(C):(E=[],t.push(E)))}return e(),t}var U=A("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");const F=Array(U()).fill().map((()=>E(U))),x=t(U),i=E(U),f=44032;function l(A){return A>=f&&A<55204}function T(A,w){if(A<128)w(A);else if(l(A)){let Q=A-f,B=Q%588/28|0,E=Q%28;w(4352+(Q/588|0)),w(4449+B),E>0&&w(4519+E)}else{let Q=n(x,A);if(Q)for(let A of Q)T(A,w);else w(A)}}function s(A,w){let Q=[];function B(){Q.sort(((A,w)=>A[0]-w[0])).forEach((([A,Q])=>w(A,Q))),Q.length=0}function E(A){let E=1+F.findIndex((w=>w.has(A)));0==E?(B(),w(E,A)):Q.push([E,A])}A.forEach((A=>T(A,E))),B()}var u=A("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");const S=E(u),J=E(u),L=E(u),N=E(u),H=E(u),R=E(u);function d(A){if(0==A.length)return;let w=A.length-1;if(S.has(A[0])){if(!A.every((A=>S.has(A)||L.has(A)||N.has(A)||H.has(A)||R.has(A))))throw new Error("RTL: disallowed properties");for(;R.has(A[w]);)w--;if(w=A[w],!(S.has(w)||N.has(w)||L.has(w)))throw new Error("RTL: disallowed ending");if(A.some((A=>N.has(A)))&&A.some((A=>L.has(A))))throw new Error("RTL: AN+EN")}else{if(!J.has(A[0]))throw new Error("unknown direction");if(!A.every((A=>J.has(A)||N.has(A)||H.has(A)||R.has(A))))throw new Error("LTR: disallowed properties");for(;R.has(A[w]);)w--;if(w=A[w],!J.has(w)&&!N.has(w))throw new Error("LTR: disallowed ending")}}var V=A("ABIAAQB6AEAAOAAoACYAHwAiABgAFgAOAAsACwAMAY8AfgADApQhCD9xcXFxcXFxcW5hcbsGoY8Bf9URLHl4F4mAXgAn6F1DBPgbACv4ZqZU5nHucWhm/wCYRQRDAJcASQwtAe8FzAOHOfQyBvsC+GifBANGRZDdAC4CJSwCIi8GFTgCJSwmLyQpNix4JTpMcXV+rQEGGggji3raLA6mlfECCAxleXQSxKUjTyElAibgTiIC0gHv1AZQBLNgQ6JNVpJS9wlNAHRfAXiOWADp7D9QqYZpggAHGwscRNcB8gB0/yE9LHw3ZzYcITAjCk8BAlASEDEWAjEMCTgFzVsHDywSYVMEXgVBSgCFDAQFAckCphERETMDM2uMA88yLkEnJgYTLi6LB7kBPw0nVwsQ4gE7YHTHG0MAJpANNxIqJ15uH1IFEQDKAm4FfB2eATAAeIwtpywlOBhEJwRXng4sHLli4Q5IYl7584oYIwciAIlLCW1CAFQULjWxMQNQS/8RUSEBKAMWiQavLFEEUAT7AK0E1WULFc3RYR4GDAkRFRAxEhEDAQEABx8IASgjAAJR4QwFEpUiGzjHDw5ylPEUpACEAX4jBRwWExgAGwkSAkFoCRgIAA5XWI6qYXEEjBQARAEhDhAt2CcBFwASAEoTJBMCNQUSphsCAEEXDnKU8Q4OA70WBRQQHmoJLG5nEwoIDmNYjqphcQSGGgBJASASEDPYKA9QDyQSCgQMShMjAxQGAzUCcRkkAIsAuokwVSwLAmIGPhgnKACLCRkAEicBAQbgO8+xBTABBxcQJgAEQDf6MASDMBD0HwwoDAsu9wDA6hMtcgxWABIITU3k0SHxGPGp8QBhA+dvYj7xAEEFTY2l8Q8x0RWBKEEG8QtKx0dLASBJGLFQ8QBfWx4AFKXRDyrPFXMcIgEPEjzcS9Wn/KALJxnXU2YJOBWKOmP82gdIgmNcRsDi+p7FBLYbwm9Uzs1RfCbNpY30PNDOtZBhbqPBybOPeWa7oi+ySNuja7E79Fz+oJqkWRGdXLqRl46pfoUDu0uKXTiGuFf3GtJzAXtJmxI3V8am/mpQnjfi99U7ZkojTh6fKYexodlCUm8Nn5tkJXqdPwxaQiU29Pa8nQxhFccS0ZzA2p+XNo3r68FBGjQNasxwtQH/0ELiOQLNuyc0YqOxCPnfFsvASXVP7enrn5p48UHDGS6NU/kYR37WSJ7+CN+nV4NqWlRTc/nQOuWoDD2Cnkn26E21fE+79xMXG2voqdtyef5eUY6MOoAAPIvdUDW+i16JSxe2+srXAYVvzbE8SKhyxzjFf2rMlgMycfXR8nl6/xF97xDwBSNLExVnK4YUGbAMpgGeHD0vHVXsIK20HyDdJQ9a5Uhwta5o+Tw/HpthmalqVX7v90SgUzjZaEahH3JPOhT8k+LFPClF+c5gMeKg");const I=E(V),O=E(V),h=E(V),Y=E(V),k=E(V),a=E(V),G=E(V);var K=A("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");const z=E(K),X=E(K),Z=E(K),P=t(K),W=E(K),b=K()&&function(A){const w=E(A),Q=E(A),B=E(A),t=E(A),r=E(A),C=E(A),D=E(A),n=E(A),g=E(A),c=M(A,(A=>Array(A()).fill(1))),o=A()?M(A,e,[...t,...C].sort(((A,w)=>A-w))):1,U=65039,F=8205,x=8419;function i(A,w){if(1===A)return 1;let Q=String.fromCodePoint(...w.filter((A=>A!=U)));return A.hasOwnProperty(Q)?A[Q]:void 0}function f(A,w){let Q=A[w];if(!Q)return;let B=A[w+1];if(n.has(Q)&&B&&D.has(B))return[2,[Q,B]];if(B==U){if(t.has(Q))return[2,[Q]];if(C.has(Q)||r.has(Q))return[2,[Q,U]]}return t.has(Q)||C.has(Q)?[1,[Q]]:void 0}return function(A,E){let t=A[E],e=String.fromCodePoint(t);if(c.hasOwnProperty(e)){let w=c[e],Q=E+1;for(;;){let B=A[Q];if(!B)break;let E=String.fromCodePoint(B);if(!w.hasOwnProperty(E))break;w=w[E],Q++}if(w.hasOwnProperty(""))return[Q-E,A.slice(E,Q)]}let r=A[E+1];if(w.has(t)&&w.has(r))return[2,[t,r]];let C=Q.has(t);if(C&&r===x)return[2,[t,x]];if((C||B.has(t))&&r===U&&A[E+2]===x)return[3,C?[t,x]:[t,U,x]];let D=f(A,E);if(!D)return[0];let[M,n]=D,l=E+M;if(r=A[l],r===F){let w=i(o,n);if(w){let Q,B=[],t=l;for(;A[t++]===F;){let E=f(A,t);if(!E)break;let[e,r]=E;if(w=i(w,r),!w)break;t+=e,1===w?(n.push(F,...r),Q=t):(B.push(F,...r),w.hasOwnProperty("")&&(n.push(...B),B.length=0,Q=t))}if(Q)return[Q-E,n]}}if(g.has(r)){let w=l+1;for(;g.has(A[w]);)w++;if(917631===A[w++])return[w-E,n.concat(A.slice(l,1+w-l))]}return D}}(K);function j(A){return A.flatMap((({e:A,v:w})=>A??function(A){let w=[],Q=[],B=-1,E=0;return s(A,(function(A,t){if(-1===B)0==A?B=t:w.push(t);else if(E>0&&E>=A)0==A?(w.push(B,...Q),Q.length=0,B=t):Q.push(t),E=A;else{let e=function(A,w){if(A>=4352&&A<4371&&w>=4449&&w<4470)return f+(588*(A-4352)+28*(w-4449));if(l(A)&&w>4519&&w<4547&&(A-f)%28==0)return A+(w-4519);for(let[Q,B]of x)if(2==B.length&&B[0]==A&&B[1]==w){if(i.has(Q))break;return Q}return-1}(B,t);e>=0?B=e:0==E&&0==A?(w.push(B),B=t):(Q.push(t),E=A)}})),B>=0&&w.push(B),w.push(...Q),w}(w)))}function y(A,w){return new Error(`Disallowed label "${g(String.fromCodePoint(...A))}": ${w}`)}function p(A){const w=45;let Q=o(c(A),b,(A=>{if(z.has(A))return;if(Z.has(A))return[];if(X.has(A))return[A];let w=n(P,A);if(w)return w;throw new Error(`Disallowed character "${g(String.fromCodePoint(A))}"`)})).map((A=>{let Q=j(A);if(Q.length>=4&&Q[2]==w&&Q[3]==w&&120==Q[0]&&110==Q[1])try{let w=function(A){let w=[],Q=A.lastIndexOf(45);for(let B=0;B<Q;B++){let Q=A[B];if(Q>=128)throw new Error("expected ASCII");w.push(Q)}Q++;let B=0,E=128,t=72;for(;Q<A.length;){let e=B;for(let w=1,E=36;;E+=36){if(Q>=A.length)throw new Error("invalid encoding");let e=A[Q++];if(e>=48&&e<=57)e-=22;else{if(!(e>=97&&e<=122))throw new Error(`invalid character ${e}`);e-=97}B+=e*w;const r=E<=t?1:E>=t+26?26:E-t;if(e<r)break;w*=36-r}let r=w.length+1,C=0==e?B/700|0:B-e>>1;C+=C/r|0;let D=0;for(;C>455;D+=36)C=C/35|0;t=D+36*C/(C+38)|0,E+=B/r|0,B%=r,w.splice(B++,0,E)}return w}(Q.slice(4));[A]=o(w,b,(A=>X.has(A)?[A]:[]));let B=j(A);if(w.length!=B.length||!w.every(((A,w)=>A==B[w])))throw new Error("not normalized");Q=w}catch(A){throw y(Q,`punycode: ${A.message}`)}let B=A.reduce(((A,{v:w})=>(w?A.push(...w):A.length>0&&A.push(65039),A)),[]);if(Q.length>0){if(Q.length>=4&&Q[2]==w&&Q[3]==w)throw y(Q,"invalid label extension");if(Q[0]==w)throw y(Q,"leading hyphen");if(Q[Q.length-1]==w)throw y(Q,"trailing hyphen");if(W.has(Q[0]))throw y(Q,"leading combining mark");try{!function(A){for(let w=0,Q=A.length-1;w<=Q;w++){switch(A[w]){case 8204:if(w>0&&I.has(A[w-1]))continue;if(w>0&&w<Q){let B=w-1;for(;B>0&&O.has(A[B]);)B--;if(h.has(A[B])){let B=w+1;for(;B<Q&&O.has(A[B]);)B++;if(Y.has(A[B]))continue}}break;case 8205:if(w>0&&I.has(A[w-1]))continue;break;case 183:if(w>0&&w<Q&&108==A[w-1]&&108==A[w+1])continue;break;case 885:if(w<Q&&k.has(A[w+1]))continue;break;case 1523:case 1524:if(w>0&&a.has(A[w-1]))continue;break;default:continue}throw new Error(`No context for "${g(String.fromCodePoint(A[w]))}"`)}if(A.some((A=>A>=1632&&A<=1641))&&A.some((A=>A>=1776&&A<=1785)))throw new Error("Disallowed arabic-indic digit mixture");if(A.includes(12539)&&!A.some((A=>G.has(A))))throw new Error("Disallowed katakana")}(B)}catch(A){throw y(Q,A.message)}}return{tokens:A,cps:Q,text:B}}));if(Q.some((A=>A.text.some((A=>S.has(A)||L.has(A))))))for(let{text:A,cps:w}of Q)try{d(A)}catch(A){throw y(w,`bidi: ${A.message}`)}return Q.map((A=>String.fromCodePoint(...A.cps))).join(".")}function m(A){return o(c(A),b,(A=>{if(z.has(A))return{};if(X.has(A))return[A];if(Z.has(A))return{i:A};let w=n(P,A);return w?{m:w,u:[A]}:{d:A}}))[0]}export{p as ens_normalize,m as ens_tokenize};
function A(A){return 1&A?~A>>1:A>>1}function B(A,B){let w=Array(A);for(let g=0,C=-1;g<A;g++)w[g]=C+=1+B();return w}function w(B,w){let g=Array(B);for(let C=0,o=0;C<B;C++)g[C]=o+=A(w());return g}function g(A){let w=new Set(B(A(),A)),g=A(),C=B(g,A),o=function(A,B){let w=Array(A);for(let g=0;g<A;g++)w[g]=1+B();return w}(g,A);for(let A=0;A<g;A++)for(let B=0;B<o[A];B++)w.add(C[A]+B);return w}function C(A){let B=[];for(;;){let w=A();if(0==w)break;B.push(Q(w,A))}for(;;){let w=A()-1;if(w<0)break;B.push(e(w,A))}return B.flat().sort(((A,B)=>A[0]-B[0]))}function o(A){let B=[];for(;;){let w=A();if(0==w)break;B.push(w)}return B}function r(A,B,g,C){let o=Array(A).fill().map((()=>[]));for(let r=0;r<B;r++)w(A,g).forEach(((A,B)=>o[B].push(C?C[A]:A)));return o}function Q(A,B){let w=1+B(),g=B(),C=o(B);return r(C.length,1+A,B).map(((A,B)=>[A[0],A.slice(1),C[B],w,g]))}function e(A,B){return r(1+B(),1+A,B).map((A=>[A[0],A.slice(1)]))}function n(A,B,w){let g={};for(;;){let C=B(A);if(0==C.length)break;let o=1+A(),Q=Array(o).fill(g);for(let B of C)Q=r(o,B,A,w).map(((A,B)=>{let w=Q[B],g=String.fromCodePoint(...A),C=w[g];return C||(C=w[g]={}),C}));Q.forEach((A=>A[""]=1))}return g}function f(A,B){for(let[w,g,C,o,r]of A){let A=B-w;if(A<0)break;if(C>0){if(A<o*C&&A%o==0){let B=A/o;return g.map((A=>A+B*r))}}else if(0==A)return g}}function t(A){return A.replace(/[^\x20-\x21\x23-\x7A\x7C\x7E]/gu,(A=>`{${function(A){return A.toString(16).toUpperCase().padStart(2,"0")}(A.codePointAt(0))}}`))}function D(A){if("string"!=typeof A)throw new TypeError("expected string");return[...A].map((A=>A.codePointAt(0)))}var i,E=(i="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",function(A){let B=0;return()=>A[B++]}(function(A){let B=0;function w(){return A[B++]<<8|A[B++]}let g=w(),C=1,o=[0,1];for(let A=1;A<g;A++)o.push(C+=w());let r=w(),Q=B;B+=r;let e=0,n=0;function f(){return 0==e&&(n=n<<8|A[B++],e=8),n>>--e&1}const t=2**31,D=t>>>1,i=t-1;let E=0;for(let A=0;A<31;A++)E=E<<1|f();let I=[],Y=0,l=t;for(;;){let A=Math.floor(((E-Y+1)*C-1)/l),B=0,w=g;for(;w-B>1;){let g=B+w>>>1;A<o[g]?w=g:B=g}if(0==B)break;I.push(B);let r=Y+Math.floor(l*o[B]/C),Q=Y+Math.floor(l*o[B+1]/C)-1;for(;0==((r^Q)&D);)E=E<<1&i|f(),r=r<<1&i,Q=Q<<1&i|1;for(;r&~Q&536870912;)E=E&D|E<<1&i>>>1|f(),r=r<<1^D,Q=(Q^D)<<1|D|1;Y=r,l=1+Q-r}let u=g-4;return I.map((B=>{switch(B-u){case 3:return u+65792+(A[Q++]<<16|A[Q++]<<8|A[Q++]);case 2:return u+256+(A[Q++]<<8|A[Q++]);case 1:return u+A[Q++];default:return B-1}}))}(Uint8Array.from(atob(i),(A=>A.charCodeAt(0))))));const I=g(E),Y=g(E),l=C(E),u=g(E),c=g(E),F=g(E),k=g(E),M=g(E),h=g(E),J=g(E),U=n(E,(A=>Array(A()).fill(1))),G=n(E,o,[...k,...M].sort(((A,B)=>A-B)));function K(A,B=""){return Object.hasOwn(A,B)}function T(A,B){let w=$(...B.filter((A=>65039!=A)));if(K(A,w))return A[w]}function N(A,B){let w=A[B];if(!w)return;let g=A[B+1];if(J.has(w)&&g&&h.has(g))return[2,[w,g]];let C=65039===g;return k.has(w)?[C?2:1,[w]]:M.has(w)&&C?[2,[w,65039]]:void 0}function H(A,B){let w=A[B],g=$(w);if(K(U,g)){let w=U[g],C=B+1;for(;;){let B=A[C];if(!B)break;let g=$(B);if(!K(w,g))break;w=w[g],C++}if(K(w))return[C-B,A.slice(B,C)]}let C=A[B+1],o=c.has(w);if(o&&8419===C)return[2,[w,8419]];if((o||F.has(w))&&65039===C&&8419===A[B+2])return[3,o?[w,8419]:[w,65039,8419]];let r=N(A,B);if(!r)return[0];let[Q,e]=r,n=B+Q;if(C=A[n],8205===C){let w=T(G,e);if(w){let g,C=[],o=n;for(;8205===A[o++];){let B=N(A,o);if(!B)break;let[r,Q]=B;if(w=T(w,Q),!w)break;o+=r,C.push(8205,...Q),K(w)&&(e.push(...C),C.length=0,g=o)}if(g)return[g-B,e]}}return r}const a=Array(E()).fill().map((()=>g(E))),s=C(E),S=g(E),L=44032;function V(A){return A>=L&&A<55204}function j(A,B){if(A<128)B(A);else if(V(A)){let w=A-L,g=w%588/28|0,C=w%28;B(4352+(w/588|0)),B(4449+g),C>0&&B(4519+C)}else{let w=f(s,A);if(w)for(let A of w)j(A,B);else B(A)}}function R(A,B){let w=[];function g(){w.sort(((A,B)=>A[0]-B[0])).forEach((([A,w])=>B(A,w))),w.length=0}function C(A){let C=1+a.findIndex((B=>B.has(A)));0==C?(g(),B(C,A)):w.push([C,A])}A.forEach((A=>j(A,C))),g()}function b(A){let B=[],w=[],g=-1,C=0;return R(A,(function(A,o){if(-1===g)0==A?g=o:B.push(o);else if(C>0&&C>=A)0==A?(B.push(g,...w),w.length=0,g=o):w.push(o),C=A;else{let r=function(A,B){if(A>=4352&&A<4371&&B>=4449&&B<4470)return L+(588*(A-4352)+28*(B-4449));if(V(A)&&B>4519&&B<4547&&(A-L)%28==0)return A+(B-4519);for(let[w,g]of s)if(2==g.length&&g[0]==A&&g[1]==B){if(S.has(w))break;return w}return-1}(g,o);r>=0?g=r:0==C&&0==A?(B.push(g),g=o):(w.push(o),C=A)}})),g>=0&&B.push(g),B.push(...w),B}const P=a[E()],W=g(E),d=g(E),x=g(E),X=g(E),O=g(E),p=g(E);const m=g(E),y=g(E),z=g(E),q=g(E),v=g(E),Z=g(E);const $=String.fromCodePoint.bind(String);function _(A){let B=wA(b(D(A)),(A=>{if(46==A)return;if(Y.has(A))return[];if(I.has(A))return[A];let B=f(l,A);if(B)return B;throw new Error(`Disallowed character "${t($(A))}"`)})).map((A=>({cps:A.flatMap((({e:A,v:B})=>A??B)),text:A.reduce(((A,{v:B})=>(B?A.push(...B):A.length>0&&A.push(65039),A)),[])}))),w=B.some((A=>A.text.some((A=>m.has(A)||z.has(A)))));return B.map((({cps:A,text:B})=>{if(A.length>0){if(u.has(A[0]))throw BA(A,"leading combining mark");try{!function(A){for(let B=0,w=A.length-1;B<=w;B++){switch(A[B]){case 8204:if(B>0&&P.has(A[B-1]))continue;if(B>0&&B<w){let g=B-1;for(;g>0&&W.has(A[g]);)g--;if(d.has(A[g])){let g=B+1;for(;g<w&&W.has(A[g]);)g++;if(x.has(A[g]))continue}}break;case 8205:if(B>0&&P.has(A[B-1]))continue;break;case 183:if(B>0&&B<w&&108==A[B-1]&&108==A[B+1])continue;break;case 885:if(B<w&&X.has(A[B+1]))continue;break;case 1523:case 1524:if(B>0&&O.has(A[B-1]))continue;break;default:continue}throw new Error(`No context for "${t($(A[B]))}"`)}if(A.some((A=>A>=1632&&A<=1641))&&A.some((A=>A>=1776&&A<=1785)))throw new Error("Disallowed arabic-indic digit mixture");if(A.includes(12539)&&!A.some((A=>p.has(A))))throw new Error("Disallowed katakana")}(B),w&&function(A){let B=A.length-1;if(m.has(A[0])){if(!A.every((A=>m.has(A)||z.has(A)||q.has(A)||v.has(A)||Z.has(A))))throw new Error("RTL: disallowed properties");for(;Z.has(A[B]);)B--;if(B=A[B],!(m.has(B)||q.has(B)||z.has(B)))throw new Error("RTL: disallowed ending");if(A.some((A=>q.has(A)))&&A.some((A=>z.has(A))))throw new Error("RTL: AN+EN")}else{if(!y.has(A[0]))throw new Error("unknown direction");if(!A.every((A=>y.has(A)||q.has(A)||v.has(A)||Z.has(A))))throw new Error("LTR: disallowed properties");for(;Z.has(A[B]);)B--;if(B=A[B],!y.has(B)&&!q.has(B))throw new Error("LTR: disallowed ending")}}(B)}catch(B){throw BA(A,B.message)}}return $(...A)})).join($(46))}function AA(A){return wA(b(D(A)),(A=>{if(46==A)return{};if(I.has(A))return[A];if(Y.has(A))return{i:A};let B=f(l,A);return B?{m:B,u:[A]}:{d:A}}))[0]}function BA(A,B){return new Error(`Disallowed label "${t($(...A))}": ${B}`)}function wA(A,B){let w=[],g=[],C=[g];function o(){w.length>0&&(g.push({v:w}),w=[])}for(let r=0;r<A.length;r++){let[Q,e]=H(A,r);if(Q>0){o(),g.push({e:e,u:A.slice(r,r+Q)}),r+=Q-1;continue}let n=B(A[r]);Array.isArray(n)?w.push(...n):(o(),n?g.push(n):(g=[],C.push(g)))}return o(),C}export{_ as ens_normalize,AA as ens_tokenize};

@@ -88,3 +88,2 @@ function explode_cp(s) {

// returns an iterator which returns the next symbol
/*

@@ -98,2 +97,4 @@ export function read_payload(v) {

*/
// returns an iterator which returns the next symbol
function read_payload(v) {

@@ -100,0 +101,0 @@ let pos = 0;

@@ -1,1 +0,1 @@

function A(A){if("string"!=typeof A)throw new TypeError("expected string");return[...A].map((A=>A.codePointAt(0)))}function M(A){return 1&A?~A>>1:A>>1}function w(A,M){let w=Array(A);for(let E=0,Q=-1;E<A;E++)w[E]=Q+=1+M();return w}function E(A,w){let E=Array(A);for(let Q=0,B=0;Q<A;Q++)E[Q]=B+=M(w());return E}function Q(A){let M=new Set(w(A(),A)),E=A(),Q=w(E,A),B=function(A,M){let w=Array(A);for(let E=0;E<A;E++)w[E]=1+M();return w}(E,A);for(let A=0;A<E;A++)for(let w=0;w<B[A];w++)M.add(Q[A]+w);return M}function B(A,M,w,Q){let B=Array(A).fill().map((()=>[]));for(let D=0;D<M;D++)E(A,w).forEach(((A,M)=>B[M].push(Q?Q[A]:A)));return B}function D(A,M){let w=1+M(),E=M(),Q=function(A){let M=[];for(;;){let w=A();if(0==w)break;M.push(w)}return M}(M);return B(Q.length,1+A,M).map(((A,M)=>[A[0],A.slice(1),Q[M],w,E]))}function x(A,M){return B(1+M(),1+A,M).map((A=>[A[0],A.slice(1)]))}var C=("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",function(A){let M=0;return()=>A[M++]}(function(A){let M=0;function w(){return A[M++]<<8|A[M++]}let E=w(),Q=1,B=[0,1];for(let A=1;A<E;A++)B.push(Q+=w());let D=w(),x=M;M+=D;let C=0,T=0;function t(){return 0==C&&(T=T<<8|A[M++],C=8),T>>--C&1}const g=2**31,S=g>>>1,c=g-1;let n=0;for(let A=0;A<31;A++)n=n<<1|t();let e=[],L=0,r=g;for(;;){let A=Math.floor(((n-L+1)*Q-1)/r),M=0,w=E;for(;w-M>1;){let E=M+w>>>1;A<B[E]?w=E:M=E}if(0==M)break;e.push(M);let D=L+Math.floor(r*B[M]/Q),x=L+Math.floor(r*B[M+1]/Q)-1;for(;0==((D^x)&S);)n=n<<1&c|t(),D=D<<1&c,x=x<<1&c|1;for(;D&~x&536870912;)n=n&S|n<<1&c>>>1|t(),D=D<<1^S,x=(x^S)<<1|S|1;L=D,r=1+x-D}let o=E-4;return e.map((M=>{switch(M-o){case 3:return o+65792+(A[x++]<<16|A[x++]<<8|A[x++]);case 2:return o+256+(A[x++]<<8|A[x++]);case 1:return o+A[x++];default:return M-1}}))}(Uint8Array.from(atob("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"),(A=>A.charCodeAt(0))))));const T=Array(C()).fill().map((()=>Q(C))),t=function(A){let M=[];for(;;){let w=A();if(0==w)break;M.push(D(w,A))}for(;;){let w=A()-1;if(w<0)break;M.push(x(w,A))}return M.flat().sort(((A,M)=>A[0]-M[0]))}(C),g=Q(C),S=44032;function c(A){return A>=S&&A<55204}function n(A,M){if(A<128)M(A);else if(c(A)){let w=A-S,E=w%588/28|0,Q=w%28;M(4352+(w/588|0)),M(4449+E),Q>0&&M(4519+Q)}else{let w=function(A,M){for(let[w,E,Q,B,D]of A){let A=M-w;if(A<0)break;if(Q>0){if(A<B*Q&&A%B==0){let M=A/B;return E.map((A=>A+M*D))}}else if(0==A)return E}}(t,A);if(w)for(let A of w)n(A,M);else M(A)}}function e(A,M){let w=[];function E(){w.sort(((A,M)=>A[0]-M[0])).forEach((([A,w])=>M(A,w))),w.length=0}function Q(A){let Q=1+T.findIndex((M=>M.has(A)));0==Q?(E(),M(Q,A)):w.push([Q,A])}A.forEach((A=>n(A,Q))),E()}function L(A){let M=[];return e(A,((A,w)=>M.push(w))),M}function r(A){let M=[],w=[],E=-1,Q=0;return e(A,(function(A,B){if(-1===E)0==A?E=B:M.push(B);else if(Q>0&&Q>=A)0==A?(M.push(E,...w),w.length=0,E=B):w.push(B),Q=A;else{let D=function(A,M){if(A>=4352&&A<4371&&M>=4449&&M<4470)return S+(588*(A-4352)+28*(M-4449));if(c(A)&&M>4519&&M<4547&&(A-S)%28==0)return A+(M-4519);for(let[w,E]of t)if(2==E.length&&E[0]==A&&E[1]==M){if(g.has(w))break;return w}return-1}(E,B);D>=0?E=D:0==Q&&0==A?(M.push(E),E=B):(w.push(B),Q=A)}})),E>=0&&M.push(E),M.push(...w),M}function o(M,w){return A(String.fromCodePoint(...w).normalize(M))}function U(A){return o("NFC",A)}function N(A){return o("NFD",A)}function J(M){return String.fromCodePoint(...J(A(M)))}function u(M){return String.fromCodePoint(...u(A(M)))}export{J as nfc,r as nfc_adraffy,U as nfc_default,u as nfd,L as nfd_adraffy,N as nfd_default};
function A(A){if("string"!=typeof A)throw new TypeError("expected string");return[...A].map((A=>A.codePointAt(0)))}function M(A){return 1&A?~A>>1:A>>1}function w(A,M){let w=Array(A);for(let t=0,E=-1;t<A;t++)w[t]=E+=1+M();return w}function t(A,w){let t=Array(A);for(let E=0,n=0;E<A;E++)t[E]=n+=M(w());return t}function E(A){let M=new Set(w(A(),A)),t=A(),E=w(t,A),n=function(A,M){let w=Array(A);for(let t=0;t<A;t++)w[t]=1+M();return w}(t,A);for(let A=0;A<t;A++)for(let w=0;w<n[A];w++)M.add(E[A]+w);return M}function n(A,M,w,E){let n=Array(A).fill().map((()=>[]));for(let Q=0;Q<M;Q++)t(A,w).forEach(((A,M)=>n[M].push(E?E[A]:A)));return n}function Q(A,M){let w=1+M(),t=M(),E=function(A){let M=[];for(;;){let w=A();if(0==w)break;M.push(w)}return M}(M);return n(E.length,1+A,M).map(((A,M)=>[A[0],A.slice(1),E[M],w,t]))}function B(A,M){return n(1+M(),1+A,M).map((A=>[A[0],A.slice(1)]))}var r,e=(r="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",function(A){let M=0;return()=>A[M++]}(function(A){let M=0;function w(){return A[M++]<<8|A[M++]}let t=w(),E=1,n=[0,1];for(let A=1;A<t;A++)n.push(E+=w());let Q=w(),B=M;M+=Q;let r=0,e=0;function D(){return 0==r&&(e=e<<8|A[M++],r=8),e>>--r&1}const x=2**31,C=x>>>1,c=x-1;let o=0;for(let A=0;A<31;A++)o=o<<1|D();let T=[],f=0,u=x;for(;;){let A=Math.floor(((o-f+1)*E-1)/u),M=0,w=t;for(;w-M>1;){let t=M+w>>>1;A<n[t]?w=t:M=t}if(0==M)break;T.push(M);let Q=f+Math.floor(u*n[M]/E),B=f+Math.floor(u*n[M+1]/E)-1;for(;0==((Q^B)&C);)o=o<<1&c|D(),Q=Q<<1&c,B=B<<1&c|1;for(;Q&~B&536870912;)o=o&C|o<<1&c>>>1|D(),Q=Q<<1^C,B=(B^C)<<1|C|1;f=Q,u=1+B-Q}let g=t-4;return T.map((M=>{switch(M-g){case 3:return g+65792+(A[B++]<<16|A[B++]<<8|A[B++]);case 2:return g+256+(A[B++]<<8|A[B++]);case 1:return g+A[B++];default:return M-1}}))}(Uint8Array.from(atob(r),(A=>A.charCodeAt(0))))));const D=Array(e()).fill().map((()=>E(e))),x=function(A){let M=[];for(;;){let w=A();if(0==w)break;M.push(Q(w,A))}for(;;){let w=A()-1;if(w<0)break;M.push(B(w,A))}return M.flat().sort(((A,M)=>A[0]-M[0]))}(e),C=E(e),c=44032;function o(A){return A>=c&&A<55204}function T(A,M){if(A<128)M(A);else if(o(A)){let w=A-c,t=w%588/28|0,E=w%28;M(4352+(w/588|0)),M(4449+t),E>0&&M(4519+E)}else{let w=function(A,M){for(let[w,t,E,n,Q]of A){let A=M-w;if(A<0)break;if(E>0){if(A<n*E&&A%n==0){let M=A/n;return t.map((A=>A+M*Q))}}else if(0==A)return t}}(x,A);if(w)for(let A of w)T(A,M);else M(A)}}function f(A,M){let w=[];function t(){w.sort(((A,M)=>A[0]-M[0])).forEach((([A,w])=>M(A,w))),w.length=0}function E(A){let E=1+D.findIndex((M=>M.has(A)));0==E?(t(),M(E,A)):w.push([E,A])}A.forEach((A=>T(A,E))),t()}function u(A){let M=[];return f(A,((A,w)=>M.push(w))),M}function g(A){let M=[],w=[],t=-1,E=0;return f(A,(function(A,n){if(-1===t)0==A?t=n:M.push(n);else if(E>0&&E>=A)0==A?(M.push(t,...w),w.length=0,t=n):w.push(n),E=A;else{let Q=function(A,M){if(A>=4352&&A<4371&&M>=4449&&M<4470)return c+(588*(A-4352)+28*(M-4449));if(o(A)&&M>4519&&M<4547&&(A-c)%28==0)return A+(M-4519);for(let[w,t]of x)if(2==t.length&&t[0]==A&&t[1]==M){if(C.has(w))break;return w}return-1}(t,n);Q>=0?t=Q:0==E&&0==A?(M.push(t),t=n):(w.push(n),E=A)}})),t>=0&&M.push(t),M.push(...w),M}function S(M,w){return A(String.fromCodePoint(...w).normalize(M))}function l(A){return S("NFC",A)}function i(A){return S("NFD",A)}function L(M){return String.fromCodePoint(...L(A(M)))}function U(M){return String.fromCodePoint(...U(A(M)))}export{L as nfc,g as nfc_adraffy,l as nfc_default,U as nfd,u as nfd_adraffy,i as nfd_default};

@@ -1,1 +0,1 @@

export * from './dist/ens-normalize-compat.js';
export * from './dist/ens-normalize.js';
{
"name": "@adraffy/ens-normalize",
"version": "1.3.12",
"version": "1.3.16",
"description": "Compact ES6 Ethereum Name Service (ENS) Name Normalizer",

@@ -5,0 +5,0 @@ "keywords": [

@@ -11,7 +11,7 @@ # ens-normalize.js

* Passes **100%** [NormalizationTests](https://adraffy.github.io/ens-normalize.js/test/report-nf.html)
* Handles [Punycode](https://datatracker.ietf.org/doc/html/rfc3492), adapted from [mathiasbynens/punycode.js](https://github.com/mathiasbynens/punycode.js)
* Ignores [Punycode](https://datatracker.ietf.org/doc/html/rfc3492)
---
* [Demo: Resolver](https://adraffy.github.io/ens-normalize.js/test/resolver.html)
* [Demo: Display Name](https://adraffy.github.io/ens-normalize.js/test/display.html)
* Generated Report vs `eth-ens-namehash` [Latest version](https://adraffy.github.io/ens-normalize.js/test/output/ens3.html) ā€¢ [Prior (IDNA2003)](https://adraffy.github.io/ens-normalize.js/test/output/ens.html)
* [Demo: Resolver](https://adraffy.github.io/ens-normalize.js/test/resolver.html)
* Generated Report vs `eth-ens-namehash` [Latest version](https://adraffy.github.io/ens-normalize.js/test/output/ens-2.0.15-adraffy-1.3.16.html)

@@ -22,6 +22,2 @@ ```Javascript

// 'https://unpkg.com/@adraffy/ens-normalize@latest/dist/ens-normalize.min.js'
// alternatives:
// - ens-normalize-xbidi.min.js (no CheckBidi)
// - ens-normalize-xnfc.min.js (use default String.normalize)
// see: /dist/ for more

@@ -35,5 +31,2 @@ // Primary API: string -> string

// - contains disallowed character
// - punycode error
// - label has double-hyphen
// - label starts/ends with hyphen
// - label starts with combining mark

@@ -90,4 +83,4 @@ // - character out of context

* Run `node build/build-tables.js all` to build compressed rule payloads.
* Run `npm run test-source` to test `build/lib-normalize.js`.
* Run `npm run build ` or `node build/build.js all` to inject the compressed tables into the source template and create the readable and minified `dist/` files.
* Run `npm run test-build` to test `dist/ens-normalize.js`.
* Run `node test/test-lib.js build/lib-normalize.js` to test the source template.
* Run `node build/build.js` to inject the compressed tables into the source template and create `dist/` files.
* Run `node test/test-lib.js dist/ens-normalize.js` to test the generated library.

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with āš”ļø by Socket Inc