@adraffy/ens-normalize
Advanced tools
Comparing version 1.0.10 to 1.1.0
@@ -1,1 +0,1 @@ | ||
class O{constructor(A){this.table=A;this.pos=0}get more(){return this.pos<this.table.length}read_byte(){return this.table[this.pos++]}read(){let{table:A,pos:e}=this;let n=A[e];if(n<128){this.pos+=1;return n}if(n<255){this.pos+=2;return 128+((n&127)<<8|A[e+1])}this.pos+=4;return 32640+(A[e+1]<<16|A[e+2]<<8|A[e+3])}read_signed(){let A=this.read();return A&1?~A>>1:A>>1}}function A(A){return Uint8Array.from(atob(A),A=>A.charCodeAt(0))}function e(e){let n=0;let c=0;let H=[];A:for(let A of e){n=n<<8|A;c+=8;while(c>=3){switch(n>>c-2&3){case 3:if(c<10)continue A;H.push(n>>(c-=10)&255);continue;case 2:if(c<6)continue A;H.push(n>>(c-=6)&15);continue;default:H.push(n>>(c-=3)&3)}}}return H}const n=e(A("4DLTwWQnlM7ZPD72dULP/jXsbxDgNvP/jPsgk/+vxPc4DcM="));const c=e(A("GWo1T41NjWTTmYyFngefm4DGmyZpSTih4DnTt5yZZkmc3oxuSbEcWPAaAcwWdrZbs7WYq844ia5cfp0o8BkJoSWLGclyKlJSUGRGVYymZpEsWM5RRSJlkSbM8hM+I1M0lnFjOUZVUWWjfIrJ5yzQksWM5RlVKSc7kRlWJVIzNmRokppt2SStmRGY3YrLaWcXOIKksyTotFSKqfFizi5qMqpLMk6mRkVRVtpZzMszSYgsaLOJPGDSSp2ZJiTRNUnZnUmO5KiTKcYJOLqUkzKpSZBpBySTJzkhvNuS8BkGTmUrgL1wG0GRTkmRZSZFkJkU5JkV5zkyLQ1kDxqbVlMuCBxx6zPi1OMU4pZaWVZmiyhVTVTTGc1zazPlcujVY+bJLJC8qUteWSY1NW8+WgnHVXNVNcsfzHTXl53SjPHe88nytV0ZXLwPLKZZMplQSSScfWamclszuRTSWysz3NTmxmiwk0PFSWa0piXWTJa8hvyHEWsrOoGiTgNQNq4HN8ZrxXFNC4XPnwG+rIDwHuy5aTKVnE6uximczmczmczmcznfsixo6zZwGrZXn51ZJbHLlZzM5UdUsxDROA/4yHED+GaPN6eA9zFOAzijgNLlRJlxjO3VNnFGjUWTbpXjz041yZCc3puVS2fGMcqmUympnM5zyTflVN1eSWYvJmPQcJwH3LasmnsllsNplJKKO+4hwFc3AdYs2nOQVLFCZVPiBU11RmMikNpJZJJJO/I2o1T41NjUmgnHnMplMm2WZ8RsONHEyjersi3uVyZa9YNrOX5dwCx15jfjkmSU49LlcuPHJZLsq4DHlVNkkmSSZRRmldhvM5RrN5nK0PgO3pxaqjGJjlRp0WZE5YUysXOkUU5hiZUuQvG5ToGcSYosyKloLOOpyVT0z6BkGTyWU5s8dWNy41PJZPqGk5vmduZz5dRVwHTY+cqLS07KKMqxbGsmxzFMXp06TJKc+MtuMz1TZqcSoyenYDileJHLNBnJMhvNc2dy1TSGhJYsZyjKakk0ZjLOp3LwFeuGXHtIoq4DJs2WTZFotdU1uJ51NVm2Nq+TF+AznPNk1OyhFUFHHilZTVo1Cy5V43pFGp26TwHD0nLTdVjryBYsbtJnKOWMlGmiqaYo5KUZp6uA7bGeAzc35lbweN7Nt5lr4DROJ8zY7eD6/j9R4Hx+hznge5nx81SaiapseU1WjVVGc4rLifBZhrey6XJnM+I6BLWruX3ijhNWyqnotnkM5R4Do8teIyUcDZxHCbXLa6Z6lRyPuZcsXp3TPOA3arJ1pVG4Yro3AY1ilmr04zwE+qnRykUlIbCTOdBMioM5xwyGUlzngPUXAdIuCz6+U38H6GP8BsM5xFTlGXgNVy13KqRcB4GP4jnUp4TYJzIUbzwGirEMp0ySqRcFyOiaZnvAaFIcbKJRNRkJJmMhJJLKJRJJJJKJUhnMhkJNRxGVmU4jmi4Djssk2Sy9Xm85LisuNcBJnGO25ZJTOrpuAxrg9YlxB2vdLNZnskN9kmcUVTZRRjyWncB6llylcrnpx11yzVVTUUT08BiZzfJauD4b/xk+wZBx/cz8Bry5ZXc52PF8/tBrPAZUc/OvnXuF2LkvL/+rbs14DcP/W/ch"));const H=e(A("0HGuA0LZcX4DfjPmHBZS+E+qbEaDTkmovgLxiHA5UMgz/gOBybgfi47IZuc57iMSyvhe/T1rc6Og6vInw2LaI+CxOeTFKnnnAeTR3GwUTZBVRkFFGQUTZBjVGgcBwk3e+vNVPZJu3AY3JxWlcF09PFd7puNbAMaHDctmHr49wnDvtfZE3Ae0XwHpmqYYrwGYYpLtc71jgNcfAZG5cS3abvv4klyhTYoJLv3/HUO6x3zvkfN08FzUnp/FwGl1e/m8+NbFNjQyqb4NSklyhTYpW+/0kTcB7RfAemapnNwGYKaxTWJ2WSc/3XB8nlH/nRew4CjJOA+DgMcr4D/jfjBnyDgejf/niNl4TR8z/88twHF7bkHL8B6oyD/xlfgfLkGNf+tc30Y0BjQE4OJYgMavGNC2TGjRUJMjc9xrxAY1joxoOSZUWGfEjjWRuSYy1Sz4ocayMY0BjQGNAY0BjQGNAY0BjQGNAY0BjQGNCTEeGyAz5IcRyNTZNPiOSmfJDiORqbJp8RyUz5IcRyNTZNPiOSmfJDiORqbJp8RyUz5IcRyNTZNXVw3TioCoCoCochwGRf+9S2ThNok/96NnuOSDXWsdY4JY1xei8Vk1Ww8="));const P=[e(A("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")),e(A("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")),e(A("4DPNi7/pu/58y9/03f9GV3/Rd/z/HZzz2+cAceWzcA8e5DO+g+QBzAcBtXfnHbsarpy7FeAt7/pu/5k19/03f8qr+/6bv+hJ7/pO/6Evv+m7/nTL3/Sd/zpff9F3/Ok9/0Hf86Z+/6bv+bJ7/nu/5s09/03f8uae/6Lv+XMvf893/Lk9/zXf8vJsQEmNYyJcex0TgCTGsZEuPY6Ltx7/qO/6HgMk8PcAHMBx/QeF/dGO7zs5/8admB/8adlo/8adlx/8adlq/8adli/8ab4uNYqqsQx/NPf/zgM0yFcBbwGPbGc1m4DFHwGI8BiW5nHeAyTNztNvAWPe+AVh4C3gLspWv51sU/AYvuWIya7wGLcBKa9w0E5bwGJZ7Joe4bGa9w1U37xwEsuVYrUbtV0BY1q23vINJ3ibK8oxR5jjtxsybTTlmZbmdC0TgJzoWjbys6x7RVlWWamck0LITj+hYisp3PgLjjOa4wcexrd6NqzDZTm2YZCaeAn4DInfluoSYzq9Vfwdaf/Gw8kf/Gw8eP/Gw8gf/Gw8ev/Gw8cf/Gw8fJ/42HjD/42Hj5v/Gw8Uf/Gw8fR/42HiD/42Hj6v/Gw8Mf/Gw8fZ/42HhD/42Hj7v/Gw8Ef/Gw8fiH/jYeAP/jYeNf/jYeSP/jYeNP/jYeQP/jYeNH/jYeOP/jYeNX/jYeMP/jYeNk/8bDxR/8bDkOIY60cikxvEt1OyYlud+wPFqTLkhxmnJDkqyQ14vkleMjdTsWKbqtyk3U7sNzOwYpua3CTczunheh4Xhu+rHTjE2OmzEsdORZDNkuITXuyeYqSV0CWXEvC77wvPOL+F9HhefVu5/8aX9R/8aX84/8aX9B/8aX86/8aX8x/8aX88n/jS/kP/jS/nm/8aX8R/8aX89H/jS/gP/jS/nq/8aX7x/8aX89n/jS/cP/jS/nu/8aX7R/8aX8+If+NL9g/+NL+V/+NL+o/+NL+U/+NL+g/+NL+Uf+NL+Y/+NL+Vf+NL+Q/+NL+WT/xpfxH/xpfyzf+NL+A/+NL+Wj/xpfvH/xpfy1f+NL9w/+NL+Wz/xpftH/xpfy3f+NL9g/+NL+OX/xpf1H/xpfxv/xpf0H/xpe914t/40fhKxMZRZlHFb1rNR1DWbOB0XgN8xyY5Dj0hyHIFrmmyZkc1mJcxLmzA5rRlxzXNsxLzbLzLm2Wl5ll5OZZeRmFRznMKDldZN1qNludHK8ky82ZJl5syTMTdkgOR5IDj94OIXg4hkAOQ25gchtzA5DfnhyvIstNmRZabMiByHIgcdxHODkt+XHHb8uON45l5xTHMvOKY4DjeOVHIcZzI4vjAOL4wDi+MUHHcWBxXFqjj+LUG/JcuM+S5cZZsvOVTAnLcwJy3OjXlucGnLwcwy8HMMry4nK8uJWXnLll5zDLycyy/MCMvzo05ijmGY5kRlrOZZblzGYyHMnmJzZgrMcwKzHODLmeZFZnmRWZ50ZTUZzQVSDVSDnNmcHP5M8OfyZ0c9ozg5/Rmxz3Nqjn+bUHOcyqOdrODnOZUHK6c2OT350crtzo5PiOdGvL88NaqIznOiM7zwimo0io3zVGfMc6N82XnLstzA4vjFRtkqM+Zo5hlucGvL8yLkBOX5kVmaJWdHOTnhpzHPDiNFR0OrOjbIDi+M5kcfyAHI6c4M+Z55lOU49wHOHgOfk4DnKOA7nHqv/Gp/P/7xbnsaxI5XjWKHLcaxY5fjWMHMcaxrWeAu4DJ8SPAYxwGU4keAxbgMnxQ8Bi3AZTinPfV/68PNfe8H3vEyT3vJFnAbl73efb2H29aT3e1d3s5Pebh3m2k+ttXrbOT/4Plf+D45Px/98f9k/+Lpv/FzJ8XEvFvJ+qb6n8=")),A("n9e/5AAAAIB7v4G/pr+lARWADBkAABAaGQAAiBXDBAAAAIh0nG5eVmcBS4ASK2cBAoAiMW8CBE5QgAUED4AogCGAIgSAIXxLCgE5gAQFJAWAHXAKJAGAG3pVeAiAGXweXQQvIRZ4AmdmEoAFDEBYHwEGK2OAMmcKKnGAHlUGLHMWfAUbX3wMBCNpOFYBIzZnRgQBTQpGAwAiSyor7f6RtZ9p08gK/wByJQ8DFh8CwtDCw4ABHmLC5MLTB/8ASqyLADoABgE/ODUSASgvMCsBDB4VGAEnBCoHARUWDAUBAikiAgQngLaAyTo="),A("sofg0CITgBplDjeAAHlyEQJlgAAEVwoCL3IRL1YBgAd4XS+AEgZvfGN2NwsdVoABcFUDGGMuHkYEK2eAEEsMAholFx+ACAIlUSB6IREZKndgGAMnFjNYIQwCDlUrgAJY4IEhBsLiwsM="),A("spbg2oAAFzZnRoAZ4HEhBsLiwsOAAQ==")];const f=e(A("4LgNw4Dk5+A4fLSSiidIrzDFcQOyzqZIyZGcexvW686ppOMSGksy5W88oyrGDkObM4kZ6ljrzgmdJOk1LGinnBMsiTZx5M1vOCaCy8UWLTF5wTOknO6ljxzuVsyUnKJc3JnLMk6rWOvOCZyzJOq1jkmbozlmSk1LHXoxkmJNGJLPSp7KNiKprm0pY2SSZFmOKFS1nJKTsmKYvJIy1O5LbCapOCz98HmUmOPHVjy0DIKTlrJ3VZEd2sks4DW5c5qOOo5hj+Yy5fiOTU2PHrc4uzDFOAxhnFZDMU+A0bQOC1DIeL358BadgyDgeqm2lfrqkhqyBaguA5AsyHF5ZDqazLEsaxK05NRjNuWSZfdkh0O6w0LLXmRLSlROUyyrgNsoK87sDwWw4hiGIcHpp4DYjwGKy8NMypZMoch4DJVwPeycC1wGM15jJvTzW/KSlVJltc5z15JdiCyw2PMLqJCtcsmPAZBZismbozpJ0mpKdy8BoGJYudRxTgNrnVONrUsR2q3Zb+A4C/gN1mKUhJXAWzqdnHKsonMlBpry7EOBxWg0alixu3qZkozk6FKUZeA9uTy95lzufg+YJzeeTUTWvMytcj8OXLF+B56VzUUKfHpOAxR8PnebyZlQbji0pv4T0JziKnKMvAcLPwH7nPZOF2CfbZ//r5jNeA3D"));const i=A("iM2AAIAAgACAAIAAgACAAG4BEX1wgACASoA1AYZaAR+AHoIOgGRmAUcBkQz6ByaAGIAPbYC2gHfd0oWHKg86egGADHWANWOAdYAAgH2AAHd1gI6AhAGAIlQTUoEmgIUBUg==");const t=e(A("4XoDKSTLJaZysjVGIYlkxVJJKyho4k5ZDSSSVj9bvUhKam0rIdWlRNRNRMiOOlS4lVKlMb+O744xrN2RE/+MQxXM/h82Wgy1F1ScBiJJbKJRxxcB6ORE8DxjOI2PHJFZlxKkKRRKMq/8az2miQ=="));const o=e(A("4XoCceNWRos6+TjCqaOIE49juZ6VkOq4zOTIZJcTZU2I2nG+O744xrN2RE/+MQxXMvh86Ykp0mpGaXgMQxLF5uA9LI+B4zFbJMbxLLiZTQZJF/41ntdE"));const r=e(A("4DLTwPpbhwHJz8Bw+WklFE6RWTl2K4gdlnUyRkyEk49jet151TScYkNJZlyt55RlWMHIM3JMlEhc9Sx050ZJKDiixopZyZFIk2ceTNazkySlSHFFi0xOdFEyUGdVrHjnpsOZFnNyXKzJOq1jpzoozGVYoscWcqSSg4osdOkGdk60VPZRsRVNc2lLGySTm9xlKlrOSUnZpDMUljKkeISWlKY3ngs/fB5k8dWPLHloCM9BVdJy1k7qsiO7ORUmZ8BraRzomcklUTVI5hj+YyZgTKTKcopsWQSJF5wSmS86oS4DGGbTPIZi1wGjaBwPFlLGpcxllm2DIeL358BadgyDgeqk2tfrqkhqyBaguA5AsyHGVKeAxdY1iVpyajGa8ueYFSJZOdDmSSsNBy85mS0pUTlSoPAbcUZD53YHgthxDEMQ4DTzwG8vgeBPAbEeAxWXhpmVLJlDkPAZKuB72TgWuAxmvMZN7ObX5SUqnmMiU5z15JKaM+NizSmqRHX2iVMeAyAujFVnKZyWdy8BodCZOLnVJiZEVwG3STIrG1qtCJW1ElTE7K1IZeA4OkrgOARMh4DEJEpDkFWUTKSg0zJ5daVwOLTmYnUsWU5RW9TMlGcnSEyTwHtrlO7p7bN5c7n4PmDn8monzM4Rk5H3MuWL8D0DpxBT49JwGKPh87zeTMqDccWlN/CehOcRU5Rl4DhZ+A/c57JwuwT7bR/9fL5qce2DgBwG4Q=="));const x=(()=>{let f=new O(e(e(A("7LfNX//e9O6ADIB+facf/vx65oFF/+/Hrmkf/72a+Kf/73p+W9LUMo2l6Tof/73p3QeFkOS5RrHCdl//37T6gA4AXZXqH59px/+/HrmRUZD//ebXxOP/343caJkmOaP6P/970+obDimpalwmr4r1Wxcl1/+/d7eIAAAP/970b7BoEg0CQf/7329kAAAM//ftNvpyn5NK3XIudynJ9J2v9Pl1/+/a3UAAAASAAAAAAAAAZx1ugAAAH/+96PdhIKBiAyAc4AMgAHAAIAUADThoEg0CQfn2nAAAAAAAAAAAAAAAAAAP/970/LAAAAAAAAAAAAAAAAABv/37T6gAAAAAyAZAOAHAIIUCgZAPi7UAAAT/9+3G+zknT6TlPpaVunJc7knT6TlPpaVunJc7knT6TlPpaVunJc7knT6TlPpaVqnKflkudcjp3Kcn0ncWelvXf/v2n1AAAAAAAADgAAAAAAAAAAAAAAAAJ8V6gAAAAAAACf/v2432ACAMgAkAHAAZOAABQAABkAAAHAAABAAAYnwAGQASADgAMQAn53pBP/35Z/5B//vOP/EX/78m/8g//3nH/iGP/35H/5BP/35Z/4gz/9+R/7QL/9+Tf+IG//fkf+cBj/9+R/+IAH/+84/8gJ/+/LP/EAG//fkf+cAD//ecf+IAx/+/I//IAN/+/I/80ACf/vyz/yAMf/vyP/xAA//3nH/kBP/35Z/4h//vOP/IX/78m/8Q//3nH/kGP/35H/4hP/35Z/5Az/9+R/7IL/9+Tf+QG//fkf+aBj/9+R/+QD//e9PqAAAAAAAAAJBIOAkGIDEEMQGgDQKBoBBGQESCQcBjmrdAAAAAAAABj/9+1m+yclyuS51pOn5FqfScp9Wi51pOncpyfScp9OU6lpW6clyuS5VpW6clzuSdPyOU/JpW6clzuSdPqWU+pxW6clzuSdPpWk+lyW6clzuSdPpOlcltOU+lpW84lzuSdPqWU+lpW6dJzuSdPpOlclrk2/ef/37c7oGQaAAABQAAAfF2oAAAX/78ns7x//vZrxUmWUZD4G8cDJiHIahmOgcKbp9cxy7QMQ0Lgcg0PgPK4bRMQ0PhPYmzzJKMhzDQbnulGymTKsSkxDQZMQ0GTOOt7QcBjmrdAP/97S+s4//fjzz8NZ0bNem1nwfr1fLsb7b//e9Ppsi7/9+O2Ta+A9nP/34zfeb1bJeX2TVNwxPSfA+Pi+A9Xqvg7LjOT4X7ux6X/+85vz9cm8n/+82P7Pa7HLO7yLo+A5rTp8c1ybrdXl5TZOcy/deNy//fk97evgzbT/9+PH9m9Xidl9nFcck9LcM4+L4M12ruMs6PJPh3vrNp3/78n97ZNyznHOO0fI+R8j5NyznHOO0fI+R8j5NyznHOO0fI+R8j5NyznHOO0fI+R8j5NyznHOO0fI+R8j5NyznHOO0fI+R8j5NyznP/35P6+JynUtS6TuOO2/ivKz/9+U2Tf/78bdMv/349a3/E+73/78d+/v/35L7d//vx9846f/+b4L3/4s8vgvw+TX/793MsgHxdriAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAG461wAAAAAAAAAAAAAAAAAAD//ec214AZ/+/G7FwABAFYAQAoAG4Y9kAA5AAZAAcgAHQADYuAAIAqACAGOXdwAM4xzgABkAA4ACUALQABwAE55UAWcQAMgAHAAT09gALN4AGkADEABoAC4AAcABOe6AEgAzLgABwACAGKgCkAIAUADIABwACAFAAyAA+LtuQAAASAAAD4u1AAAE//ftxvs5J04AAAyAAABAAADIAAAEAAANOAAAGgAAASAAADQAAAJAAABzgAAA4AAACgAAAcAAABQAAAc40GTEOcyDgqNOxDQZMnoyDgsT4TENBp8KjIOE+GTENC3DgqMhzjQZMQ5zIOCo07ENBkyejIOCxPhMQ0GnwqMg4T4ZMQ0LcOCoyHONBkxDnMg4KjTsQ0GTJ6Mg4LE+ExDQafCoyDhPhkxDQtw4KjIc40GTEOcyDgqNOxDQZMnoyDgsT4TENBp8KjIOE+GTENC3DgqMhzjQZMQ5zIOCo07ENBkyejIOCxPhMQ0GnwqMg4T4ZMQ0LcOCoyHONBkxDnMg4KjTsQ0GTJ6Mg4LE+ExDQafCoyDhPhkxDQtwQyBDIJPgkGgSDQKfAoHAUDgMf/v2f44Af/72a9d1z2T//ezH9tt1jltd5HUfA03J3x2XPVur4Lysy07F+68bl/+/Lb893DG8n/78eP7PavE7L7OK45bTnGObjuGNdrrmLajyW4d762ad/+/J7z9fAezn/78ZvvN6tkvL7Jqm4YnpPgfHxfAer1XwdlxnJ8L93Y9L//ec35+uTeT//ebH9ntdjlnd5F0fAc1p0+Oa5N1ury8psnOZfuvG5f/vye9vXwZtp/+/Hj+zerxOy+ziuOSeluGcfF8Ga7V3GWdHknw731m07/9+Tfn657Lf/vxj+826zS8u8jqPgybk+B8fFz1eq+DsuM5PX7ux6X/+85vz3cW8n/+8eP7Pa7FrO7aLo5zTnLs47i3Wuuryjyc41768a1/+/J7z9fA2zn/78bPvN6vEvL7LKs4p6T4Nx8XwNq9XcNZ0bSfC/fWPS//3tN+frnsn/+9mP7bbrHLa7yOo+BpuTvjsuerdXwXlZlp2L9143L/9+W357uGN5P/348f2e1eJ2X2cVxy2nOMc3HcMa7XXMW1Hktw731s07/9+T3n6+A9nP/34zfeb1bJeX2TVNwxPSfA+Pi+A9Xqvg7LjOT4X7ux6X/+85vz9cm8n/+82P7Pa7HLO7yLo+A5rTp8c1ybrdXl5TZOcy/deNy//fk97evgzbT/9+PH9m9Xidl9nFcck9LcM4+L4M12ruMs6PJPh3vrNp3/78m/P1z2W//fjH95t1ml5d5HUfBk3J8D4+Lnq9V8HZcZyev3dj0v/95zfnu4t5P/948f2e12LWd20XRzmnOXZx3FutddXlHk5xr3141r/9+T+/M45x2j5HyPkfJuWc45x2j5HyPkfJuWc45x2j5HyPkfJuWc45x2j5HyPkfJuWc45x2j5HyPkfJuWc45x2j5HyPkfJuWc45x2j5HyPkfJuWc45x2j5HyPkfJuWc45x2j5HyPkfJuWc45x2j5HyPkfJuWc45x2j5HyPkfJuWc45x2j5HyPkfJuWc45x2j5HyPkfJuWc45x2j5HyPkfJuWc45x2j5HyPkfJuWc45x2j5HyPkfJuWc45x2j5HyPkfJuWc45x2j5HyPkfJuWc45x2j5HyPkfJuWc45x2j5HyPkfJuWc45x2j5HyPkfJuWc45x2j5HyPkfJuWc45x2j5HyPkfJuWc45x2j5HyPkfJuWc45x2j5HyPkfJuWc45x2j5HyPkfJuWc45x2j5HyPkfJuWc45x2j5HyPkfJuWc45x2j5HyPkfJuWc45x2n/78n9fFpWqcp1OU6lqXSdLpOlclyuS5VpWqcp1OU6lqXSdLpOlcl"))));let i=[];while(f.more){let e=f.read();let n=f.read_byte();let c=f.read();let H=[];for(let A=0;A<e;A++)H.push([]);let P=[];for(let A=0;A<n;A++){if(c&1<<A-1){P.push(A);H.forEach(A=>A.push(8205))}else{let e=0;for(let A of H)A.push(e+=f.read_signed())}}for(let e of P){let A=i[e];if(!A)i[e]=A=[];A.push(...H)}}i.forEach((A,n)=>{if(!A)return;A.sort((A,e)=>A[n-1]-e[n-1])});return i})();export const DEBUG={TABLE_I:n,TABLE_D:c,TABLE_N:H,TABLE_W:P,TABLE_M:f,TABLE_V:i,TABLE_LD:t,TABLE_RD:o,TABLE_T:r,ZWNJ_EMOJI:x};export function is_zwnj_emoji(H,P){let{length:f}=H;for(let c=Math.min(P,x.length);c>0;c--){let e=x[c];if(!e)continue;A:for(let A of e){let n=P-c;for(let e of A){if(n>=f)continue A;let A=H[n];if(A===65039){n++;continue}else if(e!=H[n++]){continue A}}return true}}return false}function j(A,e){let n=0;let c=new O(A);while(c.more){n+=c.read();if(n==e)return true;if(n>e)break}return false}function D(A,n){let c=0;let H=new O(A);while(H.more){c+=H.read();let A=n-c;if(A<0)break;let e=H.read();if(A<e)return true;c+=e}return false}function l(A,n){let c=0,H=0;let P=new O(A);while(P.more){c+=P.read();let A=n-c;if(A<0)break;let e=P.read();H+=P.read_signed();if(A<e)return H+A;c+=e}}function k(A,n,e){let c=0,H=0;let P=new O(A);let f=0;while(P.more){c+=P.read();if(c>e)break;if(c==e){let e=[];for(let A=0;A<n;A++){e.push(H+=P.read_signed())}return e}for(let A=0;A<n;A++){H+=P.read_signed()}}}function y(c){let H=[];let P=c.lastIndexOf("-");for(let e=0;e<P;++e){let A=c.charCodeAt(e);if(A>=128)throw new Error("punycode: expected basic");H.push(A)}P++;const f=36;const i=1;const O=26;const t=38;const o=700;const r=f-i;const x=r*O>>1;let j=72;let D=128;let l=0;const{length:k}=c;while(P<k){let A=l;for(let e=1,n=f;;n+=f){if(P>=k)throw new Error("punycode: invalid");let A=c.charCodeAt(P++);if(A<58){A-=22}else if(A<91){A-=65}else if(A<123){A-=97}else{throw new Error(`punycode: invalid byte ${A}`)}l+=A*e;const R=n<=j?i:n>=j+O?O:n-j;if(A<R)break;e*=f-R}const y=H.length+1;let e=l-A;e=A==0?e/o|0:e>>1;e+=e/y|0;let n=0;while(e>x){e=e/r|0;n+=f}j=n+f*e/(e+t)|0;D+=l/y|0;l%=y;H.splice(l++,0,D)}return String.fromCodePoint(...H)}export function is_disallowed(A){return D(c,A)}export function is_ignored(A){return D(n,A)}export function is_combining_mark(A){return D(f,A)}export function get_mapped(e){let n=l(H,e);if(n)return n;for(let A=0;A<P.length;A++){n=k(P[A],A+1,e);if(n)return n}}function R(A){return A.replace(/[^\-a-z0-9]/giu,A=>`\\u{${A.codePointAt(0).toString(16).toUpperCase()}}`)}export class DisallowedLabelError extends Error{constructor(A,e){super(`Disallowed label "${R(e)}": ${A}`);this.label=e}}export class DisallowedCharacterError extends Error{constructor(A,e,n=""){super(`Disallowed character "${R(String.fromCodePoint(A))}" at position ${1+e}`+(n?`: ${n}`:""));this.codePoint=A;this.offset=e}}export function idna(A,c=false){if(typeof A!=="string")throw new TypeError("expected string");let H=[...A].map(A=>A.codePointAt(0));const P=[];return String.fromCodePoint(...H.map((e,n)=>{if(is_disallowed(e)){if(c)return P;throw new DisallowedCharacterError(e,n)}if(is_ignored(e))return P;if(e===8204){if(n>0&&j(i,H[n-1])){return e}if(n>0&&n<H.length-1){let A=n-1;while(A>1&&D(r,H[A]))A--;if(D(t,H[A])){let A=n+1;while(A<H.length-1&&D(r,H[A]))A++;if(D(o,H[A])){return e}}}if(c)return P;throw new DisallowedCharacterError(e,n,`ZWJ outside of context`)}else if(e===8205){if(n>0&&j(i,H[n-1])){return e}if(is_zwnj_emoji(H,n)){return e}if(c)return P;throw new DisallowedCharacterError(e,n,`ZWNJ outside of context`)}return get_mapped(e)??e}).flat()).normalize("NFC")}export function ens_normalize(A,e=false){return idna(A,e).split(".").map(A=>{if(A.startsWith("xn--")){A=idna(y(A.slice(4)),e)}if(A.length>=4&&A[2]=="-"&&A[3]=="-")throw new DisallowedLabelError(`double-hyphen at position 3`,A);if(A.startsWith("-"))throw new DisallowedLabelError(`leading hyphen`,A);if(A.endsWith("-"))throw new DisallowedLabelError(`trailing hyphen`,A);if(A.length>0&&is_combining_mark(A.codePointAt(0)))throw new DisallowedLabelError(`leading combining mark`,A);return A}).join(".")} | ||
export const VERSION="1.1.0";export const UNICODE_VERSION="14.0.0";function A(A){return Uint8Array.from(atob(A),A=>A.charCodeAt(0))}function e(e){let n=0;let c=0;let H=[];A:for(let A of e){n=n<<8|A;c+=8;while(c>=3){switch(n>>c-2&3){case 3:if(c<10)continue A;H.push(n>>(c-=10)&255);continue;case 2:if(c<6)continue A;H.push(n>>(c-=6)&15);continue;default:H.push(n>>(c-=3)&3)}}}return H}class o{constructor(A){this.table=A;this.pos=0}get more(){return this.pos<this.table.length}read_byte(){return this.table[this.pos++]}read(){let{table:A,pos:e}=this;let n=A[e];if(n<128){this.pos+=1;return n}if(n<255){this.pos+=2;return 128+((n&127)<<8|A[e+1])}this.pos+=4;return 32640+(A[e+1]<<16|A[e+2]<<8|A[e+3])}read_signed(){let A=this.read();return A&1?~A>>1:A>>1}}function P(A,e){let n=0;let c=new o(A);while(c.more){n+=c.read();if(n==e)return true;if(n>e)break}return false}function t(A,n){let c=0;let H=new o(A);while(H.more){c+=H.read();let A=n-c;if(A<0)break;let e=H.read();if(A<e)return true;c+=e}return false}function c(A,n,e){let c=0,H=0;let O=new o(A);while(O.more){c+=O.read();if(c>e)break;if(c==e){let e=[];for(let A=0;A<n;A++){e.push(H+=O.read_signed())}return e}for(let A=0;A<n;A++){H+=O.read_signed()}}}function H(A,n,c){let H=0,O=0;let P=new o(A);while(P.more){H+=P.read();let A=c-H;if(A<0)break;let e=P.read();O+=P.read_signed();if(A<e&&A%n==0)return[O+A];H+=e}}function n(A){let P=new o(A);let t=[];while(P.more){let e=P.read();let n=P.read_byte();let c=P.read();let H=[];for(let A=0;A<e;A++)H.push([]);let O=[];for(let A=0;A<n;A++){if(c&1<<A-1){O.push(A);H.forEach(A=>A.push(8205))}else{let e=0;for(let A of H)A.push(e+=P.read_signed())}}for(let e of O){let A=t[e];if(!A)t[e]=A=[];A.push(...H)}}return t}function O(A){return A.replace(/[^\.\-a-z0-9]/giu,A=>`{${A.codePointAt(0).toString(16).toUpperCase()}}`)}const j=e(A("4DLTwWQnlM7ZPD72dULP/jXsbxDgNvP/jPsgk/+vxPc4DcM="));const l=e(A("GWo1T41NjWTTmYyFngefm4DGmyZpSTih4DnTt5yZZkmc3oxuSbEcWPAaAcwWdrZbs7WYq844ia5cfp0o8BkJoSWLGclyKlJSUGRGVYymZpEsWM5RRSJlkSbM8hM+I1M0lnFjOUZVUWWjfIrJ5yzQksWM5RlVKSc7kRlWJVIzNmRokppt2SStmRGY3YrLaWcXOIKksyTotFSKqfFizi5qMqpLMk6mRkVRVtpZzMszSYgsaLOJPGDSSp2ZJiTRNUnZnUmO5KiTKcYJOLqUkzKpSZBpBySTJzkhvNuS8BkGTmUrgL1wG0GRTkmRZSZFkJkU5JkV5zkyLQ1kDxqbVlMuCBxx6zPi1OMU4pZaWVZmiyhVTVTTGc1zazPlcujVY+bJLJC8qUteWSY1NW8+WgnHVXNVNcsfzHTXl53SjPHe88nytV0ZXLwPLKZZMplQSSScfWamclszuRTSWysz3NTmxmiwk0PFSWa0piXWTJa8hvyHEWsrOoGiTgNQNq4HN8ZrxXFNC4XPnwG+rIDwHuy5aTKVnE6uximczmczmczmcznfsixo6zZwGrZXn51ZJbHLlZzM5UdUsxDROA/4yHED+GaPN6eA9zFOAzijgNLlRJlxjO3VNnFGjUWTbpXjz041yZCc3puVS2fGMcqmUympnM5zyTflVN1eSWYvJmPQcJwH3LasmnsllsNplJKKO+4hwFc3AdYs2nOQVLFCZVPiBU11RmMikNpJZJJJO/I2o1T41NjUmgnHnMplMm2WZ8RsONHEyjersi3uVyZa9YNrOX5dwCx15jfjkmSU49LlcuPHJZLsq4DHlVNkkmSSZRRmldhvM5RrN5nK0PgO3pxaqjGJjlRp0WZE5YUysXOkUU5hiZUuQvG5ToGcSYosyKloLOOpyVT0z6BkGTyWU5s8dWNy41PJZPqGk5vmduZz5dRVwHTY+cqLS07KKMqxbGsmxzFMXp06TJKc+MtuMz1TZqcSoyenYDileJHLNBnJMhvNc2dy1TSGhJYsZyjKakk0ZjLOp3LwFeuGXHtIoq4DJs2WTZFotdU1uJ51NVm2Nq+TF+AznPNk1OyhFUFHHilZTVo1Cy5V43pFGp26TwHD0nLTdVjryBYsbtJnKOWMlGmiqaYo5KUZp6uA7bGeAzc35lbweN7Nt5lr4DROJ8zY7eD6/j9R4Hx+hznge5nx81SaiapseU1WjVVGc4rLifBZhrey6XJnM+I6BLWruX3ijhNWyqnotnkM5R4Do8teIyUcDZxHCbXLa6Z6lRyPuZcsXp3TPOA3arJ1pVG4Yro3AY1ilmr04zwE+qnRykUlIbCTOdBMioM5xwyGUlzngPUXAdIuCz6+U38H6GP8BsM5xFTlGXgNVy13KqRcB4GP4jnUp4TYJzIUbzwGirEMp0ySqRcFyOiaZnvAaFIcbKJRNRkJJmMhJJLKJRJJJJKJUhnMhkJNRxGVmU4jmi4Djssk2Sy9Xm85LisuNcBJnGO25ZJTOrpuAxrg9YlxB2vdLNZnskN9kmcUVTZRRjyWncB6llylcrnpx11yzVVTUUT08BiZzfJauD4b/xk+wZBx/cz8Bry5ZXc52PF8/tBrPAZUc/OvnXuF2LkvL/+rbs14DcP/W/ch"));const D=e(A("0HGuA0LZcX4DfjPmHBZS+E+qbEaDTkmovgLxiHA5UMgz/gOBybgfi47IZuc57iMSyvhe/T1rc6Og6vInw2LaI+CxOeTFKnnnAeTR3GwUTZBVRkFFGQUTZBjVGgcBwk3e+vNVPZJu2/urGZOK0Dgunp4rvdNxrYBjQ4blsw9fHuE4d9r7Im4D2i+A9M1TDFeAzDFJdrnescBrj4DI3LiW7Td9/EkuUKbFBJd+/46h3WO+d8j5unguak9P4uA0ur383nxrYpsaGVTfBqUkuUKbFK33+kibgPaL4D0zVM5uAzBTWKaxOyyTn+64Pk8o/86L2HAUZJwHwcBjlfAf8b8YM+QcD0b/88RsvCaPmf/nluA4vbcg5fgPVGQf+Mr8D5cgxr/1rm+jGgMaAnBxLEBjV4xoWyY0aKhJkbnuNeIDGsdGNByTKiwz4kcayNyTGWqWfFDjWRjGgMaAxoDGgMaAxoDGgMaAxoDGgMaAxoSYjw2QGfJDiORmfJJ8RyMz5IcRyMz5JPiORmfJDiORmfJJ8RyMz5IcRyMz5JPiORmfJDiORmfJK6uG6UVAVAVAVDkOAyL/3qWycJtEn/vRs9xyQa61jrHBLGuL0Xismq2H"));const f=A("gIAwgYIJBnICCBABLhIBBl4hBk4nEFoBEiIIKDQCElQSCkiBCBiCpHAigJAINlQBDm4BYB6YUIAWseAKYIDAWQiA4IyGBpmuE2Qy+Nwu/wB0ABIcgACABg6AxAI+IA4KgBgOFDAKEDw=");const g=[e(A("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")),e(A("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")),e(A("4DPNi7/pu/58y9/03f9GV3/Rd/z/HZzz2+cAceWzcA8e5DO+g+QBzAcBtXfnHbsarpy7FeAt7/pu/5k19/03f8qr+/6bv+hJ7/pO/6Evv+m7/nTL3/Sd/zpff9F3/Ok9/0Hf86Z+/6bv+bJ7/nu/5s09/03f8uae/6Lv+XMvf893/Lk9/zXf8vJsQEmNYyJcex0TgCTGsZEuPY6Ltx7/qO/6HgMk8PcAHMBx/QeF/dGO7zs5/8admB/8adlo/8adlx/8adlq/8adli/8ab4uNYqqsQx/NPf/zgM0yFcBbwGPbGc1m4DFHwGI8BiW5nHeAyTNztNvAWPe+AVh4C3gLspWv51sU/AYvuWIya7wGLcBKa9w0E5bwGJZ7Joe4bGa9w1U37xwEsuVYrUbtV0BY1q23vINJ3ibK8oxR5jjtxsybTTlmZbmdC0TgJzoWjbys6x7RVlWWamck0LITj+hYisp3PgLjjOa4wcexrd6NqzDZTm2YZCaeAn4DInfluoSYzq9Vfwdaf/Gw8kf/Gw8eP/Gw8gf/Gw8ev/Gw8cf/Gw8fJ/42HjD/42Hj5v/Gw8Uf/Gw8fR/42HiD/42Hj6v/Gw8Mf/Gw8fZ/42HhD/42Hj7v/Gw8Ef/Gw8fiH/jYeAP/jYeNf/jYeSP/jYeNP/jYeQP/jYeNH/jYeOP/jYeNX/jYeMP/jYeNk/8bDxR/8bDkOIY60cikxvEt1OyYlud+wPFqTLkhxmnJDkqyQ14vkleMjdTsWKbqtyk3U7sNzOwYpua3CTczunheh4Xhu+rHTjE2OmzEsdORZDNkuITXuyeYqSV0CWXEvC77wvPOL+F9HhefVu5/8aX9R/8aX84/8aX9B/8aX86/8aX8x/8aX88n/jS/kP/jS/nm/8aX8R/8aX89H/jS/gP/jS/nq/8aX7x/8aX89n/jS/cP/jS/nu/8aX7R/8aX8+If+NL9g/+NL+V/+NL+o/+NL+U/+NL+g/+NL+Uf+NL+Y/+NL+Vf+NL+Q/+NL+WT/xpfxH/xpfyzf+NL+A/+NL+Wj/xpfvH/xpfy1f+NL9w/+NL+Wz/xpftH/xpfy3f+NL9g/+NL+OX/xpf1H/xpfxv/xpf0H/xpe914t/40fhKxMZRZlHFb1rNR1DWbOB0XgN8xyY5Dj0hyHIFrmmyZkc1mJcxLmzA5rRlxzXNsxLzbLzLm2Wl5ll5OZZeRmFRznMKDldZN1qNludHK8ky82ZJl5syTMTdkgOR5IDj94OIXg4hkAOQ25gchtzA5DfnhyvIstNmRZabMiByHIgcdxHODkt+XHHb8uON45l5xTHMvOKY4DjeOVHIcZzI4vjAOL4wDi+MUHHcWBxXFqjj+LUG/JcuM+S5cZZsvOVTAnLcwJy3OjXlucGnLwcwy8HMMry4nK8uJWXnLll5zDLycyy/MCMvzo05ijmGY5kRlrOZZblzGYyHMnmJzZgrMcwKzHODLmeZFZnmRWZ50ZTUZzQVSDVSDnNmcHP5M8OfyZ0c9ozg5/Rmxz3Nqjn+bUHOcyqOdrODnOZUHK6c2OT350crtzo5PiOdGvL88NaqIznOiM7zwimo0io3zVGfMc6N82XnLstzA4vjFRtkqM+Zo5hlucGvL8yLkBOX5kVmaJWdHOTnhpzHPDiNFR0OrOjbIDi+M5kcfyAHI6c4M+Z55lOU49wHOHgOfk4DnKOA7nHqv/Gp/P/7xbnsaxI5XjWKHLcaxY5fjWMHMcaxrWeAu4DJ8SPAYxwGU4keAxbgMnxQ8Bi3AZTinPfV/68PNfe8H3vEyT3vJFnAbl73efb2H29aT3e1d3s5Pebh3m2k+ttXrbOT/4Plf+D45Px/98f9k/+Lpv/FzJ8XEvFvJ+qb6n8=")),A("n9e/5AAAAIB7v4G/pr+lARWADBkAABAaGQAAiBXDBAAAAIh0nG5eVmcBS4ASK2cBAoAiMW8CBE5QgAUED4AogCGAIgSAIXxLCgE5gAQFJAWAHXAKJAGAG3pVeAiAGXweXQQvIRZ4AmdmEoAFDEBYHwEGK2OAMmcKKnGAHlUGLHMWfAUbX3wMBCNpOFYBIzZnRgQBTQpGAwAiSyor7f6RtZ9p08gK/wByJQ8DFh8CwtDCw4ABHmLC5MLTB/8ASqyLADoABgE/ODUSASgvMCsBDB4VGAEnBCoHARUWDAUBAikiAgQngLaAyTo="),A("sofg0CITgBplDjeAAHlyEQJlgAAEVwoCL3IRL1YBgAd4XS+AEgZvfGN2NwsdVoABcFUDGGMuHkYEK2eAEEsMAholFx+ACAIlUSB6IREZKndgGAMnFjNYIQwCDlUrgAJY4IEhBsLiwsM="),A("spbg2oAAFzZnRoAZ4HEhBsLiwsOAAQ==")];const r=e(A("4LgNw4Dk5+A4fLSSiidIrzDFcQOyzqZIyZGcexvW686ppOMSGksy5W88oyrGDkObM4kZ6ljrzgmdJOk1LGinnBMsiTZx5M1vOCaCy8UWLTF5wTOknO6ljxzuVsyUnKJc3JnLMk6rWOvOCZyzJOq1jkmbozlmSk1LHXoxkmJNGJLPSp7KNiKprm0pY2SSZFmOKFS1nJKTsmKYvJIy1O5LbCapOCz98HmUmOPHVjy0DIKTlrJ3VZEd2sks4DW5c5qOOo5hj+Yy5fiOTU2PHrc4uzDFOAxhnFZDMU+A0bQOC1DIeL358BadgyDgeqm2lfrqkhqyBaguA5AsyHF5ZDqazLEsaxK05NRjNuWSZfdkh0O6w0LLXmRLSlROUyyrgNsoK87sDwWw4hiGIcHpp4DYjwGKy8NMypZMoch4DJVwPeycC1wGM15jJvTzW/KSlVJltc5z15JdiCyw2PMLqJCtcsmPAZBZismbozpJ0mpKdy8BoGJYudRxTgNrnVONrUsR2q3Zb+A4C/gN1mKUhJXAWzqdnHKsonMlBpry7EOBxWg0alixu3qZkozk6FKUZeA9uTy95lzufg+YJzeeTUTWvMytcj8OXLF+B56VzUUKfHpOAxR8PnebyZlQbji0pv4T0JziKnKMvAcLPwH7nPZOF2CfbZ//r5jNeA3D"));const i=A("iM2AAIAAgACAAIAAgACAAG4BEX1wgACASoA1AYZaAR+AHoIOgGRmAUcBkQz6ByaAGIAPbYC2gHfd0oWHKg86egGADHWANWOAdYAAgH2AAHd1gI6AhAGAIlQTUoEmgIUBUg==");const x=e(A("4XoDKSTLJaZysjVGIYlkxVJJKyho4k5ZDSSSVj9bvUhKam0rIdWlRNRNRMiOOlS4lVKlMb+O744xrN2RE/+MQxXM/h82Wgy1F1ScBiJJbKJRxxcB6ORE8DxjOI2PHJFZlxKkKRRKMq/8az2miQ=="));const y=e(A("4XoCceNWRos6+TjCqaOIE49juZ6VkOq4zOTIZJcTZU2I2nG+O744xrN2RE/+MQxXMvh86Ykp0mpGaXgMQxLF5uA9LI+B4zFbJMbxLLiZTQZJF/41ntdE"));const w=e(A("4DLTwPpbhwHJz8Bw+WklFE6RWTl2K4gdlnUyRkyEk49jet151TScYkNJZlyt55RlWMHIM3JMlEhc9Sx050ZJKDiixopZyZFIk2ceTNazkySlSHFFi0xOdFEyUGdVrHjnpsOZFnNyXKzJOq1jpzoozGVYoscWcqSSg4osdOkGdk60VPZRsRVNc2lLGySTm9xlKlrOSUnZpDMUljKkeISWlKY3ngs/fB5k8dWPLHloCM9BVdJy1k7qsiO7ORUmZ8BraRzomcklUTVI5hj+YyZgTKTKcopsWQSJF5wSmS86oS4DGGbTPIZi1wGjaBwPFlLGpcxllm2DIeL358BadgyDgeqk2tfrqkhqyBaguA5AsyHGVKeAxdY1iVpyajGa8ueYFSJZOdDmSSsNBy85mS0pUTlSoPAbcUZD53YHgthxDEMQ4DTzwG8vgeBPAbEeAxWXhpmVLJlDkPAZKuB72TgWuAxmvMZN7ObX5SUqnmMiU5z15JKaM+NizSmqRHX2iVMeAyAujFVnKZyWdy8BodCZOLnVJiZEVwG3STIrG1qtCJW1ElTE7K1IZeA4OkrgOARMh4DEJEpDkFWUTKSg0zJ5daVwOLTmYnUsWU5RW9TMlGcnSEyTwHtrlO7p7bN5c7n4PmDn8monzM4Rk5H3MuWL8D0DpxBT49JwGKPh87zeTMqDccWlN/CehOcRU5Rl4DhZ+A/c57JwuwT7bR/9fL5qce2DgBwG4Q=="));const B=n(e(e(A("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"))));export const DEBUG={TABLE_I:j,TABLE_D:l,TABLE_L1:D,TABLE_L2:f,TABLE_M:g,TABLE_CM:r,TABLE_V:i,TABLE_LD:x,TABLE_RD:y,TABLE_T:w,ZWNJ_EMOJI:B};export function is_zwnj_emoji(H,O){let{length:P}=H;for(let c=Math.min(O,B.length);c>0;c--){let e=B[c];if(!e)continue;A:for(let A of e){let n=O-c;for(let e of A){if(n>=P)continue A;let A=H[n];if(A===65039){n++;continue}else if(e!=H[n++]){continue A}}return true}}return false}function s(c){let H=[];let O=c.lastIndexOf("-");for(let e=0;e<O;++e){let A=c.charCodeAt(e);if(A>=128)throw new Error("punycode: expected basic");H.push(A)}O++;const P=36;const t=1;const o=26;const j=38;const l=700;const D=P-t;const f=D*o>>1;let g=72;let r=128;let i=0;const{length:x}=c;while(O<x){let A=i;for(let e=1,n=P;;n+=P){if(O>=x)throw new Error("punycode: invalid");let A=c.charCodeAt(O++);if(A<58){A-=22}else if(A<91){A-=65}else if(A<123){A-=97}else{throw new Error(`punycode: invalid byte ${A}`)}i+=A*e;const w=n<=g?t:n>=g+o?o:n-g;if(A<w)break;e*=P-w}const y=H.length+1;let e=i-A;e=A==0?e/l|0:e>>1;e+=e/y|0;let n=0;while(e>f){e=e/D|0;n+=P}g=n+P*e/(e+j)|0;r+=i/y|0;i%=y;H.splice(i++,0,r)}return String.fromCodePoint(...H)}export function is_disallowed(A){return t(l,A)}export function is_ignored(A){return t(j,A)}export function is_combining_mark(A){return t(r,A)}export function get_mapped(e){let n=H(D,1,e);if(n)return n;n=H(f,2,e);if(n)return n;for(let A=0;A<g.length;A++){n=c(g[A],A+1,e);if(n)return n}}export class DisallowedLabelError extends Error{constructor(A,e){super(`Disallowed label "${O(e)}": ${A}`);this.label=e}}export class DisallowedCharacterError extends Error{constructor(A,e,n=""){super(`Disallowed character "${O(String.fromCodePoint(A))}" at position ${1+e}`+(n?`: ${n}`:""));this.codePoint=A;this.offset=e}}export function idna(A,c=false){if(typeof A!=="string")throw new TypeError("expected string");let H=[...A].map(A=>A.codePointAt(0));const O=[];return String.fromCodePoint(...H.map((e,n)=>{if(is_disallowed(e)){if(c)return O;throw new DisallowedCharacterError(e,n)}if(is_ignored(e))return O;if(e===8204){if(n>0&&P(i,H[n-1])){return e}if(n>0&&n<H.length-1){let A=n-1;while(A>0&&t(w,H[A]))A--;if(t(x,H[A])){let A=n+1;while(A<H.length-1&&t(w,H[A]))A++;if(t(y,H[A])){return e}}}if(c)return O;throw new DisallowedCharacterError(e,n,`ZWJ outside of context`)}else if(e===8205){if(n>0&&P(i,H[n-1])){return e}if(is_zwnj_emoji(H,n)){return e}if(c)return O;throw new DisallowedCharacterError(e,n,`ZWNJ outside of context`)}return get_mapped(e)??e}).flat()).normalize("NFC")}export function ens_normalize(A,e=false){return idna(A,e).split(".").map(e=>{if(e.startsWith("xn--")){let A=s(e.slice(4));if(A!=idna(A,true))throw new DisallowedLabelError(`puny not idna`,e);e=A}if(/^.{2}--/u.test(e))throw new DisallowedLabelError(`double-hyphen at position 3`,e);if(e.startsWith("-"))throw new DisallowedLabelError(`leading hyphen`,e);if(e.endsWith("-"))throw new DisallowedLabelError(`trailing hyphen`,e);if(e.length>0&&is_combining_mark(e.codePointAt(0)))throw new DisallowedLabelError(`leading combining mark`,e);return e}).join(".")} |
{ | ||
"name": "@adraffy/ens-normalize", | ||
"version": "1.0.10", | ||
"version": "1.1.0", | ||
"description": "Compact ES6 Ethereum Name Service (ENS) Name Normalizer", | ||
@@ -12,3 +12,2 @@ "keywords": [ | ||
"type": "module", | ||
"main": "ens-normalize.js", | ||
"repository": { | ||
@@ -29,6 +28,9 @@ "type": "git", | ||
"scripts": { | ||
"test": "node test/test-all.js", | ||
"render": "node test/render.js", | ||
"dist": "uglifyjs ens-normalize.js --mangle --toplevel --output dist/ens-normalize.min.js" | ||
"test-source": "node test/test-lib.js build/ens-normalize.js", | ||
"test-build": "node test/test-lib.js dist/ens-normalize.js", | ||
"test-dist": "node test/test-lib.js dist/ens-normalize.min.js", | ||
"build-source": "node build/build-source.js", | ||
"build-dist": "uglifyjs dist/ens-normalize.js --mangle --toplevel --output dist/ens-normalize.min.js", | ||
"build": "(npm run test-source) && (npm run build-source) && (npm run test-build) && (npm run build-dist) && (npm run test-dist)" | ||
} | ||
} |
@@ -9,4 +9,9 @@ # ens-normalize.js | ||
[Demo](https://raffy.antistupid.com/eth/ens-resolver.html) | ||
--- | ||
* [Live Demo](https://raffy.antistupid.com/eth/ens-resolver.html) | ||
* Generated Report: [Unicode IDNATestV2](https://adraffy.github.io/ens-normalize.js/test/output/idna.html) | ||
* Generated Report: [eth-ens-namehash/normalize](https://adraffy.github.io/ens-normalize.js/test/output/ens.html) | ||
```Javascript | ||
@@ -41,4 +46,4 @@ import {ens_normalize} from '@adraffy/ens-normalize'; | ||
* Clone the repo to access `test/`. These files are not included in the npm version. | ||
* The actual source is in `test/ens-normalize.src.js`. Use `npm run render` after modification to build a new `ens-normalize.js`. | ||
* Use `npm run dist` to build the minified version. | ||
* Clone to access `build/`. These files are not included in the npm version. | ||
* The actual source is in `build/ens-normalize.js`. | ||
* Use `npm run dist` to build the injected and minified versions. |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
7
438
47
61257
1