diff --git a/dist/api/articles.json b/dist/api/articles.json new file mode 100644 index 0000000..09267d6 --- /dev/null +++ b/dist/api/articles.json @@ -0,0 +1,22 @@ +{ + "articles": [ + { + "id": 0, + "title": "Printing in Python", + "desc":"How to print to the terminal in python", + "contents": "*Introduction* This is my tutorial on how to print in python3. The print function is an easy way to show your users important information, design menus, and more. The print command is simple in it's usage. First you want to open a python interpreter. Next type the following: `print('Hello World')` After that you Hello World printed to the screen. You can check out more articles by scrolling down to the list of articles on this page." + }, + { + "id": 1, + "title": "Hiding Data on Linux", + "desc": "Showing you how to hide files within a file in linux.", + "contents":"*Steganography*Steganography is the art or practice of concealing a message, image or file within another message, image or file. There are many techniques to perform steganography, one of which is to hide messages on physical paper in the physical world. Another technique involves hiding messages in digital images or digital data, also called digital messages. Images are the typical victim used to hide information. Social steganography is when messages are hidden in the title and context of a video or image. Names or words may be misspelled that are popular in a given time to suggest alternative meanings, or pictures can be traced by paint or drawing tools. When information is hidden in telecommunication networks, this is called network steganography. Today steganography is mostly done on computers with tools such as steghide, stegstudio and more. One simple way of doing so is on linux, by combining a zip file and an image in order to hide the in the back part of the image file.*Hiding Files Inside of a JPG File* You can first download an image that you'd like to use. Next, you'll create a file to hide. You can use anything, given that it can be hidden within a zip. I'm using a text file called steg.txt. Next, you'll want to compress the file. You can do this in the terminal by running the following. `zip zipfile.zip steg.txt` Now that you have a zip file you can now hide the file. We'll do this by using the cat command. This command will combine the data within two files, and allow us to create a new file with the data concatenated. Run the following command using image.jpg as our image file and zipfile as the zip we just created. If you have a file with a different file extension (I.E. .jpg, .png) change StegFile.jpg to reflect this change in addition to the original image file. `cat image.jpg zipfile.zip > StegFile.jpg` Now that everything is combined, you can attempt to view the StegFile.jpg image to see if you've correctly combined the two files. If you'd like to get the files out of the zip/steg file, you can then run the following on the image. `unzip StegFile.jpg` As you can see, it just unzipped the steg.txt from the image and placed it in the current directory. *Conclusion* Steganography is an interesting concept, especially revolving computer forensics and can be used to hide files and make interesting puzzles. *Sources* ~ https://www.merriam-webster.com/dictionary/steganography ~ ~ https://en.wikipedia.org/wiki/Steganography#Techniques ~ ~ http://steghide.sourceforge.net/ ~ ~ http://stegstudio.sourceforge.net/ ~" + }, + { + "id": 2, + "title": "(POC) Cracking Wifi using Phone Numbers", + "desc": "Showing you how to crack wifi passwords using phone numbers.", + "contents":"*Introduction*This article is a proof of concept and should show you why it's dangerous to use your phone number as your wifi password. Since the introduction of wifi, people have tried breaking into and exploiting it. WEP an old edition of wifi password security was a very weak method and could be easily broken just by sniffing wifi traffic coming to/from the AP. Since the introduction of WPA security, cracking has become more and more difficult. Although, if you can find the right password, one could potentially crack the login for wireless networks. This is done by sniffing for a specific traffic containing an EAPoL or Extensible Authentication Protocol over Lan. This essentially contains an hashed version of the wifi password. Using this we can then bruteforce the password and crack the password. As found in another article (see references) many people use their phone numbers as their wifi passwords. This can make it specifically easy to crack since your phone number is often related to your location through your area code. For example, if I was living in New York City, my area code would be either 212 or 718. If the wifi's password hash was sniffed somewhere in NYC, every phone number could be stored in a file around 200MB in size. With the technology of today, that password would be cracked in a matter of minutes if you used a phone number as your password. *Prerequisits*~Linux~ ~Wifi Card~ ~git~ ~python3~ *Creating a Phone List* In order to create the list of phone numbers you'll need to use a tool that I created. You can grab the files by cloning the repository `git clone https://github.com/RaspberryProgramming/phone-wordlist-generator` Enter the folder by running `cd phone-wordlist-generator` Using this you can generate every phone number in your area code and put it into a file. Replacing AREA with your area code run `python3 main.py --staticnum AREA` You will then find the phone numbers in a file called phones.list *Capturing Wifi Hashes* You might be wondering, how would I even get these password hashes? Theres a simple tool called aircrack-ng that gives you a suite of tools that you'll need. If you're running Ubuntu Linux you can run `sudo apt install aircrack-ng` To install all of the necessary tools. On Arch/Manjaro run `sudo pacman -Sy aircrack-ng-git` Now that you've got aircrack installed, you can now set your wifi card in monitor mode. Run `ifconfig` You'll get something similar to the following output `wlan0: flags=4163 mtu 1500\ninet 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255\nether db:3d:4d:b5:ff:12 txqueuelen 1000 (Ethernet)\nRX packets 130672 bytes 152955605 (152.9 MB)\nRX errors 0 dropped 0 overruns 0 frame 0\nTX packets 40063 bytes 8409394 (8.4 MB)\nTX errors 0 dropped 0 overruns 0 carrier 0 collisions 0`In my case, I'll be using the wlan0 for any sniffing. This may be unneccesary, but I'll be killing any conflicting processed by running. `sudo airmon-ng check kill` Run the following to put your wifi card in monitor mode `sudo airmon-ng start wlan0` You should now have a wlan0mon which is the monitor interface for the wlan0 card. If you had something longer like wlx... it may be the same as the original name. Now that you created the monitor interface, you can now start the sniff traffic. You can do this by running airodump. Replace INTERFACE with your monitor interface. The -w argument specifies the filename we'll be storing the capture to. The --output-format argument specifies we want a pcap file. `sudo airodump-ng --output-format pcap -w capfile INTERFACE` After a while, you may start to capture handshakes. There are multiple ways to determine this but the way I'll go over is using aircrack-ng. You may have multiple capture files if you ran the command multiple times, so we'll run ls to find the file. `ls` Look for a file with the extension .pcap. Next, run aircrack-ng with FILENAME as the filename of your capture file `sudo aircrack-ng FILENAME` You should see a list of SSIDs similar to the following output `Reading packets, please wait...\nOpening capfile-02.cap\nRead 370 packets.\n\n # BSSID ESSID Encryption\n\n 1 00:5F:67:FB:48:FC Unknown\n 2 64:05:E4:6A:E1:2A CarPlay_e12a WPA (1 handshake)\n 3 B6:BC:1F:14:72:0B AndroidAP_6374 WPA (0 handshake)\n 4 BC:82:5D:57:FC:AC WiFi Hotspot 4877 Unknown\n 5 C6:D4:38:D1:4A:2A Unknown\n 6 F8:55:CD:67:54:E0 HotspotLftY Unknown\n 7 F8:55:CD:68:0A:1F Truck WiFi Unknown\n\nIndex number of target network ? 1` If you see, we have 1 handshake from CarPlay_e12a. We can then use the wordlist we made before to try to crack the password. Run aircrack with the wordlist argument `sudo aircrack-ng -w phones.list` You can then select the ssid or wifi name with the handshake to start cracking. If you have the password you'll see the following message `KEY FOUND: 1839231234`" + } + ] +} \ No newline at end of file diff --git a/dist/assets/background-C__p998u.webp b/dist/assets/background-C__p998u.webp new file mode 100644 index 0000000..7aa7b0b Binary files /dev/null and b/dist/assets/background-C__p998u.webp differ diff --git a/dist/assets/index-DL13lCrE.css b/dist/assets/index-DL13lCrE.css new file mode 100644 index 0000000..78c3541 --- /dev/null +++ b/dist/assets/index-DL13lCrE.css @@ -0,0 +1 @@ +*{box-sizing:border-box}a{overflow-wrap:anywhere}a:link{color:#fff;text-decoration:none;cursor:pointer}a:visited{color:#fff0f0;text-decoration:none;cursor:pointer}html,body{font-family:HelveticaNeue-Light,Helvetica Neue Light,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif;margin:0;width:100%;background-color:#3f3f4a}.App{height:100vh;display:flex;flex-direction:column}.App .app-content{height:100%}.App .app-content div{animation:pageFadeInAnimation ease .75s;animation-iteration-count:1;animation-fill-mode:forwards}@keyframes pageFadeInAnimation{0%{opacity:0}to{opacity:1}}@media only screen and (max-width:600px){.App .app-content{margin-bottom:4rem}}.btn{border-style:solid;border-color:#837483;border-radius:5px;border-width:1px;background-color:#373747;padding:6px;display:flex;text-align:center;align-items:center;align-content:center;justify-content:center;width:fit-content;cursor:pointer}.btn:hover{color:#c3c0c0;background-color:#363643;border-color:#c3c0c0}.btn.toggle{font-size:32px}.btn.toggle .on{display:block;height:32px}.btn.toggle .off{display:none}.btn.mar-la{margin-left:auto}.btn.mar-ra{margin-right:auto}.btn-compact-container{display:flex;flex-direction:row}.btn.btn-compact-right{border-top-left-radius:0;border-bottom-left-radius:0}.btn.btn-compact-left{border-top-right-radius:0;border-bottom-right-radius:0}.Navigation{z-index:18;position:relative;height:4rem;display:flex;flex-direction:row;background-color:#373747;margin:0;padding:0;width:100%}.Navigation a,.Navigation button{display:flex;flex-direction:column;align-items:center;justify-content:space-around;transition:background-color .25s ease-in,height .25s ease-in;border-bottom-left-radius:5px;border-bottom-right-radius:5px;z-index:10;background-color:inherit;text-align:center;font-size:16px;padding:5px 10px;height:4rem;border:none;color:#cfc0c0!important}.Navigation a:hover,.Navigation button:hover{background-color:#2f2f32;height:5rem;transition:background-color .3s ease-out,height .3s ease-out;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.Navigation .end{margin-left:auto;margin-right:25px}.Navigation svg{margin-top:auto;margin-bottom:4px;height:24px;width:24px}@media print{.Navigation .end{background-color:transparent}.Navigation,.Navigation a,.Navigation .button{border-bottom:1px black solid;border-radius:0}}@media only screen and (max-width:600px){.Navigation{position:fixed;bottom:0;left:0;height:4rem;justify-content:space-around;width:100vw}.Navigation a,.Navigation button{height:4rem;font-size:small;width:max-content}.Navigation a:hover,.Navigation button:hover{background-color:#2f2f32;height:4rem;transition:background-color .3s ease-out;border-top-left-radius:5px;border-top-right-radius:5px}.Navigation .end{margin:0}}.modal{display:flex;width:0;height:100vh;z-index:100;position:fixed;top:0;left:0;opacity:0;background-color:#0000;justify-content:center;align-items:center;transition:opacity .3s ease-out 50ms,width .3s ease-out 50ms,background-color 80ms ease-out;overflow:hidden}.modal.hide *{visibility:hidden;transition:visibility .3s}.modal.show{display:flex;width:100vw;background-color:#0006;opacity:1;transition:opacity .3s ease-in,width .3s ease-in,background-color .3s ease-in .2s}.modal .box{border:2px solid #544545;border-radius:10px;background-color:#fff;padding:25px}.modal .title{font-size:28px}.modal form{display:flex;flex-direction:column}.modal form *{margin-top:10px}.modal form button{padding:10px;font-size:medium;font-weight:700;width:fit-content;height:fit-content}.modal textarea{display:flex;text-align:flex-start;justify-content:flex-start}.modal textarea.large{height:10rem;width:20rem}@media only screen and (max-width:600px){.modal .box{border:2px solid #544545;border-radius:10px;background-color:#fff;padding:1.5rem;max-width:90vw;width:30rem}.modal .box .content{padding:0;margin:0}.modal .box .title{text-align:center}.modal textarea.large{height:15rem;width:auto}.modal{width:100vw;height:0;transition:opacity .3s ease-out 50ms,height .3s ease-out 50ms,background-color 80ms ease-out}.modal.show{height:100vh;transition:opacity .3s ease-in,height .3s ease-in,background-color .3s ease-in .2s}}.Github{background-color:#3f3f4a;color:#aa9aa0}.Github .btn{color:#aa9aa0}.Github .dropdown-list{width:fit-content;background-color:#3f3f4a;color:#dad4df;border-radius:4px;border:solid #5F5F6A 1px;text-align:center;padding:2px;font-size:inherit}.Github .sort-menu{display:flex;flex-direction:row;font-size:medium}.Github .select-menu{display:flex;flex-direction:row}.Github .dropdown-menu option{background-color:#5f5f6a}.repo-list{display:flex;flex-direction:column;width:75vw;margin-left:auto;margin-right:auto;padding-bottom:5.5rem}.repo{border-top-style:solid;border-top-color:#a4a4a1;border-top-width:2px;font-size:x-large;display:flex;flex-direction:column;align-items:left;margin-top:10px}.repo .title{color:#bf8d8c!important;font-size:28px;margin-top:10px;font-weight:700;width:fit-content;width:-moz-fit-content;text-align:start;padding:5px;border-radius:3px}.repo .title:hover{color:#000}.repo .content{display:flex;flex-direction:row;align-items:center;font-size:x-large}.repo .website{height:fit-content;height:-moz-fit-content;background-color:#5a5a5c;color:#fff;border-radius:10px;padding:10px;align-items:center;text-align:center;width:88px;font-size:large;flex-shrink:0}.repo .description{flex-grow:1;padding:5px}.repo .languages{display:flex;flex-direction:row;flex-wrap:wrap;align-content:center;align-items:center;padding:5px;width:100%}.repo .language{padding:5px;margin:2px 2px 2px 5px;border-radius:10px;background-color:#756b6a;color:#dad4df;font-size:medium}.repo .time{padding:5px;width:100%;text-align:start}.content{margin:25px;text-align:center}.loading{font-size:xxx-large}.avatar{border-radius:10rem;height:10rem;width:10rem}@media only screen and (max-width:600px){.repo-list{width:100%}.repo .content{flex-direction:column}.repo .time,.repo .content,.repo .languages{font-size:large}.Github .sort-menu{align-items:center;flex-direction:row}.Github .select-menu{flex-direction:row}.Github .sort-menu .btn.toggle{margin-left:auto}}.theater{width:100%;display:grid;place-items:center;grid-template-areas:"inner-div"}.theater.h-100{height:100%}.theater.h-50v{height:50vh}.theater-bg{height:inherit;width:100%;background-size:cover;background-image:url(/assets/background-C__p998u.webp);filter:blur(2px);-webkit-filter:blur(2px);z-index:0;grid-area:inner-div}.theater.peak .theater-bg{height:85vh}.theater-content{display:flex;flex-direction:column;text-shadow:0px 0px 2px black;text-align:center;z-index:1;color:#fafcf0;grid-area:inner-div;font-weight:bolder;max-width:100%;width:100%;background:#4c4c50bf;align-items:center}.theater-content .description,.theater-content h1{width:50vw}.theater-content .description{padding:10px}.theater-content a{color:#cfcfba!important}.theater-content h1{width:100%;text-align:center}@media only screen and (max-width:600px){.theater-content .description{width:80vw}}.article{color:#fff;align-items:center;display:flex;flex-direction:column;max-height:0;overflow:hidden;transition:max-height 1s ease}.article.open{max-height:100vh;transition:max-height 1s ease}.article.close{max-height:100vh}.article.show{max-height:none}.article .content{width:80vw;text-align:left;line-height:1.5}.article .section-title{font-size:xx-large;font-weight:700;margin-top:1rem;text-align:center}.article .code{padding:10px;background-color:#3a3b3b;color:#d3d3d3;border-radius:5px;margin:20px}.article h2{font-size:24px;font-weight:bolder;margin-top:20px;margin-bottom:10px}.article li{margin-left:2rem}.article a{color:#acacff}.Articles{display:flex;flex-direction:column;color:#af8d8c}.Articles h1{margin-left:auto;margin-right:auto}.listings{display:flex;flex-direction:column;width:75vw;margin-left:auto;margin-right:auto;padding-bottom:5.5rem}.listing{border-top-style:solid;border-top-color:#a4a4a1;border-top-width:2px;font-size:x-large;display:flex;flex-direction:column;align-items:left;margin-top:10px;color:#aa9aa0}.listing .title{color:#bf8d8c!important;font-size:24px;margin-top:10px;font-weight:700;width:fit-content;width:-moz-fit-content;text-align:start;padding:5px;border-radius:3px}.listing .content{display:flex;flex-direction:row;align-items:center;font-size:large}.listing .description{flex-grow:1;padding:10px}.ArticleEditor textarea{width:100%;height:35vh;border-style:solid;border-color:#d3d3d3;border-radius:2px;border-width:2px;padding:.4em .4em .4em 0;text-align:left}.ArticleEditor .toolbar{width:100%;height:56px;display:flex}.ArticleEditor .toolbar .btn{color:#fff;background-color:#006400;text-align:center;align-items:center;justify-content:center;display:flex;padding-left:3px;padding-right:3px}.ArticleEditor .toolbar .btn:hover{background-color:#005400}.ArticleEditor .article .open,.ArticleEditor .article .Close,.ArticleEditor .article{max-height:100vh}.About{background-color:#3f3f4a;color:#aa9aa0;max-width:100vw;width:100%;padding-bottom:5.5rem;display:flex;flex-direction:column;justify-content:center;align-items:center}.About .title{margin-top:4rem;color:#bf8d8c!important;font-size:28px}.About .social{padding:10px;width:85vw;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.About .links{display:flex;flex-direction:row;align-content:center;justify-content:space-evenly;align-items:center;flex-wrap:wrap;width:85vw}.About .links .link img{width:10rem}.About .links .link{margin:10px}.About .link{border-radius:5px;display:flex;height:10rem;align-items:center;justify-content:center;padding:5px;margin:5px}.About .link.bg-white{background-color:#fff}.About .link.bg-black{background-color:#000}.About .link.bg-hackerrank{background-color:#0e1419}.printShow{display:none}@media print{.printHide{display:none}.printShow{display:block}*{opacity:100%!important}.About .center{margin-left:auto;margin-right:auto}.About .social{flex-direction:column;align-items:center}.About .social .title{break-before:page}.About .links{flex-direction:column;flex-wrap:nowrap}.About .links .link img{display:none!important}.About .links .link:after{content:attr(href)}.About .links .link{background-color:initial!important;border-radius:default;height:auto;padding:none;margin:none}}@media only screen and (max-width:600px){.About .links .link img{width:100%}.About .link,.About .link.bg-white{height:25vw;width:25vw}}.card{display:flex;flex-direction:row;padding:10px;width:85vw;margin:0!important}.card .title{font-family:HelveticaNeue-Light,Helvetica Neue Light,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif;font-size:48px;color:#3d3d3d}.card .content-box{text-align:left;font-size:x-large;margin-right:2rem;margin-top:2rem}.card img{display:none}.card img.show{display:block;border-style:solid;border-width:2px;border-color:#a5b2a4;border-radius:5px;padding:2px;max-height:10rem;width:10rem;margin:auto;background-color:#fafaff}.card .skill-row{display:flex;flex-direction:row;align-items:center}.card .skills-label{display:flex;align-items:center;font-size:larger}.card .skills{display:flex;flex-direction:row;flex-wrap:wrap;align-content:center;align-items:center;padding:5px;width:100%}.card .skill{padding:5px;margin:2px 2px 2px 5px;border-radius:10px;background-color:#756b6a;color:#dad4df;font-size:medium}@media print{.card{page-break-after:page}.card img{display:none!important}.card .content-box{width:100%}}@media only screen and (max-width:600px){.card{flex-direction:column-reverse}.card .content-box{font-size:large;margin-top:1rem;margin-right:0}.card img.show{margin-bottom:50px}.card .title{font-size:28px}}.intro{opacity:0;transition:opacity 1s ease-in-out;width:100vw;height:100%;display:flex;flex-direction:column}.intro.start{color:#fff;opacity:1;transition:opacity 1s ease-in-out}.intro .previous{z-index:11;opacity:.01;height:100%;width:100vw;display:flex;position:fixed;transition:opacity .75s ease-out,top .75s ease-out;top:-100%;left:0;justify-content:center;align-items:center}.intro .current{z-index:10;opacity:1;height:100%;width:100vw;display:flex;position:fixed;transition:opacity .75s ease-out,top .75s ease-out;top:0;left:0;justify-content:center;align-items:center}.intro .next{z-index:11;opacity:.01;height:100%;width:100vw;display:flex;position:fixed;transition:opacity .75s ease-out,top .75s ease-out;top:100%;left:0;justify-content:center;align-items:center}.intro .top{z-index:11}.notrans{transition:none!important}.intro .children{width:80vw}.intro .title{padding:10px}.intro .content{display:flex;flex-direction:column;align-items:center}.intro .children a{color:#c4c4c4}.intro .navbutton.hidden{opacity:0}.intro .navbutton.bottom{margin-top:auto}.intro .navbutton.top{z-index:14}.intro .navbutton{z-index:14;font-size:48px;width:100%;top:0;left:50%;background-color:#2d2d2d66;display:flex;align-items:center;justify-content:center;opacity:1;animation:none!important;transition:opacity ease .25s}.topic{height:100vh;width:100vw;background-size:cover;display:flex;align-items:center}.topic .content{width:100vw;background:#393939bf;margin:0;padding:10px;height:fit-content}.topic .title{margin-top:10px;margin-bottom:10px;padding:0}.topic .children{margin-top:10px;margin-bottom:10px}.ProgressBar{height:40px;width:100%;border-style:solid;border-width:1px;border-radius:3px;padding:0;background-color:#bcbaba}.ProgressBar .Bar{height:100%;width:0;background-color:#cdfbfa;margin:0!important}.Bai{color:#fff;display:flex;flex-direction:column;align-items:center;padding:2rem}.Bai *{margin-top:5px}.Bai .about{display:flex;flex-direction:column}.Bai h1{margin-left:auto;margin-right:auto}.Bai p{margin-left:auto;margin-right:auto;text-align:center}.Bai img{width:0;height:0;overflow:hidden;transition:height 1s}.Bai img.show{margin-left:auto;margin-right:auto;height:50vh;width:max-content;max-width:50vw;max-height:50vh;transition:height 2s}.Bai button{font-size:24px;margin-left:auto;margin-right:auto;color:#fff;border-style:none;border-radius:5px;padding:15px}.Bai input{width:0;height:0}.Bai .prediction{background-color:#373747;border-radius:10px;padding:8px;font-size:16px}.Bai .content{display:flex;flex-direction:column}.Bai .hide,.Bai .error{display:none}.Bai .error.enable{justify-content:center;display:flex;color:#fff;background-color:#cb2323;padding:8px;border-radius:5px} diff --git a/dist/assets/index-DMCgMsst.js b/dist/assets/index-DMCgMsst.js new file mode 100644 index 0000000..ae26f3e --- /dev/null +++ b/dist/assets/index-DMCgMsst.js @@ -0,0 +1,5016 @@ +function xT(n,e){for(var t=0;tr[s]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function t(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=t(s);fetch(s.href,o)}})();var ey=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function xf(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}function D3(n){if(Object.prototype.hasOwnProperty.call(n,"__esModule"))return n;var e=n.default;if(typeof e=="function"){var t=function r(){var s=!1;try{s=this instanceof r}catch{}return s?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};t.prototype=e.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(n).forEach(function(r){var s=Object.getOwnPropertyDescriptor(n,r);Object.defineProperty(t,r,s.get?s:{enumerable:!0,get:function(){return n[r]}})}),t}var Qw={exports:{}},dm={},Jw={exports:{}},_t={};var m$;function O3(){if(m$)return _t;m$=1;var n=Symbol.for("react.element"),e=Symbol.for("react.portal"),t=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),o=Symbol.for("react.provider"),i=Symbol.for("react.context"),a=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),c=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),p=Symbol.iterator;function m(V){return V===null||typeof V!="object"?null:(V=p&&V[p]||V["@@iterator"],typeof V=="function"?V:null)}var y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},v=Object.assign,b={};function w(V,X,xe){this.props=V,this.context=X,this.refs=b,this.updater=xe||y}w.prototype.isReactComponent={},w.prototype.setState=function(V,X){if(typeof V!="object"&&typeof V!="function"&&V!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,V,X,"setState")},w.prototype.forceUpdate=function(V){this.updater.enqueueForceUpdate(this,V,"forceUpdate")};function k(){}k.prototype=w.prototype;function I(V,X,xe){this.props=V,this.context=X,this.refs=b,this.updater=xe||y}var N=I.prototype=new k;N.constructor=I,v(N,w.prototype),N.isPureReactComponent=!0;var T=Array.isArray,A=Object.prototype.hasOwnProperty,O={current:null},P={key:!0,ref:!0,__self:!0,__source:!0};function B(V,X,xe){var Ie,ke={},Ee=null,Me=null;if(X!=null)for(Ie in X.ref!==void 0&&(Me=X.ref),X.key!==void 0&&(Ee=""+X.key),X)A.call(X,Ie)&&!P.hasOwnProperty(Ie)&&(ke[Ie]=X[Ie]);var ze=arguments.length-2;if(ze===1)ke.children=xe;else if(1>>1,X=j[V];if(0>>1;Vs(ke,se))Ees(Me,ke)?(j[V]=Me,j[Ee]=se,V=Ee):(j[V]=ke,j[Ie]=se,V=Ie);else if(Ees(Me,se))j[V]=Me,j[Ee]=se,V=Ee;else break e}}return ie}function s(j,ie){var se=j.sortIndex-ie.sortIndex;return se!==0?se:j.id-ie.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;n.unstable_now=function(){return o.now()}}else{var i=Date,a=i.now();n.unstable_now=function(){return i.now()-a}}var l=[],c=[],d=1,p=null,m=3,y=!1,v=!1,b=!1,w=typeof setTimeout=="function"?setTimeout:null,k=typeof clearTimeout=="function"?clearTimeout:null,I=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function N(j){for(var ie=t(c);ie!==null;){if(ie.callback===null)r(c);else if(ie.startTime<=j)r(c),ie.sortIndex=ie.expirationTime,e(l,ie);else break;ie=t(c)}}function T(j){if(b=!1,N(j),!v)if(t(l)!==null)v=!0,le(A);else{var ie=t(c);ie!==null&&de(T,ie.startTime-j)}}function A(j,ie){v=!1,b&&(b=!1,k(B),B=-1),y=!0;var se=m;try{for(N(ie),p=t(l);p!==null&&(!(p.expirationTime>ie)||j&&!_());){var V=p.callback;if(typeof V=="function"){p.callback=null,m=p.priorityLevel;var X=V(p.expirationTime<=ie);ie=n.unstable_now(),typeof X=="function"?p.callback=X:p===t(l)&&r(l),N(ie)}else r(l);p=t(l)}if(p!==null)var xe=!0;else{var Ie=t(c);Ie!==null&&de(T,Ie.startTime-ie),xe=!1}return xe}finally{p=null,m=se,y=!1}}var O=!1,P=null,B=-1,z=5,L=-1;function _(){return!(n.unstable_now()-Lj||125V?(j.sortIndex=se,e(c,j),t(l)===null&&j===t(c)&&(b?(k(B),B=-1):b=!0,de(T,se-V))):(j.sortIndex=X,e(l,j),v||y||(v=!0,le(A))),j},n.unstable_shouldYield=_,n.unstable_wrapCallback=function(j){var ie=m;return function(){var se=m;m=ie;try{return j.apply(this,arguments)}finally{m=se}}}})(tb)),tb}var w$;function z3(){return w$||(w$=1,eb.exports=M3()),eb.exports}var b$;function B3(){if(b$)return Gs;b$=1;var n=Xm(),e=z3();function t(u){for(var h="https://reactjs.org/docs/error-decoder.html?invariant="+u,x=1;x"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),l=Object.prototype.hasOwnProperty,c=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,d={},p={};function m(u){return l.call(p,u)?!0:l.call(d,u)?!1:c.test(u)?p[u]=!0:(d[u]=!0,!1)}function y(u,h,x,C){if(x!==null&&x.type===0)return!1;switch(typeof h){case"function":case"symbol":return!0;case"boolean":return C?!1:x!==null?!x.acceptsBooleans:(u=u.toLowerCase().slice(0,5),u!=="data-"&&u!=="aria-");default:return!1}}function v(u,h,x,C){if(h===null||typeof h>"u"||y(u,h,x,C))return!0;if(C)return!1;if(x!==null)switch(x.type){case 3:return!h;case 4:return h===!1;case 5:return isNaN(h);case 6:return isNaN(h)||1>h}return!1}function b(u,h,x,C,$,E,F){this.acceptsBooleans=h===2||h===3||h===4,this.attributeName=C,this.attributeNamespace=$,this.mustUseProperty=x,this.propertyName=u,this.type=h,this.sanitizeURL=E,this.removeEmptyString=F}var w={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(u){w[u]=new b(u,0,!1,u,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(u){var h=u[0];w[h]=new b(h,1,!1,u[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(u){w[u]=new b(u,2,!1,u.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(u){w[u]=new b(u,2,!1,u,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(u){w[u]=new b(u,3,!1,u.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(u){w[u]=new b(u,3,!0,u,null,!1,!1)}),["capture","download"].forEach(function(u){w[u]=new b(u,4,!1,u,null,!1,!1)}),["cols","rows","size","span"].forEach(function(u){w[u]=new b(u,6,!1,u,null,!1,!1)}),["rowSpan","start"].forEach(function(u){w[u]=new b(u,5,!1,u.toLowerCase(),null,!1,!1)});var k=/[\-:]([a-z])/g;function I(u){return u[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(u){var h=u.replace(k,I);w[h]=new b(h,1,!1,u,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(u){var h=u.replace(k,I);w[h]=new b(h,1,!1,u,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(u){var h=u.replace(k,I);w[h]=new b(h,1,!1,u,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(u){w[u]=new b(u,1,!1,u.toLowerCase(),null,!1,!1)}),w.xlinkHref=new b("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(u){w[u]=new b(u,1,!1,u.toLowerCase(),null,!0,!0)});function N(u,h,x,C){var $=w.hasOwnProperty(h)?w[h]:null;($!==null?$.type!==0:C||!(2G||$[F]!==E[G]){var Q=` +`+$[F].replace(" at new "," at ");return u.displayName&&Q.includes("")&&(Q=Q.replace("",u.displayName)),Q}while(1<=F&&0<=G);break}}}finally{xe=!1,Error.prepareStackTrace=x}return(u=u?u.displayName||u.name:"")?X(u):""}function ke(u){switch(u.tag){case 5:return X(u.type);case 16:return X("Lazy");case 13:return X("Suspense");case 19:return X("SuspenseList");case 0:case 2:case 15:return u=Ie(u.type,!1),u;case 11:return u=Ie(u.type.render,!1),u;case 1:return u=Ie(u.type,!0),u;default:return""}}function Ee(u){if(u==null)return null;if(typeof u=="function")return u.displayName||u.name||null;if(typeof u=="string")return u;switch(u){case P:return"Fragment";case O:return"Portal";case z:return"Profiler";case B:return"StrictMode";case Y:return"Suspense";case re:return"SuspenseList"}if(typeof u=="object")switch(u.$$typeof){case _:return(u.displayName||"Context")+".Consumer";case L:return(u._context.displayName||"Context")+".Provider";case H:var h=u.render;return u=u.displayName,u||(u=h.displayName||h.name||"",u=u!==""?"ForwardRef("+u+")":"ForwardRef"),u;case te:return h=u.displayName||null,h!==null?h:Ee(u.type)||"Memo";case le:h=u._payload,u=u._init;try{return Ee(u(h))}catch{}}return null}function Me(u){var h=u.type;switch(u.tag){case 24:return"Cache";case 9:return(h.displayName||"Context")+".Consumer";case 10:return(h._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return u=h.render,u=u.displayName||u.name||"",h.displayName||(u!==""?"ForwardRef("+u+")":"ForwardRef");case 7:return"Fragment";case 5:return h;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Ee(h);case 8:return h===B?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof h=="function")return h.displayName||h.name||null;if(typeof h=="string")return h}return null}function ze(u){switch(typeof u){case"boolean":case"number":case"string":case"undefined":return u;case"object":return u;default:return""}}function Be(u){var h=u.type;return(u=u.nodeName)&&u.toLowerCase()==="input"&&(h==="checkbox"||h==="radio")}function Je(u){var h=Be(u)?"checked":"value",x=Object.getOwnPropertyDescriptor(u.constructor.prototype,h),C=""+u[h];if(!u.hasOwnProperty(h)&&typeof x<"u"&&typeof x.get=="function"&&typeof x.set=="function"){var $=x.get,E=x.set;return Object.defineProperty(u,h,{configurable:!0,get:function(){return $.call(this)},set:function(F){C=""+F,E.call(this,F)}}),Object.defineProperty(u,h,{enumerable:x.enumerable}),{getValue:function(){return C},setValue:function(F){C=""+F},stopTracking:function(){u._valueTracker=null,delete u[h]}}}}function lt(u){u._valueTracker||(u._valueTracker=Je(u))}function pt(u){if(!u)return!1;var h=u._valueTracker;if(!h)return!0;var x=h.getValue(),C="";return u&&(C=Be(u)?u.checked?"true":"false":u.value),u=C,u!==x?(h.setValue(u),!0):!1}function bt(u){if(u=u||(typeof document<"u"?document:void 0),typeof u>"u")return null;try{return u.activeElement||u.body}catch{return u.body}}function Rt(u,h){var x=h.checked;return se({},h,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:x??u._wrapperState.initialChecked})}function Ot(u,h){var x=h.defaultValue==null?"":h.defaultValue,C=h.checked!=null?h.checked:h.defaultChecked;x=ze(h.value!=null?h.value:x),u._wrapperState={initialChecked:C,initialValue:x,controlled:h.type==="checkbox"||h.type==="radio"?h.checked!=null:h.value!=null}}function Bt(u,h){h=h.checked,h!=null&&N(u,"checked",h,!1)}function At(u,h){Bt(u,h);var x=ze(h.value),C=h.type;if(x!=null)C==="number"?(x===0&&u.value===""||u.value!=x)&&(u.value=""+x):u.value!==""+x&&(u.value=""+x);else if(C==="submit"||C==="reset"){u.removeAttribute("value");return}h.hasOwnProperty("value")?ds(u,h.type,x):h.hasOwnProperty("defaultValue")&&ds(u,h.type,ze(h.defaultValue)),h.checked==null&&h.defaultChecked!=null&&(u.defaultChecked=!!h.defaultChecked)}function Yt(u,h,x){if(h.hasOwnProperty("value")||h.hasOwnProperty("defaultValue")){var C=h.type;if(!(C!=="submit"&&C!=="reset"||h.value!==void 0&&h.value!==null))return;h=""+u._wrapperState.initialValue,x||h===u.value||(u.value=h),u.defaultValue=h}x=u.name,x!==""&&(u.name=""),u.defaultChecked=!!u._wrapperState.initialChecked,x!==""&&(u.name=x)}function ds(u,h,x){(h!=="number"||bt(u.ownerDocument)!==u)&&(x==null?u.defaultValue=""+u._wrapperState.initialValue:u.defaultValue!==""+x&&(u.defaultValue=""+x))}var Jt=Array.isArray;function cn(u,h,x,C){if(u=u.options,h){h={};for(var $=0;$"+h.valueOf().toString()+"",h=Qn.firstChild;u.firstChild;)u.removeChild(u.firstChild);for(;h.firstChild;)u.appendChild(h.firstChild)}});function eo(u,h){if(h){var x=u.firstChild;if(x&&x===u.lastChild&&x.nodeType===3){x.nodeValue=h;return}}u.textContent=h}var to={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Iu=["Webkit","ms","Moz","O"];Object.keys(to).forEach(function(u){Iu.forEach(function(h){h=h+u.charAt(0).toUpperCase()+u.substring(1),to[h]=to[u]})});function Jo(u,h,x){return h==null||typeof h=="boolean"||h===""?"":x||typeof h!="number"||h===0||to.hasOwnProperty(u)&&to[u]?(""+h).trim():h+"px"}function hl(u,h){u=u.style;for(var x in h)if(h.hasOwnProperty(x)){var C=x.indexOf("--")===0,$=Jo(x,h[x],C);x==="float"&&(x="cssFloat"),C?u.setProperty(x,$):u[x]=$}}var $u=se({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Nu(u,h){if(h){if($u[u]&&(h.children!=null||h.dangerouslySetInnerHTML!=null))throw Error(t(137,u));if(h.dangerouslySetInnerHTML!=null){if(h.children!=null)throw Error(t(60));if(typeof h.dangerouslySetInnerHTML!="object"||!("__html"in h.dangerouslySetInnerHTML))throw Error(t(61))}if(h.style!=null&&typeof h.style!="object")throw Error(t(62))}}function Tu(u,h){if(u.indexOf("-")===-1)return typeof h.is=="string";switch(u){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Mf=null;function zf(u){return u=u.target||u.srcElement||window,u.correspondingUseElement&&(u=u.correspondingUseElement),u.nodeType===3?u.parentNode:u}var Bf=null,Ca=null,Sa=null;function bx(u){if(u=Sr(u)){if(typeof Bf!="function")throw Error(t(280));var h=u.stateNode;h&&(h=qh(h),Bf(u.stateNode,u.type,h))}}function Cx(u){Ca?Sa?Sa.push(u):Sa=[u]:Ca=u}function Sx(){if(Ca){var u=Ca,h=Sa;if(Sa=Ca=null,bx(u),h)for(u=0;u>>=0,u===0?32:31-(Dx(u)/Ox|0)|0}var dl=64,bh=4194304;function fl(u){switch(u&-u){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return u&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return u&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return u}}function Ia(u,h){var x=u.pendingLanes;if(x===0)return 0;var C=0,$=u.suspendedLanes,E=u.pingedLanes,F=x&268435455;if(F!==0){var G=F&~$;G!==0?C=fl(G):(E&=F,E!==0&&(C=fl(E)))}else F=x&~$,F!==0?C=fl(F):E!==0&&(C=fl(E));if(C===0)return 0;if(h!==0&&h!==C&&(h&$)===0&&($=C&-C,E=h&-h,$>=E||$===16&&(E&4194240)!==0))return h;if((C&4)!==0&&(C|=x&16),h=u.entangledLanes,h!==0)for(u=u.entanglements,h&=C;0x;x++)h.push(u);return h}function Fu(u,h,x){u.pendingLanes|=h,h!==536870912&&(u.suspendedLanes=0,u.pingedLanes=0),u=u.eventTimes,h=31-no(h),u[h]=x}function Lx(u,h){var x=u.pendingLanes&~h;u.pendingLanes=h,u.suspendedLanes=0,u.pingedLanes=0,u.expiredLanes&=h,u.mutableReadLanes&=h,u.entangledLanes&=h,h=u.entanglements;var C=u.eventTimes;for(u=u.expirationTimes;0=Zo),Qx=" ",Jx=!1;function Zx(u,h){switch(u){case"keyup":return ps.indexOf(h.keyCode)!==-1;case"keydown":return h.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function e0(u){return u=u.detail,typeof u=="object"&&"data"in u?u.data:null}var vl=!1;function wl(u,h){switch(u){case"compositionend":return e0(h);case"keypress":return h.which!==32?null:(Jx=!0,Qx);case"textInput":return u=h.data,u===Qx&&Jx?null:u;default:return null}}function hw(u,h){if(vl)return u==="compositionend"||!Bu&&Zx(u,h)?(u=Zf(),Io=zu=yn=null,vl=!1,u):null;switch(u){case"paste":return null;case"keypress":if(!(h.ctrlKey||h.altKey||h.metaKey)||h.ctrlKey&&h.altKey){if(h.char&&1=h)return{node:x,offset:h-u};u=C}e:{for(;x;){if(x.nextSibling){x=x.nextSibling;break e}x=x.parentNode}x=void 0}x=mt(x)}}function On(u,h){return u&&h?u===h?!0:u&&u.nodeType===3?!1:h&&h.nodeType===3?On(u,h.parentNode):"contains"in u?u.contains(h):u.compareDocumentPosition?!!(u.compareDocumentPosition(h)&16):!1:!1}function Zt(){for(var u=window,h=bt();h instanceof u.HTMLIFrameElement;){try{var x=typeof h.contentWindow.location.href=="string"}catch{x=!1}if(x)u=h.contentWindow;else break;h=bt(u.document)}return h}function Uu(u){var h=u&&u.nodeName&&u.nodeName.toLowerCase();return h&&(h==="input"&&(u.type==="text"||u.type==="search"||u.type==="tel"||u.type==="url"||u.type==="password")||h==="textarea"||u.contentEditable==="true")}function xw(u){var h=Zt(),x=u.focusedElem,C=u.selectionRange;if(h!==x&&x&&x.ownerDocument&&On(x.ownerDocument.documentElement,x)){if(C!==null&&Uu(x)){if(h=C.start,u=C.end,u===void 0&&(u=h),"selectionStart"in x)x.selectionStart=h,x.selectionEnd=Math.min(u,x.value.length);else if(u=(h=x.ownerDocument||document)&&h.defaultView||window,u.getSelection){u=u.getSelection();var $=x.textContent.length,E=Math.min(C.start,$);C=C.end===void 0?E:Math.min(C.end,$),!u.extend&&E>C&&($=C,C=E,E=$),$=Ut(x,E);var F=Ut(x,C);$&&F&&(u.rangeCount!==1||u.anchorNode!==$.node||u.anchorOffset!==$.offset||u.focusNode!==F.node||u.focusOffset!==F.offset)&&(h=h.createRange(),h.setStart($.node,$.offset),u.removeAllRanges(),E>C?(u.addRange(h),u.extend(F.node,F.offset)):(h.setEnd(F.node,F.offset),u.addRange(h)))}}for(h=[],u=x;u=u.parentNode;)u.nodeType===1&&h.push({element:u,left:u.scrollLeft,top:u.scrollTop});for(typeof x.focus=="function"&&x.focus(),x=0;x=document.documentMode,ei=null,dp=null,$o=null,Cl=!1;function Wu(u,h,x){var C=x.window===x?x.document:x.nodeType===9?x:x.ownerDocument;Cl||ei==null||ei!==bt(C)||(C=ei,"selectionStart"in C&&Uu(C)?C={start:C.selectionStart,end:C.selectionEnd}:(C=(C.ownerDocument&&C.ownerDocument.defaultView||window).getSelection(),C={anchorNode:C.anchorNode,anchorOffset:C.anchorOffset,focusNode:C.focusNode,focusOffset:C.focusOffset}),$o&&je($o,C)||($o=C,C=Vh(dp,"onSelect"),0Rl||(u.current=xp[Rl],xp[Rl]=null,Rl--)}function ln(u,h){Rl++,xp[Rl]=u.current,u.current=h}var Ui={},kr=Qr(Ui),Jr=Qr(!1),Lr=Ui;function Al(u,h){var x=u.type.contextTypes;if(!x)return Ui;var C=u.stateNode;if(C&&C.__reactInternalMemoizedUnmaskedChildContext===h)return C.__reactInternalMemoizedMaskedChildContext;var $={},E;for(E in x)$[E]=h[E];return C&&(u=u.stateNode,u.__reactInternalMemoizedUnmaskedChildContext=h,u.__reactInternalMemoizedMaskedChildContext=$),$}function Zr(u){return u=u.childContextTypes,u!=null}function Kh(){dn(Jr),dn(kr)}function c0(u,h,x){if(kr.current!==Ui)throw Error(t(168));ln(kr,h),ln(Jr,x)}function h0(u,h,x){var C=u.stateNode;if(h=h.childContextTypes,typeof C.getChildContext!="function")return x;C=C.getChildContext();for(var $ in C)if(!($ in h))throw Error(t(108,Me(u)||"Unknown",$));return se({},x,C)}function As(u){return u=(u=u.stateNode)&&u.__reactInternalMemoizedMergedChildContext||Ui,Lr=kr.current,ln(kr,u),ln(Jr,Jr.current),!0}function d0(u,h,x){var C=u.stateNode;if(!C)throw Error(t(169));x?(u=h0(u,h,Lr),C.__reactInternalMemoizedMergedChildContext=u,dn(Jr),dn(kr),ln(kr,u)):dn(Jr),ln(Jr,x)}var ri=null,Xh=!1,yp=!1;function f0(u){ri===null?ri=[u]:ri.push(u)}function Da(u){Xh=!0,f0(u)}function Wi(){if(!yp&&ri!==null){yp=!0;var u=0,h=jt;try{var x=ri;for(jt=1;u>=F,$-=F,Eo=1<<32-no(h)+$|x<<$|C,Ro=E+u}else Eo=1<ct?(er=nt,nt=null):er=nt.sibling;var Vt=Ae(pe,nt,ge[ct],Le);if(Vt===null){nt===null&&(nt=er);break}u&&nt&&Vt.alternate===null&&h(pe,nt),oe=E(Vt,oe,ct),ot===null?Ze=Vt:ot.sibling=Vt,ot=Vt,nt=er}if(ct===ge.length)return x(pe,nt),fn&&Fa(pe,ct),Ze;if(nt===null){for(;ctct?(er=nt,nt=null):er=nt.sibling;var ea=Ae(pe,nt,Vt.value,Le);if(ea===null){nt===null&&(nt=er);break}u&&nt&&ea.alternate===null&&h(pe,nt),oe=E(ea,oe,ct),ot===null?Ze=ea:ot.sibling=ea,ot=ea,nt=er}if(Vt.done)return x(pe,nt),fn&&Fa(pe,ct),Ze;if(nt===null){for(;!Vt.done;ct++,Vt=ge.next())Vt=Fe(pe,Vt.value,Le),Vt!==null&&(oe=E(Vt,oe,ct),ot===null?Ze=Vt:ot.sibling=Vt,ot=Vt);return fn&&Fa(pe,ct),Ze}for(nt=C(pe,nt);!Vt.done;ct++,Vt=ge.next())Vt=He(nt,pe,ct,Vt.value,Le),Vt!==null&&(u&&Vt.alternate!==null&&nt.delete(Vt.key===null?ct:Vt.key),oe=E(Vt,oe,ct),ot===null?Ze=Vt:ot.sibling=Vt,ot=Vt);return u&&nt.forEach(function(zw){return h(pe,zw)}),fn&&Fa(pe,ct),Ze}function _n(pe,oe,ge,Le){if(typeof ge=="object"&&ge!==null&&ge.type===P&&ge.key===null&&(ge=ge.props.children),typeof ge=="object"&&ge!==null){switch(ge.$$typeof){case A:e:{for(var Ze=ge.key,ot=oe;ot!==null;){if(ot.key===Ze){if(Ze=ge.type,Ze===P){if(ot.tag===7){x(pe,ot.sibling),oe=$(ot,ge.props.children),oe.return=pe,pe=oe;break e}}else if(ot.elementType===Ze||typeof Ze=="object"&&Ze!==null&&Ze.$$typeof===le&&x0(Ze)===ot.type){x(pe,ot.sibling),oe=$(ot,ge.props),oe.ref=Zu(pe,ot,ge),oe.return=pe,pe=oe;break e}x(pe,ot);break}else h(pe,ot);ot=ot.sibling}ge.type===P?(oe=Ka(ge.props.children,pe.mode,Le,ge.key),oe.return=pe,pe=oe):(Le=Dd(ge.type,ge.key,ge.props,null,pe.mode,Le),Le.ref=Zu(pe,oe,ge),Le.return=pe,pe=Le)}return F(pe);case O:e:{for(ot=ge.key;oe!==null;){if(oe.key===ot)if(oe.tag===4&&oe.stateNode.containerInfo===ge.containerInfo&&oe.stateNode.implementation===ge.implementation){x(pe,oe.sibling),oe=$(oe,ge.children||[]),oe.return=pe,pe=oe;break e}else{x(pe,oe);break}else h(pe,oe);oe=oe.sibling}oe=am(ge,pe.mode,Le),oe.return=pe,pe=oe}return F(pe);case le:return ot=ge._init,_n(pe,oe,ot(ge._payload),Le)}if(Jt(ge))return Ke(pe,oe,ge,Le);if(ie(ge))return Xe(pe,oe,ge,Le);La(pe,ge)}return typeof ge=="string"&&ge!==""||typeof ge=="number"?(ge=""+ge,oe!==null&&oe.tag===6?(x(pe,oe.sibling),oe=$(oe,ge),oe.return=pe,pe=oe):(x(pe,oe),oe=im(ge,pe.mode,Le),oe.return=pe,pe=oe),F(pe)):x(pe,oe)}return _n}var $n=wp(!0),Zh=wp(!1),ec=Qr(null),ys=null,Vi=null,Dl=null;function oi(){Dl=Vi=ys=null}function ed(u){var h=ec.current;dn(ec),u._currentValue=h}function ur(u,h,x){for(;u!==null;){var C=u.alternate;if((u.childLanes&h)!==h?(u.childLanes|=h,C!==null&&(C.childLanes|=h)):C!==null&&(C.childLanes&h)!==h&&(C.childLanes|=h),u===x)break;u=u.return}}function Gi(u,h){ys=u,Dl=Vi=null,u=u.dependencies,u!==null&&u.firstContext!==null&&((u.lanes&h)!==0&&(zr=!0),u.firstContext=null)}function Os(u){var h=u._currentValue;if(Dl!==u)if(u={context:u,memoizedValue:h,next:null},Vi===null){if(ys===null)throw Error(t(308));Vi=u,ys.dependencies={lanes:0,firstContext:u}}else Vi=Vi.next=u;return h}var Ma=null;function bp(u){Ma===null?Ma=[u]:Ma.push(u)}function td(u,h,x,C){var $=h.interleaved;return $===null?(x.next=x,bp(h)):(x.next=$.next,$.next=x),h.interleaved=x,ii(u,C)}function ii(u,h){u.lanes|=h;var x=u.alternate;for(x!==null&&(x.lanes|=h),x=u,u=u.return;u!==null;)u.childLanes|=h,x=u.alternate,x!==null&&(x.childLanes|=h),x=u,u=u.return;return x.tag===3?x.stateNode:null}var Fs=!1;function nd(u){u.updateQueue={baseState:u.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function y0(u,h){u=u.updateQueue,h.updateQueue===u&&(h.updateQueue={baseState:u.baseState,firstBaseUpdate:u.firstBaseUpdate,lastBaseUpdate:u.lastBaseUpdate,shared:u.shared,effects:u.effects})}function ai(u,h){return{eventTime:u,lane:h,tag:0,payload:null,callback:null,next:null}}function Ps(u,h,x){var C=u.updateQueue;if(C===null)return null;if(C=C.shared,(Ft&2)!==0){var $=C.pending;return $===null?h.next=h:(h.next=$.next,$.next=h),C.pending=h,ii(u,x)}return $=C.interleaved,$===null?(h.next=h,bp(C)):(h.next=$.next,$.next=h),C.interleaved=h,ii(u,x)}function rd(u,h,x){if(h=h.updateQueue,h!==null&&(h=h.shared,(x&4194240)!==0)){var C=h.lanes;C&=u.pendingLanes,x|=C,h.lanes=x,Pu(u,x)}}function v0(u,h){var x=u.updateQueue,C=u.alternate;if(C!==null&&(C=C.updateQueue,x===C)){var $=null,E=null;if(x=x.firstBaseUpdate,x!==null){do{var F={eventTime:x.eventTime,lane:x.lane,tag:x.tag,payload:x.payload,callback:x.callback,next:null};E===null?$=E=F:E=E.next=F,x=x.next}while(x!==null);E===null?$=E=h:E=E.next=h}else $=E=h;x={baseState:C.baseState,firstBaseUpdate:$,lastBaseUpdate:E,shared:C.shared,effects:C.effects},u.updateQueue=x;return}u=x.lastBaseUpdate,u===null?x.firstBaseUpdate=h:u.next=h,x.lastBaseUpdate=h}function Ol(u,h,x,C){var $=u.updateQueue;Fs=!1;var E=$.firstBaseUpdate,F=$.lastBaseUpdate,G=$.shared.pending;if(G!==null){$.shared.pending=null;var Q=G,we=Q.next;Q.next=null,F===null?E=we:F.next=we,F=Q;var De=u.alternate;De!==null&&(De=De.updateQueue,G=De.lastBaseUpdate,G!==F&&(G===null?De.firstBaseUpdate=we:G.next=we,De.lastBaseUpdate=Q))}if(E!==null){var Fe=$.baseState;F=0,De=we=Q=null,G=E;do{var Ae=G.lane,He=G.eventTime;if((C&Ae)===Ae){De!==null&&(De=De.next={eventTime:He,lane:0,tag:G.tag,payload:G.payload,callback:G.callback,next:null});e:{var Ke=u,Xe=G;switch(Ae=h,He=x,Xe.tag){case 1:if(Ke=Xe.payload,typeof Ke=="function"){Fe=Ke.call(He,Fe,Ae);break e}Fe=Ke;break e;case 3:Ke.flags=Ke.flags&-65537|128;case 0:if(Ke=Xe.payload,Ae=typeof Ke=="function"?Ke.call(He,Fe,Ae):Ke,Ae==null)break e;Fe=se({},Fe,Ae);break e;case 2:Fs=!0}}G.callback!==null&&G.lane!==0&&(u.flags|=64,Ae=$.effects,Ae===null?$.effects=[G]:Ae.push(G))}else He={eventTime:He,lane:Ae,tag:G.tag,payload:G.payload,callback:G.callback,next:null},De===null?(we=De=He,Q=Fe):De=De.next=He,F|=Ae;if(G=G.next,G===null){if(G=$.shared.pending,G===null)break;Ae=G,G=Ae.next,Ae.next=null,$.lastBaseUpdate=Ae,$.shared.pending=null}}while(!0);if(De===null&&(Q=Fe),$.baseState=Q,$.firstBaseUpdate=we,$.lastBaseUpdate=De,h=$.shared.interleaved,h!==null){$=h;do F|=$.lane,$=$.next;while($!==h)}else E===null&&($.shared.lanes=0);Xi|=F,u.lanes=F,u.memoizedState=Fe}}function Cp(u,h,x){if(u=h.effects,h.effects=null,u!==null)for(h=0;hx?x:4,u(!0);var C=$p.transition;$p.transition={};try{u(!1),h()}finally{jt=x,$p.transition=C}}function Op(){return Ls().memoizedState}function vw(u,h,x){var C=Ji(u);if(x={lane:C,action:x,hasEagerState:!1,eagerState:null,next:null},Fp(u))Mr(h,x);else if(x=td(u,h,x,C),x!==null){var $=Wr();co(x,u,C,$),oo(x,h,C)}}function I0(u,h,x){var C=Ji(u),$={lane:C,action:x,hasEagerState:!1,eagerState:null,next:null};if(Fp(u))Mr(h,$);else{var E=u.alternate;if(u.lanes===0&&(E===null||E.lanes===0)&&(E=h.lastRenderedReducer,E!==null))try{var F=h.lastRenderedState,G=E(F,x);if($.hasEagerState=!0,$.eagerState=G,ve(G,F)){var Q=h.interleaved;Q===null?($.next=$,bp(h)):($.next=Q.next,Q.next=$),h.interleaved=$;return}}catch{}finally{}x=td(u,h,$,C),x!==null&&($=Wr(),co(x,u,C,$),oo(x,h,C))}}function Fp(u){var h=u.alternate;return u===Cn||h!==null&&h===Cn}function Mr(u,h){sc=Pl=!0;var x=u.pending;x===null?h.next=h:(h.next=x.next,x.next=h),u.pending=h}function oo(u,h,x){if((x&4194240)!==0){var C=h.lanes;C&=u.pendingLanes,x|=C,h.lanes=x,Pu(u,x)}}var hd={readContext:Os,useCallback:Nr,useContext:Nr,useEffect:Nr,useImperativeHandle:Nr,useInsertionEffect:Nr,useLayoutEffect:Nr,useMemo:Nr,useReducer:Nr,useRef:Nr,useState:Nr,useDebugValue:Nr,useDeferredValue:Nr,useTransition:Nr,useMutableSource:Nr,useSyncExternalStore:Nr,useId:Nr,unstable_isNewReconciler:!1},ww={readContext:Os,useCallback:function(u,h){return Fo().memoizedState=[u,h===void 0?null:h],u},useContext:Os,useEffect:cd,useImperativeHandle:function(u,h,x){return x=x!=null?x.concat([u]):null,ic(4194308,4,_p.bind(null,h,u),x)},useLayoutEffect:function(u,h){return ic(4194308,4,u,h)},useInsertionEffect:function(u,h){return ic(4,2,u,h)},useMemo:function(u,h){var x=Fo();return h=h===void 0?null:h,u=u(),x.memoizedState=[u,h],u},useReducer:function(u,h,x){var C=Fo();return h=x!==void 0?x(h):h,C.memoizedState=C.baseState=h,u={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:u,lastRenderedState:h},C.queue=u,u=u.dispatch=vw.bind(null,Cn,u),[C.memoizedState,u]},useRef:function(u){var h=Fo();return u={current:u},h.memoizedState=u},useState:oc,useDebugValue:ac,useDeferredValue:function(u){return Fo().memoizedState=u},useTransition:function(){var u=oc(!1),h=u[0];return u=k0.bind(null,u[1]),Fo().memoizedState=u,[h,u]},useMutableSource:function(){},useSyncExternalStore:function(u,h,x){var C=Cn,$=Fo();if(fn){if(x===void 0)throw Error(t(407));x=x()}else{if(x=h(),Zn===null)throw Error(t(349));(Hi&30)!==0||Rp(C,h,x)}$.memoizedState=x;var E={value:x,getSnapshot:h};return $.queue=E,cd(ui.bind(null,C,E,u),[u]),C.flags|=2048,Ml(9,ts.bind(null,C,E,x,h),void 0,null),x},useId:function(){var u=Fo(),h=Zn.identifierPrefix;if(fn){var x=Ro,C=Eo;x=(C&~(1<<32-no(C)-1)).toString(32)+x,h=":"+h+"R"+x,x=Ba++,0<\/script>",u=u.removeChild(u.firstChild)):typeof C.is=="string"?u=F.createElement(x,{is:C.is}):(u=F.createElement(x),x==="select"&&(F=u,C.multiple?F.multiple=!0:C.size&&(F.size=C.size))):u=F.createElementNS(u,x),u[No]=h,u[Bi]=C,hr(u,h,!1,!1),h.stateNode=u;e:{switch(F=Tu(x,C),x){case"dialog":hn("cancel",u),hn("close",u),$=C;break;case"iframe":case"object":case"embed":hn("load",u),$=C;break;case"video":case"audio":for($=0;$Ga&&(h.flags|=128,C=!0,pc(E,!1),h.lanes=4194304)}else{if(!C)if(u=za(F),u!==null){if(h.flags|=128,C=!0,x=u.updateQueue,x!==null&&(h.updateQueue=x,h.flags|=4),pc(E,!0),E.tail===null&&E.tailMode==="hidden"&&!F.alternate&&!fn)return dr(h),null}else 2*xn()-E.renderingStartTime>Ga&&x!==1073741824&&(h.flags|=128,C=!0,pc(E,!1),h.lanes=4194304);E.isBackwards?(F.sibling=h.child,h.child=F):(x=E.last,x!==null?x.sibling=F:h.child=F,E.last=F)}return E.tail!==null?(h=E.tail,E.rendering=h,E.tail=h.sibling,E.renderingStartTime=xn(),h.sibling=null,x=vn.current,ln(vn,C?x&1|2:x&1),h):(dr(h),null);case 22:case 23:return sm(),C=h.memoizedState!==null,u!==null&&u.memoizedState!==null!==C&&(h.flags|=8192),C&&(h.mode&1)!==0?(ws&1073741824)!==0&&(dr(h),h.subtreeFlags&6&&(h.flags|=8192)):dr(h),null;case 24:return null;case 25:return null}throw Error(t(156,h.tag))}function Cw(u,h){switch(Pa(h),h.tag){case 1:return Zr(h.type)&&Kh(),u=h.flags,u&65536?(h.flags=u&-65537|128,h):null;case 3:return ji(),dn(Jr),dn(kr),od(),u=h.flags,(u&65536)!==0&&(u&128)===0?(h.flags=u&-65537|128,h):null;case 5:return sd(h),null;case 13:if(dn(vn),u=h.memoizedState,u!==null&&u.dehydrated!==null){if(h.alternate===null)throw Error(t(340));_o()}return u=h.flags,u&65536?(h.flags=u&-65537|128,h):null;case 19:return dn(vn),null;case 4:return ji(),null;case 10:return ed(h.type._context),null;case 22:case 23:return sm(),null;case 24:return null;default:return null}}var wd=!1,wn=!1,Br=typeof WeakSet=="function"?WeakSet:Set,qe=null;function Gl(u,h){var x=u.ref;if(x!==null)if(typeof x=="function")try{x(null)}catch(C){Sn(u,h,C)}else x.current=null}function mc(u,h,x){try{x()}catch(C){Sn(u,h,C)}}var _0=!1;function Sw(u,h){if(Ku=$h,u=Zt(),Uu(u)){if("selectionStart"in u)var x={start:u.selectionStart,end:u.selectionEnd};else e:{x=(x=u.ownerDocument)&&x.defaultView||window;var C=x.getSelection&&x.getSelection();if(C&&C.rangeCount!==0){x=C.anchorNode;var $=C.anchorOffset,E=C.focusNode;C=C.focusOffset;try{x.nodeType,E.nodeType}catch{x=null;break e}var F=0,G=-1,Q=-1,we=0,De=0,Fe=u,Ae=null;t:for(;;){for(var He;Fe!==x||$!==0&&Fe.nodeType!==3||(G=F+$),Fe!==E||C!==0&&Fe.nodeType!==3||(Q=F+C),Fe.nodeType===3&&(F+=Fe.nodeValue.length),(He=Fe.firstChild)!==null;)Ae=Fe,Fe=He;for(;;){if(Fe===u)break t;if(Ae===x&&++we===$&&(G=F),Ae===E&&++De===C&&(Q=F),(He=Fe.nextSibling)!==null)break;Fe=Ae,Ae=Fe.parentNode}Fe=He}x=G===-1||Q===-1?null:{start:G,end:Q}}else x=null}x=x||{start:0,end:0}}else x=null;for(_a={focusedElem:u,selectionRange:x},$h=!1,qe=h;qe!==null;)if(h=qe,u=h.child,(h.subtreeFlags&1028)!==0&&u!==null)u.return=h,qe=u;else for(;qe!==null;){h=qe;try{var Ke=h.alternate;if((h.flags&1024)!==0)switch(h.tag){case 0:case 11:case 15:break;case 1:if(Ke!==null){var Xe=Ke.memoizedProps,_n=Ke.memoizedState,pe=h.stateNode,oe=pe.getSnapshotBeforeUpdate(h.elementType===h.type?Xe:Ms(h.type,Xe),_n);pe.__reactInternalSnapshotBeforeUpdate=oe}break;case 3:var ge=h.stateNode.containerInfo;ge.nodeType===1?ge.textContent="":ge.nodeType===9&&ge.documentElement&&ge.removeChild(ge.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(t(163))}}catch(Le){Sn(h,h.return,Le)}if(u=h.sibling,u!==null){u.return=h.return,qe=u;break}qe=h.return}return Ke=_0,_0=!1,Ke}function di(u,h,x){var C=h.updateQueue;if(C=C!==null?C.lastEffect:null,C!==null){var $=C=C.next;do{if(($.tag&u)===u){var E=$.destroy;$.destroy=void 0,E!==void 0&&mc(h,x,E)}$=$.next}while($!==C)}}function gc(u,h){if(h=h.updateQueue,h=h!==null?h.lastEffect:null,h!==null){var x=h=h.next;do{if((x.tag&u)===u){var C=x.create;x.destroy=C()}x=x.next}while(x!==h)}}function bd(u){var h=u.ref;if(h!==null){var x=u.stateNode;switch(u.tag){case 5:u=x;break;default:u=x}typeof h=="function"?h(u):h.current=u}}function D0(u){var h=u.alternate;h!==null&&(u.alternate=null,D0(h)),u.child=null,u.deletions=null,u.sibling=null,u.tag===5&&(h=u.stateNode,h!==null&&(delete h[No],delete h[Bi],delete h[Hh],delete h[M],delete h[El])),u.stateNode=null,u.return=null,u.dependencies=null,u.memoizedProps=null,u.memoizedState=null,u.pendingProps=null,u.stateNode=null,u.updateQueue=null}function O0(u){return u.tag===5||u.tag===3||u.tag===4}function F0(u){e:for(;;){for(;u.sibling===null;){if(u.return===null||O0(u.return))return null;u=u.return}for(u.sibling.return=u.return,u=u.sibling;u.tag!==5&&u.tag!==6&&u.tag!==18;){if(u.flags&2||u.child===null||u.tag===4)continue e;u.child.return=u,u=u.child}if(!(u.flags&2))return u.stateNode}}function qp(u,h,x){var C=u.tag;if(C===5||C===6)u=u.stateNode,h?x.nodeType===8?x.parentNode.insertBefore(u,h):x.insertBefore(u,h):(x.nodeType===8?(h=x.parentNode,h.insertBefore(u,x)):(h=x,h.appendChild(u)),x=x._reactRootContainer,x!=null||h.onclick!==null||(h.onclick=Gh));else if(C!==4&&(u=u.child,u!==null))for(qp(u,h,x),u=u.sibling;u!==null;)qp(u,h,x),u=u.sibling}function Cd(u,h,x){var C=u.tag;if(C===5||C===6)u=u.stateNode,h?x.insertBefore(u,h):x.appendChild(u);else if(C!==4&&(u=u.child,u!==null))for(Cd(u,h,x),u=u.sibling;u!==null;)Cd(u,h,x),u=u.sibling}var Jn=null,ao=!1;function zo(u,h,x){for(x=x.child;x!==null;)Kp(u,h,x),x=x.sibling}function Kp(u,h,x){if(ko&&typeof ko.onCommitFiberUnmount=="function")try{ko.onCommitFiberUnmount(wh,x)}catch{}switch(x.tag){case 5:wn||Gl(x,h);case 6:var C=Jn,$=ao;Jn=null,zo(u,h,x),Jn=C,ao=$,Jn!==null&&(ao?(u=Jn,x=x.stateNode,u.nodeType===8?u.parentNode.removeChild(x):u.removeChild(x)):Jn.removeChild(x.stateNode));break;case 18:Jn!==null&&(ao?(u=Jn,x=x.stateNode,u.nodeType===8?gp(u.parentNode,x):u.nodeType===1&&gp(u,x),Ht(u)):gp(Jn,x.stateNode));break;case 4:C=Jn,$=ao,Jn=x.stateNode.containerInfo,ao=!0,zo(u,h,x),Jn=C,ao=$;break;case 0:case 11:case 14:case 15:if(!wn&&(C=x.updateQueue,C!==null&&(C=C.lastEffect,C!==null))){$=C=C.next;do{var E=$,F=E.destroy;E=E.tag,F!==void 0&&((E&2)!==0||(E&4)!==0)&&mc(x,h,F),$=$.next}while($!==C)}zo(u,h,x);break;case 1:if(!wn&&(Gl(x,h),C=x.stateNode,typeof C.componentWillUnmount=="function"))try{C.props=x.memoizedProps,C.state=x.memoizedState,C.componentWillUnmount()}catch(G){Sn(x,h,G)}zo(u,h,x);break;case 21:zo(u,h,x);break;case 22:x.mode&1?(wn=(C=wn)||x.memoizedState!==null,zo(u,h,x),wn=C):zo(u,h,x);break;default:zo(u,h,x)}}function jl(u){var h=u.updateQueue;if(h!==null){u.updateQueue=null;var x=u.stateNode;x===null&&(x=u.stateNode=new Br),h.forEach(function(C){var $=Rw.bind(null,u,C);x.has(C)||(x.add(C),C.then($,$))})}}function vs(u,h){var x=h.deletions;if(x!==null)for(var C=0;C$&&($=F),C&=~E}if(C=$,C=xn()-C,C=(120>C?120:480>C?480:1080>C?1080:1920>C?1920:3e3>C?3e3:4320>C?4320:1960*L0(C/1960))-C,10u?16:u,Qi===null)var C=!1;else{if(u=Qi,Qi=null,Ur=0,(Ft&6)!==0)throw Error(t(331));var $=Ft;for(Ft|=4,qe=u.current;qe!==null;){var E=qe,F=E.child;if((qe.flags&16)!==0){var G=E.deletions;if(G!==null){for(var Q=0;Qxn()-Jp?Ha(u,0):Id|=x),rs(u,h)}function V0(u,h){h===0&&((u.mode&1)===0?h=1:(h=bh,bh<<=1,(bh&130023424)===0&&(bh=4194304)));var x=Wr();u=ii(u,h),u!==null&&(Fu(u,h,x),rs(u,x))}function Ew(u){var h=u.memoizedState,x=0;h!==null&&(x=h.retryLane),V0(u,x)}function Rw(u,h){var x=0;switch(u.tag){case 13:var C=u.stateNode,$=u.memoizedState;$!==null&&(x=$.retryLane);break;case 19:C=u.stateNode;break;default:throw Error(t(314))}C!==null&&C.delete(h),V0(u,x)}var G0;G0=function(u,h,x){if(u!==null)if(u.memoizedProps!==h.pendingProps||Jr.current)zr=!0;else{if((u.lanes&x)===0&&(h.flags&128)===0)return zr=!1,R0(u,h,x);zr=(u.flags&131072)!==0}else zr=!1,fn&&(h.flags&1048576)!==0&&p0(h,Qh,h.index);switch(h.lanes=0,h.tag){case 2:var C=h.type;vd(u,h),u=h.pendingProps;var $=Al(h,kr.current);Gi(h,x),$=Ua(null,h,C,u,$,x);var E=id();return h.flags|=1,typeof $=="object"&&$!==null&&typeof $.render=="function"&&$.$$typeof===void 0?(h.tag=1,h.memoizedState=null,h.updateQueue=null,Zr(C)?(E=!0,As(h)):E=!1,h.memoizedState=$.state!==null&&$.state!==void 0?$.state:null,nd(h),$.updater=pd,h.stateNode=$,$._reactInternals=h,Lp(h,C,u,x),h=Gp(null,h,C,!0,E,x)):(h.tag=0,fn&&E&&Qu(h),cr(null,h,$,x),h=h.child),h;case 16:C=h.elementType;e:{switch(vd(u,h),u=h.pendingProps,$=C._init,C=$(C._payload),h.type=C,$=h.tag=_w(C),u=Ms(C,u),$){case 0:h=Wp(null,h,C,u,x);break e;case 1:h=Vp(null,h,C,u,x);break e;case 11:h=T0(null,h,C,u,x);break e;case 14:h=zp(null,h,C,Ms(C.type,u),x);break e}throw Error(t(306,C,""))}return h;case 0:return C=h.type,$=h.pendingProps,$=h.elementType===C?$:Ms(C,$),Wp(u,h,C,$,x);case 1:return C=h.type,$=h.pendingProps,$=h.elementType===C?$:Ms(C,$),Vp(u,h,C,$,x);case 3:e:{if(E0(h),u===null)throw Error(t(387));C=h.pendingProps,E=h.memoizedState,$=E.element,y0(u,h),Ol(h,C,null,x);var F=h.memoizedState;if(C=F.element,E.isDehydrated)if(E={element:C,isDehydrated:!1,cache:F.cache,pendingSuspenseBoundaries:F.pendingSuspenseBoundaries,transitions:F.transitions},h.updateQueue.baseState=E,h.memoizedState=E,h.flags&256){$=Va(Error(t(423)),h),h=Mo(u,h,C,x,$);break e}else if(C!==$){$=Va(Error(t(424)),h),h=Mo(u,h,C,x,$);break e}else for(xs=zi(h.stateNode.containerInfo.firstChild),$r=h,fn=!0,so=null,x=Zh(h,null,C,x),h.child=x;x;)x.flags=x.flags&-3|4096,x=x.sibling;else{if(_o(),C===$){h=io(u,h,x);break e}cr(u,h,C,x)}h=h.child}return h;case 5:return kp(h),u===null&&es(h),C=h.type,$=h.pendingProps,E=u!==null?u.memoizedProps:null,F=$.children,Xu(C,$)?F=null:E!==null&&Xu(C,E)&&(h.flags|=32),Up(u,h),cr(u,h,F,x),h.child;case 6:return u===null&&es(h),null;case 13:return yd(u,h,x);case 4:return Sp(h,h.stateNode.containerInfo),C=h.pendingProps,u===null?h.child=$n(h,null,C,x):cr(u,h,C,x),h.child;case 11:return C=h.type,$=h.pendingProps,$=h.elementType===C?$:Ms(C,$),T0(u,h,C,$,x);case 7:return cr(u,h,h.pendingProps,x),h.child;case 8:return cr(u,h,h.pendingProps.children,x),h.child;case 12:return cr(u,h,h.pendingProps.children,x),h.child;case 10:e:{if(C=h.type._context,$=h.pendingProps,E=h.memoizedProps,F=$.value,ln(ec,C._currentValue),C._currentValue=F,E!==null)if(ve(E.value,F)){if(E.children===$.children&&!Jr.current){h=io(u,h,x);break e}}else for(E=h.child,E!==null&&(E.return=h);E!==null;){var G=E.dependencies;if(G!==null){F=E.child;for(var Q=G.firstContext;Q!==null;){if(Q.context===C){if(E.tag===1){Q=ai(-1,x&-x),Q.tag=2;var we=E.updateQueue;if(we!==null){we=we.shared;var De=we.pending;De===null?Q.next=Q:(Q.next=De.next,De.next=Q),we.pending=Q}}E.lanes|=x,Q=E.alternate,Q!==null&&(Q.lanes|=x),ur(E.return,x,h),G.lanes|=x;break}Q=Q.next}}else if(E.tag===10)F=E.type===h.type?null:E.child;else if(E.tag===18){if(F=E.return,F===null)throw Error(t(341));F.lanes|=x,G=F.alternate,G!==null&&(G.lanes|=x),ur(F,x,h),F=E.sibling}else F=E.child;if(F!==null)F.return=E;else for(F=E;F!==null;){if(F===h){F=null;break}if(E=F.sibling,E!==null){E.return=F.return,F=E;break}F=F.return}E=F}cr(u,h,$.children,x),h=h.child}return h;case 9:return $=h.type,C=h.pendingProps.children,Gi(h,x),$=Os($),C=C($),h.flags|=1,cr(u,h,C,x),h.child;case 14:return C=h.type,$=Ms(C,h.pendingProps),$=Ms(C.type,$),zp(u,h,C,$,x);case 15:return Lo(u,h,h.type,h.pendingProps,x);case 17:return C=h.type,$=h.pendingProps,$=h.elementType===C?$:Ms(C,$),vd(u,h),h.tag=1,Zr(C)?(u=!0,As(h)):u=!1,Gi(h,x),Wa(h,C,$),Lp(h,C,$,x),Gp(null,h,C,!0,u,x);case 19:return qi(u,h,x);case 22:return Bp(u,h,x)}throw Error(t(156,h.tag))};function j0(u,h){return Ex(u,h)}function Aw(u,h,x,C){this.tag=u,this.key=x,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=h,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=C,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Bs(u,h,x,C){return new Aw(u,h,x,C)}function _d(u){return u=u.prototype,!(!u||!u.isReactComponent)}function _w(u){if(typeof u=="function")return _d(u)?1:0;if(u!=null){if(u=u.$$typeof,u===H)return 11;if(u===te)return 14}return 2}function ho(u,h){var x=u.alternate;return x===null?(x=Bs(u.tag,h,u.key,u.mode),x.elementType=u.elementType,x.type=u.type,x.stateNode=u.stateNode,x.alternate=u,u.alternate=x):(x.pendingProps=h,x.type=u.type,x.flags=0,x.subtreeFlags=0,x.deletions=null),x.flags=u.flags&14680064,x.childLanes=u.childLanes,x.lanes=u.lanes,x.child=u.child,x.memoizedProps=u.memoizedProps,x.memoizedState=u.memoizedState,x.updateQueue=u.updateQueue,h=u.dependencies,x.dependencies=h===null?null:{lanes:h.lanes,firstContext:h.firstContext},x.sibling=u.sibling,x.index=u.index,x.ref=u.ref,x}function Dd(u,h,x,C,$,E){var F=2;if(C=u,typeof u=="function")_d(u)&&(F=1);else if(typeof u=="string")F=5;else e:switch(u){case P:return Ka(x.children,$,E,h);case B:F=8,$|=8;break;case z:return u=Bs(12,x,h,$|2),u.elementType=z,u.lanes=E,u;case Y:return u=Bs(13,x,h,$),u.elementType=Y,u.lanes=E,u;case re:return u=Bs(19,x,h,$),u.elementType=re,u.lanes=E,u;case de:return Od(x,$,E,h);default:if(typeof u=="object"&&u!==null)switch(u.$$typeof){case L:F=10;break e;case _:F=9;break e;case H:F=11;break e;case te:F=14;break e;case le:F=16,C=null;break e}throw Error(t(130,u==null?u:typeof u,""))}return h=Bs(F,x,h,$),h.elementType=u,h.type=C,h.lanes=E,h}function Ka(u,h,x,C){return u=Bs(7,u,C,h),u.lanes=x,u}function Od(u,h,x,C){return u=Bs(22,u,C,h),u.elementType=de,u.lanes=x,u.stateNode={isHidden:!1},u}function im(u,h,x){return u=Bs(6,u,null,h),u.lanes=x,u}function am(u,h,x){return h=Bs(4,u.children!==null?u.children:[],u.key,h),h.lanes=x,h.stateNode={containerInfo:u.containerInfo,pendingChildren:null,implementation:u.implementation},h}function Dw(u,h,x,C,$){this.tag=h,this.containerInfo=u,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Ou(0),this.expirationTimes=Ou(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ou(0),this.identifierPrefix=C,this.onRecoverableError=$,this.mutableSourceEagerHydrationData=null}function lm(u,h,x,C,$,E,F,G,Q){return u=new Dw(u,h,x,G,Q),h===1?(h=1,E===!0&&(h|=8)):h=0,E=Bs(3,null,null,h),u.current=E,E.stateNode=u,E.memoizedState={element:C,isDehydrated:x,cache:null,transitions:null,pendingSuspenseBoundaries:null},nd(E),u}function Ow(u,h,x){var C=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}return n(),Zw.exports=B3(),Zw.exports}var S$;function U3(){if(S$)return ty;S$=1;var n=yT();return ty.createRoot=n.createRoot,ty.hydrateRoot=n.hydrateRoot,ty}var W3=U3(),nb={exports:{}},rb={};var k$;function V3(){if(k$)return rb;k$=1;var n=Xm();function e(p,m){return p===m&&(p!==0||1/p===1/m)||p!==p&&m!==m}var t=typeof Object.is=="function"?Object.is:e,r=n.useState,s=n.useEffect,o=n.useLayoutEffect,i=n.useDebugValue;function a(p,m){var y=m(),v=r({inst:{value:y,getSnapshot:m}}),b=v[0].inst,w=v[1];return o(function(){b.value=y,b.getSnapshot=m,l(b)&&w({inst:b})},[p,y,m]),s(function(){return l(b)&&w({inst:b}),p(function(){l(b)&&w({inst:b})})},[p]),i(y),y}function l(p){var m=p.getSnapshot;p=p.value;try{var y=m();return!t(p,y)}catch{return!0}}function c(p,m){return m()}var d=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?c:a;return rb.useSyncExternalStore=n.useSyncExternalStore!==void 0?n.useSyncExternalStore:d,rb}var I$;function vT(){return I$||(I$=1,nb.exports=V3()),nb.exports}var G3=vT(),sb={exports:{}},ob={};var $$;function j3(){if($$)return ob;$$=1;var n=Xm(),e=vT();function t(c,d){return c===d&&(c!==0||1/c===1/d)||c!==c&&d!==d}var r=typeof Object.is=="function"?Object.is:t,s=e.useSyncExternalStore,o=n.useRef,i=n.useEffect,a=n.useMemo,l=n.useDebugValue;return ob.useSyncExternalStoreWithSelector=function(c,d,p,m,y){var v=o(null);if(v.current===null){var b={hasValue:!1,value:null};v.current=b}else b=v.current;v=a(function(){function k(O){if(!I){if(I=!0,N=O,O=m(O),y!==void 0&&b.hasValue){var P=b.value;if(y(P,O))return T=P}return T=O}if(P=T,r(N,O))return P;var B=m(O);return y!==void 0&&y(P,B)?(N=O,P):(N=O,T=B)}var I=!1,N,T,A=p===void 0?null:p;return[function(){return k(d())},A===null?void 0:function(){return k(A())}]},[d,p,m,y]);var w=s(c,v[0],v[1]);return i(function(){b.hasValue=!0,b.value=w},[w]),l(w),w},ob}var N$;function H3(){return N$||(N$=1,sb.exports=j3()),sb.exports}H3();var wT=yT();const q3=xf(wT);function K3(n){n()}let bT=K3;const X3=n=>bT=n,Y3=()=>bT,T$=Symbol.for("react-redux-context"),E$=typeof globalThis<"u"?globalThis:{};function Q3(){var n;if(!Re.createContext)return{};const e=(n=E$[T$])!=null?n:E$[T$]=new Map;let t=e.get(Re.createContext);return t||(t=Re.createContext(null),e.set(Re.createContext,t)),t}const CT=Q3(),J3=()=>{throw new Error("uSES not initialized!")};function Kd(){return Kd=Object.assign?Object.assign.bind():function(n){for(var e=1;ee(s(...o)))}return t}function jb(n){return function(t){const r=n(t);function s(){return r}return s.dependsOnOwnProps=!1,s}}function P$(n){return n.dependsOnOwnProps?!!n.dependsOnOwnProps:n.length!==1}function kT(n,e){return function(r,{displayName:s}){const o=function(a,l){return o.dependsOnOwnProps?o.mapToProps(a,l):o.mapToProps(a,void 0)};return o.dependsOnOwnProps=!0,o.mapToProps=function(a,l){o.mapToProps=n,o.dependsOnOwnProps=P$(n);let c=o(a,l);return typeof c=="function"&&(o.mapToProps=c,o.dependsOnOwnProps=P$(c),c=o(a,l)),c},o}}function IT(n,e){return(t,r)=>{throw new Error(`Invalid value of type ${typeof n} for ${e} argument when connecting component ${r.wrappedComponentName}.`)}}function cM(n){return n&&typeof n=="object"?jb(e=>uM(n,e)):n?typeof n=="function"?kT(n):IT(n,"mapDispatchToProps"):jb(e=>({dispatch:e}))}function hM(n){return n?typeof n=="function"?kT(n):IT(n,"mapStateToProps"):jb(()=>({}))}function dM(n,e,t){return Kd({},t,n,e)}function fM(n){return()=>dM}function pM(){const n=Y3();let e=null,t=null;return{clear(){e=null,t=null},notify(){n(()=>{let r=e;for(;r;)r.callback(),r=r.next})},get(){let r=[],s=e;for(;s;)r.push(s),s=s.next;return r},subscribe(r){let s=!0,o=t={callback:r,next:null,prev:t};return o.prev?o.prev.next=o:e=o,function(){!s||e===null||(s=!1,o.next?o.next.prev=o.prev:t=o.prev,o.prev?o.prev.next=o.next:e=o.next)}}}}const L$={notify(){},get:()=>[]};function $T(n,e){let t,r=L$,s=0,o=!1;function i(b){d();const w=r.subscribe(b);let k=!1;return()=>{k||(k=!0,w(),p())}}function a(){r.notify()}function l(){v.onStateChange&&v.onStateChange()}function c(){return o}function d(){s++,t||(t=e?e.addNestedSub(l):n.subscribe(l),r=pM())}function p(){s--,t&&s===0&&(t(),t=void 0,r.clear(),r=L$)}function m(){o||(o=!0,d())}function y(){o&&(o=!1,p())}const v={addNestedSub:i,notifyNestedSubs:a,handleChangeWrapper:l,isSubscribed:c,trySubscribe:m,tryUnsubscribe:y,getListeners:()=>r};return v}const mM=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Ty=mM?Re.useLayoutEffect:Re.useEffect;function M$(n,e){return n===e?n!==0||e!==0||1/n===1/e:n!==n&&e!==e}function ub(n,e){if(M$(n,e))return!0;if(typeof n!="object"||n===null||typeof e!="object"||e===null)return!1;const t=Object.keys(n),r=Object.keys(e);if(t.length!==r.length)return!1;for(let s=0;s{NT=n},yM=[null,null];function vM(n,e,t){Ty(()=>n(...e),t)}function wM(n,e,t,r,s,o){n.current=r,t.current=!1,s.current&&(s.current=null,o())}function bM(n,e,t,r,s,o,i,a,l,c,d){if(!n)return()=>{};let p=!1,m=null;const y=()=>{if(p||!a.current)return;const b=e.getState();let w,k;try{w=r(b,s.current)}catch(I){k=I,m=I}k||(m=null),w===o.current?i.current||c():(o.current=w,l.current=w,i.current=!0,d())};return t.onStateChange=y,t.trySubscribe(),y(),()=>{if(p=!0,t.tryUnsubscribe(),t.onStateChange=null,m)throw m}}function CM(n,e){return n===e}function oh(n,e,t,{pure:r,areStatesEqual:s=CM,areOwnPropsEqual:o=ub,areStatePropsEqual:i=ub,areMergedPropsEqual:a=ub,forwardRef:l=!1,context:c=CT}={}){const d=c,p=hM(n),m=cM(e),y=fM(),v=!!n;return w=>{const k=w.displayName||w.name||"Component",I=`Connect(${k})`,N={shouldHandleStateChanges:v,displayName:I,wrappedComponentName:k,WrappedComponent:w,initMapStateToProps:p,initMapDispatchToProps:m,initMergeProps:y,areStatesEqual:s,areStatePropsEqual:i,areOwnPropsEqual:o,areMergedPropsEqual:a};function T(P){const[B,z,L]=Re.useMemo(()=>{const{reactReduxForwardedRef:pt}=P,bt=ST(P,gM);return[P.context,pt,bt]},[P]),_=Re.useMemo(()=>B&&B.Consumer&&oM.isContextConsumer(Re.createElement(B.Consumer,null))?B:d,[B,d]),H=Re.useContext(_),Y=!!P.store&&!!P.store.getState&&!!P.store.dispatch,re=!!H&&!!H.store,te=Y?P.store:H.store,le=re?H.getServerState:te.getState,de=Re.useMemo(()=>lM(te.dispatch,N),[te]),[j,ie]=Re.useMemo(()=>{if(!v)return yM;const pt=$T(te,Y?void 0:H.subscription),bt=pt.notifyNestedSubs.bind(pt);return[pt,bt]},[te,Y,H]),se=Re.useMemo(()=>Y?H:Kd({},H,{subscription:j}),[Y,H,j]),V=Re.useRef(),X=Re.useRef(L),xe=Re.useRef(),Ie=Re.useRef(!1);Re.useRef(!1);const ke=Re.useRef(!1),Ee=Re.useRef();Ty(()=>(ke.current=!0,()=>{ke.current=!1}),[]);const Me=Re.useMemo(()=>()=>xe.current&&L===X.current?xe.current:de(te.getState(),L),[te,L]),ze=Re.useMemo(()=>bt=>j?bM(v,te,j,de,X,V,Ie,ke,xe,ie,bt):()=>{},[j]);vM(wM,[X,V,Ie,L,xe,ie]);let Be;try{Be=NT(ze,Me,le?()=>de(le(),L):Me)}catch(pt){throw Ee.current&&(pt.message+=` +The error may be correlated with this previous error: +${Ee.current.stack} + +`),pt}Ty(()=>{Ee.current=void 0,xe.current=void 0,V.current=Be});const Je=Re.useMemo(()=>Re.createElement(w,Kd({},Be,{ref:z})),[z,w,Be]);return Re.useMemo(()=>v?Re.createElement(_.Provider,{value:se},Je):Je,[_,Je,se])}const O=Re.memo(T);if(O.WrappedComponent=w,O.displayName=T.displayName=I,l){const B=Re.forwardRef(function(L,_){return Re.createElement(O,Kd({},L,{reactReduxForwardedRef:_}))});return B.displayName=I,B.WrappedComponent=w,D$(B,w)}return D$(O,w)}}function SM({store:n,context:e,children:t,serverState:r,stabilityCheck:s="once",noopCheck:o="once"}){const i=Re.useMemo(()=>{const c=$T(n);return{store:n,subscription:c,getServerState:r?()=>r:void 0,stabilityCheck:s,noopCheck:o}},[n,r,s,o]),a=Re.useMemo(()=>n.getState(),[n]);Ty(()=>{const{subscription:c}=i;return c.onStateChange=c.notifyNestedSubs,c.trySubscribe(),a!==n.getState()&&c.notifyNestedSubs(),()=>{c.tryUnsubscribe(),c.onStateChange=void 0}},[i,a]);const l=e||CT;return Re.createElement(l.Provider,{value:i},t)}xM(G3.useSyncExternalStore);X3(wT.unstable_batchedUpdates);function Em(n){"@babel/helpers - typeof";return Em=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Em(n)}function kM(n,e){if(Em(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e);if(Em(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function IM(n){var e=kM(n,"string");return Em(e)=="symbol"?e:e+""}function $M(n,e,t){return(e=IM(e))in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function z$(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(s){return Object.getOwnPropertyDescriptor(n,s).enumerable})),t.push.apply(t,r)}return t}function B$(n){for(var e=1;e"u"&&(t=e,e=void 0),typeof t<"u"){if(typeof t!="function")throw new Error(ss(1));return t(TT)(n,e)}if(typeof n!="function")throw new Error(ss(2));var s=n,o=e,i=[],a=i,l=!1;function c(){a===i&&(a=i.slice())}function d(){if(l)throw new Error(ss(3));return o}function p(b){if(typeof b!="function")throw new Error(ss(4));if(l)throw new Error(ss(5));var w=!0;return c(),a.push(b),function(){if(w){if(l)throw new Error(ss(6));w=!1,c();var I=a.indexOf(b);a.splice(I,1),i=null}}}function m(b){if(!NM(b))throw new Error(ss(7));if(typeof b.type>"u")throw new Error(ss(8));if(l)throw new Error(ss(9));try{l=!0,o=s(o,b)}finally{l=!1}for(var w=i=a,k=0;k"u")throw new Error(ss(12));if(typeof t(void 0,{type:Ey.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(ss(13))})}function ET(n){for(var e=Object.keys(n),t={},r=0;r"u")throw c&&c.type,new Error(ss(14));p[y]=w,d=d||w!==b}return d=d||o.length!==Object.keys(l).length,d?p:l}}function Rm(){for(var n=arguments.length,e=new Array(n),t=0;t1?e-1:0),r=1;r3?e.i-4:e.i:Array.isArray(n)?1:YC(n)?2:QC(n)?3:0}function Xd(n,e){return yf(n)===2?n.has(e):Object.prototype.hasOwnProperty.call(n,e)}function EM(n,e){return yf(n)===2?n.get(e):n[e]}function AT(n,e,t){var r=yf(n);r===2?n.set(e,t):r===3?n.add(t):n[e]=t}function _T(n,e){return n===e?n!==0||1/n==1/e:n!=n&&e!=e}function YC(n){return FM&&n instanceof Map}function QC(n){return PM&&n instanceof Set}function Tc(n){return n.o||n.t}function JC(n){if(Array.isArray(n))return Array.prototype.slice.call(n);var e=OT(n);delete e[Nn];for(var t=Yd(e),r=0;r1&&(n.set=n.add=n.clear=n.delete=RM),Object.freeze(n),e&&Wc(n,(function(t,r){return ZC(r,!0)}),!0)),n}function RM(){wi(2)}function eS(n){return n==null||typeof n!="object"||Object.isFrozen(n)}function ua(n){var e=Xb[n];return e||wi(18,n),e}function AM(n,e){Xb[n]||(Xb[n]=e)}function Hb(){return Am}function hb(n,e){e&&(ua("Patches"),n.u=[],n.s=[],n.v=e)}function Ry(n){qb(n),n.p.forEach(_M),n.p=null}function qb(n){n===Am&&(Am=n.l)}function W$(n){return Am={p:[],l:Am,h:n,m:!0,_:0}}function _M(n){var e=n[Nn];e.i===0||e.i===1?e.j():e.g=!0}function db(n,e){e._=e.p.length;var t=e.p[0],r=n!==void 0&&n!==t;return e.h.O||ua("ES5").S(e,n,r),r?(t[Nn].P&&(Ry(e),wi(4)),Uc(n)&&(n=Ay(e,n),e.l||_y(e,n)),e.u&&ua("Patches").M(t[Nn].t,n,e.u,e.s)):n=Ay(e,t,[]),Ry(e),e.u&&e.v(e.u,e.s),n!==DT?n:void 0}function Ay(n,e,t){if(eS(e))return e;var r=e[Nn];if(!r)return Wc(e,(function(a,l){return V$(n,r,e,a,l,t)}),!0),e;if(r.A!==n)return e;if(!r.P)return _y(n,r.t,!0),r.t;if(!r.I){r.I=!0,r.A._--;var s=r.i===4||r.i===5?r.o=JC(r.k):r.o,o=s,i=!1;r.i===3&&(o=new Set(s),s.clear(),i=!0),Wc(o,(function(a,l){return V$(n,r,s,a,l,t,i)})),_y(n,s,!1),t&&n.u&&ua("Patches").N(r,t,n.u,n.s)}return r.o}function V$(n,e,t,r,s,o,i){if(Bc(s)){var a=Ay(n,s,o&&e&&e.i!==3&&!Xd(e.R,r)?o.concat(r):void 0);if(AT(t,r,a),!Bc(a))return;n.m=!1}else i&&t.add(s);if(Uc(s)&&!eS(s)){if(!n.h.D&&n._<1)return;Ay(n,s),e&&e.A.l||_y(n,s)}}function _y(n,e,t){t===void 0&&(t=!1),!n.l&&n.h.D&&n.m&&ZC(e,t)}function fb(n,e){var t=n[Nn];return(t?Tc(t):n)[e]}function G$(n,e){if(e in n)for(var t=Object.getPrototypeOf(n);t;){var r=Object.getOwnPropertyDescriptor(t,e);if(r)return r;t=Object.getPrototypeOf(t)}}function Ql(n){n.P||(n.P=!0,n.l&&Ql(n.l))}function pb(n){n.o||(n.o=JC(n.t))}function Kb(n,e,t){var r=YC(e)?ua("MapSet").F(e,t):QC(e)?ua("MapSet").T(e,t):n.O?(function(s,o){var i=Array.isArray(s),a={i:i?1:0,A:o?o.A:Hb(),P:!1,I:!1,R:{},l:o,t:s,k:null,o:null,j:null,C:!1},l=a,c=_m;i&&(l=[a],c=ym);var d=Proxy.revocable(l,c),p=d.revoke,m=d.proxy;return a.k=m,a.j=p,m})(e,t):ua("ES5").J(e,t);return(t?t.A:Hb()).p.push(r),r}function DM(n){return Bc(n)||wi(22,n),(function e(t){if(!Uc(t))return t;var r,s=t[Nn],o=yf(t);if(s){if(!s.P&&(s.i<4||!ua("ES5").K(s)))return s.t;s.I=!0,r=j$(t,o),s.I=!1}else r=j$(t,o);return Wc(r,(function(i,a){s&&EM(s.t,i)===a||AT(r,i,e(a))})),o===3?new Set(r):r})(n)}function j$(n,e){switch(e){case 2:return new Map(n);case 3:return Array.from(n)}return JC(n)}function OM(){function n(o,i){var a=s[o];return a?a.enumerable=i:s[o]=a={configurable:!0,enumerable:i,get:function(){var l=this[Nn];return _m.get(l,o)},set:function(l){var c=this[Nn];_m.set(c,o,l)}},a}function e(o){for(var i=o.length-1;i>=0;i--){var a=o[i][Nn];if(!a.P)switch(a.i){case 5:r(a)&&Ql(a);break;case 4:t(a)&&Ql(a)}}}function t(o){for(var i=o.t,a=o.k,l=Yd(a),c=l.length-1;c>=0;c--){var d=l[c];if(d!==Nn){var p=i[d];if(p===void 0&&!Xd(i,d))return!0;var m=a[d],y=m&&m[Nn];if(y?y.t!==p:!_T(m,p))return!0}}var v=!!i[Nn];return l.length!==Yd(i).length+(v?0:1)}function r(o){var i=o.k;if(i.length!==o.t.length)return!0;var a=Object.getOwnPropertyDescriptor(i,i.length-1);if(a&&!a.get)return!0;for(var l=0;l1?k-1:0),N=1;N1?d-1:0),m=1;m=0;s--){var o=r[s];if(o.path.length===0&&o.op==="replace"){t=o.value;break}}s>-1&&(r=r.slice(s+1));var i=ua("Patches").$;return Bc(t)?i(t,r):this.produce(t,(function(a){return i(a,r)}))},n})(),vo=new MM;vo.produce;vo.produceWithPatches.bind(vo);vo.setAutoFreeze.bind(vo);vo.setUseProxies.bind(vo);vo.applyPatches.bind(vo);vo.createDraft.bind(vo);vo.finishDraft.bind(vo);function FT(n){var e=function(r){var s=r.dispatch,o=r.getState;return function(i){return function(a){return typeof a=="function"?a(s,o,n):i(a)}}};return e}var Dy=FT();Dy.withExtraArgument=FT;var PT=(function(){var n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,s){r.__proto__=s}||function(r,s){for(var o in s)Object.prototype.hasOwnProperty.call(s,o)&&(r[o]=s[o])},n(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");n(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}})(),zM=function(n,e){var t={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},r,s,o,i;return i={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(i[Symbol.iterator]=function(){return this}),i;function a(c){return function(d){return l([c,d])}}function l(c){if(r)throw new TypeError("Generator is already executing.");for(;t;)try{if(r=1,s&&(o=c[0]&2?s.return:c[0]?s.throw||((o=s.return)&&o.call(s),0):s.next)&&!(o=o.call(s,c[1])).done)return o;switch(s=0,o&&(c=[c[0]&2,o.value]),c[0]){case 0:case 1:o=c;break;case 4:return t.label++,{value:c[1],done:!1};case 5:t.label++,s=c[1],c=[0];continue;case 7:c=t.ops.pop(),t.trys.pop();continue;default:if(o=t.trys,!(o=o.length>0&&o[o.length-1])&&(c[0]===6||c[0]===2)){t=0;continue}if(c[0]===3&&(!o||c[1]>o[0]&&c[1]"u")throw new Error(e)}function rS(n,e){if(!n){typeof console<"u"&&console.warn(e);try{throw new Error(e)}catch{}}}function az(){return Math.random().toString(36).substr(2,8)}function eN(n,e){return{usr:n.state,key:n.key,idx:e}}function Yb(n,e,t,r){return t===void 0&&(t=null),Om({pathname:typeof n=="string"?n:n.pathname,search:"",hash:""},typeof e=="string"?vf(e):e,{state:t,key:e&&e.key||r||az()})}function Oy(n){let{pathname:e="/",search:t="",hash:r=""}=n;return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),r&&r!=="#"&&(e+=r.charAt(0)==="#"?r:"#"+r),e}function vf(n){let e={};if(n){let t=n.indexOf("#");t>=0&&(e.hash=n.substr(t),n=n.substr(0,t));let r=n.indexOf("?");r>=0&&(e.search=n.substr(r),n=n.substr(0,r)),n&&(e.pathname=n)}return e}function lz(n,e,t,r){r===void 0&&(r={});let{window:s=document.defaultView,v5Compat:o=!1}=r,i=s.history,a=Jl.Pop,l=null,c=d();c==null&&(c=0,i.replaceState(Om({},i.state,{idx:c}),""));function d(){return(i.state||{idx:null}).idx}function p(){a=Jl.Pop;let w=d(),k=w==null?null:w-c;c=w,l&&l({action:a,location:b.location,delta:k})}function m(w,k){a=Jl.Push;let I=Yb(b.location,w,k);c=d()+1;let N=eN(I,c),T=b.createHref(I);try{i.pushState(N,"",T)}catch(A){if(A instanceof DOMException&&A.name==="DataCloneError")throw A;s.location.assign(T)}o&&l&&l({action:a,location:b.location,delta:1})}function y(w,k){a=Jl.Replace;let I=Yb(b.location,w,k);c=d();let N=eN(I,c),T=b.createHref(I);i.replaceState(N,"",T),o&&l&&l({action:a,location:b.location,delta:0})}function v(w){let k=s.location.origin!=="null"?s.location.origin:s.location.href,I=typeof w=="string"?w:Oy(w);return I=I.replace(/ $/,"%20"),sr(k,"No window.location.(origin|href) available to create URL for href: "+I),new URL(I,k)}let b={get action(){return a},get location(){return n(s,i)},listen(w){if(l)throw new Error("A history only accepts one active listener");return s.addEventListener(Z$,p),l=w,()=>{s.removeEventListener(Z$,p),l=null}},createHref(w){return e(s,w)},createURL:v,encodeLocation(w){let k=v(w);return{pathname:k.pathname,search:k.search,hash:k.hash}},push:m,replace:y,go(w){return i.go(w)}};return b}var tN;(function(n){n.data="data",n.deferred="deferred",n.redirect="redirect",n.error="error"})(tN||(tN={}));function uz(n,e,t){return t===void 0&&(t="/"),cz(n,e,t)}function cz(n,e,t,r){let s=typeof e=="string"?vf(e):e,o=sS(s.pathname||"/",t);if(o==null)return null;let i=LT(n);hz(i);let a=null;for(let l=0;a==null&&l{let l={relativePath:a===void 0?o.path||"":a,caseSensitive:o.caseSensitive===!0,childrenIndex:i,route:o};l.relativePath.startsWith("/")&&(sr(l.relativePath.startsWith(r),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(r.length));let c=nu([r,l.relativePath]),d=t.concat(l);o.children&&o.children.length>0&&(sr(o.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+c+'".')),LT(o.children,e,d,c)),!(o.path==null&&!o.index)&&e.push({path:c,score:yz(c,o.index),routesMeta:d})};return n.forEach((o,i)=>{var a;if(o.path===""||!((a=o.path)!=null&&a.includes("?")))s(o,i);else for(let l of MT(o.path))s(o,i,l)}),e}function MT(n){let e=n.split("/");if(e.length===0)return[];let[t,...r]=e,s=t.endsWith("?"),o=t.replace(/\?$/,"");if(r.length===0)return s?[o,""]:[o];let i=MT(r.join("/")),a=[];return a.push(...i.map(l=>l===""?o:[o,l].join("/"))),s&&a.push(...i),a.map(l=>n.startsWith("/")&&l===""?"/":l)}function hz(n){n.sort((e,t)=>e.score!==t.score?t.score-e.score:vz(e.routesMeta.map(r=>r.childrenIndex),t.routesMeta.map(r=>r.childrenIndex)))}const dz=/^:[\w-]+$/,fz=3,pz=2,mz=1,gz=10,xz=-2,nN=n=>n==="*";function yz(n,e){let t=n.split("/"),r=t.length;return t.some(nN)&&(r+=xz),e&&(r+=pz),t.filter(s=>!nN(s)).reduce((s,o)=>s+(dz.test(o)?fz:o===""?mz:gz),r)}function vz(n,e){return n.length===e.length&&n.slice(0,-1).every((r,s)=>r===e[s])?n[n.length-1]-e[e.length-1]:0}function wz(n,e,t){let{routesMeta:r}=n,s={},o="/",i=[];for(let a=0;a{let{paramName:m,isOptional:y}=d;if(m==="*"){let b=a[p]||"";i=o.slice(0,o.length-b.length).replace(/(.)\/+$/,"$1")}const v=a[p];return y&&!v?c[m]=void 0:c[m]=(v||"").replace(/%2F/g,"/"),c},{}),pathname:o,pathnameBase:i,pattern:n}}function Cz(n,e,t){e===void 0&&(e=!1),t===void 0&&(t=!0),rS(n==="*"||!n.endsWith("*")||n.endsWith("/*"),'Route path "'+n+'" will be treated as if it were '+('"'+n.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+n.replace(/\*$/,"/*")+'".'));let r=[],s="^"+n.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(i,a,l)=>(r.push({paramName:a,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return n.endsWith("*")?(r.push({paramName:"*"}),s+=n==="*"||n==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):t?s+="\\/*$":n!==""&&n!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,e?void 0:"i"),r]}function Sz(n){try{return n.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(e){return rS(!1,'The URL path "'+n+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+e+").")),n}}function sS(n,e){if(e==="/")return n;if(!n.toLowerCase().startsWith(e.toLowerCase()))return null;let t=e.endsWith("/")?e.length-1:e.length,r=n.charAt(t);return r&&r!=="/"?null:n.slice(t)||"/"}const kz=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Iz=n=>kz.test(n);function $z(n,e){e===void 0&&(e="/");let{pathname:t,search:r="",hash:s=""}=typeof n=="string"?vf(n):n,o;if(t)if(Iz(t))o=t;else{if(t.includes("//")){let i=t;t=t.replace(/\/\/+/g,"/"),rS(!1,"Pathnames cannot have embedded double slashes - normalizing "+(i+" -> "+t))}t.startsWith("/")?o=rN(t.substring(1),"/"):o=rN(t,e)}else o=e;return{pathname:o,search:Ez(r),hash:Rz(s)}}function rN(n,e){let t=e.replace(/\/+$/,"").split("/");return n.split("/").forEach(s=>{s===".."?t.length>1&&t.pop():s!=="."&&t.push(s)}),t.length>1?t.join("/"):"/"}function xb(n,e,t,r){return"Cannot include a '"+n+"' character in a manually specified "+("`to."+e+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+t+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function Nz(n){return n.filter((e,t)=>t===0||e.route.path&&e.route.path.length>0)}function zT(n,e){let t=Nz(n);return e?t.map((r,s)=>s===t.length-1?r.pathname:r.pathnameBase):t.map(r=>r.pathnameBase)}function BT(n,e,t,r){r===void 0&&(r=!1);let s;typeof n=="string"?s=vf(n):(s=Om({},n),sr(!s.pathname||!s.pathname.includes("?"),xb("?","pathname","search",s)),sr(!s.pathname||!s.pathname.includes("#"),xb("#","pathname","hash",s)),sr(!s.search||!s.search.includes("#"),xb("#","search","hash",s)));let o=n===""||s.pathname==="",i=o?"/":s.pathname,a;if(i==null)a=t;else{let p=e.length-1;if(!r&&i.startsWith("..")){let m=i.split("/");for(;m[0]==="..";)m.shift(),p-=1;s.pathname=m.join("/")}a=p>=0?e[p]:"/"}let l=$z(s,a),c=i&&i!=="/"&&i.endsWith("/"),d=(o||i===".")&&t.endsWith("/");return!l.pathname.endsWith("/")&&(c||d)&&(l.pathname+="/"),l}const nu=n=>n.join("/").replace(/\/\/+/g,"/"),Tz=n=>n.replace(/\/+$/,"").replace(/^\/*/,"/"),Ez=n=>!n||n==="?"?"":n.startsWith("?")?n:"?"+n,Rz=n=>!n||n==="#"?"":n.startsWith("#")?n:"#"+n;function Az(n){return n!=null&&typeof n.status=="number"&&typeof n.statusText=="string"&&typeof n.internal=="boolean"&&"data"in n}const UT=["post","put","patch","delete"];new Set(UT);const _z=["get",...UT];new Set(_z);function Fm(){return Fm=Object.assign?Object.assign.bind():function(n){for(var e=1;e{a.current=!0}),Re.useCallback(function(c,d){if(d===void 0&&(d={}),!a.current)return;if(typeof c=="number"){r.go(c);return}let p=BT(c,JSON.parse(i),o,d.relative==="path");n==null&&e!=="/"&&(p.pathname=p.pathname==="/"?e:nu([e,p.pathname])),(d.replace?r.replace:r.push)(p,d.state,d)},[e,r,i,o,n])}function Lz(){let{matches:n}=Re.useContext(fu),e=n[n.length-1];return e?e.params:{}}function GT(n,e){let{relative:t}=e===void 0?{}:e,{future:r}=Re.useContext(ih),{matches:s}=Re.useContext(fu),{pathname:o}=f1(),i=JSON.stringify(zT(s,r.v7_relativeSplatPath));return Re.useMemo(()=>BT(n,JSON.parse(i),o,t==="path"),[n,i,o,t])}function Mz(n,e){return zz(n,e)}function zz(n,e,t,r){Ym()||sr(!1);let{navigator:s}=Re.useContext(ih),{matches:o}=Re.useContext(fu),i=o[o.length-1],a=i?i.params:{};i&&i.pathname;let l=i?i.pathnameBase:"/";i&&i.route;let c=f1(),d;if(e){var p;let w=typeof e=="string"?vf(e):e;l==="/"||(p=w.pathname)!=null&&p.startsWith(l)||sr(!1),d=w}else d=c;let m=d.pathname||"/",y=m;if(l!=="/"){let w=l.replace(/^\//,"").split("/");y="/"+m.replace(/^\//,"").split("/").slice(w.length).join("/")}let v=uz(n,{pathname:y}),b=Gz(v&&v.map(w=>Object.assign({},w,{params:Object.assign({},a,w.params),pathname:nu([l,s.encodeLocation?s.encodeLocation(w.pathname).pathname:w.pathname]),pathnameBase:w.pathnameBase==="/"?l:nu([l,s.encodeLocation?s.encodeLocation(w.pathnameBase).pathname:w.pathnameBase])})),o,t,r);return e&&b?Re.createElement(d1.Provider,{value:{location:Fm({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:Jl.Pop}},b):b}function Bz(){let n=Kz(),e=Az(n)?n.status+" "+n.statusText:n instanceof Error?n.message:JSON.stringify(n),t=n instanceof Error?n.stack:null,s={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return Re.createElement(Re.Fragment,null,Re.createElement("h2",null,"Unexpected Application Error!"),Re.createElement("h3",{style:{fontStyle:"italic"}},e),t?Re.createElement("pre",{style:s},t):null,null)}const Uz=Re.createElement(Bz,null);class Wz extends Re.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){console.error("React Router caught the following error during render",e,t)}render(){return this.state.error!==void 0?Re.createElement(fu.Provider,{value:this.props.routeContext},Re.createElement(WT.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function Vz(n){let{routeContext:e,match:t,children:r}=n,s=Re.useContext(oS);return s&&s.static&&s.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=t.route.id),Re.createElement(fu.Provider,{value:e},r)}function Gz(n,e,t,r){var s;if(e===void 0&&(e=[]),t===void 0&&(t=null),r===void 0&&(r=null),n==null){var o;if(!t)return null;if(t.errors)n=t.matches;else if((o=r)!=null&&o.v7_partialHydration&&e.length===0&&!t.initialized&&t.matches.length>0)n=t.matches;else return null}let i=n,a=(s=t)==null?void 0:s.errors;if(a!=null){let d=i.findIndex(p=>p.route.id&&a?.[p.route.id]!==void 0);d>=0||sr(!1),i=i.slice(0,Math.min(i.length,d+1))}let l=!1,c=-1;if(t&&r&&r.v7_partialHydration)for(let d=0;d=0?i=i.slice(0,c+1):i=[i[0]];break}}}return i.reduceRight((d,p,m)=>{let y,v=!1,b=null,w=null;t&&(y=a&&p.route.id?a[p.route.id]:void 0,b=p.route.errorElement||Uz,l&&(c<0&&m===0?(Yz("route-fallback"),v=!0,w=null):c===m&&(v=!0,w=p.route.hydrateFallbackElement||null)));let k=e.concat(i.slice(0,m+1)),I=()=>{let N;return y?N=b:v?N=w:p.route.Component?N=Re.createElement(p.route.Component,null):p.route.element?N=p.route.element:N=d,Re.createElement(Vz,{match:p,routeContext:{outlet:d,matches:k,isDataRoute:t!=null},children:N})};return t&&(p.route.ErrorBoundary||p.route.errorElement||m===0)?Re.createElement(Wz,{location:t.location,revalidation:t.revalidation,component:b,error:y,children:I(),routeContext:{outlet:null,matches:k,isDataRoute:!0}}):I()},null)}var jT=(function(n){return n.UseBlocker="useBlocker",n.UseRevalidator="useRevalidator",n.UseNavigateStable="useNavigate",n})(jT||{}),HT=(function(n){return n.UseBlocker="useBlocker",n.UseLoaderData="useLoaderData",n.UseActionData="useActionData",n.UseRouteError="useRouteError",n.UseNavigation="useNavigation",n.UseRouteLoaderData="useRouteLoaderData",n.UseMatches="useMatches",n.UseRevalidator="useRevalidator",n.UseNavigateStable="useNavigate",n.UseRouteId="useRouteId",n})(HT||{});function jz(n){let e=Re.useContext(oS);return e||sr(!1),e}function Hz(n){let e=Re.useContext(Dz);return e||sr(!1),e}function qz(n){let e=Re.useContext(fu);return e||sr(!1),e}function qT(n){let e=qz(),t=e.matches[e.matches.length-1];return t.route.id||sr(!1),t.route.id}function Kz(){var n;let e=Re.useContext(WT),t=Hz(),r=qT();return e!==void 0?e:(n=t.errors)==null?void 0:n[r]}function Xz(){let{router:n}=jz(jT.UseNavigateStable),e=qT(HT.UseNavigateStable),t=Re.useRef(!1);return VT(()=>{t.current=!0}),Re.useCallback(function(s,o){o===void 0&&(o={}),t.current&&(typeof s=="number"?n.navigate(s):n.navigate(s,Fm({fromRouteId:e},o)))},[n,e])}const sN={};function Yz(n,e,t){sN[n]||(sN[n]=!0)}function Qz(n,e){n?.v7_startTransition,n?.v7_relativeSplatPath}function Xl(n){sr(!1)}function Jz(n){let{basename:e="/",children:t=null,location:r,navigationType:s=Jl.Pop,navigator:o,static:i=!1,future:a}=n;Ym()&&sr(!1);let l=e.replace(/^\/*/,"/"),c=Re.useMemo(()=>({basename:l,navigator:o,static:i,future:Fm({v7_relativeSplatPath:!1},a)}),[l,a,o,i]);typeof r=="string"&&(r=vf(r));let{pathname:d="/",search:p="",hash:m="",state:y=null,key:v="default"}=r,b=Re.useMemo(()=>{let w=sS(d,l);return w==null?null:{location:{pathname:w,search:p,hash:m,state:y,key:v},navigationType:s}},[l,d,p,m,y,v,s]);return b==null?null:Re.createElement(ih.Provider,{value:c},Re.createElement(d1.Provider,{children:t,value:b}))}function Zz(n){let{children:e,location:t}=n;return Mz(Qb(e),t)}new Promise(()=>{});function Qb(n,e){e===void 0&&(e=[]);let t=[];return Re.Children.forEach(n,(r,s)=>{if(!Re.isValidElement(r))return;let o=[...e,s];if(r.type===Re.Fragment){t.push.apply(t,Qb(r.props.children,o));return}r.type!==Xl&&sr(!1),!r.props.index||!r.props.children||sr(!1);let i={id:r.props.id||o.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(i.children=Qb(r.props.children,o)),t.push(i)}),t}function Jb(){return Jb=Object.assign?Object.assign.bind():function(n){for(var e=1;e=0)&&(t[s]=n[s]);return t}function tB(n){return!!(n.metaKey||n.altKey||n.ctrlKey||n.shiftKey)}function nB(n,e){return n.button===0&&(!e||e==="_self")&&!tB(n)}const rB=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],sB="6";try{window.__reactRouterVersion=sB}catch{}const oB="startTransition",oN=L3[oB];function iB(n){let{basename:e,children:t,future:r,window:s}=n,o=Re.useRef();o.current==null&&(o.current=iz({window:s,v5Compat:!0}));let i=o.current,[a,l]=Re.useState({action:i.action,location:i.location}),{v7_startTransition:c}=r||{},d=Re.useCallback(p=>{c&&oN?oN(()=>l(p)):l(p)},[l,c]);return Re.useLayoutEffect(()=>i.listen(d),[i,d]),Re.useEffect(()=>Qz(r),[r]),Re.createElement(Jz,{basename:e,children:t,location:a.location,navigationType:a.action,navigator:i,future:r})}const aB=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",lB=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,aa=Re.forwardRef(function(e,t){let{onClick:r,relative:s,reloadDocument:o,replace:i,state:a,target:l,to:c,preventScrollReset:d,viewTransition:p}=e,m=eB(e,rB),{basename:y}=Re.useContext(ih),v,b=!1;if(typeof c=="string"&&lB.test(c)&&(v=c,aB))try{let N=new URL(window.location.href),T=c.startsWith("//")?new URL(N.protocol+c):new URL(c),A=sS(T.pathname,y);T.origin===N.origin&&A!=null?c=A+T.search+T.hash:b=!0}catch{}let w=Oz(c,{relative:s}),k=uB(c,{replace:i,state:a,target:l,preventScrollReset:d,relative:s,viewTransition:p});function I(N){r&&r(N),N.defaultPrevented||k(N)}return Re.createElement("a",Jb({},m,{href:v||w,onClick:b||o?r:I,ref:t,target:l}))});var iN;(function(n){n.UseScrollRestoration="useScrollRestoration",n.UseSubmit="useSubmit",n.UseSubmitFetcher="useSubmitFetcher",n.UseFetcher="useFetcher",n.useViewTransitionState="useViewTransitionState"})(iN||(iN={}));var aN;(function(n){n.UseFetcher="useFetcher",n.UseFetchers="useFetchers",n.UseScrollRestoration="useScrollRestoration"})(aN||(aN={}));function uB(n,e){let{target:t,replace:r,state:s,preventScrollReset:o,relative:i,viewTransition:a}=e===void 0?{}:e,l=Fz(),c=f1(),d=GT(n,{relative:i});return Re.useCallback(p=>{if(nB(p,t)){p.preventDefault();let m=r!==void 0?r:Oy(c)===Oy(d);l(n,{replace:m,state:s,preventScrollReset:o,relative:i,viewTransition:a})}},[c,l,d,r,s,t,n,o,i,a])}function KT(n,e){return function(){return n.apply(e,arguments)}}const{toString:cB}=Object.prototype,{getPrototypeOf:iS}=Object,{iterator:p1,toStringTag:XT}=Symbol,m1=(n=>e=>{const t=cB.call(e);return n[t]||(n[t]=t.slice(8,-1).toLowerCase())})(Object.create(null)),Ti=n=>(n=n.toLowerCase(),e=>m1(e)===n),g1=n=>e=>typeof e===n,{isArray:wf}=Array,sf=g1("undefined");function Qm(n){return n!==null&&!sf(n)&&n.constructor!==null&&!sf(n.constructor)&&Ks(n.constructor.isBuffer)&&n.constructor.isBuffer(n)}const YT=Ti("ArrayBuffer");function hB(n){let e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(n):e=n&&n.buffer&&YT(n.buffer),e}const dB=g1("string"),Ks=g1("function"),QT=g1("number"),Jm=n=>n!==null&&typeof n=="object",fB=n=>n===!0||n===!1,gy=n=>{if(m1(n)!=="object")return!1;const e=iS(n);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(XT in n)&&!(p1 in n)},pB=n=>{if(!Jm(n)||Qm(n))return!1;try{return Object.keys(n).length===0&&Object.getPrototypeOf(n)===Object.prototype}catch{return!1}},mB=Ti("Date"),gB=Ti("File"),xB=Ti("Blob"),yB=Ti("FileList"),vB=n=>Jm(n)&&Ks(n.pipe),wB=n=>{let e;return n&&(typeof FormData=="function"&&n instanceof FormData||Ks(n.append)&&((e=m1(n))==="formdata"||e==="object"&&Ks(n.toString)&&n.toString()==="[object FormData]"))},bB=Ti("URLSearchParams"),[CB,SB,kB,IB]=["ReadableStream","Request","Response","Headers"].map(Ti),$B=n=>n.trim?n.trim():n.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Zm(n,e,{allOwnKeys:t=!1}={}){if(n===null||typeof n>"u")return;let r,s;if(typeof n!="object"&&(n=[n]),wf(n))for(r=0,s=n.length;r0;)if(s=t[r],e===s.toLowerCase())return s;return null}const Dc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,ZT=n=>!sf(n)&&n!==Dc;function Zb(){const{caseless:n,skipUndefined:e}=ZT(this)&&this||{},t={},r=(s,o)=>{const i=n&&JT(t,o)||o;gy(t[i])&&gy(s)?t[i]=Zb(t[i],s):gy(s)?t[i]=Zb({},s):wf(s)?t[i]=s.slice():(!e||!sf(s))&&(t[i]=s)};for(let s=0,o=arguments.length;s(Zm(e,(s,o)=>{t&&Ks(s)?n[o]=KT(s,t):n[o]=s},{allOwnKeys:r}),n),TB=n=>(n.charCodeAt(0)===65279&&(n=n.slice(1)),n),EB=(n,e,t,r)=>{n.prototype=Object.create(e.prototype,r),n.prototype.constructor=n,Object.defineProperty(n,"super",{value:e.prototype}),t&&Object.assign(n.prototype,t)},RB=(n,e,t,r)=>{let s,o,i;const a={};if(e=e||{},n==null)return e;do{for(s=Object.getOwnPropertyNames(n),o=s.length;o-- >0;)i=s[o],(!r||r(i,n,e))&&!a[i]&&(e[i]=n[i],a[i]=!0);n=t!==!1&&iS(n)}while(n&&(!t||t(n,e))&&n!==Object.prototype);return e},AB=(n,e,t)=>{n=String(n),(t===void 0||t>n.length)&&(t=n.length),t-=e.length;const r=n.indexOf(e,t);return r!==-1&&r===t},_B=n=>{if(!n)return null;if(wf(n))return n;let e=n.length;if(!QT(e))return null;const t=new Array(e);for(;e-- >0;)t[e]=n[e];return t},DB=(n=>e=>n&&e instanceof n)(typeof Uint8Array<"u"&&iS(Uint8Array)),OB=(n,e)=>{const r=(n&&n[p1]).call(n);let s;for(;(s=r.next())&&!s.done;){const o=s.value;e.call(n,o[0],o[1])}},FB=(n,e)=>{let t;const r=[];for(;(t=n.exec(e))!==null;)r.push(t);return r},PB=Ti("HTMLFormElement"),LB=n=>n.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(t,r,s){return r.toUpperCase()+s}),lN=(({hasOwnProperty:n})=>(e,t)=>n.call(e,t))(Object.prototype),MB=Ti("RegExp"),eE=(n,e)=>{const t=Object.getOwnPropertyDescriptors(n),r={};Zm(t,(s,o)=>{let i;(i=e(s,o,n))!==!1&&(r[o]=i||s)}),Object.defineProperties(n,r)},zB=n=>{eE(n,(e,t)=>{if(Ks(n)&&["arguments","caller","callee"].indexOf(t)!==-1)return!1;const r=n[t];if(Ks(r)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+t+"'")})}})},BB=(n,e)=>{const t={},r=s=>{s.forEach(o=>{t[o]=!0})};return wf(n)?r(n):r(String(n).split(e)),t},UB=()=>{},WB=(n,e)=>n!=null&&Number.isFinite(n=+n)?n:e;function VB(n){return!!(n&&Ks(n.append)&&n[XT]==="FormData"&&n[p1])}const GB=n=>{const e=new Array(10),t=(r,s)=>{if(Jm(r)){if(e.indexOf(r)>=0)return;if(Qm(r))return r;if(!("toJSON"in r)){e[s]=r;const o=wf(r)?[]:{};return Zm(r,(i,a)=>{const l=t(i,s+1);!sf(l)&&(o[a]=l)}),e[s]=void 0,o}}return r};return t(n,0)},jB=Ti("AsyncFunction"),HB=n=>n&&(Jm(n)||Ks(n))&&Ks(n.then)&&Ks(n.catch),tE=((n,e)=>n?setImmediate:e?((t,r)=>(Dc.addEventListener("message",({source:s,data:o})=>{s===Dc&&o===t&&r.length&&r.shift()()},!1),s=>{r.push(s),Dc.postMessage(t,"*")}))(`axios@${Math.random()}`,[]):t=>setTimeout(t))(typeof setImmediate=="function",Ks(Dc.postMessage)),qB=typeof queueMicrotask<"u"?queueMicrotask.bind(Dc):typeof process<"u"&&process.nextTick||tE,KB=n=>n!=null&&Ks(n[p1]),be={isArray:wf,isArrayBuffer:YT,isBuffer:Qm,isFormData:wB,isArrayBufferView:hB,isString:dB,isNumber:QT,isBoolean:fB,isObject:Jm,isPlainObject:gy,isEmptyObject:pB,isReadableStream:CB,isRequest:SB,isResponse:kB,isHeaders:IB,isUndefined:sf,isDate:mB,isFile:gB,isBlob:xB,isRegExp:MB,isFunction:Ks,isStream:vB,isURLSearchParams:bB,isTypedArray:DB,isFileList:yB,forEach:Zm,merge:Zb,extend:NB,trim:$B,stripBOM:TB,inherits:EB,toFlatObject:RB,kindOf:m1,kindOfTest:Ti,endsWith:AB,toArray:_B,forEachEntry:OB,matchAll:FB,isHTMLForm:PB,hasOwnProperty:lN,hasOwnProp:lN,reduceDescriptors:eE,freezeMethods:zB,toObjectSet:BB,toCamelCase:LB,noop:UB,toFiniteNumber:WB,findKey:JT,global:Dc,isContextDefined:ZT,isSpecCompliantForm:VB,toJSONObject:GB,isAsyncFn:jB,isThenable:HB,setImmediate:tE,asap:qB,isIterable:KB};function vt(n,e,t,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=n,this.name="AxiosError",e&&(this.code=e),t&&(this.config=t),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}be.inherits(vt,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:be.toJSONObject(this.config),code:this.code,status:this.status}}});const nE=vt.prototype,rE={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(n=>{rE[n]={value:n}});Object.defineProperties(vt,rE);Object.defineProperty(nE,"isAxiosError",{value:!0});vt.from=(n,e,t,r,s,o)=>{const i=Object.create(nE);be.toFlatObject(n,i,function(d){return d!==Error.prototype},c=>c!=="isAxiosError");const a=n&&n.message?n.message:"Error",l=e==null&&n?n.code:e;return vt.call(i,a,l,t,r,s),n&&i.cause==null&&Object.defineProperty(i,"cause",{value:n,configurable:!0}),i.name=n&&n.name||"Error",o&&Object.assign(i,o),i};const XB=null;function eC(n){return be.isPlainObject(n)||be.isArray(n)}function sE(n){return be.endsWith(n,"[]")?n.slice(0,-2):n}function uN(n,e,t){return n?n.concat(e).map(function(s,o){return s=sE(s),!t&&o?"["+s+"]":s}).join(t?".":""):e}function YB(n){return be.isArray(n)&&!n.some(eC)}const QB=be.toFlatObject(be,{},null,function(e){return/^is[A-Z]/.test(e)});function x1(n,e,t){if(!be.isObject(n))throw new TypeError("target must be an object");e=e||new FormData,t=be.toFlatObject(t,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,w){return!be.isUndefined(w[b])});const r=t.metaTokens,s=t.visitor||d,o=t.dots,i=t.indexes,l=(t.Blob||typeof Blob<"u"&&Blob)&&be.isSpecCompliantForm(e);if(!be.isFunction(s))throw new TypeError("visitor must be a function");function c(v){if(v===null)return"";if(be.isDate(v))return v.toISOString();if(be.isBoolean(v))return v.toString();if(!l&&be.isBlob(v))throw new vt("Blob is not supported. Use a Buffer instead.");return be.isArrayBuffer(v)||be.isTypedArray(v)?l&&typeof Blob=="function"?new Blob([v]):Buffer.from(v):v}function d(v,b,w){let k=v;if(v&&!w&&typeof v=="object"){if(be.endsWith(b,"{}"))b=r?b:b.slice(0,-2),v=JSON.stringify(v);else if(be.isArray(v)&&YB(v)||(be.isFileList(v)||be.endsWith(b,"[]"))&&(k=be.toArray(v)))return b=sE(b),k.forEach(function(N,T){!(be.isUndefined(N)||N===null)&&e.append(i===!0?uN([b],T,o):i===null?b:b+"[]",c(N))}),!1}return eC(v)?!0:(e.append(uN(w,b,o),c(v)),!1)}const p=[],m=Object.assign(QB,{defaultVisitor:d,convertValue:c,isVisitable:eC});function y(v,b){if(!be.isUndefined(v)){if(p.indexOf(v)!==-1)throw Error("Circular reference detected in "+b.join("."));p.push(v),be.forEach(v,function(k,I){(!(be.isUndefined(k)||k===null)&&s.call(e,k,be.isString(I)?I.trim():I,b,m))===!0&&y(k,b?b.concat(I):[I])}),p.pop()}}if(!be.isObject(n))throw new TypeError("data must be an object");return y(n),e}function cN(n){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(n).replace(/[!'()~]|%20|%00/g,function(r){return e[r]})}function aS(n,e){this._pairs=[],n&&x1(n,this,e)}const oE=aS.prototype;oE.append=function(e,t){this._pairs.push([e,t])};oE.toString=function(e){const t=e?function(r){return e.call(this,r,cN)}:cN;return this._pairs.map(function(s){return t(s[0])+"="+t(s[1])},"").join("&")};function JB(n){return encodeURIComponent(n).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function iE(n,e,t){if(!e)return n;const r=t&&t.encode||JB;be.isFunction(t)&&(t={serialize:t});const s=t&&t.serialize;let o;if(s?o=s(e,t):o=be.isURLSearchParams(e)?e.toString():new aS(e,t).toString(r),o){const i=n.indexOf("#");i!==-1&&(n=n.slice(0,i)),n+=(n.indexOf("?")===-1?"?":"&")+o}return n}class hN{constructor(){this.handlers=[]}use(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){be.forEach(this.handlers,function(r){r!==null&&e(r)})}}const aE={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ZB=typeof URLSearchParams<"u"?URLSearchParams:aS,e4=typeof FormData<"u"?FormData:null,t4=typeof Blob<"u"?Blob:null,n4={isBrowser:!0,classes:{URLSearchParams:ZB,FormData:e4,Blob:t4},protocols:["http","https","file","blob","url","data"]},lS=typeof window<"u"&&typeof document<"u",tC=typeof navigator=="object"&&navigator||void 0,r4=lS&&(!tC||["ReactNative","NativeScript","NS"].indexOf(tC.product)<0),s4=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",o4=lS&&window.location.href||"http://localhost",i4=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:lS,hasStandardBrowserEnv:r4,hasStandardBrowserWebWorkerEnv:s4,navigator:tC,origin:o4},Symbol.toStringTag,{value:"Module"})),as={...i4,...n4};function a4(n,e){return x1(n,new as.classes.URLSearchParams,{visitor:function(t,r,s,o){return as.isNode&&be.isBuffer(t)?(this.append(r,t.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...e})}function l4(n){return be.matchAll(/\w+|\[(\w*)]/g,n).map(e=>e[0]==="[]"?"":e[1]||e[0])}function u4(n){const e={},t=Object.keys(n);let r;const s=t.length;let o;for(r=0;r=t.length;return i=!i&&be.isArray(s)?s.length:i,l?(be.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!a):((!s[i]||!be.isObject(s[i]))&&(s[i]=[]),e(t,r,s[i],o)&&be.isArray(s[i])&&(s[i]=u4(s[i])),!a)}if(be.isFormData(n)&&be.isFunction(n.entries)){const t={};return be.forEachEntry(n,(r,s)=>{e(l4(r),s,t,0)}),t}return null}function c4(n,e,t){if(be.isString(n))try{return(e||JSON.parse)(n),be.trim(n)}catch(r){if(r.name!=="SyntaxError")throw r}return(t||JSON.stringify)(n)}const eg={transitional:aE,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const r=t.getContentType()||"",s=r.indexOf("application/json")>-1,o=be.isObject(e);if(o&&be.isHTMLForm(e)&&(e=new FormData(e)),be.isFormData(e))return s?JSON.stringify(lE(e)):e;if(be.isArrayBuffer(e)||be.isBuffer(e)||be.isStream(e)||be.isFile(e)||be.isBlob(e)||be.isReadableStream(e))return e;if(be.isArrayBufferView(e))return e.buffer;if(be.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let a;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return a4(e,this.formSerializer).toString();if((a=be.isFileList(e))||r.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return x1(a?{"files[]":e}:e,l&&new l,this.formSerializer)}}return o||s?(t.setContentType("application/json",!1),c4(e)):e}],transformResponse:[function(e){const t=this.transitional||eg.transitional,r=t&&t.forcedJSONParsing,s=this.responseType==="json";if(be.isResponse(e)||be.isReadableStream(e))return e;if(e&&be.isString(e)&&(r&&!this.responseType||s)){const i=!(t&&t.silentJSONParsing)&&s;try{return JSON.parse(e,this.parseReviver)}catch(a){if(i)throw a.name==="SyntaxError"?vt.from(a,vt.ERR_BAD_RESPONSE,this,null,this.response):a}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:as.classes.FormData,Blob:as.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};be.forEach(["delete","get","head","post","put","patch"],n=>{eg.headers[n]={}});const h4=be.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),d4=n=>{const e={};let t,r,s;return n&&n.split(` +`).forEach(function(i){s=i.indexOf(":"),t=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!t||e[t]&&h4[t])&&(t==="set-cookie"?e[t]?e[t].push(r):e[t]=[r]:e[t]=e[t]?e[t]+", "+r:r)}),e},dN=Symbol("internals");function fm(n){return n&&String(n).trim().toLowerCase()}function xy(n){return n===!1||n==null?n:be.isArray(n)?n.map(xy):String(n)}function f4(n){const e=Object.create(null),t=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=t.exec(n);)e[r[1]]=r[2];return e}const p4=n=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(n.trim());function yb(n,e,t,r,s){if(be.isFunction(r))return r.call(this,e,t);if(s&&(e=t),!!be.isString(e)){if(be.isString(r))return e.indexOf(r)!==-1;if(be.isRegExp(r))return r.test(e)}}function m4(n){return n.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,r)=>t.toUpperCase()+r)}function g4(n,e){const t=be.toCamelCase(" "+e);["get","set","has"].forEach(r=>{Object.defineProperty(n,r+t,{value:function(s,o,i){return this[r].call(this,e,s,o,i)},configurable:!0})})}let Xs=class{constructor(e){e&&this.set(e)}set(e,t,r){const s=this;function o(a,l,c){const d=fm(l);if(!d)throw new Error("header name must be a non-empty string");const p=be.findKey(s,d);(!p||s[p]===void 0||c===!0||c===void 0&&s[p]!==!1)&&(s[p||l]=xy(a))}const i=(a,l)=>be.forEach(a,(c,d)=>o(c,d,l));if(be.isPlainObject(e)||e instanceof this.constructor)i(e,t);else if(be.isString(e)&&(e=e.trim())&&!p4(e))i(d4(e),t);else if(be.isObject(e)&&be.isIterable(e)){let a={},l,c;for(const d of e){if(!be.isArray(d))throw TypeError("Object iterator must return a key-value pair");a[c=d[0]]=(l=a[c])?be.isArray(l)?[...l,d[1]]:[l,d[1]]:d[1]}i(a,t)}else e!=null&&o(t,e,r);return this}get(e,t){if(e=fm(e),e){const r=be.findKey(this,e);if(r){const s=this[r];if(!t)return s;if(t===!0)return f4(s);if(be.isFunction(t))return t.call(this,s,r);if(be.isRegExp(t))return t.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=fm(e),e){const r=be.findKey(this,e);return!!(r&&this[r]!==void 0&&(!t||yb(this,this[r],r,t)))}return!1}delete(e,t){const r=this;let s=!1;function o(i){if(i=fm(i),i){const a=be.findKey(r,i);a&&(!t||yb(r,r[a],a,t))&&(delete r[a],s=!0)}}return be.isArray(e)?e.forEach(o):o(e),s}clear(e){const t=Object.keys(this);let r=t.length,s=!1;for(;r--;){const o=t[r];(!e||yb(this,this[o],o,e,!0))&&(delete this[o],s=!0)}return s}normalize(e){const t=this,r={};return be.forEach(this,(s,o)=>{const i=be.findKey(r,o);if(i){t[i]=xy(s),delete t[o];return}const a=e?m4(o):String(o).trim();a!==o&&delete t[o],t[a]=xy(s),r[a]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return be.forEach(this,(r,s)=>{r!=null&&r!==!1&&(t[s]=e&&be.isArray(r)?r.join(", "):r)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+": "+t).join(` +`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const r=new this(e);return t.forEach(s=>r.set(s)),r}static accessor(e){const r=(this[dN]=this[dN]={accessors:{}}).accessors,s=this.prototype;function o(i){const a=fm(i);r[a]||(g4(s,i),r[a]=!0)}return be.isArray(e)?e.forEach(o):o(e),this}};Xs.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);be.reduceDescriptors(Xs.prototype,({value:n},e)=>{let t=e[0].toUpperCase()+e.slice(1);return{get:()=>n,set(r){this[t]=r}}});be.freezeMethods(Xs);function vb(n,e){const t=this||eg,r=e||t,s=Xs.from(r.headers);let o=r.data;return be.forEach(n,function(a){o=a.call(t,o,s.normalize(),e?e.status:void 0)}),s.normalize(),o}function uE(n){return!!(n&&n.__CANCEL__)}function bf(n,e,t){vt.call(this,n??"canceled",vt.ERR_CANCELED,e,t),this.name="CanceledError"}be.inherits(bf,vt,{__CANCEL__:!0});function cE(n,e,t){const r=t.config.validateStatus;!t.status||!r||r(t.status)?n(t):e(new vt("Request failed with status code "+t.status,[vt.ERR_BAD_REQUEST,vt.ERR_BAD_RESPONSE][Math.floor(t.status/100)-4],t.config,t.request,t))}function x4(n){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(n);return e&&e[1]||""}function y4(n,e){n=n||10;const t=new Array(n),r=new Array(n);let s=0,o=0,i;return e=e!==void 0?e:1e3,function(l){const c=Date.now(),d=r[o];i||(i=c),t[s]=l,r[s]=c;let p=o,m=0;for(;p!==s;)m+=t[p++],p=p%n;if(s=(s+1)%n,s===o&&(o=(o+1)%n),c-i{t=d,s=null,o&&(clearTimeout(o),o=null),n(...c)};return[(...c)=>{const d=Date.now(),p=d-t;p>=r?i(c,d):(s=c,o||(o=setTimeout(()=>{o=null,i(s)},r-p)))},()=>s&&i(s)]}const Fy=(n,e,t=3)=>{let r=0;const s=y4(50,250);return v4(o=>{const i=o.loaded,a=o.lengthComputable?o.total:void 0,l=i-r,c=s(l),d=i<=a;r=i;const p={loaded:i,total:a,progress:a?i/a:void 0,bytes:l,rate:c||void 0,estimated:c&&a&&d?(a-i)/c:void 0,event:o,lengthComputable:a!=null,[e?"download":"upload"]:!0};n(p)},t)},fN=(n,e)=>{const t=n!=null;return[r=>e[0]({lengthComputable:t,total:n,loaded:r}),e[1]]},pN=n=>(...e)=>be.asap(()=>n(...e)),w4=as.hasStandardBrowserEnv?((n,e)=>t=>(t=new URL(t,as.origin),n.protocol===t.protocol&&n.host===t.host&&(e||n.port===t.port)))(new URL(as.origin),as.navigator&&/(msie|trident)/i.test(as.navigator.userAgent)):()=>!0,b4=as.hasStandardBrowserEnv?{write(n,e,t,r,s,o,i){if(typeof document>"u")return;const a=[`${n}=${encodeURIComponent(e)}`];be.isNumber(t)&&a.push(`expires=${new Date(t).toUTCString()}`),be.isString(r)&&a.push(`path=${r}`),be.isString(s)&&a.push(`domain=${s}`),o===!0&&a.push("secure"),be.isString(i)&&a.push(`SameSite=${i}`),document.cookie=a.join("; ")},read(n){if(typeof document>"u")return null;const e=document.cookie.match(new RegExp("(?:^|; )"+n+"=([^;]*)"));return e?decodeURIComponent(e[1]):null},remove(n){this.write(n,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function C4(n){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(n)}function S4(n,e){return e?n.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):n}function hE(n,e,t){let r=!C4(e);return n&&(r||t==!1)?S4(n,e):e}const mN=n=>n instanceof Xs?{...n}:n;function Vc(n,e){e=e||{};const t={};function r(c,d,p,m){return be.isPlainObject(c)&&be.isPlainObject(d)?be.merge.call({caseless:m},c,d):be.isPlainObject(d)?be.merge({},d):be.isArray(d)?d.slice():d}function s(c,d,p,m){if(be.isUndefined(d)){if(!be.isUndefined(c))return r(void 0,c,p,m)}else return r(c,d,p,m)}function o(c,d){if(!be.isUndefined(d))return r(void 0,d)}function i(c,d){if(be.isUndefined(d)){if(!be.isUndefined(c))return r(void 0,c)}else return r(void 0,d)}function a(c,d,p){if(p in e)return r(c,d);if(p in n)return r(void 0,c)}const l={url:o,method:o,data:o,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:a,headers:(c,d,p)=>s(mN(c),mN(d),p,!0)};return be.forEach(Object.keys({...n,...e}),function(d){const p=l[d]||s,m=p(n[d],e[d],d);be.isUndefined(m)&&p!==a||(t[d]=m)}),t}const dE=n=>{const e=Vc({},n);let{data:t,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:a}=e;if(e.headers=i=Xs.from(i),e.url=iE(hE(e.baseURL,e.url,e.allowAbsoluteUrls),n.params,n.paramsSerializer),a&&i.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):""))),be.isFormData(t)){if(as.hasStandardBrowserEnv||as.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(be.isFunction(t.getHeaders)){const l=t.getHeaders(),c=["content-type","content-length"];Object.entries(l).forEach(([d,p])=>{c.includes(d.toLowerCase())&&i.set(d,p)})}}if(as.hasStandardBrowserEnv&&(r&&be.isFunction(r)&&(r=r(e)),r||r!==!1&&w4(e.url))){const l=s&&o&&b4.read(o);l&&i.set(s,l)}return e},k4=typeof XMLHttpRequest<"u",I4=k4&&function(n){return new Promise(function(t,r){const s=dE(n);let o=s.data;const i=Xs.from(s.headers).normalize();let{responseType:a,onUploadProgress:l,onDownloadProgress:c}=s,d,p,m,y,v;function b(){y&&y(),v&&v(),s.cancelToken&&s.cancelToken.unsubscribe(d),s.signal&&s.signal.removeEventListener("abort",d)}let w=new XMLHttpRequest;w.open(s.method.toUpperCase(),s.url,!0),w.timeout=s.timeout;function k(){if(!w)return;const N=Xs.from("getAllResponseHeaders"in w&&w.getAllResponseHeaders()),A={data:!a||a==="text"||a==="json"?w.responseText:w.response,status:w.status,statusText:w.statusText,headers:N,config:n,request:w};cE(function(P){t(P),b()},function(P){r(P),b()},A),w=null}"onloadend"in w?w.onloadend=k:w.onreadystatechange=function(){!w||w.readyState!==4||w.status===0&&!(w.responseURL&&w.responseURL.indexOf("file:")===0)||setTimeout(k)},w.onabort=function(){w&&(r(new vt("Request aborted",vt.ECONNABORTED,n,w)),w=null)},w.onerror=function(T){const A=T&&T.message?T.message:"Network Error",O=new vt(A,vt.ERR_NETWORK,n,w);O.event=T||null,r(O),w=null},w.ontimeout=function(){let T=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const A=s.transitional||aE;s.timeoutErrorMessage&&(T=s.timeoutErrorMessage),r(new vt(T,A.clarifyTimeoutError?vt.ETIMEDOUT:vt.ECONNABORTED,n,w)),w=null},o===void 0&&i.setContentType(null),"setRequestHeader"in w&&be.forEach(i.toJSON(),function(T,A){w.setRequestHeader(A,T)}),be.isUndefined(s.withCredentials)||(w.withCredentials=!!s.withCredentials),a&&a!=="json"&&(w.responseType=s.responseType),c&&([m,v]=Fy(c,!0),w.addEventListener("progress",m)),l&&w.upload&&([p,y]=Fy(l),w.upload.addEventListener("progress",p),w.upload.addEventListener("loadend",y)),(s.cancelToken||s.signal)&&(d=N=>{w&&(r(!N||N.type?new bf(null,n,w):N),w.abort(),w=null)},s.cancelToken&&s.cancelToken.subscribe(d),s.signal&&(s.signal.aborted?d():s.signal.addEventListener("abort",d)));const I=x4(s.url);if(I&&as.protocols.indexOf(I)===-1){r(new vt("Unsupported protocol "+I+":",vt.ERR_BAD_REQUEST,n));return}w.send(o||null)})},$4=(n,e)=>{const{length:t}=n=n?n.filter(Boolean):[];if(e||t){let r=new AbortController,s;const o=function(c){if(!s){s=!0,a();const d=c instanceof Error?c:this.reason;r.abort(d instanceof vt?d:new bf(d instanceof Error?d.message:d))}};let i=e&&setTimeout(()=>{i=null,o(new vt(`timeout ${e} of ms exceeded`,vt.ETIMEDOUT))},e);const a=()=>{n&&(i&&clearTimeout(i),i=null,n.forEach(c=>{c.unsubscribe?c.unsubscribe(o):c.removeEventListener("abort",o)}),n=null)};n.forEach(c=>c.addEventListener("abort",o));const{signal:l}=r;return l.unsubscribe=()=>be.asap(a),l}},N4=function*(n,e){let t=n.byteLength;if(t{const s=T4(n,e);let o=0,i,a=l=>{i||(i=!0,r&&r(l))};return new ReadableStream({async pull(l){try{const{done:c,value:d}=await s.next();if(c){a(),l.close();return}let p=d.byteLength;if(t){let m=o+=p;t(m)}l.enqueue(new Uint8Array(d))}catch(c){throw a(c),c}},cancel(l){return a(l),s.return()}},{highWaterMark:2})},xN=64*1024,{isFunction:ny}=be,R4=(({Request:n,Response:e})=>({Request:n,Response:e}))(be.global),{ReadableStream:yN,TextEncoder:vN}=be.global,wN=(n,...e)=>{try{return!!n(...e)}catch{return!1}},A4=n=>{n=be.merge.call({skipUndefined:!0},R4,n);const{fetch:e,Request:t,Response:r}=n,s=e?ny(e):typeof fetch=="function",o=ny(t),i=ny(r);if(!s)return!1;const a=s&&ny(yN),l=s&&(typeof vN=="function"?(v=>b=>v.encode(b))(new vN):async v=>new Uint8Array(await new t(v).arrayBuffer())),c=o&&a&&wN(()=>{let v=!1;const b=new t(as.origin,{body:new yN,method:"POST",get duplex(){return v=!0,"half"}}).headers.has("Content-Type");return v&&!b}),d=i&&a&&wN(()=>be.isReadableStream(new r("").body)),p={stream:d&&(v=>v.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(v=>{!p[v]&&(p[v]=(b,w)=>{let k=b&&b[v];if(k)return k.call(b);throw new vt(`Response type '${v}' is not supported`,vt.ERR_NOT_SUPPORT,w)})});const m=async v=>{if(v==null)return 0;if(be.isBlob(v))return v.size;if(be.isSpecCompliantForm(v))return(await new t(as.origin,{method:"POST",body:v}).arrayBuffer()).byteLength;if(be.isArrayBufferView(v)||be.isArrayBuffer(v))return v.byteLength;if(be.isURLSearchParams(v)&&(v=v+""),be.isString(v))return(await l(v)).byteLength},y=async(v,b)=>{const w=be.toFiniteNumber(v.getContentLength());return w??m(b)};return async v=>{let{url:b,method:w,data:k,signal:I,cancelToken:N,timeout:T,onDownloadProgress:A,onUploadProgress:O,responseType:P,headers:B,withCredentials:z="same-origin",fetchOptions:L}=dE(v),_=e||fetch;P=P?(P+"").toLowerCase():"text";let H=$4([I,N&&N.toAbortSignal()],T),Y=null;const re=H&&H.unsubscribe&&(()=>{H.unsubscribe()});let te;try{if(O&&c&&w!=="get"&&w!=="head"&&(te=await y(B,k))!==0){let V=new t(b,{method:"POST",body:k,duplex:"half"}),X;if(be.isFormData(k)&&(X=V.headers.get("content-type"))&&B.setContentType(X),V.body){const[xe,Ie]=fN(te,Fy(pN(O)));k=gN(V.body,xN,xe,Ie)}}be.isString(z)||(z=z?"include":"omit");const le=o&&"credentials"in t.prototype,de={...L,signal:H,method:w.toUpperCase(),headers:B.normalize().toJSON(),body:k,duplex:"half",credentials:le?z:void 0};Y=o&&new t(b,de);let j=await(o?_(Y,L):_(b,de));const ie=d&&(P==="stream"||P==="response");if(d&&(A||ie&&re)){const V={};["status","statusText","headers"].forEach(ke=>{V[ke]=j[ke]});const X=be.toFiniteNumber(j.headers.get("content-length")),[xe,Ie]=A&&fN(X,Fy(pN(A),!0))||[];j=new r(gN(j.body,xN,xe,()=>{Ie&&Ie(),re&&re()}),V)}P=P||"text";let se=await p[be.findKey(p,P)||"text"](j,v);return!ie&&re&&re(),await new Promise((V,X)=>{cE(V,X,{data:se,headers:Xs.from(j.headers),status:j.status,statusText:j.statusText,config:v,request:Y})})}catch(le){throw re&&re(),le&&le.name==="TypeError"&&/Load failed|fetch/i.test(le.message)?Object.assign(new vt("Network Error",vt.ERR_NETWORK,v,Y),{cause:le.cause||le}):vt.from(le,le&&le.code,v,Y)}}},_4=new Map,fE=n=>{let e=n&&n.env||{};const{fetch:t,Request:r,Response:s}=e,o=[r,s,t];let i=o.length,a=i,l,c,d=_4;for(;a--;)l=o[a],c=d.get(l),c===void 0&&d.set(l,c=a?new Map:A4(e)),d=c;return c};fE();const uS={http:XB,xhr:I4,fetch:{get:fE}};be.forEach(uS,(n,e)=>{if(n){try{Object.defineProperty(n,"name",{value:e})}catch{}Object.defineProperty(n,"adapterName",{value:e})}});const bN=n=>`- ${n}`,D4=n=>be.isFunction(n)||n===null||n===!1;function O4(n,e){n=be.isArray(n)?n:[n];const{length:t}=n;let r,s;const o={};for(let i=0;i`adapter ${l} `+(c===!1?"is not supported by the environment":"is not available in the build"));let a=t?i.length>1?`since : +`+i.map(bN).join(` +`):" "+bN(i[0]):"as no adapter specified";throw new vt("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return s}const pE={getAdapter:O4,adapters:uS};function wb(n){if(n.cancelToken&&n.cancelToken.throwIfRequested(),n.signal&&n.signal.aborted)throw new bf(null,n)}function CN(n){return wb(n),n.headers=Xs.from(n.headers),n.data=vb.call(n,n.transformRequest),["post","put","patch"].indexOf(n.method)!==-1&&n.headers.setContentType("application/x-www-form-urlencoded",!1),pE.getAdapter(n.adapter||eg.adapter,n)(n).then(function(r){return wb(n),r.data=vb.call(n,n.transformResponse,r),r.headers=Xs.from(r.headers),r},function(r){return uE(r)||(wb(n),r&&r.response&&(r.response.data=vb.call(n,n.transformResponse,r.response),r.response.headers=Xs.from(r.response.headers))),Promise.reject(r)})}const mE="1.13.2",y1={};["object","boolean","number","function","string","symbol"].forEach((n,e)=>{y1[n]=function(r){return typeof r===n||"a"+(e<1?"n ":" ")+n}});const SN={};y1.transitional=function(e,t,r){function s(o,i){return"[Axios v"+mE+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,a)=>{if(e===!1)throw new vt(s(i," has been removed"+(t?" in "+t:"")),vt.ERR_DEPRECATED);return t&&!SN[i]&&(SN[i]=!0,console.warn(s(i," has been deprecated since v"+t+" and will be removed in the near future"))),e?e(o,i,a):!0}};y1.spelling=function(e){return(t,r)=>(console.warn(`${r} is likely a misspelling of ${e}`),!0)};function F4(n,e,t){if(typeof n!="object")throw new vt("options must be an object",vt.ERR_BAD_OPTION_VALUE);const r=Object.keys(n);let s=r.length;for(;s-- >0;){const o=r[s],i=e[o];if(i){const a=n[o],l=a===void 0||i(a,o,n);if(l!==!0)throw new vt("option "+o+" must be "+l,vt.ERR_BAD_OPTION_VALUE);continue}if(t!==!0)throw new vt("Unknown option "+o,vt.ERR_BAD_OPTION)}}const yy={assertOptions:F4,validators:y1},ta=yy.validators;let Pc=class{constructor(e){this.defaults=e||{},this.interceptors={request:new hN,response:new hN}}async request(e,t){try{return await this._request(e,t)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(e,t){typeof e=="string"?(t=t||{},t.url=e):t=e||{},t=Vc(this.defaults,t);const{transitional:r,paramsSerializer:s,headers:o}=t;r!==void 0&&yy.assertOptions(r,{silentJSONParsing:ta.transitional(ta.boolean),forcedJSONParsing:ta.transitional(ta.boolean),clarifyTimeoutError:ta.transitional(ta.boolean)},!1),s!=null&&(be.isFunction(s)?t.paramsSerializer={serialize:s}:yy.assertOptions(s,{encode:ta.function,serialize:ta.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:t.allowAbsoluteUrls=!0),yy.assertOptions(t,{baseUrl:ta.spelling("baseURL"),withXsrfToken:ta.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let i=o&&be.merge(o.common,o[t.method]);o&&be.forEach(["delete","get","head","post","put","patch","common"],v=>{delete o[v]}),t.headers=Xs.concat(i,o);const a=[];let l=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(t)===!1||(l=l&&b.synchronous,a.unshift(b.fulfilled,b.rejected))});const c=[];this.interceptors.response.forEach(function(b){c.push(b.fulfilled,b.rejected)});let d,p=0,m;if(!l){const v=[CN.bind(this),void 0];for(v.unshift(...a),v.push(...c),m=v.length,d=Promise.resolve(t);p{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(a=>{r.subscribe(a),o=a}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},e(function(o,i,a){r.reason||(r.reason=new bf(o,i,a),t(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);t!==-1&&this._listeners.splice(t,1)}toAbortSignal(){const e=new AbortController,t=r=>{e.abort(r)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let e;return{token:new gE(function(s){e=s}),cancel:e}}};function L4(n){return function(t){return n.apply(null,t)}}function M4(n){return be.isObject(n)&&n.isAxiosError===!0}const nC={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(nC).forEach(([n,e])=>{nC[e]=n});function xE(n){const e=new Pc(n),t=KT(Pc.prototype.request,e);return be.extend(t,Pc.prototype,e,{allOwnKeys:!0}),be.extend(t,e,null,{allOwnKeys:!0}),t.create=function(s){return xE(Vc(n,s))},t}const Bn=xE(eg);Bn.Axios=Pc;Bn.CanceledError=bf;Bn.CancelToken=P4;Bn.isCancel=uE;Bn.VERSION=mE;Bn.toFormData=x1;Bn.AxiosError=vt;Bn.Cancel=Bn.CanceledError;Bn.all=function(e){return Promise.all(e)};Bn.spread=L4;Bn.isAxiosError=M4;Bn.mergeConfig=Vc;Bn.AxiosHeaders=Xs;Bn.formToJSON=n=>lE(be.isHTMLForm(n)?new FormData(n):n);Bn.getAdapter=pE.getAdapter;Bn.HttpStatusCode=nC;Bn.default=Bn;const{Axios:Wde,AxiosError:Vde,CanceledError:Gde,isCancel:jde,CancelToken:Hde,VERSION:qde,all:Kde,Cancel:Xde,isAxiosError:Yde,spread:Qde,toFormData:Jde,AxiosHeaders:Zde,HttpStatusCode:efe,formToJSON:tfe,getAdapter:nfe,mergeConfig:rfe}=Bn,cS=Bn.create({baseURL:"https://api.github.com"}),z4=Bn.create({baseURL:"/api"});const B4=1e-7,U4=1e-4;class yE{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}}class hS{refCount(e){return js("refCount")}incRef(e){return js("incRef")}timerAvailable(){return!0}time(e){return js("time")}read(e){return js("read")}readSync(e){return js("readSync")}readToGPU(e,t){return js("readToGPU")}numDataIds(){return js("numDataIds")}disposeData(e,t){return js("disposeData")}write(e,t,r){return js("write")}move(e,t,r,s,o){return js("move")}createTensorFromGPUData(e,t,r){return js("createTensorFromGPUData")}memory(){return js("memory")}floatPrecision(){return js("floatPrecision")}epsilon(){return this.floatPrecision()===32?B4:U4}dispose(){return js("dispose")}}function js(n){throw new Error(`'${n}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function W4(n){let e=n.length,t=0;for(;e>0;)t=Math.random()*e|0,e--,jd(n,e,t)}function Gc(n,e,t){return Math.max(n,Math.min(e,t))}function dS(n){return n%2===0?n:n+1}function jd(n,e,t){const r=n[e];n[e]=n[t],n[t]=r}function V4(n){let e=0;for(let t=0;tt+` Shapes ${n} and ${e} must match`)}function pS(n){U(n!=null,()=>"The input to the tensor constructor must be a non-null value.")}function Se(n){if(n.length===0)return 1;let e=n[0];for(let t=1;t0,t,r){return new Promise((s,o)=>{let i=0;const a=()=>{if(n()){s();return}i++;const l=e(i);if(t!=null&&i>=t){o();return}r!=null?r(a,l):setTimeout(a,l)};a()})}function vE(n,e){let t=1,r=-1;for(let o=0;o=0)t*=n[o];else if(n[o]===-1){if(r!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${r} and dim ${o}`);r=o}else if(n[o]<0)throw Error(`Shapes can not be < 0. Found ${n[o]} at dim ${o}`);if(r===-1){if(e>0&&e!==t)throw Error(`Size(${e}) must match the product of shape ${n}`);return n}if(t===0)throw Error(`Cannot infer the missing size in [${n}] when there are 0 elements`);if(e%t!==0)throw Error(`The implicit shape can't be a fractional number. Got ${e} / ${t}`);const s=n.slice();return s[r]=e/t,s}function Tt(n,e){const t=e.length;return n=n==null?e.map((r,s)=>s):[].concat(n),U(n.every(r=>r>=-t&&r`All values in axis param must be in range [-${t}, ${t}) but got axis ${n}`),U(n.every(r=>of(r)),()=>`All values in axis param must be integers but got axis ${n}`),n.map(r=>r<0?t+r:r)}function pu(n,e){const t=[],r=[],s=e!=null&&Array.isArray(e)&&e.length===0,o=e==null||s?null:Tt(e,n).sort();let i=0;for(let a=0;aa)&&n[a]===1&&(t.push(n[a]),r.push(a)),o[i]<=a&&i++}n[a]!==1&&(t.push(n[a]),r.push(a))}return{newShape:t,keptDims:r}}function Vr(n,e){return Mn(n,e)}function Mn(n,e){let t=null;if(n==null||n==="float32")t=new Float32Array(e);else if(n==="int32")t=new Int32Array(e);else if(n==="bool")t=new Uint8Array(e);else if(n==="string")t=new Array(e);else throw new Error(`Unknown data type ${n}`);return t}function G4(n,e){for(let t=0;te+=t.length),e}function tg(n){return typeof n=="string"||n instanceof String}function q4(n){return typeof n=="boolean"}function sC(n){return typeof n=="number"}function Cf(n){return Array.isArray(n)?Cf(n[0]):n instanceof Float32Array?"float32":n instanceof Int32Array||n instanceof Uint8Array||n instanceof Uint8ClampedArray?"int32":sC(n)?"float32":tg(n)?"string":q4(n)?"bool":"float32"}function oC(n){return!!(n&&n.constructor&&n.call&&n.apply)}function iC(n,e){for(let t=e;t=0;--r)t[r]=t[r+1]*n[r+1];return t}function bE(n,e,t,r=!1){const s=new Array;if(e.length===1){const o=e[0]*(r?2:1);for(let i=0;il*c)*(r?2:1);for(let l=0;ls*o)*(t?2:1);if(r===0)return[];if(r!==e.length)throw new Error(`[${n}] does not match the input size ${e.length}${t?" for a complex tensor":""}.`);return bE(0,n,e,t)}function K4(n,e){if(Array.isArray(n))return n;if(e==="float32")return n instanceof Float32Array?n:new Float32Array(n);if(e==="int32")return n instanceof Int32Array?n:new Int32Array(n);if(e==="bool"||e==="string")return Uint8Array.from(new Int32Array(n));throw new Error(`Unknown dtype ${e}`)}function mS(n,e){const t=Gr(n,e);for(let r=0;rr*s,1);if(e==null||e==="float32")return Ci(n,new Float32Array(t));if(e==="int32")return Ci(n,new Int32Array(t));if(e==="bool")return Ci(n,new Uint8Array(t));throw new Error(`Unknown data type ${e}`)}function al(n){n.forEach(e=>{U(Number.isInteger(e)&&e>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${n}].`)})}function ca(n,e,t){if(e===0)return 0;if(e===1)return n[0];let r=n[n.length-1];for(let s=0;s"u"||typeof this.global.location>"u"||typeof this.global.location.search>"u")return;const e=this.getQueryParams(this.global.location.search);IN in e&&e[IN].split(",").forEach(r=>{const[s,o]=r.split(":");this.urlFlags[s]=J4(s,o)})}}function Y4(n){const e={};return n.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(t,...r)=>(Q4(e,r[0],r[1]),r.join("="))),e}function Q4(n,e,t){n[decodeURIComponent(e)]=decodeURIComponent(t||"")}function J4(n,e){const t=e.toLowerCase();return t==="true"||t==="false"?t==="true":`${+t}`===t?+t:e}function ye(){return SE}let SE=null;function Z4(n){SE=n}let bb;function kE(){if(bb==null){let n;if(typeof window<"u")n=window;else if(typeof global<"u")n=global;else if(typeof process<"u")n=process;else if(typeof self<"u")n=self;else throw new Error("Could not find a global object");bb=n}return bb}function eU(){const n=kE();return n._tfGlobals==null&&(n._tfGlobals=new Map),n._tfGlobals}function xS(n,e){const t=eU();if(t.has(n))return t.get(n);{const r=e();return t.set(n,r),t.get(n)}}const v1="Abs",ng="Acos",rg="Acosh",kf="Add",yS="AddN",vS="All",wS="Any",w1="ArgMax",b1="ArgMin",sg="Asin",og="Asinh",ig="Atan",ag="Atanh",lg="Atan2",C1="AvgPool",bS="AvgPoolGrad",S1="AvgPool3D",CS="AvgPool3DGrad",k1="BatchMatMul",I1="BatchToSpaceND",SS="Bincount",kS="BitwiseAnd",tU="BroadcastTo",IE="BroadcastArgs",ug="Cast",cg="Ceil",hg="ClipByValue",IS="Complex",$1="ComplexAbs",N1="Concat",T1="Conv2D",$S="Conv2DBackpropFilter",E1="Conv2DBackpropInput",R1="Conv3D",NS="Conv3DBackpropFilterV2",TS="Conv3DBackpropInputV2",dg="Cos",fg="Cosh",ES="Cumprod",A1="Cumsum",RS="CropAndResize",AS="DenseBincount",_S="DepthToSpace",_1="DepthwiseConv2dNative",DS="DepthwiseConv2dNativeBackpropFilter",OS="DepthwiseConv2dNativeBackpropInput",$E="Diag",D1="Dilation2D",aC="Dilation2DBackpropInput",lC="Dilation2DBackpropFilter",nU="Draw",pg="RealDiv",FS="Einsum",mg="Elu",PS="EluGrad",gg="Erf",O1="Equal",xg="Exp",F1="ExpandDims",yg="Expm1",LS="FFT",MS="Fill",zS="FlipLeftRight",vg="Floor",wg="FloorDiv",P1="FusedBatchNorm",L1="GatherV2",NE="GatherNd",M1="Greater",bg="GreaterEqual",Cg="Identity",BS="IFFT",US="Imag",Sg="IsFinite",kg="IsInf",Ig="IsNan",z1="LeakyRelu",B1="Less",U1="LessEqual",TE="LinSpace",$g="Log",Ng="Log1p",W1="LogicalAnd",V1="LogicalNot",G1="LogicalOr",rU="LogSoftmax",j1="LRN",WS="LRNGrad",H1="Max",Tg="Maximum",q1="MaxPool",VS="MaxPoolGrad",K1="MaxPool3D",GS="MaxPool3DGrad",EE="MaxPoolWithArgmax",X1="Mean",Y1="Min",Eg="Minimum",Q1="MirrorPad",Rg="Mod",RE="Multinomial",Ag="Multiply",J1="Neg",Z1="NotEqual",jS="NonMaxSuppressionV3",HS="NonMaxSuppressionV4",qS="NonMaxSuppressionV5",ev="OnesLike",tv="OneHot",nv="Pack",rv="PadV2",_g="Pow",sv="Prelu",ov="Prod",AE="RaggedGather",_E="RaggedRange",DE="RaggedTensorToTensor",KS="Range",XS="Real",Dg="Reciprocal",Og="Relu",iv="Reshape",av="ResizeNearestNeighbor",YS="ResizeNearestNeighborGrad",lv="ResizeBilinear",QS="ResizeBilinearGrad",Fg="Relu6",uv="Reverse",Pg="Round",Lg="Rsqrt",OE="ScatterNd",FE="TensorScatterUpdate",PE="SearchSorted",cv="Select",Mg="Selu",hv="Slice",zg="Sin",Bg="Sinh",Ug="Sign",Wg="Sigmoid",Vg="Softplus",Gg="Sqrt",dv="Sum",fv="SpaceToBatchND",pv="SplitV",mv="Softmax",LE="SparseFillEmptyRows",ME="SparseReshape",zE="SparseSegmentMean",BE="SparseSegmentSum",UE="SparseToDense",jg="SquaredDifference",JS="Square",ZS="StaticRegexReplace",ek="StridedSlice",WE="StringNGrams",VE="StringSplit",GE="StringToHashBucketFast",Hg="Sub",qg="Tan",Kg="Tanh",Xg="Tile",tk="TopK",nk="Transform",ef="Transpose",rk="Unique",gv="Unpack",xv="UnsortedSegmentSum",yv="ZerosLike",Yg="Step",uC="FromPixels",sk="RotateWithOffset",Ly="_FusedMatMul",My="FusedConv2D",jE="FusedDepthwiseConv2D";function go(...n){ye().getBool("IS_TEST")||ye().getBool("PROD")||console.warn(...n)}function sU(...n){ye().getBool("IS_TEST")||ye().getBool("PROD")||console.log(...n)}const zy=xS("kernelRegistry",()=>new Map),cC=xS("gradRegistry",()=>new Map);function hC(n,e){const t=qE(n,e);return zy.get(t)}function $N(n){return cC.get(n)}function NN(n){const e=zy.entries(),t=[];for(;;){const{done:r,value:s}=e.next();if(r)break;const[o,i]=s,[a]=o.split("_");a===n&&t.push(i)}return t}function HE(n){const{kernelName:e,backendName:t}=n,r=qE(e,t);zy.has(r)&&go(`The kernel '${e}' for backend '${t}' is already registered`),zy.set(r,n)}function oU(n){const{kernelName:e}=n;cC.has(e)&&ye().getBool("DEBUG")&&go(`Overriding the gradient for '${e}'`),cC.set(e,n)}function qE(n,e){return`${e}_${n}`}function KE(n){return n instanceof Float32Array||n instanceof Int32Array||n instanceof Uint8Array||n instanceof Uint8ClampedArray}var Cb,TN;function iU(){if(TN)return Cb;TN=1,Cb=e;var n=null;try{n=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function e(L,_,H){this.low=L|0,this.high=_|0,this.unsigned=!!H}e.prototype.__isLong__,Object.defineProperty(e.prototype,"__isLong__",{value:!0});function t(L){return(L&&L.__isLong__)===!0}e.isLong=t;var r={},s={};function o(L,_){var H,Y,re;return _?(L>>>=0,(re=0<=L&&L<256)&&(Y=s[L],Y)?Y:(H=a(L,(L|0)<0?-1:0,!0),re&&(s[L]=H),H)):(L|=0,(re=-128<=L&&L<128)&&(Y=r[L],Y)?Y:(H=a(L,L<0?-1:0,!1),re&&(r[L]=H),H))}e.fromInt=o;function i(L,_){if(isNaN(L))return _?I:k;if(_){if(L<0)return I;if(L>=v)return P}else{if(L<=-b)return B;if(L+1>=b)return O}return L<0?i(-L,_).neg():a(L%y|0,L/y|0,_)}e.fromNumber=i;function a(L,_,H){return new e(L,_,H)}e.fromBits=a;var l=Math.pow;function c(L,_,H){if(L.length===0)throw Error("empty string");if(L==="NaN"||L==="Infinity"||L==="+Infinity"||L==="-Infinity")return k;if(typeof _=="number"?(H=_,_=!1):_=!!_,H=H||10,H<2||360)throw Error("interior hyphen");if(Y===0)return c(L.substring(1),_,H).neg();for(var re=i(l(H,8)),te=k,le=0;le>>0:this.low},z.toNumber=function(){return this.unsigned?(this.high>>>0)*y+(this.low>>>0):this.high*y+(this.low>>>0)},z.toString=function(_){if(_=_||10,_<2||36<_)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(B)){var H=i(_),Y=this.div(H),re=Y.mul(H).sub(this);return Y.toString(_)+re.toInt().toString(_)}else return"-"+this.neg().toString(_);for(var te=i(l(_,6),this.unsigned),le=this,de="";;){var j=le.div(te),ie=le.sub(j.mul(te)).toInt()>>>0,se=ie.toString(_);if(le=j,le.isZero())return se+de;for(;se.length<6;)se="0"+se;de=""+se+de}},z.getHighBits=function(){return this.high},z.getHighBitsUnsigned=function(){return this.high>>>0},z.getLowBits=function(){return this.low},z.getLowBitsUnsigned=function(){return this.low>>>0},z.getNumBitsAbs=function(){if(this.isNegative())return this.eq(B)?64:this.neg().getNumBitsAbs();for(var _=this.high!=0?this.high:this.low,H=31;H>0&&(_&1<=0},z.isOdd=function(){return(this.low&1)===1},z.isEven=function(){return(this.low&1)===0},z.equals=function(_){return t(_)||(_=d(_)),this.unsigned!==_.unsigned&&this.high>>>31===1&&_.high>>>31===1?!1:this.high===_.high&&this.low===_.low},z.eq=z.equals,z.notEquals=function(_){return!this.eq(_)},z.neq=z.notEquals,z.ne=z.notEquals,z.lessThan=function(_){return this.comp(_)<0},z.lt=z.lessThan,z.lessThanOrEqual=function(_){return this.comp(_)<=0},z.lte=z.lessThanOrEqual,z.le=z.lessThanOrEqual,z.greaterThan=function(_){return this.comp(_)>0},z.gt=z.greaterThan,z.greaterThanOrEqual=function(_){return this.comp(_)>=0},z.gte=z.greaterThanOrEqual,z.ge=z.greaterThanOrEqual,z.compare=function(_){if(t(_)||(_=d(_)),this.eq(_))return 0;var H=this.isNegative(),Y=_.isNegative();return H&&!Y?-1:!H&&Y?1:this.unsigned?_.high>>>0>this.high>>>0||_.high===this.high&&_.low>>>0>this.low>>>0?-1:1:this.sub(_).isNegative()?-1:1},z.comp=z.compare,z.negate=function(){return!this.unsigned&&this.eq(B)?B:this.not().add(N)},z.neg=z.negate,z.add=function(_){t(_)||(_=d(_));var H=this.high>>>16,Y=this.high&65535,re=this.low>>>16,te=this.low&65535,le=_.high>>>16,de=_.high&65535,j=_.low>>>16,ie=_.low&65535,se=0,V=0,X=0,xe=0;return xe+=te+ie,X+=xe>>>16,xe&=65535,X+=re+j,V+=X>>>16,X&=65535,V+=Y+de,se+=V>>>16,V&=65535,se+=H+le,se&=65535,a(X<<16|xe,se<<16|V,this.unsigned)},z.subtract=function(_){return t(_)||(_=d(_)),this.add(_.neg())},z.sub=z.subtract,z.multiply=function(_){if(this.isZero())return k;if(t(_)||(_=d(_)),n){var H=n.mul(this.low,this.high,_.low,_.high);return a(H,n.get_high(),this.unsigned)}if(_.isZero())return k;if(this.eq(B))return _.isOdd()?B:k;if(_.eq(B))return this.isOdd()?B:k;if(this.isNegative())return _.isNegative()?this.neg().mul(_.neg()):this.neg().mul(_).neg();if(_.isNegative())return this.mul(_.neg()).neg();if(this.lt(w)&&_.lt(w))return i(this.toNumber()*_.toNumber(),this.unsigned);var Y=this.high>>>16,re=this.high&65535,te=this.low>>>16,le=this.low&65535,de=_.high>>>16,j=_.high&65535,ie=_.low>>>16,se=_.low&65535,V=0,X=0,xe=0,Ie=0;return Ie+=le*se,xe+=Ie>>>16,Ie&=65535,xe+=te*se,X+=xe>>>16,xe&=65535,xe+=le*ie,X+=xe>>>16,xe&=65535,X+=re*se,V+=X>>>16,X&=65535,X+=te*ie,V+=X>>>16,X&=65535,X+=le*j,V+=X>>>16,X&=65535,V+=Y*se+re*ie+te*j+le*de,V&=65535,a(xe<<16|Ie,V<<16|X,this.unsigned)},z.mul=z.multiply,z.divide=function(_){if(t(_)||(_=d(_)),_.isZero())throw Error("division by zero");if(n){if(!this.unsigned&&this.high===-2147483648&&_.low===-1&&_.high===-1)return this;var H=(this.unsigned?n.div_u:n.div_s)(this.low,this.high,_.low,_.high);return a(H,n.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?I:k;var Y,re,te;if(this.unsigned){if(_.unsigned||(_=_.toUnsigned()),_.gt(this))return I;if(_.gt(this.shru(1)))return T;te=I}else{if(this.eq(B)){if(_.eq(N)||_.eq(A))return B;if(_.eq(B))return N;var le=this.shr(1);return Y=le.div(_).shl(1),Y.eq(k)?_.isNegative()?N:A:(re=this.sub(_.mul(Y)),te=Y.add(re.div(_)),te)}else if(_.eq(B))return this.unsigned?I:k;if(this.isNegative())return _.isNegative()?this.neg().div(_.neg()):this.neg().div(_).neg();if(_.isNegative())return this.div(_.neg()).neg();te=k}for(re=this;re.gte(_);){Y=Math.max(1,Math.floor(re.toNumber()/_.toNumber()));for(var de=Math.ceil(Math.log(Y)/Math.LN2),j=de<=48?1:l(2,de-48),ie=i(Y),se=ie.mul(_);se.isNegative()||se.gt(re);)Y-=j,ie=i(Y,this.unsigned),se=ie.mul(_);ie.isZero()&&(ie=N),te=te.add(ie),re=re.sub(se)}return te},z.div=z.divide,z.modulo=function(_){if(t(_)||(_=d(_)),n){var H=(this.unsigned?n.rem_u:n.rem_s)(this.low,this.high,_.low,_.high);return a(H,n.get_high(),this.unsigned)}return this.sub(this.div(_).mul(_))},z.mod=z.modulo,z.rem=z.modulo,z.not=function(){return a(~this.low,~this.high,this.unsigned)},z.and=function(_){return t(_)||(_=d(_)),a(this.low&_.low,this.high&_.high,this.unsigned)},z.or=function(_){return t(_)||(_=d(_)),a(this.low|_.low,this.high|_.high,this.unsigned)},z.xor=function(_){return t(_)||(_=d(_)),a(this.low^_.low,this.high^_.high,this.unsigned)},z.shiftLeft=function(_){return t(_)&&(_=_.toInt()),(_&=63)===0?this:_<32?a(this.low<<_,this.high<<_|this.low>>>32-_,this.unsigned):a(0,this.low<<_-32,this.unsigned)},z.shl=z.shiftLeft,z.shiftRight=function(_){return t(_)&&(_=_.toInt()),(_&=63)===0?this:_<32?a(this.low>>>_|this.high<<32-_,this.high>>_,this.unsigned):a(this.high>>_-32,this.high>=0?0:-1,this.unsigned)},z.shr=z.shiftRight,z.shiftRightUnsigned=function(_){if(t(_)&&(_=_.toInt()),_&=63,_===0)return this;var H=this.high;if(_<32){var Y=this.low;return a(Y>>>_|H<<32-_,H>>>_,this.unsigned)}else return _===32?a(H,0,this.unsigned):a(H>>>_-32,0,this.unsigned)},z.shru=z.shiftRightUnsigned,z.shr_u=z.shiftRightUnsigned,z.toSigned=function(){return this.unsigned?a(this.low,this.high,!1):this},z.toUnsigned=function(){return this.unsigned?this:a(this.low,this.high,!0)},z.toBytes=function(_){return _?this.toBytesLE():this.toBytesBE()},z.toBytesLE=function(){var _=this.high,H=this.low;return[H&255,H>>>8&255,H>>>16&255,H>>>24,_&255,_>>>8&255,_>>>16&255,_>>>24]},z.toBytesBE=function(){var _=this.high,H=this.low;return[_>>>24,_>>>16&255,_>>>8&255,_&255,H>>>24,H>>>16&255,H>>>8&255,H&255]},e.fromBytes=function(_,H,Y){return Y?e.fromBytesLE(_,H):e.fromBytesBE(_,H)},e.fromBytesLE=function(_,H){return new e(_[0]|_[1]<<8|_[2]<<16|_[3]<<24,_[4]|_[5]<<8|_[6]<<16|_[7]<<24,H)},e.fromBytesBE=function(_,H){return new e(_[4]<<24|_[5]<<16|_[6]<<8|_[7],_[0]<<24|_[1]<<16|_[2]<<8|_[3],H)},Cb}var XE=iU();const YE=xf(XE),aU=xT({__proto__:null,default:YE},[XE]);const Rc=YE||aU;function vv(n){return Rc.fromString(n,!0,16)}const QE=vv("c3a5c85c97cb3127"),Ec=vv("b492b66fbe98f273"),is=vv("9ae16a3b2f90404f");function dC(n){return n.xor(n.shru(47))}function JE(n,e,t){const r=n.slice(e,e+t);return Rc.fromBytes(Array.from(r),!0,!0)}function pn(n,e){return JE(n,e,8)}function EN(n,e){return JE(n,e,4)}function mr(n,e){return e===0?n:n.shru(e).or(n.shl(64-e))}function ru(n,e,t=vv("9ddfea08eb382d69")){let r=n.xor(e).mul(t);r=r.xor(r.shru(47));let s=e.xor(r).mul(t);return s=s.xor(s.shru(47)),s=s.mul(t),s}function lU(n,e,t,r,s,o){s=s.add(n),o=mr(o.add(s).add(r),21);const i=s;return s=s.add(e),s=s.add(t),o=o.add(mr(s,44)),[s.add(r),o.add(i)]}function ry(n,e,t,r){return lU(pn(n,e),pn(n,e+8),pn(n,e+16),pn(n,e+24),t,r)}function uU(n,e=n.length){if(e>=8){const t=is.add(e*2),r=pn(n,0).add(is),s=pn(n,e-8),o=mr(s,37).mul(t).add(r),i=mr(r,25).add(s).mul(t);return ru(o,i,t)}if(e>=4){const t=is.add(e*2),r=EN(n,0);return ru(r.shl(3).add(e),EN(n,e-4),t)}if(e>0){const t=n[0],r=n[e>>1],s=n[e-1],o=t+(r<<8),i=e+(s<<2);return dC(is.mul(o).xor(QE.mul(i))).mul(is)}return is}function cU(n,e=n.length){const t=is.add(e*2),r=pn(n,0).mul(Ec),s=pn(n,8),o=pn(n,e-8).mul(t),i=pn(n,e-16).mul(is);return ru(mr(r.add(s),43).add(mr(o,30)).add(i),r.add(mr(s.add(is),18)).add(o),t)}function hU(n,e=n.length){const t=is.add(e*2),r=pn(n,0).mul(is),s=pn(n,8),o=pn(n,e-8).mul(t),i=pn(n,e-16).mul(is),a=mr(r.add(s),43).add(mr(o,30)).add(i),l=ru(a,r.add(mr(s.add(is),18)).add(o),t),c=pn(n,16).mul(t),d=pn(n,24),p=a.add(pn(n,e-32)).mul(t),m=l.add(pn(n,e-24)).mul(t);return ru(mr(c.add(d),43).add(mr(p,30)).add(m),c.add(mr(d.add(r),18)).add(p),t)}function dU(n,e=n.length){const t=Rc.fromNumber(81,!0);if(e<=32)return e<=16?uU(n,e):cU(n,e);if(e<=64)return hU(n,e);let r=t,s=t.mul(Ec).add(113),o=dC(s.mul(is).add(113)).mul(is),i=[Rc.UZERO,Rc.UZERO],a=[Rc.UZERO,Rc.UZERO];r=r.mul(is).add(pn(n,0));let l=0;const c=(e-1>>6)*64,d=c+(e-1&63)-63;do r=mr(r.add(s).add(i[0]).add(pn(n,l+8)),37).mul(Ec),s=mr(s.add(i[1]).add(pn(n,l+48)),42).mul(Ec),r=r.xor(a[1]),s=s.add(i[0]).add(pn(n,l+40)),o=mr(o.add(a[0]),33).mul(Ec),i=ry(n,l,i[1].mul(Ec),r.add(a[0])),a=ry(n,l+32,o.add(a[1]),s.add(pn(n,l+16))),[o,r]=[r,o],l+=64;while(l!==c);const p=Ec.add(o.and(255).shl(1));return l=d,a[0]=a[0].add(e-1&63),i[0]=i[0].add(a[0]),a[0]=a[0].add(i[0]),r=mr(r.add(s).add(i[0]).add(pn(n,l+8)),37).mul(p),s=mr(s.add(i[1]).add(pn(n,l+48)),42).mul(p),r=r.xor(a[1].mul(9)),s=s.add(i[0].mul(9).add(pn(n,l+40))),o=mr(o.add(a[0]),33).mul(p),i=ry(n,l,i[1].mul(p),r.add(a[0])),a=ry(n,l+32,o.add(a[1]),s.add(pn(n,l+16))),[o,r]=[r,o],ru(ru(i[0],a[0],p).add(dC(s).mul(QE)).add(o),ru(i[1],a[1],p).add(r),p)}function mu(n,e){return e==="string"?su(n):ah([n],e)}function fU(n,e){return n instanceof Float32Array&&e==="float32"||n instanceof Int32Array&&e==="int32"||n instanceof Uint8Array&&e==="bool"}function ah(n,e){if(e==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(n)&&(n=jc(n)),ye().getBool("DEBUG")&&G4(n,e),fU(n,e))return n;if(e==null||e==="float32"||e==="complex64")return new Float32Array(n);if(e==="int32")return new Int32Array(n);if(e==="bool"){const t=new Uint8Array(n.length);for(let r=0;r{s=r()};let i;const a=Cs();if(this.backendTimer.timerAvailable())i=this.backendTimer.time(o);else{o();for(const c of s)c.dataSync();i=Promise.resolve({kernelMs:Cs()-a})}if(ye().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let c=0;c{mU(p,d.dtype,e)})}return{kernelName:e,outputs:s,inputs:t,timeMs:i.then(c=>c.kernelMs),extraInfo:i.then(c=>c.getExtraProfileInfo!=null?c.getExtraProfileInfo():"")}}logKernelProfile(e){const{kernelName:t,outputs:r,timeMs:s,inputs:o,extraInfo:i}=e;r.forEach(a=>{Promise.all([a.data(),s,i]).then(l=>{this.logger.logKernelProfile(t,a,l[0],l[1],o,l[2])})})}}function mU(n,e,t){if(e!=="float32")return!1;for(let r=0;r0?b:""} `}}console.log(`%c${l} %c${a} %c${c}D ${p} %c${d} %c${m} %c${i}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}}function xU(n,e,t){const r={},s={};for(let l=0;lr[b.id]=!0),y=!0,s[c.id]=!0;break}if(y)break}}const o={};o[t.id]=!0;const i={};for(let l=n.length-1;l>=0;l--){const c=n[l],d=c.inputs;for(let p=0;p=0;s--){const o=e[s],i=[];if(o.outputs.forEach(l=>{const c=n[l.id];c!=null?i.push(c):i.push(null)}),o.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${o.kernelName}.`);const a=o.gradient(i);for(const l in o.inputs){if(!(l in a))throw new Error(`Cannot backprop through input ${l}. Available gradients found: ${Object.keys(a)}.`);const c=t(()=>a[l]());if(c.dtype!=="float32")throw new Error(`Error in gradient for op ${o.kernelName}. The gradient of input ${l} must have 'float32' dtype, but has '${c.dtype}'`);const d=o.inputs[l];if(!Xt(c.shape,d.shape))throw new Error(`Error in gradient for op ${o.kernelName}. The gradient of input '${l}' has shape '${c.shape}', which does not match the shape of the input '${d.shape}'`);if(n[d.id]==null)n[d.id]=c;else{const p=n[d.id];n[d.id]=r(p,c),p.dispose()}}}}const RN=20,pm=3,Sb=7;function vU(n,e,t,r){const s=tt(e),o=wU(n,e,t,s),i=e.length,a=vy(n,e,t,s,o),l=["Tensor"];return r&&(l.push(` dtype: ${t}`),l.push(` rank: ${i}`),l.push(` shape: [${e}]`),l.push(" values:")),l.push(a.map(c=>" "+c).join(` +`)),l.join(` +`)}function wU(n,e,t,r){const s=Se(e),o=r[r.length-1],i=new Array(o).fill(0),a=e.length,l=t==="complex64"?wm(n):n;if(a>1)for(let c=0;cRN){const w=pm*i;let k=Array.from(n.slice(0,w)),I=Array.from(n.slice((a-pm)*i,a*i));return t==="complex64"&&(k=wm(k),I=wm(I)),["["+k.map((N,T)=>vm(N,s[T],t)).join(", ")+", ..., "+I.map((N,T)=>vm(N,s[a-pm+T],t)).join(", ")+"]"]}return["["+(t==="complex64"?wm(n):Array.from(n)).map((w,k)=>vm(w,s[k],t)).join(", ")+"]"]}const c=e.slice(1),d=r.slice(1),p=r[0]*i,m=[];if(a>RN){for(let b=0;b0?m[0]+y:"");for(let b=1;b`Length of values '${s}' does not match the size inferred by the shape '${this.size}'.`)}if(t==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=r||Mn(t,this.size),this.strides=tt(e)}set(e,...t){t.length===0&&(t=[0]),U(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`);const r=this.locToIndex(t);this.values[r]=e}get(...e){e.length===0&&(e=[0]);let t=0;for(const s of e){if(s<0||s>=this.shape[t]){const o=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(o)}t++}let r=e[e.length-1];for(let s=0;sau(r))}catch{throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataToGPU(e){return this.throwIfDisposed(),yi().readToGPU(this.dataId,e)}dataSync(){this.throwIfDisposed();const e=yi().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>au(t))}catch{throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();const e=await yi().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(this.kerasMask&&this.kerasMask.dispose(),yi().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return Hd.print(this,e)}clone(){return this.throwIfDisposed(),Hd.clone(this)}toString(e=!1){const t=this.dataSync();return vU(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),Hd.cast(this,e)}variable(e=!0,t,r){return this.throwIfDisposed(),yi().makeVariable(this,e,t,r)}}Object.defineProperty(tr,Symbol.hasInstance,{value:n=>!!n&&n.data!=null&&n.dataSync!=null&&n.throwIfDisposed!=null});function Ce(){return xS("Tensor",()=>tr)}Ce();class By extends tr{constructor(e,t,r,s){super(e.shape,e.dtype,e.dataId,s),this.trainable=t,this.name=r}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!Xt(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);yi().disposeTensor(this),this.dataId=e.dataId,yi().incRef(this,null)}dispose(){yi().disposeVariable(this),this.isDisposedInternal=!0}}Object.defineProperty(By,Symbol.hasInstance,{value:n=>n instanceof tr&&n.assign!=null&&n.assign instanceof Function});var AN;(function(n){n.R0="R0",n.R1="R1",n.R2="R2",n.R3="R3",n.R4="R4",n.R5="R5",n.R6="R6"})(AN||(AN={}));var fC;(function(n){n.float32="float32",n.int32="int32",n.bool="int32",n.complex64="complex64"})(fC||(fC={}));var pC;(function(n){n.float32="float32",n.int32="int32",n.bool="bool",n.complex64="complex64"})(pC||(pC={}));var mC;(function(n){n.float32="float32",n.int32="float32",n.bool="float32",n.complex64="complex64"})(mC||(mC={}));var gC;(function(n){n.float32="complex64",n.int32="complex64",n.bool="complex64",n.complex64="complex64"})(gC||(gC={}));const SU={float32:mC,int32:fC,bool:pC,complex64:gC};function Ys(n,e){if(n==="string"||e==="string"){if(n==="string"&&e==="string")return"string";throw new Error(`Can not upcast ${n} with ${e}`)}return SU[n][e]}function ok(n){return Ys(n,"int32")}function eR(n){return n!=null&&typeof n=="object"&&"texture"in n&&n.texture instanceof WebGLTexture}function tR(n){return typeof GPUBuffer<"u"&&n!=null&&typeof n=="object"&&"buffer"in n&&n.buffer instanceof GPUBuffer}function Un(n,e){if(n.dtype===e.dtype)return[n,e];const t=Ys(n.dtype,e.dtype);return[n.cast(t),e.cast(t)]}function nR(n){const e=[];return rR(n,e,new Set),e}function rR(n,e,t){if(n==null)return;if(n instanceof tr){e.push(n);return}if(!kU(n))return;const r=n;for(const s in r){const o=r[s];t.has(o)||(t.add(o),rR(o,e,t))}}function kU(n){return Array.isArray(n)||typeof n=="object"}function kb(n){return n.kernelName!=null}class _N{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map(e=>e.name)))}}}dispose(){for(const e in this.registeredVariables)this.registeredVariables[e].dispose()}}class af{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new _N}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;const e=this.getSortedBackends();for(let t=0;t{t.setupFunc!=null&&t.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){NN(e).forEach(r=>{r.disposeFunc!=null&&r.disposeFunc(this.registry[e])})}initializeBackend(e){const t=this.registryFactory[e];if(t==null)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{const r=t.factory();if(r&&!(r instanceof hS)&&typeof r.then=="function"){const s=++this.pendingBackendInitId,o=r.then(i=>s(sthis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){const e=this.getSortedBackends();for(let t=0;tthis.startScope(r),()=>this.endScope(s),()=>(s=t(),s instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),s))}scopedRun(e,t,r){e();try{const s=r();return t(),s}catch(s){throw t(),s}}nextTensorId(){return af.nextTensorId++}nextVariableId(){return af.nextVariableId++}clone(e){const t=ae.runKernel(Cg,{x:e}),r={x:e},s=i=>({x:()=>{const a="float32",l={x:i},c={dtype:a};return ae.runKernel(ug,l,c)}}),o=[];return this.addTapeNode(this.state.activeScope.name,r,[t],s,o,{}),t}runKernel(e,t,r){if(this.backendName==null&&this.backend,!(hC(e,this.backendName)!=null))throw new Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:r})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,r){const s=this.backend.numDataIds();let o=0;r.forEach(l=>{o+=l.dtype==="complex64"?3:1});const i=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],a=s-t-o-i;if(a>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${a} data ids) after running '${e}'`)}runKernelFunc(e){let t,r=[];const s=this.isTapeOn(),o=this.state.numBytes,i=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let a;this.backendName==null&&this.backend;let l;const c=kb(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(kb(e)){const{kernelName:v,inputs:b,attrs:w}=e;this.backendName==null&&this.backend;const k=hC(v,this.backendName);U(k!=null,()=>`Cannot find registered kernel '${v}' for backend '${this.backendName}'`),a=()=>{const I=this.backend.numDataIds();l=k.kernelFunc({inputs:b,attrs:w,backend:this.backend});const N=Array.isArray(l)?l:[l];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(v,I,N);const T=N.map(A=>A.rank!=null?A:this.makeTensorFromTensorInfo(A));if(s){const A=this.getTensorsForGradient(v,b,T);r=this.saveTensorsForBackwardMode(A)}return T}}else{const{forwardFunc:v}=e,b=w=>{s&&(r=w.map(k=>this.keep(this.clone(k))))};a=()=>{const w=this.backend.numDataIds();l=this.tidy(()=>v(this.backend,b));const k=Array.isArray(l)?l:[l];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(c,w,k),k}}const{inputs:d,attrs:p}=e,m=kb(e)?null:e.backwardsFunc;let y;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?t=a():(y=this.profiler.profileKernel(c,d,()=>a()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(y),t=y.outputs)}),s&&this.addTapeNode(c,d,t,m,r,p),this.state.profiling&&this.state.activeProfile.kernels.push({name:c,bytesAdded:this.state.numBytes-o,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-i,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(d).map(v=>d[v]!=null?d[v].shape:null),outputShapes:t.map(v=>v.shape),kernelTimeMs:y.timeMs,extraInfo:y.extraInfo}),Array.isArray(l)?t:t[0]}saveTensorsForBackwardMode(e){return e.map(r=>this.keep(this.clone(r)))}getTensorsForGradient(e,t,r){const s=$N(e);if(s!=null){const o=s.inputsToSave||[],i=s.outputsToSave||[];let a;s.saveAllInputs?(U(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),a=Object.keys(t).map(c=>t[c])):a=o.map(c=>t[c]);const l=r.filter((c,d)=>i[d]);return a.concat(l)}return[]}makeTensor(e,t,r,s){if(e==null)throw new Error("Values passed to engine.makeTensor() are null");r=r||"float32",s=s||this.backend;let o=e;r==="string"&&tg(e[0])&&(o=e.map(l=>su(l)));const i=s.write(o,t,r),a=new tr(t,r,i,this.nextTensorId());if(this.trackTensor(a,s),r==="string"){const l=this.state.tensorInfo.get(i),c=H4(o);this.state.numBytes+=c-l.bytes,l.bytes=c}return a}makeTensorFromDataId(e,t,r,s){r=r||"float32";const o={dataId:e,shape:t,dtype:r};return this.makeTensorFromTensorInfo(o,s)}makeTensorFromTensorInfo(e,t){const{dataId:r,shape:s,dtype:o}=e,i=new tr(s,o,r,this.nextTensorId());return this.trackTensor(i,t),i}makeVariable(e,t=!0,r,s){r=r||this.nextVariableId().toString(),s!=null&&s!==e.dtype&&(e=e.cast(s));const o=new By(e,t,r,this.nextTensorId());if(this.state.registeredVariables[o.name]!=null)throw new Error(`Variable with name ${o.name} was already registered`);return this.state.registeredVariables[o.name]=o,this.incRef(o,this.backend),o}trackTensor(e,t){this.state.numTensors++,e.dtype==="string"&&this.state.numStringTensors++;let r=0;e.dtype!=="complex64"&&e.dtype!=="string"&&(r=e.size*Py(e.dtype)),this.state.numBytes+=r,this.state.tensorInfo.has(e.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:r})),e instanceof By||this.track(e)}incRef(e,t){this.trackTensor(e,t),this.backend.incRef(e.dataId)}removeDataId(e,t){this.state.tensorInfo.has(e)&&this.state.tensorInfo.get(e).backend===t&&(this.state.tensorInfo.delete(e),this.state.numDataBuffers--)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;const t=this.state.tensorInfo.get(e.dataId);if(this.state.numTensors--,e.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),e.dtype!=="complex64"&&e.dtype!=="string"){const r=e.size*Py(e.dtype);this.state.numBytes-=r}t.backend.disposeData(e.dataId)&&this.removeDataId(e.dataId,t.backend)}disposeVariables(){for(const e in this.state.registeredVariables){const t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),this.state.registeredVariables[e.name]!=null&&delete this.state.registeredVariables[e.name]}memory(){const e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,e.reasons==null&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;const t=this.state.numBytes,r=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(s=>s.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-r;for(const s of this.state.activeProfile.kernels)s.kernelTimeMs=await s.kernelTimeMs,s.extraInfo=await s.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(e,t,r,s,o,i){const a={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:r,saved:o},l=$N(e);l!=null&&(s=l.gradFunc),s!=null&&(a.gradient=c=>(c=c.map((d,p)=>{if(d==null){const m=r[p],y=Gr(m.size,m.dtype);return this.makeTensor(y,m.shape,m.dtype)}return d}),s(c.length>1?c:c[0],o,i))),this.state.activeTape.push(a)}keep(e){return e.kept=!0,e}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){const t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){const t=nR(e),r=new Set(t.map(o=>o.id));for(let o=0;o{!o.kept&&o.scopeId===s.id&&this.track(o)})}gradients(e,t,r,s=!1){if(U(t.length>0,()=>"gradients() received an empty list of xs."),r!=null&&r.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${r.dtype}'`);const o=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));U(o instanceof tr,()=>"The result y returned by f() must be a tensor.");const i=xU(this.state.activeTape,t,o);if(!s&&i.length===0&&t.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{const a={};a[o.id]=r??IU(o.shape),yU(a,i,c=>this.tidy(c),$U);const l=t.map(c=>a[c.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(c=>{for(const d of c.saved)d.dispose()}),this.state.activeTape=null),{value:o,grads:l}})}customGrad(e){return U(oC(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{U(t.every(a=>a instanceof tr),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let r;const s={};t.forEach((a,l)=>{s[l]=a});const o=(a,l)=>(r=e(...t,l),U(r.value instanceof tr,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),U(oC(r.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),r.value),i=(a,l)=>{const c=r.gradFunc(a,l),d=Array.isArray(c)?c:[c];U(d.length===t.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),U(d.every(m=>m instanceof tr),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");const p={};return d.forEach((m,y)=>{p[y]=()=>m}),p};return this.runKernelFunc({forwardFunc:o,backwardsFunc:i,inputs:s})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}readToGPU(e,t){return this.state.tensorInfo.get(e).backend.readToGPU(e,t)}async time(e){const t=Cs(),r=await this.backend.time(e);return r.wallMs=Cs()-t,r}track(e){return this.state.activeScope!=null&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new _N;for(const e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}}af.nextTensorId=0;af.nextVariableId=0;function IU(n){const e=mS(Se(n),"float32");return ae.makeTensor(e,n,"float32")}function sR(){const n=kE();if(n._tfengine==null){const e=new X4(n);n._tfengine=new af(e)}return Z4(n._tfengine.ENV),bU(()=>n._tfengine),n._tfengine}const ae=sR();function $U(n,e){const t={a:n,b:e};return ae.runKernel(kf,t)}function NU(){return typeof navigator<"u"&&navigator!=null}function oR(n){if(n||NU()){if(n||(n=navigator),n.product==="ReactNative")return!0;const e=n.userAgent||n.vendor||(typeof window<"u"?window.opera:"");if(!e){const t=n;return t.userAgentData&&t.userAgentData.mobile}return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4))}return!1}function iR(){return typeof window<"u"&&window.document!=null||typeof WorkerGlobalScope<"u"}const $s=ye();$s.registerFlag("DEBUG",()=>!1,n=>{n&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});$s.registerFlag("IS_BROWSER",()=>iR());$s.registerFlag("IS_NODE",()=>typeof process<"u"&&typeof process.versions<"u"&&typeof process.versions.node<"u");$s.registerFlag("IS_CHROME",()=>typeof navigator<"u"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));$s.registerFlag("IS_SAFARI",()=>typeof navigator<"u"&&navigator!=null&&navigator.userAgent!=null&&/Safari/.test(navigator.userAgent)&&/Apple/.test(navigator.vendor));$s.registerFlag("PROD",()=>!1);$s.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>$s.getBool("DEBUG"));$s.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);$s.registerFlag("IS_TEST",()=>!1);$s.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>$s.getBool("DEBUG"));$s.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);$s.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);$s.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1);function Qg(n,e){let t=n;if(qo(n))return e==="string"?[]:[n.length];if(eR(n)){const s=n.channels||"RGBA";return[n.height,n.width*s.length]}else if(tR(n))return[n.buffer.size/(e==null?4:Py(e))];if(!Array.isArray(n))return[];const r=[];for(;Array.isArray(t)||qo(t)&&e!=="string";)r.push(t.length),t=t[0];return Array.isArray(n)&&ye().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&aR(n,r,[]),r}function aR(n,e,t){if(t=t||[],!Array.isArray(n)&&!qo(n)){U(e.length===0,()=>`Element arr[${t.join("][")}] is a primitive, but should be an array/TypedArray of ${e[0]} elements`);return}U(e.length>0,()=>`Element arr[${t.join("][")}] should be a primitive, but is an array of ${n.length} elements`),U(n.length===e[0],()=>`Element arr[${t.join("][")}] should have ${e[0]} elements, but has ${n.length} elements`);const r=e.slice(1);for(let s=0;s=0&&(s=r),DN(r,s,e,t),n==null||!qo(n)&&!Array.isArray(n)&&typeof n!="number"&&typeof n!="boolean"&&typeof n!="string"){const l=n==null?"null":n.constructor.name;throw new Error(`Argument '${e}' passed to '${t}' must be a Tensor or TensorLike, but got '${l}'`)}const o=Qg(n,s);!qo(n)&&!Array.isArray(n)&&(n=[n]);const a=s!=="string"?ah(n,s):jc(n,[],!0);return ae.makeTensor(a,o,s)}function lR(n,e,t,r="numeric"){if(!Array.isArray(n))throw new Error(`Argument ${e} passed to ${t} must be a \`Tensor[]\` or \`TensorLike[]\``);return n.map((o,i)=>K(o,`${e}[${i}]`,t,r))}const TU="__op";function he(n){const e=Object.keys(n);if(e.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${e.length} keys.`);let t=e[0];const r=n[t];t.endsWith("_")&&(t=t.substring(0,t.length-1)),t=t+TU;const s=(...o)=>{ae.startScope(t);try{const i=r(...o);return gS(i)&&console.error("Cannot return a Promise inside of tidy."),ae.endScope(i),i}catch(i){throw ae.endScope(null),i}};return Object.defineProperty(s,"name",{value:t,configurable:!0}),s}function EU(n,e){const t=K(n,"real","complex"),r=K(e,"imag","complex");fS(t.shape,r.shape,`real and imag shapes, ${t.shape} and ${r.shape}, must match in call to tf.complex().`);const s={real:t,imag:r};return ae.runKernel(IS,s)}const Hc=he({complex_:EU});function Jg(n,e,t,r){if(r==null)r=Cf(n);else if(r==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(tR(n)||eR(n)){if(r!=="float32"&&r!=="int32")throw new Error(`Creating tensor from GPU data only supports 'float32'|'int32' dtype, while the dtype is ${r}.`);return ae.backend.createTensorFromGPUData(n,e||t,r)}if(!qo(n)&&!Array.isArray(n)&&typeof n!="number"&&typeof n!="boolean"&&typeof n!="string")throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(e!=null){al(e);const s=Se(e),o=Se(t);U(s===o,()=>`Based on the provided shape, [${e}], the tensor should have ${s} values but has ${o}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${t}) does not match the provided shape (${e}). `)}}return!qo(n)&&!Array.isArray(n)&&(n=[n]),e=e||t,n=r!=="string"?ah(n,r):jc(n,[],!0),ae.makeTensor(n,e,r)}function $m(n,e,t){const r=Qg(n,t);return Jg(n,e,r,t)}const Uy={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};class gu{static join(e){return new gu(e).slice()}constructor(e){if(this.shards=[],this.previousShardIndex=0,e==null||(e instanceof Array||(e=[e]),e=e.map(r=>qo(r)?r.buffer:r),e.length===0))return;this.bufferUniformSize=e[0].byteLength;let t=0;for(let r=0;r=this.byteLength)return-1;if(this.bufferUniformSize!=null)return this.previousShardIndex=Math.floor(e/this.bufferUniformSize),this.previousShardIndex;function t(s){return e=s.end?1:0}if(t(this.shards[this.previousShardIndex])===0)return this.previousShardIndex;const r=RU(this.shards,t);return r===-1?-1:(this.previousShardIndex=r,this.previousShardIndex)}}function RU(n,e){let t=0,r=n.length;for(;t<=r;){const s=Math.floor((r-t)/2)+t,o=e(n[s]);if(o===0)return s;o<0?r=s:t=s+1}return-1}function na(){return ae}function ON(){return ae.memory()}function me(n,e){return ae.tidy(n,e)}function kt(n){nR(n).forEach(t=>t.dispose())}function ha(n){return ae.keep(n)}function uR(n,e,t=1){return ae.registerBackend(n,e,t)}function AU(){return ae.backend}const lf=4;async function FN(n,e){const t=[],r=[],s=Array.isArray(n)?n.map(i=>i.name):Object.keys(n);for(let i=0;i{const m=await l.bytes(),y=m.reduce((w,k)=>w+k.length,0)+lf*m.length,v=new Uint8Array(y);let b=0;for(let w=0;wt.slice(s+a,s+l));r[o.name]=OU(o,t.slice(s,s+i)),s+=i}return r}function DU(n,e){const t=Se(n.shape);let r;if("quantization"in n){const s=n.quantization;r=Uy[s.dtype]}else if(n.dtype==="string"){let s=0;for(let o=0;o{if(e+=o.byteLength,t.push(o.byteLength===o.buffer.byteLength?o:new o.constructor(o)),!(o instanceof Float32Array||o instanceof Int32Array||o instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${o.constructor.name}`)});const r=new Uint8Array(e);let s=0;return t.forEach(o=>{r.set(new Uint8Array(o.buffer),s),s+=o.byteLength}),r.buffer}const ik=typeof Buffer<"u"&&(typeof Blob>"u"||typeof atob>"u"||typeof btoa>"u");function PN(n){return ik?Buffer.byteLength(n,"utf8"):new Blob([n]).size}function PU(n){if(ik)return Buffer.from(n).toString("base64");const e=new Uint8Array(n);let t="";for(let r=0,s=e.length;r{let r=t<<13,s=0;for(;(r&8388608)===0;)s-=8388608,r<<=1;return r&=-8388609,s+=947912704,r|s},e=new Uint32Array(2048);e[0]=0;for(let t=1;t<1024;t++)e[t]=n(t);for(let t=1024;t<2048;t++)e[t]=939524096+(t-1024<<13);return e}function VU(){const n=new Uint32Array(64);n[0]=0,n[31]=1199570944,n[32]=2147483648,n[63]=3347054592;for(let e=1;e<31;e++)n[e]=e<<23;for(let e=33;e<63;e++)n[e]=2147483648+(e-32<<23);return n}function GU(){const n=new Uint32Array(64);for(let e=0;e<64;e++)n[e]=1024;return n[0]=n[32]=0,n}function jU(){const n=WU(),e=VU(),t=GU();return r=>{const s=new ArrayBuffer(4*r.length),o=new Uint32Array(s);for(let i=0;i>10]+(a&1023)]+e[a>>10];o[i]=l}return new Float32Array(s)}}class pr{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return pr.instance==null&&(pr.instance=new pr),pr.instance}static registerSaveRouter(e){pr.getInstance().saveRouters.push(e)}static registerLoadRouter(e){pr.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return pr.getHandlers(e,"save")}static getLoadHandlers(e,t){return pr.getHandlers(e,"load",t)}static getHandlers(e,t,r){const s=[];return(t==="load"?pr.getInstance().loadRouters:pr.getInstance().saveRouters).forEach(i=>{const a=i(e,r);a!==null&&s.push(a)}),s}}const HU=n=>pr.getSaveHandlers(n),qU=(n,e)=>pr.getLoadHandlers(n,e);const xC="tensorflowjs",yC=1,Oc="models_store",Zl="model_info_store";function cR(){if(!ye().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");const n=typeof window>"u"?self:window,e=n.indexedDB||n.mozIndexedDB||n.webkitIndexedDB||n.msIndexedDB||n.shimIndexedDB;if(e==null)throw new Error("The current browser does not appear to support IndexedDB.");return e}function vC(n){const e=n.result;e.createObjectStore(Oc,{keyPath:"modelPath"}),e.createObjectStore(Zl,{keyPath:"modelPath"})}class qc{constructor(e){if(this.indexedDB=cR(),e==null||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise((r,s)=>{const o=this.indexedDB.open(xC,yC);o.onupgradeneeded=()=>vC(o),o.onsuccess=()=>{const i=o.result;if(t==null){const a=i.transaction(Oc,"readonly"),c=a.objectStore(Oc).get(this.modelPath);c.onsuccess=()=>{if(c.result==null)return i.close(),s(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));r(c.result.modelArtifacts)},c.onerror=d=>(i.close(),s(c.error)),a.oncomplete=()=>i.close()}else{t.weightData=gu.join(t.weightData);const a=ak(t),l=i.transaction(Zl,"readwrite");let c=l.objectStore(Zl),d;try{d=c.put({modelPath:this.modelPath,modelArtifactsInfo:a})}catch(m){return s(m)}let p;d.onsuccess=()=>{p=i.transaction(Oc,"readwrite");const m=p.objectStore(Oc);let y;try{y=m.put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:a})}catch(v){return s(v)}y.onsuccess=()=>r({modelArtifactsInfo:a}),y.onerror=v=>{c=l.objectStore(Zl);const b=c.delete(this.modelPath);b.onsuccess=()=>(i.close(),s(y.error)),b.onerror=w=>(i.close(),s(y.error))}},d.onerror=m=>(i.close(),s(d.error)),l.oncomplete=()=>{p==null?i.close():p.oncomplete=()=>i.close()}}},o.onerror=i=>s(o.error)})}}qc.URL_SCHEME="indexeddb://";const hR=n=>ye().getBool("IS_BROWSER")&&!Array.isArray(n)&&n.startsWith(qc.URL_SCHEME)?KU(n.slice(qc.URL_SCHEME.length)):null;pr.registerSaveRouter(hR);pr.registerLoadRouter(hR);function KU(n){return new qc(n)}function XU(n){return n.startsWith(qc.URL_SCHEME)?n.slice(qc.URL_SCHEME.length):n}class YU{constructor(){this.indexedDB=cR()}async listModels(){return new Promise((e,t)=>{const r=this.indexedDB.open(xC,yC);r.onupgradeneeded=()=>vC(r),r.onsuccess=()=>{const s=r.result,o=s.transaction(Zl,"readonly"),a=o.objectStore(Zl).getAll();a.onsuccess=()=>{const l={};for(const c of a.result)l[c.modelPath]=c.modelArtifactsInfo;e(l)},a.onerror=l=>(s.close(),t(a.error)),o.oncomplete=()=>s.close()},r.onerror=s=>t(r.error)})}async removeModel(e){return e=XU(e),new Promise((t,r)=>{const s=this.indexedDB.open(xC,yC);s.onupgradeneeded=()=>vC(s),s.onsuccess=()=>{const o=s.result,i=o.transaction(Zl,"readwrite"),a=i.objectStore(Zl),l=a.get(e);let c;l.onsuccess=()=>{if(l.result==null)return o.close(),r(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{const d=a.delete(e),p=()=>{c=o.transaction(Oc,"readwrite");const y=c.objectStore(Oc).delete(e);y.onsuccess=()=>t(l.result.modelArtifactsInfo),y.onerror=v=>r(l.error)};d.onsuccess=p,d.onerror=m=>(p(),o.close(),r(l.error))}},l.onerror=d=>(o.close(),r(l.error)),i.oncomplete=()=>{c==null?o.close():c.oncomplete=()=>o.close()}},s.onerror=o=>r(s.error)})}}const tl="/",qd="tensorflowjs_models",dR="info",QU="model_topology",JU="weight_specs",ZU="weight_data",eW="model_metadata";function fR(n){return{info:[qd,n,dR].join(tl),topology:[qd,n,QU].join(tl),weightSpecs:[qd,n,JU].join(tl),weightData:[qd,n,ZU].join(tl),modelMetadata:[qd,n,eW].join(tl)}}function pR(n){for(const e of Object.values(n))window.localStorage.removeItem(e)}function tW(n){const e=n.split(tl);if(e.length<3)throw new Error(`Invalid key format: ${n}`);return e.slice(1,e.length-1).join(tl)}function nW(n){return n.startsWith(Kc.URL_SCHEME)?n.slice(Kc.URL_SCHEME.length):n}class Kc{constructor(e){if(!ye().getBool("IS_BROWSER")||typeof window>"u"||typeof window.localStorage>"u")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,e==null||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=fR(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{const t=JSON.stringify(e.modelTopology),r=JSON.stringify(e.weightSpecs),s=ak(e),o=gu.join(e.weightData);try{this.LS.setItem(this.keys.info,JSON.stringify(s)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,r),this.LS.setItem(this.keys.weightData,PU(o));const i={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,signature:e.signature!=null?e.signature:void 0,userDefinedMetadata:e.userDefinedMetadata!=null?e.userDefinedMetadata:void 0,modelInitializer:e.modelInitializer!=null?e.modelInitializer:void 0,initializerSignature:e.initializerSignature!=null?e.initializerSignature:void 0,trainingConfig:e.trainingConfig!=null?e.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(i)),{modelArtifactsInfo:s}}catch{throw pR(this.keys),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${s.modelTopologyBytes}, weightSpecsBytes=${s.weightSpecsBytes}, weightDataBytes=${s.weightDataBytes}.`)}}}async load(){const e=JSON.parse(this.LS.getItem(this.keys.info));if(e==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(e.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");const t={},r=JSON.parse(this.LS.getItem(this.keys.topology));if(r==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);t.modelTopology=r;const s=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(s==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);t.weightSpecs=s;const o=this.LS.getItem(this.keys.modelMetadata);if(o!=null){const a=JSON.parse(o);t.format=a.format,t.generatedBy=a.generatedBy,t.convertedBy=a.convertedBy,a.signature!=null&&(t.signature=a.signature),a.userDefinedMetadata!=null&&(t.userDefinedMetadata=a.userDefinedMetadata),a.modelInitializer!=null&&(t.modelInitializer=a.modelInitializer),a.initializerSignature!=null&&(t.initializerSignature=a.initializerSignature),a.trainingConfig!=null&&(t.trainingConfig=a.trainingConfig)}const i=this.LS.getItem(this.keys.weightData);if(i==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=LU(i),t}}Kc.URL_SCHEME="localstorage://";const mR=n=>ye().getBool("IS_BROWSER")&&!Array.isArray(n)&&n.startsWith(Kc.URL_SCHEME)?rW(n.slice(Kc.URL_SCHEME.length)):null;pr.registerSaveRouter(mR);pr.registerLoadRouter(mR);function rW(n){return new Kc(n)}class sW{constructor(){U(ye().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),U(typeof window>"u"||typeof window.localStorage<"u",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){const e={},t=qd+tl,r=tl+dR;for(let s=0;s"scheme must not be undefined or null."),e.endsWith(MN)&&(e=e.slice(0,e.indexOf(MN))),U(e.length>0,()=>"scheme must not be an empty string.");const r=ra.getInstance();U(r.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),r.managers[e]=t}static getManager(e){const t=ra.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(ra.getInstance().managers)}}class oW{constructor(){this.messageName="setTimeoutCustom",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}setTimeoutCustom(e,t){if(typeof window>"u"||!ye().getBool("USE_SETTIMEOUTCUSTOM")){setTimeout(e,t);return}this.functionRefs.push(e),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},"*")},t),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener("message",r=>{if(r.source===window&&r.data.name===this.messageName){r.stopPropagation();const s=this.functionRefs[r.data.index];s(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}},!0))}isTypedArray(e){return KE(e)}}if(ye().get("IS_BROWSER")){ye().setPlatform("browser",new oW);try{ra.registerManager(Kc.URL_SCHEME,new sW)}catch{}try{ra.registerManager(qc.URL_SCHEME,new YU)}catch{}}const iW={importFetch:()=>require("node-fetch")};let Ib;class aW{constructor(){this.util=require("util"),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return ye().global.fetch!=null?ye().global.fetch(e,t):(Ib==null&&(Ib=iW.importFetch()),Ib(e,t))}now(){const e=process.hrtime();return e[0]*1e3+e[1]/1e6}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return e.length===0?"":new this.util.TextDecoder(t).decode(e)}isTypedArray(e){return this.util.types.isFloat32Array(e)||this.util.types.isInt32Array(e)||this.util.types.isUint8Array(e)||this.util.types.isUint8ClampedArray(e)}}ye().get("IS_NODE")&&!ye().get("IS_BROWSER")&&ye().setPlatform("node",new aW);function Nt(n,e="float32",t){return e=e||"float32",al(n),new Ar(n,e,t)}function lW(n,e){const t=K(n,"x","cast");if(!j4(e))throw new Error(`Failed to cast to unknown dtype ${e}`);if(e==="string"&&t.dtype!=="string"||e!=="string"&&t.dtype==="string")throw new Error("Only strings can be casted to strings");const r={x:t},s={dtype:e};return ae.runKernel(ug,r,s)}const Ge=he({cast_:lW});function uW(n){const t={x:K(n,"x","clone","string_or_numeric")};return ae.runKernel(Cg,t)}const Lc=he({clone_:uW});function cW(n,e=!1){console.log(n.toString(e))}sR();const hW={buffer:Nt,cast:Ge,clone:Lc,print:cW};CU(hW);function dW(n,e){let t=K(n,"a","add"),r=K(e,"b","add");[t,r]=Un(t,r);const s={a:t,b:r};return ae.runKernel(kf,s)}const Pe=he({add_:dW});function fW(n,e){let t=K(n,"a","floorDiv"),r=K(e,"b","floorDiv");[t,r]=Un(t,r);const s={a:t,b:r};return ae.runKernel(wg,s)}const gR=he({floorDiv_:fW});function pW(n,e){let t=K(n,"a","div"),r=K(e,"b","div");if([t,r]=Un(t,r),t.dtype==="int32"&&r.dtype==="int32")return gR(t,r);const s={a:t,b:r},o={};return ae.runKernel(pg,s,o)}const st=he({div_:pW});function mW(n,e){let t=K(n,"a","mul"),r=K(e,"b","mul");[t,r]=Un(t,r);const s={a:t,b:r};return ae.runKernel(Ag,s)}const ne=he({mul_:mW});function gW(n){const e=K(n,"x","abs");if(e.dtype==="complex64"){const t={x:e};return ae.runKernel($1,t)}else{const t={x:e};return ae.runKernel(v1,t)}}const os=he({abs_:gW});function xW(n){const t={x:K(n,"x","acos")};return ae.runKernel(ng,t)}const yW=he({acos_:xW});function vW(n){const t={x:K(n,"x","acosh")};return ae.runKernel(rg,t)}const wW=he({acosh_:vW});function bW(n,e=null,t=!1){const s={x:K(n,"x","all","bool")},o={axis:e,keepDims:t};return ae.runKernel(vS,s,o)}const xR=he({all_:bW});function CW(n,e=null,t=!1){const s={x:K(n,"x","any","bool")},o={axis:e,keepDims:t};return ae.runKernel(wS,s,o)}const wC=he({any_:CW});function SW(n,e=0){const r={x:K(n,"x","argMax")},s={axis:e};return ae.runKernel(w1,r,s)}const Pm=he({argMax_:SW});function kW(n,e=0){const r={x:K(n,"x","argMin")},s={axis:e};return ae.runKernel(b1,r,s)}const IW=he({argMin_:kW});function $W(n){const t={x:K(n,"x","asin")};return ae.runKernel(sg,t)}const NW=he({asin_:$W});function TW(n){const t={x:K(n,"x","asinh")};return ae.runKernel(og,t)}const EW=he({asinh_:TW});function RW(n){const t={x:K(n,"x","atan")};return ae.runKernel(ig,t)}const AW=he({atan_:RW});function _W(n,e){let t=K(n,"a","atan2"),r=K(e,"b","atan2");[t,r]=Un(t,r);const s={a:t,b:r};return ae.runKernel(lg,s)}const DW=he({atan2_:_W});function OW(n){const t={x:K(n,"x","atanh")};return ae.runKernel(ag,t)}const FW=he({atanh_:OW});function Zg(n,e,t,r,s="NHWC",o){const i=n[3],a=[...e,i],l=ul(s);return _r(n,a,t,o,r,null,null,l)}function Xo(n,e,t,r,s,o,i="channelsLast"){const[a,l]=Lm(e);let c;if(i==="channelsLast")c=[a,l,n[3],n[3]];else if(i==="channelsFirst")c=[a,l,n[1],n[1]];else throw new Error(`Unknown dataFormat ${i}`);return _r(n,c,t,r,s,o,!1,i)}function ll(n,e,t,r,s,o,i="NDHWC"){const[a,l,c]=bC(e);let d,p;if(i==="NDHWC")p="channelsLast",d=[a,l,c,n[4],n[4]];else if(i==="NCDHW")p="channelsFirst",d=[a,l,c,n[1],n[1]];else throw new Error(`Unknown dataFormat ${i}`);return xu(n,d,t,r,s,!1,p,o)}function _r(n,e,t,r,s,o,i=!1,a="channelsLast"){let[l,c,d,p]=[-1,-1,-1,-1];if(a==="channelsLast")[l,c,d,p]=n;else if(a==="channelsFirst")[l,p,c,d]=n;else throw new Error(`Unknown dataFormat ${a}`);const[m,y,,v]=e,[b,w]=Lm(t),[k,I]=Lm(r),N=tf(m,k),T=tf(y,I),{padInfo:A,outHeight:O,outWidth:P}=MW(s,c,d,b,w,N,T,o,a),B=i?v*p:v;let z;return a==="channelsFirst"?z=[l,B,O,P]:a==="channelsLast"&&(z=[l,O,P,B]),{batchSize:l,dataFormat:a,inHeight:c,inWidth:d,inChannels:p,outHeight:O,outWidth:P,outChannels:B,padInfo:A,strideHeight:b,strideWidth:w,filterHeight:m,filterWidth:y,effectiveFilterHeight:N,effectiveFilterWidth:T,dilationHeight:k,dilationWidth:I,inShape:n,outShape:z,filterShape:e}}function xu(n,e,t,r,s,o=!1,i="channelsLast",a){let[l,c,d,p,m]=[-1,-1,-1,-1,-1];if(i==="channelsLast")[l,c,d,p,m]=n;else if(i==="channelsFirst")[l,m,c,d,p]=n;else throw new Error(`Unknown dataFormat ${i}`);const[y,v,b,,w]=e,[k,I,N]=bC(t),[T,A,O]=bC(r),P=tf(y,T),B=tf(v,A),z=tf(b,O),{padInfo:L,outDepth:_,outHeight:H,outWidth:Y}=zW(s,c,d,p,k,I,N,P,B,z,a),re=o?w*m:w;let te;return i==="channelsFirst"?te=[l,re,_,H,Y]:i==="channelsLast"&&(te=[l,_,H,Y,re]),{batchSize:l,dataFormat:i,inDepth:c,inHeight:d,inWidth:p,inChannels:m,outDepth:_,outHeight:H,outWidth:Y,outChannels:re,padInfo:L,strideDepth:k,strideHeight:I,strideWidth:N,filterDepth:y,filterHeight:v,filterWidth:b,effectiveFilterDepth:P,effectiveFilterHeight:B,effectiveFilterWidth:z,dilationDepth:T,dilationHeight:A,dilationWidth:O,inShape:n,outShape:te,filterShape:e}}function PW(n,e,t,r,s){r==null&&(r=lk(n,e,t));const o=n[0],i=n[1],a=Mm((o-e+2*r)/t+1,s),l=Mm((i-e+2*r)/t+1,s);return[a,l]}function LW(n,e,t,r,s,o){s==null&&(s=lk(n,e[0],r[0]));const i=[0,0,0,t];for(let a=0;a<3;a++)n[a]+2*s>=e[a]&&(i[a]=Mm((n[a]-e[a]+2*s)/r[a]+1,o));return i}function lk(n,e,t,r=1){const s=tf(e,r);return Math.floor((n[0]*(t-1)-t+s)/2)}function Lm(n){return typeof n=="number"?[n,n,n]:n.length===2?[n[0],n[1],1]:n}function bC(n){return typeof n=="number"?[n,n,n]:n}function tf(n,e){return e<=1?n:n+(n-1)*(e-1)}function MW(n,e,t,r,s,o,i,a,l){let c,d,p;if(typeof n=="number"){c={top:n,bottom:n,left:n,right:n,type:n===0?"VALID":"NUMBER"};const y=PW([e,t],o,r,n,a);d=y[0],p=y[1]}else if(n==="same"){d=Math.ceil(e/r),p=Math.ceil(t/s);const m=Math.max(0,(d-1)*r+o-e),y=Math.max(0,(p-1)*s+i-t),v=Math.floor(m/2),b=m-v,w=Math.floor(y/2),k=y-w;c={top:v,bottom:b,left:w,right:k,type:"SAME"}}else if(n==="valid")c={top:0,bottom:0,left:0,right:0,type:"VALID"},d=Math.ceil((e-o+1)/r),p=Math.ceil((t-i+1)/s);else if(typeof n=="object"){const m=l==="channelsLast"?n[1][0]:n[2][0],y=l==="channelsLast"?n[1][1]:n[2][1],v=l==="channelsLast"?n[2][0]:n[3][0],b=l==="channelsLast"?n[2][1]:n[3][1];c={top:m,bottom:y,left:v,right:b,type:m===0&&y===0&&v===0&&b===0?"VALID":"EXPLICIT"},d=Mm((e-o+m+y)/r+1,a),p=Mm((t-i+v+b)/s+1,a)}else throw Error(`Unknown padding parameter: ${n}`);return{padInfo:c,outHeight:d,outWidth:p}}function zW(n,e,t,r,s,o,i,a,l,c,d){let p,m,y,v;if(n==="valid"&&(n=0),typeof n=="number"){p={top:n,bottom:n,left:n,right:n,front:n,back:n,type:n===0?"VALID":"NUMBER"};const w=LW([e,t,r,1],[a,l,c],1,[s,o,i],n,d);m=w[0],y=w[1],v=w[2]}else if(n==="same"){m=Math.ceil(e/s),y=Math.ceil(t/o),v=Math.ceil(r/i);const b=(m-1)*s+a-e,w=(y-1)*o+l-t,k=(v-1)*i+c-r,I=Math.floor(b/2),N=b-I,T=Math.floor(w/2),A=w-T,O=Math.floor(k/2),P=k-O;p={top:T,bottom:A,left:O,right:P,front:I,back:N,type:"SAME"}}else throw Error(`Unknown padding parameter: ${n}`);return{padInfo:p,outDepth:m,outHeight:y,outWidth:v}}function Mm(n,e){if(!e)return Math.trunc(n);switch(e){case"round":return Math.round(n);case"ceil":return Math.ceil(n);case"floor":return Math.floor(n);default:throw new Error(`Unknown roundingMode ${e}`)}}function Xc(n){const[e,t,r]=Lm(n);return e===1&&t===1&&r===1}function Hr(n,e){return Xc(n)||Xc(e)}function Yc(n){return Lm(n).every(e=>e>0)}function ul(n){if(n==="NHWC")return"channelsLast";if(n==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${n}`)}function Ts(n,e,t){if(t!=null){if(typeof e=="string")throw Error(`Error in ${n}: pad must be an integer when using dimRoundingMode ${t} but got pad ${e}.`);if(typeof e=="number")U(of(e),()=>`Error in ${n}: pad must be an integer when using dimRoundingMode ${t} but got pad ${e}.`);else if(typeof e=="object")e.forEach(r=>{r.forEach(s=>{U(of(s),()=>`Error in ${n}: pad must be an integer when using dimRoundingMode ${t} but got pad ${s}.`)})});else throw Error(`Error in ${n}: Unknown padding parameter: ${e}`)}}function BW(n,e){const r={x:K(n,"x","reshape","string_or_numeric")},s={shape:e};return ae.runKernel(iv,r,s)}const ce=he({reshape_:BW});function UW(n,e,t,r,s){const o=K(n,"x","avgPool","float32"),i=1;U(Hr(t,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${t} and dilations '${i}'`);let a=o,l=!1;o.rank===3&&(l=!0,a=ce(o,[1,o.shape[0],o.shape[1],o.shape[2]])),U(a.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${a.rank}.`),Ts("avgPool",r,s);const c={x:a},d={filterSize:e,strides:t,pad:r,dimRoundingMode:s};let p=ae.runKernel(C1,c,d);return p=Ge(p,o.dtype),l?ce(p,[p.shape[1],p.shape[2],p.shape[3]]):p}const uk=he({avgPool_:UW});function WW(n,e,t,r,s,o="NDHWC"){const i=K(n,"x","avgPool3d","float32");let a=i,l=!1;i.rank===4&&(l=!0,a=ce(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),U(a.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${a.rank}.`),U(o==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${o}`),U(typeof t=="number"&&t>0||Array.isArray(t)&&t[0]>0&&t[1]>0&&t[2]>0,()=>`Error in avgPool3d: Stride must be > 0, but got '${t}'`),Ts("avgPool3d",r,s);const c={x:a},d={filterSize:e,strides:t,pad:r,dimRoundingMode:s,dataFormat:o};let p=ae.runKernel(S1,c,d);return p=Ge(p,a.dtype),l?ce(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}const VW=he({avgPool3d_:WW});function GW(n,e=0){U(n.length>=1,()=>"Pass at least one tensor to concat");const t=lR(n,"tensors","concat","string_or_numeric");if(t[0].dtype==="complex64"&&t.forEach(o=>{if(o.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor + with dtype ${o.dtype}. `)}),t.length===1)return Lc(t[0]);const r=t,s={axis:e};return ae.runKernel(N1,r,s)}const Is=he({concat_:GW});function jW(n,e,t=!1,r=!1){let s=K(n,"a","matMul"),o=K(e,"b","matMul");[s,o]=Un(s,o);const i={a:s,b:o},a={transposeA:t,transposeB:r};return ae.runKernel(k1,i,a)}const qt=he({matMul_:jW});function HW(n){const t={x:K(n,"x","sigmoid","float32")};return ae.runKernel(Wg,t)}const If=he({sigmoid_:HW});function qW(n,e,t){const r=K(n,"x","slice","string_or_numeric");if(r.rank===0)throw new Error("Slicing scalar is not possible");const s={x:r},o={begin:e,size:t};return ae.runKernel(hv,s,o)}const mn=he({slice_:qW});function KW(n){const t={x:K(n,"x","tanh","float32")};return ae.runKernel(Kg,t)}const wv=he({tanh_:KW});function XW(n,e,t){const r=K(n,"x","batchToSpaceND"),s=e.reduce((a,l)=>a*l);U(r.rank>=1+e.length,()=>`input rank is ${r.rank} but should be > than blockShape.length ${e.length}`),U(t.length===e.length,()=>`crops.length is ${t.length} but should be equal to blockShape.length ${e.length}`),U(r.shape[0]%s===0,()=>`input tensor batch is ${r.shape[0]} but is not divisible by the product of the elements of blockShape ${e.join(" * ")} === ${s}`);const o={x:r},i={blockShape:e,crops:t};return ae.runKernel(I1,o,i)}const ck=he({batchToSpaceND_:XW});function YW(n){let e;return n.rank===0||n.rank===1?e=ce(n,[1,1,1,n.size]):n.rank===2?e=ce(n,[1,1,n.shape[0],n.shape[1]]):n.rank===3?e=ce(n,[1,n.shape[0],n.shape[1],n.shape[2]]):e=n,e}function QW(n,e,t,r,s,o){o==null&&(o=.001);const i=K(n,"x","batchNorm"),a=K(e,"mean","batchNorm"),l=K(t,"variance","batchNorm");let c;s!=null&&(c=K(s,"scale","batchNorm"));let d;r!=null&&(d=K(r,"offset","batchNorm")),U(a.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),U(d==null||a.rank===d.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),U(c==null||a.rank===c.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");const m={x:YW(i),scale:c,offset:d,mean:a,variance:l},y={varianceEpsilon:o},v=ae.runKernel(P1,m,y);return ce(v,i.shape)}const bv=he({batchNorm_:QW});function JW(n,e,t,r,s,o){const i=K(n,"x","batchNorm"),a=K(e,"mean","batchNorm"),l=K(t,"variance","batchNorm");let c;s!=null&&(c=K(s,"scale","batchNorm"));let d;return r!=null&&(d=K(r,"offset","batchNorm")),U(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),U(a.rank===2||a.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${a.rank}.`),U(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`),c!=null&&U(c.rank===2||c.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${c.rank}.`),d!=null&&U(d.rank===2||d.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${d.rank}.`),bv(i,a,l,d,c,o)}const ZW=he({batchNorm2d_:JW});function eV(n,e,t,r,s,o){const i=K(n,"x","batchNorm"),a=K(e,"mean","batchNorm"),l=K(t,"variance","batchNorm");let c;s!=null&&(c=K(s,"scale","batchNorm"));let d;return r!=null&&(d=K(r,"offset","batchNorm")),U(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),U(a.rank===3||a.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${a.rank}.`),U(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`),c!=null&&U(c.rank===3||c.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${c.rank}.`),d!=null&&U(d.rank===3||d.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${d.rank}.`),bv(i,a,l,d,c,o)}const tV=he({batchNorm3d_:eV});function nV(n,e,t,r,s,o){const i=K(n,"x","batchNorm"),a=K(e,"mean","batchNorm"),l=K(t,"variance","batchNorm");let c;s!=null&&(c=K(s,"scale","batchNorm"));let d;return r!=null&&(d=K(r,"offset","batchNorm")),U(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),U(a.rank===4||a.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${a.rank}.`),U(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`),c!=null&&U(c.rank===4||c.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${c.rank}.`),d!=null&&U(d.rank===4||d.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${d.rank}.`),bv(i,a,l,d,c,o)}const rV=he({batchNorm4d_:nV});function sV(n,e,t){const r=K(n,"x","bincount"),s=K(e,"weights","bincount");U(r.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${r.dtype}`),U(t>=0,()=>`size must be non-negative, but got ${t}.`),U(s.size===r.size||s.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${r.shape}, weights shape: ${s.shape}.`);const o={x:r,weights:s},i={size:t};return ae.runKernel(SS,o,i)}const oV=he({bincount_:sV});function iV(n,e){let t=K(n,"broadcastTo","x");const r=t.shape;if(al(e),e.lengtht.rank){const c=t.shape.slice();for(;c.length=0;c--)if(s[c]===e[c])o[c]=1;else if(t.shape[c]!==1)throw new Error(`broadcastTo(): [${r}] cannot be broadcast to [${e}].`);if(o.map((c,d)=>c>1?d:-1).filter(c=>c>=0).length===0)return Lc(t);const a={x:t},l={reps:o};return ae.runKernel(Xg,a,l)}const Nm=he({broadcastTo_:iV});function aV(n){const t={x:K(n,"x","ceil","float32")};return ae.runKernel(cg,t)}const lV=he({ceil_:aV});function Cv(n,e,t){al(n),t=t||Cf(e);const r={shape:n,value:e,dtype:t};return ae.runKernel(MS,{},r)}function uV(n,e,t){const r=K(n,"x","clipByValue");if(U(e<=t,()=>`Error in clip: min (${e}) must be less than or equal to max (${t}).`),e===t)return Cv(r.shape,e,r.dtype);const s={x:r},o={clipValueMin:e,clipValueMax:t};return ae.runKernel(hg,s,o)}const wo=he({clipByValue_:uV});function cV(n){return Is(n,0)}const hV=he({concat1d_:cV});function dV(n,e){return Is(n,e)}const fV=he({concat2d_:dV});function pV(n,e){return Is(n,e)}const mV=he({concat3d_:pV});function gV(n,e){return Is(n,e)}const xV=he({concat4d_:gV});function yV(n,e,t,r,s="NHWC",o=[1,1],i){const a=K(n,"x","conv2d","float32"),l=K(e,"filter","conv2d","float32");let c=a,d=!1;a.rank===3&&(d=!0,c=ce(a,[1,a.shape[0],a.shape[1],a.shape[2]])),U(c.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${c.rank}.`),U(l.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`),Ts("conv2d",r,i);const p=s==="NHWC"?c.shape[3]:c.shape[1];U(p===l.shape[2],()=>`Error in conv2d: depth of input (${p}) must match input depth for filter ${l.shape[2]}.`),U(Hr(t,o),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${t} and dilations '${o}'`),U(Yc(o),()=>"Error in conv2D: Dilated rates should be larger than 0."),U(Yc(t),()=>"Error in conv2D: Strides should be larger than 0.");const m={x:c,filter:l},y={strides:t,pad:r,dataFormat:s,dilations:o,dimRoundingMode:i},v=ae.runKernel(T1,m,y);return d?ce(v,[v.shape[1],v.shape[2],v.shape[3]]):v}const Qc=he({conv2d_:yV});function vV(n,e,t,r,s="NWC",o=1,i){const a=K(n,"x","conv1d"),l=K(e,"filter","conv1d");let c=a,d=!1;a.rank===2&&(d=!0,c=ce(a,[1,a.shape[0],a.shape[1]])),U(c.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${c.rank}.`),U(l.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`),Ts("conv1d",r,i),U(c.shape[2]===l.shape[1],()=>`Error in conv1d: depth of input (${c.shape[2]}) must match input depth for filter ${l.shape[1]}.`),U(Hr(t,o),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${t} and dilation '${o}'`),U(Yc(o),()=>"Error in conv1D: Dilated rates should be larger than 0."),U(Yc(t),()=>"Error in conv1D: Stride should be larger than 0."),U(s==="NWC",()=>`Error in conv1d: got dataFormat of ${s} but only NWC is currently supported.`);const p=ce(l,[1,l.shape[0],l.shape[1],l.shape[2]]),m=ce(c,[c.shape[0],1,c.shape[1],c.shape[2]]),w=Qc(m,p,[1,t],r,"NHWC",[1,o],i);return d?ce(w,[w.shape[2],w.shape[3]]):ce(w,[w.shape[0],w.shape[2],w.shape[3]])}const yR=he({conv1d_:vV});function wV(n,e,t,r,s,o="NHWC",i){U(n.length===e.rank,()=>`Length of inShape (${n.length}) and rank of dy (${e.rank}) must match`);let a=n,l=e,c=!1;e.rank===3&&(c=!0,l=ce(e,[1,e.shape[0],e.shape[1],e.shape[2]]),a=[1,n[0],n[1],n[2]]),U(a.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${a.length}.`),U(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),U(t.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${t.rank}`);const d=o==="NHWC"?a[3]:a[1],p=o==="NHWC"?l.shape[3]:l.shape[1];U(d===t.shape[2],()=>`Error in conv2dDerInput: depth of input (${d}) must match input depth for filter ${t.shape[2]}.`),U(p===t.shape[3],()=>`Error in conv2dDerInput: depth of output (${p}) must match output depth for filter ${t.shape[3]}.`),Ts("conv2dDerInput",s,i);const m={dy:l,filter:t},y={strides:r,pad:s,dataFormat:o,dimRoundingMode:i,inputShape:a},v=ae.runKernel(E1,m,y);return c?ce(v,[v.shape[1],v.shape[2],v.shape[3]]):v}const hk=he({conv2DBackpropInput_:wV});function bV(n,e,t,r,s,o){const i=K(n,"x","conv2dTranspose"),a=K(e,"filter","conv2dTranspose");return hk(t,i,a,r,s,"NHWC",o)}const vR=he({conv2dTranspose_:bV});function CV(n,e,t,r,s="NDHWC",o=[1,1,1]){const i=K(n,"x","conv3d"),a=K(e,"filter","conv3d");let l=i,c=!1;i.rank===4&&(c=!0,l=ce(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),U(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),U(a.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${a.rank}.`),U(l.shape[4]===a.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${a.shape[3]}.`),U(Hr(t,o),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${t} and dilations '${o}'`),U(s==="NDHWC",()=>`Error in conv3d: got dataFormat of ${s} but only NDHWC is currently supported.`),U(Yc(o),()=>"Error in conv3D: Dilated rates should be larger than 0."),U(Yc(t),()=>"Error in conv3D: Strides should be larger than 0.");const d={x:l,filter:a},p={strides:t,pad:r,dataFormat:s,dilations:o},m=ae.runKernel(R1,d,p);return c?ce(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}const SV=he({conv3d_:CV});function kV(n,e,t,r,s){U(n.length===e.rank,()=>`Length of inShape (${n.length}) and rank of dy (${e.rank}) must match`);let o=n,i=e,a=!1;e.rank===4&&(a=!0,i=ce(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]),o=[1,n[0],n[1],n[2],n[3]]);const l=o[4],c=i.shape[4];U(o.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${o.length}.`),U(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),U(t.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${t.rank}`),U(l===t.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${t.shape[3]}.`),U(c===t.shape[4],()=>`Error in conv3dDerInput: depth of output (${c}) must match output depth for filter ${t.shape[4]}.`);const d={dy:i,filter:t},p={pad:s,strides:r,inputShape:o},m=ae.runKernel(TS,d,p);return a?ce(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}const wR=he({conv3DBackpropInput_:kV});function IV(n,e,t,r,s){const o=K(n,"x","conv3dTranspose"),i=K(e,"filter","conv3dTranspose");return wR(t,o,i,r,s)}const $V=he({conv3dTranspose_:IV});function NV(n){const t={x:K(n,"x","cos","float32")};return ae.runKernel(dg,t)}const dk=he({cos_:NV});function TV(n){const t={x:K(n,"x","cosh","float32")};return ae.runKernel(fg,t)}const bR=he({cosh_:TV});function EV(n,e=0,t=!1,r=!1){const o={x:K(n,"x","cumprod")},i={axis:e,exclusive:t,reverse:r};return ae.runKernel(ES,o,i)}const CC=he({cumprod_:EV});function RV(n,e=0,t=!1,r=!1){const o={x:K(n,"x","cumsum")},i={axis:e,exclusive:t,reverse:r};return ae.runKernel(A1,o,i)}const CR=he({cumsum_:RV});function AV(n,e,t,r=!1){const s=K(n,"x","denseBincount"),o=K(e,"weights","denseBincount");U(s.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${s.dtype}`),U(s.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${s.rank}.`),U(t>=0,()=>`size must be non-negative, but got ${t}.`),U(o.size===s.size||o.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${s.shape}, weights shape: ${o.shape}.`);const i={x:s,weights:o},a={size:t,binaryOutput:r};return ae.runKernel(AS,i,a)}const zN=he({denseBincount_:AV});function _V(n,e,t="NHWC"){const r=K(n,"x","depthToSpace","float32"),s=t==="NHWC"?r.shape[1]:r.shape[2],o=t==="NHWC"?r.shape[2]:r.shape[3],i=t==="NHWC"?r.shape[3]:r.shape[1];U(e>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${e}`),U(s*e>=0,()=>`Negative dimension size caused by overflow when multiplying + ${s} and ${e} for depthToSpace with input shape + ${r.shape}`),U(o*e>=0,()=>`Negative dimension size caused by overflow when multiplying + ${o} and ${e} for depthToSpace with input shape + ${r.shape}`),U(i%(e*e)===0,()=>`Dimension size must be evenly divisible by ${e*e} but is ${i} for depthToSpace with input shape ${r.shape}`);const a={x:r},l={blockSize:e,dataFormat:t};return ae.runKernel(_S,a,l)}const DV=he({depthToSpace_:_V});function OV(n,e,t,r,s="NHWC",o=[1,1],i){const a=K(n,"x","depthwiseConv2d","float32"),l=K(e,"filter","depthwiseConv2d","float32");let c=a,d=!1;a.rank===3&&(d=!0,c=ce(a,[1,a.shape[0],a.shape[1],a.shape[2]])),U(c.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${c.rank}.`),U(l.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`);const p=s==="NHWC"?c.shape[3]:c.shape[1];U(p===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${p}) must match the inChannels dimension in filter ${l.shape[2]}.`),Ts("depthwiseConv2d",r,i);const m={x:c,filter:l},y={strides:t,pad:r,dataFormat:s,dilations:o,dimRoundingMode:i},v=ae.runKernel(_1,m,y);return d?ce(v,[v.shape[1],v.shape[2],v.shape[3]]):v}const fk=he({depthwiseConv2d_:OV});function FV(n,e,t,r,s=[1,1],o="NHWC"){const i=K(n,"x","dilation2d"),a=K(e,"filter","dilation2d");U(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),U(a.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${a.rank}.`),U(o==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${o}`);let l=i,c=!1;i.rank===3&&(l=ce(i,[1,i.shape[0],i.shape[1],i.shape[2]]),c=!0),U(l.shape[3]===a.shape[2],()=>`Error in dilation2d: input and filter must have the same depth: ${l.shape[3]} vs ${a.shape[2]}`);const d={x:l,filter:a},p={strides:t,pad:r,dilations:s},m=ae.runKernel(D1,d,p);return c?ce(m,[m.shape[1],m.shape[2],m.shape[3]]):m}const PV=he({dilation2d_:FV});function uf(n,e){const t=n.length,r=[];for(let s=0;s1&&i===1&&r.unshift(o)}return r}function ar(n,e){const t=[];for(let r=0;r1)&&t.unshift(o)}return t}function gt(n,e){const t=Math.max(n.length,e.length),r=new Array(t);for(let s=0;s`Error in dot: inputs must all be rank 1 or 2, but got ranks ${t.rank} and ${r.rank}.`);const s=t.rank===1?t.size:t.shape[1],o=r.rank===1?r.size:r.shape[0];if(U(s===o,()=>`Error in dot: inner dimensions of inputs must match, but got ${s} and ${o}.`),t.rank===1&&r.rank===1){const i=ce(t,[1,-1]),a=ce(r,[-1,1]),l=qt(i,a);return ce(l,[])}else if(t.rank===1&&r.rank===2){const i=ce(t,[1,-1]),a=ce(r,[r.shape[0],r.shape[1]]),l=qt(i,a);return ce(l,[l.size])}else if(t.rank===2&&r.rank===1){const i=ce(r,[-1,1]),a=qt(t,i);return ce(a,[a.size])}else{const i=ce(r,[r.shape[0],r.shape[1]]);return qt(t,i)}}const VV=he({dot_:WV});function GV(n,...e){const t=e.map((s,o)=>K(s,`tensors${o}`,"einsum")),r={equation:n};return ae.runKernel(FS,t,r)}const mm=he({einsum_:GV});function jV(n){const t={x:K(n,"x","elu","float32")};return ae.runKernel(mg,t)}const Sv=he({elu_:jV});function HV(n){let e=K(n,"x","erf");U(e.dtype==="int32"||e.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),e.dtype==="int32"&&(e=Ge(e,"float32"));const t={x:e};return ae.runKernel(gg,t)}const SR=he({erf_:HV});function pk(n,e){for(let t=0;tn[o]);return[t,s]}function Yn(n,e){const t=e.map(r=>1);return kR(n,t,e)}function Dr(n,e,t){U(pk(e,t),()=>`${n} supports only inner-most axes for now. Got axes ${e} and rank-${t} input.`)}function En(n,e){if(pk(n,e))return null;const t=[];for(let r=0;rt.push(r)),t}function yu(n){return n.map((e,t)=>[t,e]).sort((e,t)=>e[1]-t[1]).map(e=>e[0])}function Wn(n,e){const t=[];for(let r=e-n;r"Axis must be <= rank of the tensor");const r={input:t},s={dim:e};return ae.runKernel(F1,r,s)}const Ss=he({expandDims_:rG});function sG(n){const t={x:K(n,"x","expm1")};return ae.runKernel(yg,t)}const oG=he({expm1_:sG});function iG(n,e){const t=K(n,"x","tile","string_or_numeric");U(t.rank===e.length,()=>`Error in transpose: rank of input ${t.rank} must match length of reps ${e}.`);const r={x:t},s={reps:e};return ae.runKernel(Xg,r,s)}const bi=he({tile_:iG});function aG(n,e,t,r="float32"){e==null&&(e=n);const s=Nt([n,e],r),o=n<=e?n:e;for(let a=0;a`Error in localResponseNormalization: x must be rank 3 or 4 but got + rank ${o.rank}.`),U(of(e),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${e}.`);let i=o,a=!1;o.rank===3&&(a=!0,i=ce(o,[1,o.shape[0],o.shape[1],o.shape[2]]));const l={x:i},c={depthRadius:e,bias:t,alpha:r,beta:s},d=ae.runKernel(j1,l,c);return a?ce(d,[d.shape[1],d.shape[2],d.shape[3]]):d}const SG=he({localResponseNormalization_:CG});function kG(n){const t={x:K(n,"x","log","float32")};return ae.runKernel($g,t)}const ya=he({log_:kG});function IG(n){const t={x:K(n,"x","log1p")};return ae.runKernel(Ng,t)}const NR=he({log1p_:IG});function $G(n,e){U(oC(n),()=>"The f passed in variableGrads(f) must be a function"),U(e==null||Array.isArray(e)&&e.every(c=>c instanceof By),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");const t=e!=null;if(!t){e=[];for(const c in ae.registeredVariables)e.push(ae.registeredVariables[c])}const r=t?e.filter(c=>!c.trainable):null,s=e.length;e=e.filter(c=>c.trainable),U(e.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${s} variables is trainable.`);const o=!0,{value:i,grads:a}=ae.gradients(n,e,null,o);U(a.some(c=>c!=null),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),U(i.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`);const l={};return e.forEach((c,d)=>{a[d]!=null&&(l[c.name]=a[d])}),r?.forEach(c=>l[c.name]=null),{value:i,grads:l}}function cf(n){return ae.customGrad(n)}function NG(n){const t={x:K(n,"x","neg")};return ae.runKernel(J1,t)}const zn=he({neg_:NG});function TG(n){const t={x:K(n,"x","softplus")};return ae.runKernel(Vg,t)}const ex=he({softplus_:TG});function EG(n){const e=K(n,"x","logSigmoid");return cf(r=>({value:zn(ex(zn(r))),gradFunc:i=>ne(i,If(zn(r)))}))(e)}const RG=he({logSigmoid_:EG});function AG(n,e){let t=K(n,"a","sub"),r=K(e,"b","sub");[t,r]=Un(t,r);const s={a:t,b:r};return ae.runKernel(Hg,s)}const ut=he({sub_:AG});function _G(n,e=-1){const t=K(n,"logits","logSoftmax");if(e===-1&&(e=t.rank-1),e!==t.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${t.rank} and axis was ${e}`);return cf((s,o)=>{const a=Si(s,e,!0),l=ut(s,a),c=ut(Ge(l,"float32"),ya(rt(xa(l),e,!0)));return o([c]),{value:c,gradFunc:(p,m)=>{const[y]=m,v=!0,b=xa(y);return ut(p,ne(rt(p,e,v),b))}}})(t)}const TR=he({logSoftmax_:_G});function DG(n,e=null,t=!1){const r=K(n,"x","logSumExp"),s=Tt(e,r.shape),o=Si(r,s,!0),i=ut(r,o),a=xa(i),l=rt(a,s),c=ya(l),d=Pe(ce(o,c.shape),c);if(t){const p=Yn(d.shape,s);return ce(d,p)}return d}const ER=he({logSumExp_:DG});function OG(n,e){const t=K(n,"a","logicalAnd","bool"),r=K(e,"b","logicalAnd","bool");gt(t.shape,r.shape);const s={a:t,b:r};return ae.runKernel(W1,s)}const rl=he({logicalAnd_:OG});function FG(n){const t={x:K(n,"x","logicalNot","bool")};return ae.runKernel(V1,t)}const yk=he({logicalNot_:FG});function PG(n,e){const t=K(n,"a","logicalOr","bool"),r=K(e,"b","logicalOr","bool");gt(t.shape,r.shape);const s={a:t,b:r};return ae.runKernel(G1,s)}const RR=he({logicalOr_:PG});function LG(n,e){const t=K(n,"a","logicalXor","bool"),r=K(e,"b","logicalXor","bool");return gt(t.shape,r.shape),rl(RR(n,e),yk(rl(n,e)))}const MG=he({logicalXor_:LG});function zG(n,e,t,r,s){const o=K(n,"x","maxPool"),i=1;let a=o,l=!1;o.rank===3&&(l=!0,a=ce(o,[1,o.shape[0],o.shape[1],o.shape[2]])),U(a.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.rank}.`),U(Hr(t,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${t} and dilations '${i}'`),Ts("maxPool",r,s);const c={x:a},d={filterSize:e,strides:t,pad:r,dimRoundingMode:s},p=ae.runKernel(q1,c,d);return l?ce(p,[p.shape[1],p.shape[2],p.shape[3]]):p}const vk=he({maxPool_:zG});function BG(n,e=[1,1,1],t,r,s,o="NDHWC"){const i=K(n,"x","maxPool3d");let a=i,l=!1;i.rank===4&&(l=!0,a=ce(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),U(a.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${a.rank}.`),U(o==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${o}`),Ts("maxPool3d",r,s);const c={x:a},d={filterSize:e,strides:t,pad:r,dimRoundingMode:s,dataFormat:o},p=ae.runKernel(K1,c,d);return l?ce(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}const UG=he({maxPool3d_:BG});function WG(n,e){let t=K(n,"a","maximum"),r=K(e,"b","maximum");[t,r]=Un(t,r),t.dtype==="bool"&&(t=Ge(t,"int32"),r=Ge(r,"int32")),gt(t.shape,r.shape);const s={a:t,b:r};return ae.runKernel(Tg,s)}const vu=he({maximum_:WG});function VG(n,e=null,t=!1){const s={x:K(n,"x","mean")},o={axis:e,keepDims:t};return ae.runKernel(X1,s,o)}const Xn=he({mean_:VG});function gr(n,e="float32"){if(al(n),e==="complex64"){const r=gr(n,"float32"),s=gr(n,"float32");return Hc(r,s)}const t=Gr(Se(n),e);return ae.makeTensor(t,n,e)}function wu(n,e="float32"){if(al(n),e==="complex64"){const r=wu(n,"float32"),s=gr(n,"float32");return Hc(r,s)}const t=mS(Se(n),e);return ae.makeTensor(t,n,e)}function GG(n,e){let t=K(n,"a","minimum"),r=K(e,"b","minimum");[t,r]=Un(t,r),t.dtype==="bool"&&(t=Ge(t,"int32"),r=Ge(r,"int32")),gt(t.shape,r.shape);const s={a:t,b:r};return ae.runKernel(Eg,s)}const zm=he({minimum_:GG});function jG(n,e,t){U(t==="reflect"||t==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${t}.`);const r=K(n,"x","mirrorPad");if(r.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");U(e.length===r.rank,()=>`Padding doesn't match input. Must be ${r.rank}. Got ${e.length}.`);const s=t==="reflect"?1:0;for(let a=0;a"Invalid number of paddings. Must be length of 2 each."),U(e[a][0]>=0&&e[a][0]<=r.shape[a]-s&&e[a][1]>=0&&e[a][1]<=r.shape[a]-s,()=>`Padding in dimension ${a} cannot be greater than or equal to ${r.shape[a]-s} or less than 0 for input of shape ${r.shape}`);const o={paddings:e,mode:t},i={x:r};return ae.runKernel(Q1,i,o)}const HG=he({mirrorPad_:jG});function qG(n,e){let t=K(n,"a","mod"),r=K(e,"b","mod");[t,r]=Un(t,r);const s={a:t,b:r};return ae.runKernel(Rg,s)}const KG=he({mod_:qG});function XG(n,e=null,t=!1){n=K(n,"x","moments");const r=Tt(e,n.shape),s=Xn(n,r,t);let o=s.shape;t||(o=Yn(s.shape,r));const i=bn(ut(Ge(n,"float32"),ce(s,o))),a=Xn(i,r,t);return{mean:s,variance:a}}const wk=he({moments_:XG});function YG(n,e){let t=K(n,"a","notEqual","string_or_numeric"),r=K(e,"b","notEqual","string_or_numeric");[t,r]=Un(t,r),gt(t.shape,r.shape);const s={a:t,b:r};return ae.runKernel(Z1,s)}const Gy=he({notEqual_:YG});function QG(n,e,t=1,r=0,s="int32"){if(e<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${e}`);const i={indices:K(n,"indices","oneHot","int32")},a={dtype:s,depth:e,onValue:t,offValue:r};return ae.runKernel(tv,i,a)}const AR=he({oneHot_:QG});function JG(n){const t={x:K(n,"x","onesLike")};return ae.runKernel(ev,t)}const Ko=he({onesLike_:JG});function ZG(n,e,t=0){const r=K(n,"x","pad");if(r.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");const s={paddings:e,constantValue:t},o={x:r};return ae.runKernel(rv,o,s)}const bk=he({pad_:ZG});function ej(n,e,t){const r=K(n,"x","spaceToBatchND");U(r.rank>=1+e.length,()=>`input rank ${r.rank} should be > than [blockShape] ${e.length}`),U(t.length===e.length,()=>`paddings.shape[0] ${t.length} must be equal to [blockShape] ${e.length}`),U(r.shape.reduce((i,a,l)=>l>0&&l<=e.length?i&&(a+t[l-1][0]+t[l-1][1])%e[l-1]===0:i,!0),()=>`input spatial dimensions ${r.shape.slice(1)} with paddings ${t.toString()} must be divisible by blockShapes ${e.toString()}`);const s={x:r},o={blockShape:e,paddings:t};return ae.runKernel(fv,s,o)}const Ck=he({spaceToBatchND_:ej});function tj(n,e,t,r,s,o,i){s==null&&(s=[1,1]),o==null&&(o=1),r===0&&(r="valid");const a=K(n,"x","maxPool");let l=a,c=!1;a.rank===3&&(c=!0,l=ce(a,[1,a.shape[0],a.shape[1],a.shape[2]])),U(Hr(o,s),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${o} and dilations '${s}'`);const d=Xo(l.shape,e,o,s,r),p=[d.dilationHeight,d.dilationWidth];let m;r==="same"?m=rj([d.filterHeight,d.filterWidth],p):m=[[0,0],[0,0]];const y=p[0]===1&&p[1]===1,[v,b]=nj([d.inHeight,d.inWidth],p,m),w=y?r:"valid",k=y?l:Ck(l,p,v),N=(t==="avg"?()=>uk(k,e,o,w,i):()=>vk(k,e,o,w,i))(),T=y?N:ck(N,p,b);return c?ce(T,[T.shape[1],T.shape[2],T.shape[3]]):T}function nj(n,e,t){const r=t.map(d=>d[0]),s=t.map(d=>d[1]),o=n.concat(r,s),i=e.map((d,p)=>(d-o[p]%d)%d),a=s.map((d,p)=>d+i[p]),l=e.map((d,p)=>[r[p],a[p]]),c=e.map((d,p)=>[0,i[p]]);return[l,c]}function rj(n,e){const r=n.map((i,a)=>i+(i-1)*(e[a]-1)).map(i=>i-1),s=r.map(i=>Math.floor(i/2)),o=r.map((i,a)=>i-s[a]);return r.map((i,a)=>[s[a],o[a]])}const sj=he({pool_:tj});function oj(n,e){const t=K(n,"x","prelu"),r=K(e,"alpha","prelu"),s={x:t,alpha:r};return ae.runKernel(sv,s)}const Sk=he({prelu_:oj});function ij(n,e=null,t=!1){let r=K(n,"x","prod");r.dtype==="bool"&&(r=Ge(r,"int32"));const s={x:r},o={axis:e,keepDims:t};return ae.runKernel(ov,s,o)}const aj=he({prod_:ij});var wy={exports:{}},lj=wy.exports,BN;function uj(){return BN||(BN=1,(function(n){(function(e,t,r){function s(l){var c=this,d=a();c.next=function(){var p=2091639*c.s0+c.c*23283064365386963e-26;return c.s0=c.s1,c.s1=c.s2,c.s2=p-(c.c=p|0)},c.c=1,c.s0=d(" "),c.s1=d(" "),c.s2=d(" "),c.s0-=d(l),c.s0<0&&(c.s0+=1),c.s1-=d(l),c.s1<0&&(c.s1+=1),c.s2-=d(l),c.s2<0&&(c.s2+=1),d=null}function o(l,c){return c.c=l.c,c.s0=l.s0,c.s1=l.s1,c.s2=l.s2,c}function i(l,c){var d=new s(l),p=c&&c.state,m=d.next;return m.int32=function(){return d.next()*4294967296|0},m.double=function(){return m()+(m()*2097152|0)*11102230246251565e-32},m.quick=m,p&&(typeof p=="object"&&o(p,d),m.state=function(){return o(d,{})}),m}function a(){var l=4022871197,c=function(d){d=String(d);for(var p=0;p>>0,m-=l,m*=l,l=m>>>0,m-=l,l+=m*4294967296}return(l>>>0)*23283064365386963e-26};return c}t&&t.exports?t.exports=i:this.alea=i})(lj,n)})(wy)),wy.exports}var by={exports:{}},cj=by.exports,UN;function hj(){return UN||(UN=1,(function(n){(function(e,t,r){function s(a){var l=this,c="";l.x=0,l.y=0,l.z=0,l.w=0,l.next=function(){var p=l.x^l.x<<11;return l.x=l.y,l.y=l.z,l.z=l.w,l.w^=l.w>>>19^p^p>>>8},a===(a|0)?l.x=a:c+=a;for(var d=0;d>>0)/4294967296};return p.double=function(){do var m=c.next()>>>11,y=(c.next()>>>0)/4294967296,v=(m+y)/(1<<21);while(v===0);return v},p.int32=c.next,p.quick=p,d&&(typeof d=="object"&&o(d,c),p.state=function(){return o(c,{})}),p}t&&t.exports?t.exports=i:this.xor128=i})(cj,n)})(by)),by.exports}var Cy={exports:{}},dj=Cy.exports,WN;function fj(){return WN||(WN=1,(function(n){(function(e,t,r){function s(a){var l=this,c="";l.next=function(){var p=l.x^l.x>>>2;return l.x=l.y,l.y=l.z,l.z=l.w,l.w=l.v,(l.d=l.d+362437|0)+(l.v=l.v^l.v<<4^(p^p<<1))|0},l.x=0,l.y=0,l.z=0,l.w=0,l.v=0,a===(a|0)?l.x=a:c+=a;for(var d=0;d>>4),l.next()}function o(a,l){return l.x=a.x,l.y=a.y,l.z=a.z,l.w=a.w,l.v=a.v,l.d=a.d,l}function i(a,l){var c=new s(a),d=l&&l.state,p=function(){return(c.next()>>>0)/4294967296};return p.double=function(){do var m=c.next()>>>11,y=(c.next()>>>0)/4294967296,v=(m+y)/(1<<21);while(v===0);return v},p.int32=c.next,p.quick=p,d&&(typeof d=="object"&&o(d,c),p.state=function(){return o(c,{})}),p}t&&t.exports?t.exports=i:this.xorwow=i})(dj,n)})(Cy)),Cy.exports}var Sy={exports:{}},pj=Sy.exports,VN;function mj(){return VN||(VN=1,(function(n){(function(e,t,r){function s(a){var l=this;l.next=function(){var d=l.x,p=l.i,m,y;return m=d[p],m^=m>>>7,y=m^m<<24,m=d[p+1&7],y^=m^m>>>10,m=d[p+3&7],y^=m^m>>>3,m=d[p+4&7],y^=m^m<<7,m=d[p+7&7],m=m^m<<13,y^=m^m<<9,d[p]=y,l.i=p+1&7,y};function c(d,p){var m,y=[];if(p===(p|0))y[0]=p;else for(p=""+p,m=0;m0;--m)d.next()}c(l,a)}function o(a,l){return l.x=a.x.slice(),l.i=a.i,l}function i(a,l){a==null&&(a=+new Date);var c=new s(a),d=l&&l.state,p=function(){return(c.next()>>>0)/4294967296};return p.double=function(){do var m=c.next()>>>11,y=(c.next()>>>0)/4294967296,v=(m+y)/(1<<21);while(v===0);return v},p.int32=c.next,p.quick=p,d&&(d.x&&o(d,c),p.state=function(){return o(c,{})}),p}t&&t.exports?t.exports=i:this.xorshift7=i})(pj,n)})(Sy)),Sy.exports}var ky={exports:{}},gj=ky.exports,GN;function xj(){return GN||(GN=1,(function(n){(function(e,t,r){function s(a){var l=this;l.next=function(){var d=l.w,p=l.X,m=l.i,y,v;return l.w=d=d+1640531527|0,v=p[m+34&127],y=p[m=m+1&127],v^=v<<13,y^=y<<17,v^=v>>>15,y^=y>>>12,v=p[m]=v^y,l.i=m,v+(d^d>>>16)|0};function c(d,p){var m,y,v,b,w,k=[],I=128;for(p===(p|0)?(y=p,p=null):(p=p+"\0",y=0,I=Math.max(I,p.length)),v=0,b=-32;b>>15,y^=y<<4,y^=y>>>13,b>=0&&(w=w+1640531527|0,m=k[b&127]^=y+w,v=m==0?v+1:0);for(v>=128&&(k[(p&&p.length||0)&127]=-1),v=127,b=512;b>0;--b)y=k[v+34&127],m=k[v=v+1&127],y^=y<<13,m^=m<<17,y^=y>>>15,m^=m>>>12,k[v]=y^m;d.w=w,d.X=k,d.i=v}c(l,a)}function o(a,l){return l.i=a.i,l.w=a.w,l.X=a.X.slice(),l}function i(a,l){a==null&&(a=+new Date);var c=new s(a),d=l&&l.state,p=function(){return(c.next()>>>0)/4294967296};return p.double=function(){do var m=c.next()>>>11,y=(c.next()>>>0)/4294967296,v=(m+y)/(1<<21);while(v===0);return v},p.int32=c.next,p.quick=p,d&&(d.X&&o(d,c),p.state=function(){return o(c,{})}),p}t&&t.exports?t.exports=i:this.xor4096=i})(gj,n)})(ky)),ky.exports}var Iy={exports:{}},yj=Iy.exports,jN;function vj(){return jN||(jN=1,(function(n){(function(e,t,r){function s(a){var l=this,c="";l.next=function(){var p=l.b,m=l.c,y=l.d,v=l.a;return p=p<<25^p>>>7^m,m=m-y|0,y=y<<24^y>>>8^v,v=v-p|0,l.b=p=p<<20^p>>>12^m,l.c=m=m-y|0,l.d=y<<16^m>>>16^v,l.a=v-p|0},l.a=0,l.b=0,l.c=-1640531527,l.d=1367130551,a===Math.floor(a)?(l.a=a/4294967296|0,l.b=a|0):c+=a;for(var d=0;d>>0)/4294967296};return p.double=function(){do var m=c.next()>>>11,y=(c.next()>>>0)/4294967296,v=(m+y)/(1<<21);while(v===0);return v},p.int32=c.next,p.quick=p,d&&(typeof d=="object"&&o(d,c),p.state=function(){return o(c,{})}),p}t&&t.exports?t.exports=i:this.tychei=i})(yj,n)})(Iy)),Iy.exports}var $y={exports:{}};const wj={},bj=Object.freeze(Object.defineProperty({__proto__:null,default:wj},Symbol.toStringTag,{value:"Module"})),Cj=D3(bj);var Sj=$y.exports,HN;function kj(){return HN||(HN=1,(function(n){(function(e,t,r){var s=256,o=6,i=52,a="random",l=r.pow(s,o),c=r.pow(2,i),d=c*2,p=s-1,m;function y(T,A,O){var P=[];A=A==!0?{entropy:!0}:A||{};var B=k(w(A.entropy?[T,N(t)]:T??I(),3),P),z=new v(P),L=function(){for(var _=z.g(o),H=l,Y=0;_=d;)_/=2,H/=2,Y>>>=1;return(_+Y)/H};return L.int32=function(){return z.g(4)|0},L.quick=function(){return z.g(4)/4294967296},L.double=L,k(N(z.S),t),(A.pass||O||function(_,H,Y,re){return re&&(re.S&&b(re,z),_.state=function(){return b(z,{})}),Y?(r[a]=_,H):_})(L,B,"global"in A?A.global:this==r,A.state)}function v(T){var A,O=T.length,P=this,B=0,z=P.i=P.j=0,L=P.S=[];for(O||(T=[O++]);B=1||i===0);const a=Math.sqrt(-2*Math.log(i)/i);e=this.mean+this.stdDev*s*a,t=this.mean+this.stdDev*o*a,(!this.truncated||this.isValidTruncated(e))&&(r=!0)}return(!this.truncated||this.isValidTruncated(t))&&(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return this.dtype==null||this.dtype==="float32"?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}}class $j{constructor(e=0,t=1,r,s){if(this.canReturnFloat=()=>this.dtype==null||this.dtype==="float32",this.min=e,this.range=t-e,this.dtype=r,s==null&&(s=Math.random()),typeof s=="number"&&(s=s.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=kk.alea(s)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}}function Nj(n,e=0,t=1,r,s){if(al(n),r!=null&&r==="bool")throw new Error(`Unsupported data type ${r}`);const o=new _R(e,t,r,!1,s),i=Nt(n,r);for(let a=0;a`Error in separableConv2d: input must be rank 4, but got rank ${d.rank}.`),U(l.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`),U(c.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`),U(c.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${c.shape[0]}.`),U(c.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${c.shape[1]}.`);const m=l.shape[2],y=l.shape[3];U(c.shape[2]===m*y,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${m*y}, but got ${c.shape[2]}.`);const v=fk(d,l,r,s,i,o),w=Qc(v,c,1,"valid",i);return p?ce(w,[w.shape[1],w.shape[2],w.shape[3]]):w}const LR=he({separableConv2d_:zj});function Bj(n){const t={x:K(n,"x","sign")};return ae.runKernel(Ug,t)}const Uj=he({sign_:Bj});function Wj(n){const t={x:K(n,"x","sin","float32")};return ae.runKernel(zg,t)}const MR=he({sin_:Wj});function Vj(n){const t={x:K(n,"x","sinh")};return ae.runKernel(Bg,t)}const zR=he({sinh_:Vj});function Gj(n,e,t){const r=K(n,"x","slice1d");return U(r.rank===1,()=>`slice1d expects a rank-1 tensor, but got a rank-${r.rank} tensor`),mn(r,[e],[t])}const Ik=he({slice1d_:Gj});function jj(n,e,t){const r=K(n,"x","slice2d");return U(r.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${r.rank} tensor`),mn(r,e,t)}const BR=he({slice2d_:jj});function Hj(n,e,t){const r=K(n,"x","slice3d");return U(r.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${r.rank} tensor`),mn(r,e,t)}const $k=he({slice3d_:Hj});function qj(n,e,t){const r=K(n,"x","slice4d");return U(r.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${r.rank} tensor`),mn(r,e,t)}const Hy=he({slice4d_:qj});function Kj(n,e=-1){const t=K(n,"logits","softmax","float32");if(e===-1&&(e=t.rank-1),e!==t.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${t.rank} and dim was ${e}`);const r={logits:t},s={dim:e};return ae.runKernel(mv,r,s)}const Nk=he({softmax_:Kj});function Xj(n){U(n.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${n.dtype}.`);const e={input:n};return ae.runKernel(LS,e)}const UR=he({fft_:Xj});function Yj(n){U(n.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${n.dtype}.`);const e={input:n};return ae.runKernel(BS,e)}const SC=he({ifft_:Yj});function Qj(n){const e=n.shape[n.shape.length-1],t=n.size/e;let r;if(e<=2){const s=ce(n,[t,e]);r=SC(s)}else{const s=[t,2*(e-1)],o=ce(jy(n),[t,e]),i=ce(gk(n),[t,e]),a=Zc(mn(o,[0,1],[t,e-2]),1),l=ne(Zc(mn(i,[0,1],[t,e-2]),1),Kt(-1)),c=Is([o,a],1),d=Is([i,l],1),p=ce(Hc(c,d),[s[0],s[1]]);r=SC(p)}if(r=jy(r),n.rank===3&&n.shape[0]!==0){const s=r,o=n.shape[0];r=ce(r,[o,r.shape[0]/o,r.shape[1]]),s.dispose()}return r}const Jj=he({irfft_:Qj});function Zj(n,e,t=0){const s={x:K(n,"x","split")},o={numOrSizeSplits:e,axis:t};return ae.runKernel(pv,s,o)}const yo=he({split_:Zj});function eH(n,e){U(n.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${n.dtype}`);let t=n.shape[n.shape.length-1];const r=n.size/t;let s;if(e!=null&&e0),b=n.shape.map(w=>w);b[n.shape.length-1]=e,s=mn(n,v,b),t=e}else if(e!=null&&e>t){const v=n.shape.map(b=>b);v[n.shape.length-1]=e-t,s=Is([n,gr(v)],n.shape.length-1),t=e}else s=n;const o=Mt(s),i=ce(Hc(s,o),[r,t]),a=UR(i),l=Math.floor(t/2)+1,c=jy(a),d=gk(a),p=yo(c,[l,t-l],c.shape.length-1),m=yo(d,[l,t-l],d.shape.length-1),y=s.shape.slice();return y[s.shape.length-1]=l,ce(Hc(p[0],m[0]),y)}const tH=he({rfft_:eH});function nH(n,e){let t=K(n,"a","squaredDifference"),r=K(e,"b","squaredDifference");[t,r]=Un(t,r),gt(t.shape,r.shape);const s={a:t,b:r},o={};return ae.runKernel(jg,s,o)}const rH=he({squaredDifference_:nH});function sH(n,e){const t=K(n,"x","squeeze","string_or_numeric");return ce(t,pu(t.shape,e).newShape)}const nx=he({squeeze_:sH});function oH(n,e=0){const t=lR(n,"tensors","stack","string_or_numeric");U(t.length>=1,()=>"Pass at least one tensor to tf.stack"),t.length>0&&U(e<=t[0].rank,()=>"Axis must be <= rank of the tensor");const r=t,s={axis:e};return ae.runKernel(nv,r,s)}const sl=he({stack_:oH});function iH(n,e=0){const r={x:K(n,"x","step")},s={alpha:e};return ae.runKernel(Yg,r,s)}const rx=he({step_:iH});function aH(n,e,t,r,s=0,o=0,i=0,a=0,l=0){const d={x:K(n,"x","stridedSlice","string_or_numeric")},p={begin:e,end:t,strides:r,beginMask:s,endMask:o,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:l};return ae.runKernel(ek,d,p)}const lH=he({stridedSlice_:aH});function uH(n){const t={x:K(n,"x","tan","float32")};return ae.runKernel(qg,t)}const cH=he({tan_:uH});function qs(n,e){pS(n);const t=Qg(n,e);if(t.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return Jg(n,null,t,e)}function Nb(n,e,t){if(pS(n),e!=null&&e.length!==2)throw new Error("tensor2d() requires shape to have two numbers");const r=Qg(n,t);if(r.length!==2&&r.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(r.length===1&&e==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return Jg(n,e,r,t)}function hH(n,e,t){if(pS(n),e!=null&&e.length!==3)throw new Error("tensor3d() requires shape to have three numbers");const r=Qg(n,t);if(r.length!==3&&r.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(r.length===1&&e==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return Jg(n,e,r,t)}function WR(n,e,t){const r=e.rank>1?e.shape[e.rank-1]:1,s=e.rank>1?e.rank-1:1,o=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${t.shape}, indices.shape: ${e.shape}, shape: ${n}, sliceDim: ${r}, and batchDim: ${s}.`;if(t.rank1?e.shape[r-1]:1,o=t.length;let i=1;for(let p=s;p= 0 but got ${e}`);if(e>s)throw new Error(`'k' passed to topk() must be <= the last dimension (${s}) but got ${e}`);const o={x:r},i={k:e,sorted:t},[a,l]=ae.runKernel(tk,o,i);return{values:a,indices:l}}const pH=he({topk_:fH});function mH(n,e=0,t=1,r,s){if(al(n),r!=null&&r==="bool")throw new Error("Unsupported data type $ { dtype }");const o=new _R(e,t,r,!0,s),i=Nt(n,r);for(let a=0;a0,()=>"The input tensor must be at least 1D");const r={x:t},s={axis:e},[o,i]=ae.runKernel(rk,r,s);return{values:o,indices:i}}const xH=he({unique_:gH});function yH(n,e,t){const r=K(n,"x","unsortedSegmentSum"),s=K(e,"segmentIds","unsortedSegmentSum","int32");U(of(t),()=>"numSegments must be of dtype int");const o={x:r,segmentIds:s},i={numSegments:t};return ae.runKernel(xv,o,i)}const GR=he({unsortedSegmentSum_:yH});function vH(n,e=0){const t=K(n,"x","unstack","string_or_numeric");U(e>=-t.shape.length&&e`Axis = ${e} is not in [-${t.shape.length}, ${t.shape.length})`);const r={value:t},s={axis:e};return ae.runKernel(gv,r,s)}const eh=he({unstack_:vH});function wH(n,e=!0,t,r){return ae.makeVariable(n,e,t,r)}function jR(n,e){const t=[];for(let o=0;oa).reverse()),U(r.rank===e.length,()=>`Error in transpose: rank of input ${r.rank} must match length of perm ${e}.`),e.forEach(i=>{U(i>=0&&i`All entries in 'perm' must be between 0 and ${r.rank-1} but got ${e}`)}),r.rank<=1)return r.clone();const s={x:r},o={perm:e};return r.dtype==="complex64"?me(()=>{let i=jy(r),a=gk(r);return i=ae.runKernel(ef,{x:i},o),a=ae.runKernel(ef,{x:a},o),t&&(a=zn(a)),Hc(i,a)}):ae.runKernel(ef,s,o)}const Lt=he({transpose_:bH});function CH(n,e){if(e==null)return n.shape.slice();if(Xt(n.shape,e))return e;if(n.shape.length===e.length){const t=[];for(let r=0;r`x has to be a floating point tensor since it's going to be scaled, but got a ${s.dtype} tensor instead.`),U(e>=0&&e<1,()=>`rate must be a float in the range [0, 1), but got ${e}.`),e===0)return n instanceof tr?s.clone():s;const o=CH(s,t),i=1-e,a=st(Iv(Pe(tx(o,0,1,"float32",r),i)),i);return ne(s,a)}const kH=he({dropout_:SH});function IH(n,e,t,r,s,o="NHWC",i){let a=n;n.rank===3&&(a=ce(n,[1,n.shape[0],n.shape[1],n.shape[2]]));let l=e;l.rank===3&&(l=ce(e,[1,e.shape[0],e.shape[1],e.shape[2]])),U(a.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${a.shape}.`),U(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),U(t.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${t}.`);const c=o==="NHWC"?a.shape[3]:a.shape[1],d=o==="NHWC"?l.shape[3]:l.shape[1];U(c===t[2],()=>`Error in conv2dDerFilter: depth of input ${c}) must match input depth in filter (${t[2]}.`),U(d===t[3],()=>`Error in conv2dDerFilter: depth of dy (${d}) must match output depth for filter (${t[3]}).`),Ts("conv2dDerFilter",s,i);const p={x:a,dy:l},m={strides:r,pad:s,dataFormat:o,dimRoundingMode:i,filterShape:t};return ae.runKernel($S,p,m)}const Tk=he({conv2DBackpropFilter_:IH});function Ek(n,e,t){if(t==null||t==="linear")return n;if(t==="relu")return ne(n,rx(e));throw new Error(`Cannot compute gradient for fused activation ${t}.`)}function Rk(n,e){let t=e;const r=ar(n.shape,e.shape);return r.length>0&&(t=rt(t,r)),ce(t,n.shape)}function Ak(n,e,t,r){if(e==="linear")return n;if(e==="relu")return uh(n);if(e==="elu")return Sv(n);if(e==="relu6")return DR(n);if(e==="prelu")return Sk(n,t);if(e==="leakyrelu")return xk(n,r);if(e==="sigmoid")return If(n);throw new Error(`Unknown fused activation ${e}.`)}const _k=(n,e)=>!(n>0)||e==="linear";function $H({x:n,filter:e,strides:t,pad:r,dataFormat:s="NHWC",dilations:o=[1,1],dimRoundingMode:i,bias:a,activation:l="linear",preluActivationWeights:c,leakyreluAlpha:d}){if(l=l||"linear",_k(ae.state.gradientDepth,l)===!1){U(s==="NHWC",()=>`Error in fused conv2d: got dataFormat of ${s} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let O=Qc(n,e,t,r,s,o,i);return a!=null&&(O=Pe(O,a)),Ak(O,l,c,d)}const p=K(n,"x","conv2d","float32"),m=K(e,"filter","conv2d","float32");let y=p,v=!1;p.rank===3&&(v=!0,y=ce(p,[1,p.shape[0],p.shape[1],p.shape[2]])),U(y.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${y.rank}.`),U(m.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${m.rank}.`),Ts("fused conv2d",r,i);const b=s==="NHWC"?y.shape[3]:y.shape[1];U(m.shape[2]===b,()=>`Error in conv2d: depth of input (${b}) must match input depth for filter ${m.shape[2]}.`),U(Hr(t,o),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${t} and dilations '${o}'`);const w=_r(y.shape,m.shape,t,o,r,i);let k;a!=null&&(k=K(a,"bias","fused conv2d"),[k]=Un(k,p),s==="NHWC"?gt(w.outShape,k.shape):(U(k.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${k.shape.length}.`),U(k.shape.length===0||k.shape[0]===w.outChannels||k.shape[0]===1,()=>`Error in fused conv2d: bias shape (${k.shape}) is not compatible with the number of output channels (${w.outChannels})`)));let I;if(c!=null){const O=c.shape;if(U(O.length<=1||O.length===3,()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${O.length}.`),O.length===1)U(O[0]===1||O[0]===w.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${O}) is not compatible with the number of output channels (${w.outChannels}).`);else if(O.length===3)try{gt(O,w.outShape)}catch{const B=`Error in fused conv2d: PReLU activation weights (${O}) is not compatible with the output shape of the conv2d (${w.outShape}).`;throw Error(B)}I=K(c,"prelu weights","fused conv2d")}const N=(O,P)=>{U(s==="NHWC",()=>`Error in gradient of fused conv2D: got dataFormat of ${s} but only NHWC is currently supported.`);const[B,z,L,_]=P,H=Ek(O,L,l);U(Xc(o),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${o}'`);const Y=hk(z.shape,H,B,t,r),re=Tk(z,H,B.shape,t,r),te=[Y,re];if(_!=null){const le=Rk(_,H);te.push(le)}return te},T={x:y,filter:m,bias:k,preluActivationWeights:I},A={strides:t,pad:r,dataFormat:s,dilations:o,dimRoundingMode:i,activation:l,leakyreluAlpha:d};return a==null?cf((P,B,z)=>{let L=ae.runKernel(My,T,A);return z([B,P,L]),v&&(L=ce(L,[L.shape[1],L.shape[2],L.shape[3]])),{value:L,gradFunc:N}})(y,m):cf((P,B,z,L)=>{let _=ae.runKernel(My,T,A);return L([B,P,_,z]),v&&(_=ce(_,[_.shape[1],_.shape[2],_.shape[3]])),{value:_,gradFunc:N}})(y,m,k)}const NH=he({fusedConv2d_:$H});function TH(n,e,t,r,s,o=[1,1],i){let a=n;n.rank===3&&(a=ce(n,[1,n.shape[0],n.shape[1],n.shape[2]]));let l=e;l.rank===3&&(l=ce(e,[1,e.shape[0],e.shape[1],e.shape[2]]));const c={x:a,dy:l},d={strides:r,pad:s,dimRoundingMode:i,dilations:o,filterShape:t};return ae.runKernel(DS,c,d)}const EH=he({depthwiseConv2dNativeBackpropFilter_:TH});function RH(n,e,t,r,s,o=[1,1],i){let a=e,l=!1;e.rank===3&&(l=!0,a=ce(e,[1,e.shape[0],e.shape[1],e.shape[2]]));const c={dy:a,filter:t},d={strides:r,pad:s,dimRoundingMode:i,dilations:o,inputShape:n},p=ae.runKernel(OS,c,d);return l?ce(p,[p.shape[1],p.shape[2],p.shape[3]]):p}const AH=he({depthwiseConv2dNativeBackpropInput_:RH});function _H({a:n,b:e,transposeA:t=!1,transposeB:r=!1,bias:s,activation:o="linear",preluActivationWeights:i,leakyreluAlpha:a=.2}){if(_k(ae.state.gradientDepth,o)===!1){let _=qt(n,e,t,r);return s!=null&&(_=Pe(_,s)),Ak(_,o,i,a)}let l=K(n,"a","fused matMul"),c=K(e,"b","fused matMul");[l,c]=Un(l,c);const d=t?l.shape[l.rank-2]:l.shape[l.rank-1],p=r?c.shape[c.rank-1]:c.shape[c.rank-2],m=t?l.shape[l.rank-1]:l.shape[l.rank-2],y=r?c.shape[c.rank-2]:c.shape[c.rank-1],v=l.shape.slice(0,-2),b=c.shape.slice(0,-2),w=Se(v),k=Se(b);U(d===p,()=>`Error in fused matMul: inner shapes (${d}) and (${p}) of Tensors with shapes ${l.shape} and ${c.shape} and transposeA=${t} and transposeB=${r} must match.`);const N=gt(l.shape.slice(0,-2),c.shape.slice(0,-2)).concat([m,y]),T=t?ce(l,[w,d,m]):ce(l,[w,m,d]),A=r?ce(c,[k,y,p]):ce(c,[k,p,y]);let O;s!=null&&(O=K(s,"bias","fused matMul"),[O]=Un(O,l),gt(N,O.shape));let P;i!=null&&(P=K(i,"prelu weights","fused matMul"));const B=(_,H)=>{const[Y,re,te,le]=H,de=Ek(ce(_,te.shape),te,o);let j,ie;if(!t&&!r?(j=qt(de,re,!1,!0),ie=qt(Y,de,!0,!1)):!t&&r?(j=qt(de,re,!1,!1),ie=qt(de,Y,!0,!1)):t&&!r?(j=qt(re,de,!1,!0),ie=qt(Y,de,!1,!1)):(j=qt(re,de,!0,!0),ie=qt(de,Y,!0,!0)),s!=null){const se=Rk(le,de);return[j,ie,se]}else return[j,ie]},z={a:T,b:A,bias:O,preluActivationWeights:P},L={transposeA:t,transposeB:r,activation:o,leakyreluAlpha:a};return s==null?cf((H,Y,re)=>{const te=ae.runKernel(Ly,z,L);return re([H,Y,te]),{value:ce(te,N),gradFunc:B}})(T,A):cf((H,Y,re,te)=>{const le=ae.runKernel(Ly,z,L);return te([H,Y,le,re]),{value:ce(le,N),gradFunc:B}})(T,A,O)}const KN=he({fusedMatMul_:_H});function DH(n,e,t,r,s="bilinear",o=0){const i=K(n,"image","cropAndResize"),a=K(e,"boxes","cropAndResize","float32"),l=K(t,"boxInd","cropAndResize","int32"),c=a.shape[0];U(i.rank===4,()=>`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),U(a.rank===2&&a.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${c},4] but had shape ${a.shape}.`),U(l.rank===1&&l.shape[0]===c,()=>`Error in cropAndResize: boxInd must be have size [${c}] but had shape ${a.shape}.`),U(r.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${r.length}.`),U(r[0]>=1&&r[1]>=1,()=>`cropSize must be atleast [1,1], but was ${r}`),U(s==="bilinear"||s==="nearest",()=>`method must be bilinear or nearest, but was ${s}`);const d={image:i,boxes:a,boxInd:l},p={method:s,extrapolationValue:o,cropSize:r};return ae.runKernel(RS,d,p)}const OH=he({cropAndResize_:DH});function FH(n){const e=K(n,"image","flipLeftRight","float32");U(e.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${e.rank}.`);const t={image:e};return ae.runKernel(zS,t,{})}const PH=he({flipLeftRight_:FH});function LH(n){const e=K(n,"image","grayscaleToRGB"),t=e.rank-1,r=e.shape[t];U(e.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${e.rank}.`),U(r===1,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${r}.`);const s=new Array(e.rank);return s.fill(1,0,t),s[t]=3,bi(e,s)}const MH=he({grayscaleToRGB_:LH});function zH(n){const e=K(n,"image","RGBToGrayscale"),t=e.rank-1,r=e.shape[t];U(e.rank>=2,()=>`Error in RGBToGrayscale: images must be at least rank 2, but got rank ${e.rank}.`),U(r===3,()=>`Error in RGBToGrayscale: last dimension of an RGB image should be size 3, but got size ${r}.`);const s=e.dtype,o=Ge(e,"float32"),i=qs([.2989,.587,.114]);let a;switch(e.rank){case 2:a=mm("ij,j->i",o,i);break;case 3:a=mm("ijk,k->ij",o,i);break;case 4:a=mm("ijkl,l->ijk",o,i);break;case 5:a=mm("ijklm,m->ijkl",o,i);break;case 6:a=mm("ijklmn,n->ijklm",o,i);break;default:throw new Error("Not a valid tensor rank.")}return a=Ss(a,-1),Ge(a,s)}const BH=he({rgbToGrayscale_:zH});function UH(n,e,t=0,r=.5){const s=K(n,"image","rotateWithOffset","float32");U(s.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${s.rank}.`);const o={image:s},i={radians:e,fillValue:t,center:r};return ae.runKernel(sk,o,i)}const WH=he({rotateWithOffset_:UH});function Nf(n,e,t,r,s,o){r==null&&(r=.5),s==null&&(s=Number.NEGATIVE_INFINITY),o==null&&(o=0);const i=n.shape[0];return t=Math.min(t,i),U(0<=r&&r<=1,()=>`iouThreshold must be in [0, 1], but was '${r}'`),U(n.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${n.rank}'`),U(n.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${n.shape[1]}`),U(e.rank===1,()=>"scores must be a 1D tensor"),U(e.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${e.shape[0]}`),U(0<=o&&o<=1,()=>`softNmsSigma must be in [0, 1], but was '${o}'`),{maxOutputSize:t,iouThreshold:r,scoreThreshold:s,softNmsSigma:o}}function VH(n,e,t,r=.5,s=Number.NEGATIVE_INFINITY){const o=K(n,"boxes","nonMaxSuppression","float32"),i=K(e,"scores","nonMaxSuppression","float32"),a=Nf(o,i,t,r,s);t=a.maxOutputSize,r=a.iouThreshold,s=a.scoreThreshold;const l={maxOutputSize:t,iouThreshold:r,scoreThreshold:s};return ae.runKernel(jS,{boxes:o,scores:i},l)}const GH=he({nonMaxSuppression_:VH});function jH(n,e,t){const r=HH(n,e,t),s=r<0?-(r+1):r;n.splice(s,0,e)}function HH(n,e,t){return KH(n,e,t||qH)}function qH(n,e){return n>e?1:n>>1);const a=t(e,n[o]);a>0?r=o+1:(s=o,i=!a)}return i?r:-r-1}function Dk(n,e,t,r,s){return Pk(n,e,t,r,s,0)}function Ok(n,e,t,r,s,o){return Pk(n,e,t,r,s,0,!1,o,!0)}function Fk(n,e,t,r,s,o){return Pk(n,e,t,r,s,o,!0)}function Pk(n,e,t,r,s,o,i=!1,a=!1,l=!1){const c=[];for(let w=0;ws&&c.push({score:e[w],boxIndex:w,suppressBeginIndex:0});c.sort(XN);const d=o>0?-.5/o:0,p=[],m=[];for(;p.length0;){const w=c.pop(),{score:k,boxIndex:I,suppressBeginIndex:N}=w;if(k=N;--A){const O=XH(n,I,p[A]);if(O>=r){T=!0;break}if(w.score=w.score*YH(r,d,O),w.score<=s)break}w.suppressBeginIndex=p.length,T||(w.score===k?(p.push(I),m.push(w.score)):w.score>s&&jH(c,w,XN))}const y=p.length,v=t-y;a&&v>0&&(p.push(...new Array(v).fill(0)),m.push(...new Array(v).fill(0)));const b={selectedIndices:p};return i&&(b.selectedScores=m),l&&(b.validOutputs=y),b}function XH(n,e,t){const r=n.subarray(e*4,e*4+4),s=n.subarray(t*4,t*4+4),o=Math.min(r[0],r[2]),i=Math.min(r[1],r[3]),a=Math.max(r[0],r[2]),l=Math.max(r[1],r[3]),c=Math.min(s[0],s[2]),d=Math.min(s[1],s[3]),p=Math.max(s[0],s[2]),m=Math.max(s[1],s[3]),y=(a-o)*(l-i),v=(p-c)*(m-d);if(y<=0||v<=0)return 0;const b=Math.max(o,c),w=Math.max(i,d),k=Math.min(a,p),I=Math.min(l,m),N=Math.max(k-b,0)*Math.max(I-w,0);return N/(y+v-N)}function YH(n,e,t){const r=Math.exp(e*t*t);return t<=n?r:0}function XN(n,e){return n.score-e.score||n.score===e.score&&e.boxIndex-n.boxIndex}async function QH(n,e,t,r=.5,s=Number.NEGATIVE_INFINITY){const o=K(n,"boxes","nonMaxSuppressionAsync"),i=K(e,"scores","nonMaxSuppressionAsync"),a=Nf(o,i,t,r,s);t=a.maxOutputSize,r=a.iouThreshold,s=a.scoreThreshold;const l=await Promise.all([o.data(),i.data()]),c=l[0],d=l[1],{selectedIndices:p}=Dk(c,d,t,r,s);return o!==n&&o.dispose(),i!==e&&i.dispose(),qs(p,"int32")}const JH=QH;function ZH(n,e,t,r=.5,s=Number.NEGATIVE_INFINITY,o=0){const i=K(n,"boxes","nonMaxSuppression"),a=K(e,"scores","nonMaxSuppression"),l=Nf(i,a,t,r,s,o);t=l.maxOutputSize,r=l.iouThreshold,s=l.scoreThreshold,o=l.softNmsSigma;const c={boxes:i,scores:a},d={maxOutputSize:t,iouThreshold:r,scoreThreshold:s,softNmsSigma:o},p=ae.runKernel(qS,c,d);return{selectedIndices:p[0],selectedScores:p[1]}}const e5=he({nonMaxSuppressionWithScore_:ZH});async function t5(n,e,t,r=.5,s=Number.NEGATIVE_INFINITY,o=0){const i=K(n,"boxes","nonMaxSuppressionAsync"),a=K(e,"scores","nonMaxSuppressionAsync"),l=Nf(i,a,t,r,s,o);t=l.maxOutputSize,r=l.iouThreshold,s=l.scoreThreshold,o=l.softNmsSigma;const c=await Promise.all([i.data(),a.data()]),d=c[0],p=c[1],{selectedIndices:m,selectedScores:y}=Fk(d,p,t,r,s,o);return i!==n&&i.dispose(),a!==e&&a.dispose(),{selectedIndices:qs(m,"int32"),selectedScores:qs(y)}}const n5=t5;function r5(n,e,t,r=.5,s=Number.NEGATIVE_INFINITY,o=!1){const i=K(n,"boxes","nonMaxSuppression"),a=K(e,"scores","nonMaxSuppression"),l=Nf(i,a,t,r,s,null),c=l.maxOutputSize,d=l.iouThreshold,p=l.scoreThreshold,m={boxes:i,scores:a},y={maxOutputSize:c,iouThreshold:d,scoreThreshold:p,padToMaxOutputSize:o},v=ae.runKernel(HS,m,y);return{selectedIndices:v[0],validOutputs:v[1]}}const s5=he({nonMaxSuppressionPadded_:r5});async function o5(n,e,t,r=.5,s=Number.NEGATIVE_INFINITY,o=!1){const i=K(n,"boxes","nonMaxSuppressionAsync"),a=K(e,"scores","nonMaxSuppressionAsync"),l=Nf(i,a,t,r,s,null),c=l.maxOutputSize,d=l.iouThreshold,p=l.scoreThreshold,[m,y]=await Promise.all([i.data(),a.data()]),{selectedIndices:v,validOutputs:b}=Ok(m,y,c,d,p,o);return i!==n&&i.dispose(),a!==e&&a.dispose(),{selectedIndices:qs(v,"int32"),validOutputs:Kt(b,"int32")}}const i5=o5;function a5(n,e,t=!1,r=!1){const s=K(n,"images","resizeBilinear");U(s.rank===3||s.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${s.rank}.`),U(e.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${e}.`),U(r===!1||t===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let o=s,i=!1;s.rank===3&&(i=!0,o=ce(s,[1,s.shape[0],s.shape[1],s.shape[2]]));const a={images:o},l={alignCorners:t,halfPixelCenters:r,size:e},c=ae.runKernel(lv,a,l);return i?ce(c,[c.shape[1],c.shape[2],c.shape[3]]):c}const HR=he({resizeBilinear_:a5});function l5(n,e,t=!1,r=!1){const s=K(n,"images","resizeNearestNeighbor");U(s.rank===3||s.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${s.rank}.`),U(e.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${e}.`),U(s.dtype==="float32"||s.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),U(r===!1||t===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let o=s,i=!1;s.rank===3&&(i=!0,o=ce(s,[1,s.shape[0],s.shape[1],s.shape[2]]));const a={images:o},l={alignCorners:t,halfPixelCenters:r,size:e},c=ae.runKernel(av,a,l);return i?ce(c,[c.shape[1],c.shape[2],c.shape[3]]):c}const qR=he({resizeNearestNeighbor_:l5});function u5(n,e="binary",t=!1,r=.5){const s=K(n,"image","threshold"),o=.2989,i=.587,a=.114,l=s.shape[0]*s.shape[1];let c=ne(qs([r]),255),d,p,m,y;if(U(s.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${s.rank}.`),U(s.shape[2]===3||s.shape[2]===1,()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${s.shape[2]}.`),U(s.dtype==="int32"||s.dtype==="float32",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${s.dtype}.`),U(e==="otsu"||e==="binary",()=>`Method must be binary or otsu, but was ${e}`),s.shape[2]===3){[d,p,m]=yo(s,[1,1,1],-1);const w=ne(d,o),k=ne(p,i),I=ne(m,a);y=Pe(Pe(w,k),I)}else y=n;if(e==="otsu"){const w=oV(Ge(OR(y),"int32"),$m([]),256);c=c5(w,l)}const v=t?$f(y,c):bo(y,c);return Ge(ne(v,255),"int32")}function c5(n,e){let t=qs([-1]),r=qs([0]),s=qs([0]),o,i,a,l,c,d;for(let p=0;p`Error in transform: image must be rank 4,but got rank ${i.rank}.`),U(a.rank===2&&(a.shape[0]===i.shape[0]||a.shape[0]===1)&&a.shape[1]===8,()=>"Error in transform: Input transform should be batch x 8 or 1 x 8"),U(o==null||o.length===2,()=>`Error in transform: outputShape must be [height, width] or null, but got ${o}.`);const l={image:i,transforms:a},c={interpolation:t,fillMode:r,fillValue:s,outputShape:o};return ae.runKernel(nk,l,c)}const f5=he({transform_:d5});function p5(n,e,t){const r=K(n,"a","bandPart");U(r.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${r.rank}.`);const s=r.shape,[o,i]=r.shape.slice(-2);let a,l;typeof e=="number"?(U(e%1===0,()=>`bandPart(): numLower must be an integer, got ${e}.`),U(e<=o,()=>`bandPart(): numLower (${e}) must not be greater than the number of rows (${o}).`),a=K(e<0?o:e,"numLower","bandPart")):(U(e.dtype==="int32",()=>"bandPart(): numLower's dtype must be an int32."),a=us(Vy(e,0),o,zm(e,o))),typeof t=="number"?(U(t%1===0,()=>`bandPart(): numUpper must be an integer, got ${t}.`),U(t<=i,()=>`bandPart(): numUpper (${t}) must not be greater than the number of columns (${i}).`),l=K(t<0?i:t,"numUpper","bandPart")):(U(t.dtype==="int32",()=>"bandPart(): numUpper's dtype must be an int32."),l=us(Vy(t,0),i,zm(t,i)));const c=ce(Bm(0,o,1,"int32"),[-1,1]),d=Bm(0,i,1,"int32"),p=ut(c,d),m=rl($f(p,a),lh(p,zn(l))),y=gr([o,i],r.dtype);return ce(sl(eh(ce(r,[-1,o,i])).map(v=>us(m,v,y))),s)}const m5=he({bandPart_:p5});function g5(n){let e;if(Array.isArray(n)){e=!1,U(n!=null&&n.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");const s=n[0].shape[0];for(let o=1;o`Gram-Schmidt: Non-unique lengths found in the input vectors: (${n[o].shape[0]} vs. ${s})`)}else e=!0,n=yo(n,n.shape[0],0).map(s=>nx(s,[0]));U(n.length<=n[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${n.length}) exceeds number of dimensions (${n[0].shape[0]}).`);const t=[],r=n;for(let s=0;s{let o=r[s];if(s>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${n.rank}`),n.rank===2)return YN(n,e);{const t=n.shape.slice(0,n.shape.length-2).reduce((l,c)=>l*c),r=eh(ce(n,[t,n.shape[n.shape.length-2],n.shape[n.shape.length-1]]),0),s=[],o=[];r.forEach(l=>{const[c,d]=YN(l,e);s.push(c),o.push(d)});const i=ce(sl(s,0),n.shape),a=ce(sl(o,0),n.shape);return[i,a]}}function YN(n,e=!1){return ae.tidy(()=>{U(n.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${n.shape.length}D Tensor.`);const t=n.shape[0],r=n.shape[1];let s=$R(t),o=Lc(n);const i=Nb([[1]],[1,1]);let a=Lc(i);const l=t>=r?r:t;for(let c=0;c{const y=mn(o,[c,c],[t-c,1]),v=kv(y),b=mn(o,[c,c],[1,1]),w=us(bo(b,0),Nb([[-1]]),Nb([[1]])),k=ut(b,ne(w,v)),I=st(y,k);I.shape[0]===1?a=Lc(i):a=Is([i,mn(I,[1,0],[I.shape[0]-1,I.shape[1]])],0);const N=zn(st(qt(w,k),v)),T=mn(o,[c,0],[t-c,r]),A=ne(N,a),O=Lt(a);if(c===0)o=ut(T,qt(A,qt(O,T)));else{const z=ut(T,qt(A,qt(O,T)));o=Is([mn(o,[0,0],[c,r]),z],0)}const P=Lt(A),B=mn(s,[0,c],[t,s.shape[1]-c]);if(c===0)s=ut(B,qt(qt(B,a),P));else{const z=ut(B,qt(qt(B,a),P));s=Is([mn(s,[0,0],[t,c]),z],1)}return[a,o,s]}),kt([d,p,m])}return!e&&t>r&&(s=mn(s,[0,0],[t,r]),o=mn(o,[0,0],[r,r])),[s,o]})}const v5=he({qr_:y5});const nl={flipLeftRight:PH,grayscaleToRGB:MH,resizeNearestNeighbor:qR,resizeBilinear:HR,rgbToGrayscale:BH,rotateWithOffset:WH,cropAndResize:OH,nonMaxSuppression:GH,nonMaxSuppressionAsync:JH,nonMaxSuppressionWithScore:e5,nonMaxSuppressionWithScoreAsync:n5,nonMaxSuppressionPadded:s5,nonMaxSuppressionPaddedAsync:i5,threshold:h5,transform:f5},w5={bandPart:m5,gramSchmidt:x5,qr:v5};const b5=new Map,C5=new Map;class Tf{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}}class Go{constructor(){this.classNameMap={}}static getMap(){return Go.instance==null&&(Go.instance=new Go),Go.instance}static register(e){Go.getMap().classNameMap[e.className]=[e,e.fromConfig]}}function _e(n,e,t){U(n.className!=null,()=>"Class being registered does not have the static className property defined."),U(typeof n.className=="string",()=>"className is required to be a string, but got type "+typeof n.className),U(n.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),typeof e>"u"&&(e="Custom"),typeof t>"u"&&(t=n.className);const r=t,s=e+">"+r;return Go.register(n),b5.set(s,n),C5.set(n,s),n}class bu extends Tf{minimize(e,t=!1,r){const{value:s,grads:o}=this.computeGradients(e,r);if(r!=null){const i=r.map(a=>({name:a.name,tensor:o[a.name]}));this.applyGradients(i)}else this.applyGradients(o);return kt(o),t?s:(s.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return $G(e,t)}dispose(){this.iterations_!=null&&kt(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:Kt(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}}Object.defineProperty(bu,Symbol.hasInstance,{value:n=>n.minimize!=null&&n.computeGradients!=null&&n.applyGradients!=null});class KR extends bu{static get className(){return"Adadelta"}constructor(e,t,r=null){super(),this.learningRate=e,this.rho=t,this.epsilon=r,this.accumulatedGrads=[],this.accumulatedUpdates=[],r==null&&(this.epsilon=ae.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(r=>r.name):Object.keys(e)).forEach((r,s)=>{const o=ae.registeredVariables[r],i=!1;this.accumulatedGrads[s]==null&&(this.accumulatedGrads[s]={originalName:`${r}/accum_grad`,variable:me(()=>Mt(o).variable(i))}),this.accumulatedUpdates[s]==null&&(this.accumulatedUpdates[s]={originalName:`${r}/accum_var`,variable:me(()=>Mt(o).variable(i))});const a=Array.isArray(e)?e[s].tensor:e[r];if(a==null)return;const l=this.accumulatedGrads[s].variable,c=this.accumulatedUpdates[s].variable;me(()=>{const d=Pe(ne(l,this.rho),ne(bn(a),1-this.rho)),p=ne(st(jr(Pe(c,this.epsilon)),jr(Pe(l,this.epsilon))),a),m=Pe(ne(c,this.rho),ne(bn(p),1-this.rho));l.assign(d),c.assign(m);const y=Pe(ne(p,-this.learningRate),o);o.assign(y)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(kt(this.accumulatedGrads.map(e=>e.variable)),kt(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){const e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);const t=e.length/2,r=!1;this.accumulatedGrads=e.slice(0,t).map(s=>({originalName:s.name,variable:s.tensor.variable(r)})),this.accumulatedUpdates=e.slice(t,t*2).map(s=>({originalName:s.name,variable:s.tensor.variable(r)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}}class XR extends bu{static get className(){return"Adagrad"}constructor(e,t=.1){super(),this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map(r=>r.name):Object.keys(e)).forEach((r,s)=>{const o=ae.registeredVariables[r];this.accumulatedGrads[s]==null&&(this.accumulatedGrads[s]={originalName:`${r}/accumulator`,variable:me(()=>Cv(o.shape,this.initialAccumulatorValue).variable(!1))});const i=Array.isArray(e)?e[s].tensor:e[r];if(i==null)return;const a=this.accumulatedGrads[s].variable;me(()=>{const l=Pe(a,bn(i));a.assign(l);const c=Pe(ne(st(i,jr(Pe(l,ae.backend.epsilon()))),-this.learningRate),o);o.assign(c)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&kt(this.accumulatedGrads.map(e=>e.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);const t=!1;this.accumulatedGrads=e.map(r=>({originalName:r.name,variable:r.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}}class YR extends bu{static get className(){return"Adam"}constructor(e,t,r,s=null){super(),this.learningRate=e,this.beta1=t,this.beta2=r,this.epsilon=s,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],me(()=>{this.accBeta1=Kt(t).variable(),this.accBeta2=Kt(r).variable()}),s==null&&(this.epsilon=ae.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map(r=>r.name):Object.keys(e);me(()=>{const r=ut(1,this.accBeta1),s=ut(1,this.accBeta2);t.forEach((o,i)=>{const a=ae.registeredVariables[o],l=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${o}/m`,variable:me(()=>Mt(a).variable(l))}),this.accumulatedSecondMoment[i]==null&&(this.accumulatedSecondMoment[i]={originalName:`${o}/v`,variable:me(()=>Mt(a).variable(l))});const c=Array.isArray(e)?e[i].tensor:e[o];if(c==null)return;const d=this.accumulatedFirstMoment[i].variable,p=this.accumulatedSecondMoment[i].variable,m=Pe(ne(d,this.beta1),ne(c,1-this.beta1)),y=Pe(ne(p,this.beta2),ne(bn(c),1-this.beta2)),v=st(m,r),b=st(y,s);d.assign(m),p.assign(y);const w=Pe(ne(st(v,Pe(jr(b),this.epsilon)),-this.learningRate),a);a.assign(w)}),this.accBeta1.assign(ne(this.accBeta1,this.beta1)),this.accBeta2.assign(ne(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&kt(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&kt(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){const e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e),me(()=>{this.accBeta1.assign(Jc(this.beta1,this.iterations_+1)),this.accBeta2.assign(Jc(this.beta2,this.iterations_+1))});const t=e.length/2,r=!1;this.accumulatedFirstMoment=e.slice(0,t).map(s=>({originalName:s.name,variable:s.tensor.variable(r)})),this.accumulatedSecondMoment=e.slice(t,t*2).map(s=>({originalName:s.name,variable:s.tensor.variable(r)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}}class QR extends bu{static get className(){return"Adamax"}constructor(e,t,r,s=null,o=0){super(),this.learningRate=e,this.beta1=t,this.beta2=r,this.epsilon=s,this.decay=o,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],me(()=>{this.iteration=Kt(0).variable(),this.accBeta1=Kt(t).variable()}),s==null&&(this.epsilon=ae.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map(r=>r.name):Object.keys(e);me(()=>{const r=ut(1,this.accBeta1),s=st(-this.learningRate,Pe(ne(this.iteration,this.decay),1));t.forEach((o,i)=>{const a=ae.registeredVariables[o],l=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${o}/m`,variable:Mt(a).variable(l)}),this.accumulatedWeightedInfNorm[i]==null&&(this.accumulatedWeightedInfNorm[i]={originalName:`${o}/v`,variable:Mt(a).variable(l)});const c=Array.isArray(e)?e[i].tensor:e[o];if(c==null)return;const d=this.accumulatedFirstMoment[i].variable,p=this.accumulatedWeightedInfNorm[i].variable,m=Pe(ne(d,this.beta1),ne(c,1-this.beta1)),y=ne(p,this.beta2),v=os(c),b=vu(y,v);d.assign(m),p.assign(b);const w=Pe(ne(st(s,r),st(m,Pe(b,this.epsilon))),a);a.assign(w)}),this.iteration.assign(Pe(this.iteration,1)),this.accBeta1.assign(ne(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&kt(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&kt(this.accumulatedWeightedInfNorm.map(e=>e.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}}class Lk extends bu{static get className(){return"SGD"}constructor(e){super(),this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map(r=>r.name):Object.keys(e)).forEach((r,s)=>{const o=Array.isArray(e)?e[s].tensor:e[r];if(o==null)return;const i=ae.registeredVariables[r];me(()=>{const a=Pe(ne(this.c,o),i);i.assign(a)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=ha(Kt(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(e=await this.extractIterations(e),e.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}}class JR extends Lk{static get className(){return"Momentum"}constructor(e,t,r=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=r,this.accumulations=[],this.m=Kt(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(r=>r.name):Object.keys(e)).forEach((r,s)=>{const o=ae.registeredVariables[r];this.accumulations[s]==null&&(this.accumulations[s]={originalName:`${r}/momentum`,variable:me(()=>Mt(o).variable(!1))});const i=this.accumulations[s].variable,a=Array.isArray(e)?e[s].tensor:e[r];a!=null&&me(()=>{let l;const c=Pe(ne(this.m,i),a);this.useNesterov?l=Pe(ne(this.c,Pe(a,ne(c,this.m))),o):l=Pe(ne(this.c,c),o),i.assign(c),o.assign(l)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&kt(this.accumulations.map(e=>e.variable))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);const t=!1;this.accumulations=e.map(r=>({originalName:r.name,variable:r.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}}class ZR extends bu{static get className(){return"RMSProp"}constructor(e,t=.9,r=0,s=null,o=!1){if(super(),this.learningRate=e,this.decay=t,this.momentum=r,this.epsilon=s,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=o,s==null&&(this.epsilon=ae.backend.epsilon()),e==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map(r=>r.name):Object.keys(e)).forEach((r,s)=>{const o=ae.registeredVariables[r],i=!1;this.accumulatedMeanSquares[s]==null&&(this.accumulatedMeanSquares[s]={originalName:`${r}/rms`,variable:me(()=>Mt(o).variable(i))}),this.accumulatedMoments[s]==null&&(this.accumulatedMoments[s]={originalName:`${r}/momentum`,variable:me(()=>Mt(o).variable(i))}),this.accumulatedMeanGrads[s]==null&&this.centered&&(this.accumulatedMeanGrads[s]={originalName:`${r}/mg`,variable:me(()=>Mt(o).variable(i))});const a=Array.isArray(e)?e[s].tensor:e[r];if(a==null)return;const l=this.accumulatedMeanSquares[s].variable,c=this.accumulatedMoments[s].variable;me(()=>{const d=Pe(ne(l,this.decay),ne(bn(a),1-this.decay));if(this.centered){const p=this.accumulatedMeanGrads[s].variable,m=Pe(ne(p,this.decay),ne(a,1-this.decay)),y=st(ne(a,this.learningRate),jr(ut(d,Pe(bn(m),this.epsilon)))),v=Pe(ne(c,this.momentum),y);l.assign(d),p.assign(m),c.assign(v);const b=ut(o,v);o.assign(b)}else{const p=Pe(ne(l,this.decay),ne(bn(a),1-this.decay)),m=Pe(ne(c,this.momentum),st(ne(a,this.learningRate),jr(Pe(p,this.epsilon))));l.assign(p),c.assign(m);const y=ut(o,m);o.assign(y)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&kt(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&kt(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&kt(this.accumulatedMoments.map(e=>e.variable))}async getWeights(){const e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);const t=this.centered?e.length/3:e.length/2,r=!1;this.accumulatedMeanSquares=e.slice(0,t).map(s=>({originalName:s.name,variable:s.tensor.variable(r)})),this.accumulatedMoments=e.slice(t,t*2).map(s=>({originalName:s.name,variable:s.tensor.variable(r)})),this.centered&&(this.accumulatedMeanGrads=e.slice(t*2,t*3).map(s=>({originalName:s.name,variable:s.tensor.variable(r)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}}const S5=[KR,XR,YR,QR,JR,ZR,Lk];function k5(){for(const n of S5)_e(n)}function QN(n,e,t,r){i(n),t=t??0,r=r??1,a(t,r);let s=0;const o=l=>(l.then(c=>{const d=t+ ++s/n.length*(r-t);return e(d),c}),l);function i(l){U(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function a(l,c){U(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),U(c>=0&&c<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${c}`),U(c>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${c}`)}return Promise.all(n.map(o))}async function I5(n,e){e==null&&(e={});const t=e.fetchFunc==null?ye().platform.fetch:e.fetchFunc,r=n.map(p=>t(p,e.requestInit,{isBinary:!0})),a=(e.onProgress==null?await Promise.all(r):await QN(r,e.onProgress,0,.5)).map(p=>p.arrayBuffer());return e.onProgress==null?await Promise.all(a):await QN(a,e.onProgress,.5,1)}function $5(n,e){var t;const r=e.fetchFunc==null?ye().platform.fetch:e.fetchFunc;let s=0,o;return(t=e.onProgress)===null||t===void 0||t.call(e,0),new ReadableStream({pull:async i=>{for(var a;s"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=t.fetchFunc):this.fetch=ye().platform.fetch,U(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&U(e.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,t.requestInit!=null&&t.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{},this.loadOptions=t}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");const t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;const r=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],s=zU(e,r);if(t.body.append("model.json",new Blob([JSON.stringify(s)],{type:T5}),"model.json"),e.weightData!=null){const i=gu.join(e.weightData);t.body.append("model.weights.bin",new Blob([i],{type:N5}),"model.weights.bin")}const o=await this.fetch(this.path,t);if(o.ok)return{modelArtifactsInfo:ak(e),responses:[o]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${o.status}.`)}async loadModelJSON(){const e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch{let i=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?i+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":i+=" Please make sure the server is serving valid JSON for this request.",new Error(i)}const r=t.modelTopology,s=t.weightsManifest;if(r==null&&s==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return t}async load(){if(this.loadOptions.streamWeights)return this.loadStream();const e=await this.loadModelJSON();return UU(e,t=>this.loadWeights(t))}async loadStream(){const e=await this.loadModelJSON(),t=await this.getWeightUrls(e.weightsManifest),r=LN(e.weightsManifest),s=()=>$5(t,this.loadOptions);return Object.assign(Object.assign({},e),{weightSpecs:r,getWeightStream:s})}async getWeightUrls(e){const t=Array.isArray(this.path)?this.path[1]:this.path,[r,s]=E5(t),o=this.weightPathPrefix||r,i=[],a=[];for(const l of e)for(const c of l.paths)this.weightUrlConverter!=null?a.push(this.weightUrlConverter(c)):i.push(o+c+s);return this.weightUrlConverter&&i.push(...await Promise.all(a)),i}async loadWeights(e){const t=await this.getWeightUrls(e),r=LN(e),s=await I5(t,this.loadOptions);return[r,s]}}Mk.URL_SCHEME_REGEX=/^https?:\/\//;function E5(n){const e=n.lastIndexOf("/"),t=n.lastIndexOf("?"),r=n.substring(0,e),s=t>e?n.substring(t):"";return[r+"/",s]}function JN(n){return n.match(Mk.URL_SCHEME_REGEX)!=null}const eA=(n,e)=>{if(typeof fetch>"u"&&(e==null||e.fetchFunc==null))return null;{let t=!0;if(Array.isArray(n)?t=n.every(r=>JN(r)):t=JN(n),t)return tA(n,e)}return null};pr.registerSaveRouter(eA);pr.registerLoadRouter(eA);function tA(n,e){return new Mk(n,e)}function R5(n,e){return tA(n,e)}let Ic;function A5(n,e=3){if(e>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(n==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let t=!1,r=!1,s=!1,o=!1,i=!1,a=!1;if(n.data instanceof Uint8Array)t=!0;else if(typeof ImageData<"u"&&n instanceof ImageData)r=!0;else if(typeof HTMLVideoElement<"u"&&n instanceof HTMLVideoElement)s=!0;else if(typeof HTMLImageElement<"u"&&n instanceof HTMLImageElement)o=!0;else if(n.getContext!=null)i=!0;else if(typeof ImageBitmap<"u"&&n instanceof ImageBitmap)a=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${n.constructor.name}`);if(hC(uC,ae.backendName)!=null){const v={pixels:n},b={numChannels:e};return ae.runKernel(uC,v,b)}const[c,d]=s?[n.videoWidth,n.videoHeight]:[n.width,n.height];let p;if(i)p=n.getContext("2d").getImageData(0,0,c,d).data;else if(r||t)p=n.data;else if(o||s||a){if(Ic==null)if(typeof document>"u")if(typeof OffscreenCanvas<"u"&&typeof OffscreenCanvasRenderingContext2D<"u")Ic=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else Ic=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});Ic.canvas.width=c,Ic.canvas.height=d,Ic.drawImage(n,0,0,c,d),p=Ic.getImageData(0,0,c,d).data}let m;if(e===4)m=new Int32Array(p);else{const v=c*d;m=new Int32Array(v*e);for(let b=0;bt)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${e.shape[r-1]} vs. ${t}`);if(Se(n.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${n.shape}.`);const s=e.shape,o=s[s.length-1];let i=1;for(let p=0;pp/c),1].slice(0,o);return[l,i,c,d]}const kC=-2,D5=-1;function Bk(n,e,t){const r=n.shape.length;U(r===e.length,()=>`Error in slice${r}D: Length of begin ${e} must match the rank of the array (${r}).`),U(r===t.length,()=>`Error in slice${r}D: Length of size ${t} must match the rank of the array (${r}).`);for(let s=0;s`Error in slice${r}D: begin[${s}] + size[${s}] (${e[s]+t[s]}) would overflow input.shape[${s}] (${n.shape[s]})`)}function O5(n){const e=[];let t=0;for(;n>0;)n&1&&e.push(t),n/=2,t++;return e}function Uk(n,e,t){const r=[];for(let s=0;s0){const y=e[0],v=t+1;d=oA(i,y,v,r,n),p=iA(a,y,v,s,n),m=nA(o,y,v,n)}else for(let y=0;y-1)o[a]=0;else{const l=rA(e,t,a);let c=r[l];n&1<-1)o[a]=Number.MAX_SAFE_INTEGER;else{const l=rA(e,t,a);let c=r[l];n&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);const l=r[s];return i<0&&(i+=l),i=Gc(0,i,l-1),i}function uA(n,e,t,r,s,o){let i=e[s];const a=t[s]||1;(n&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);const l=r[s];return i<0&&(i+=l),a>0?i=Gc(0,i,l):i=Gc(-1,i,l-1),i}function Wk(n,e,t){let r=t.length;for(let s=0;s1){r=s;break}for(let s=r+1;s0||t[s]!==n[s])return!1;return!0}function Vk(n,e){let t=n.length>0?n[n.length-1]:1;for(let r=0;r{U(i!==-1,()=>"slice() does not support negative begin indexing.")});let o;return t==null?o=new Array(s).fill(-1):typeof t=="number"?o=[t,...new Array(s-1).fill(-1)]:t.lengthi>=0?i:(U(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${a}.`),n.shape[a]-r[a])),[r,o]}function Gk(n,e,t,r,s,o,i,a,l){let c;if(r==null?(c=new Array(e.length),c.fill(1)):c=r,i!=null&&(i&i-1)!==0)throw new Error("Multiple ellipses in slice is not allowed.");let d=!1;const p={dims:c.length,numAddAxisAfterEllipsis:0,begin:e.slice(),end:t.slice(),strides:c.slice(),beginMask:s,endMask:o,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:l};for(let N=0;N0?0:-1,m.strides[N]>0?A:A-1];if(T&&m.strides[N]<=0)throw Error("only stride 1 allowed on non-range indexing.");b=b&&m.strides[N]===1;const B=!!(m.beginMask&1<=A)throw Error(`slice index ${m.begin[N]} of dimension ${N} out of bounds.`)}else m.begin[N]=ZN(m.begin[N],0,m.strides[N],A,O,P),m.end[N]=ZN(m.end[N],1,m.strides[N],A,O,P);const _=m.strides[N]===1&&m.begin[N]===0&&m.end[N]===A;y=y&&_,v=v&&(N===0&&m.strides[N]===1||_)}else y=y&&m.strides[N]===1&&B,v=v&&(N===0&&m.strides[N]===1||B);let z,L=!1;if(m.beginValid&&m.endValid?(z=m.end[N]-m.begin[N],L=!0):T?(z=1,L=!0):B&&A>=0&&(m.strides[N]<0?z=-A:z=A,L=!0),L){let _;z===0||z<0!=m.strides[N]<0?_=0:_=Math.trunc(z/m.strides[N])+(z%m.strides[N]!==0?1:0),w.push(_)}else w.push(-1)}for(let N=0;N=0?k.push(w[T]):T===kC&&k.push(1)}return{finalShapeSparse:k.filter((N,T)=>m.finalShapeGatherIndices[T]!==kC),finalShape:k,isIdentity:y,sliceDim0:v,isSimpleSlice:b,begin:m.begin,end:m.end,strides:m.strides}}function P5(n,e){e.beginMask=0,e.endMask=0,e.shrinkAxisMask=0;let t=0;e.beginValid=n.begin!=null,e.endValid=n.end!=null,e.begin=new Array(e.dims),e.end=new Array(e.dims),e.strides=new Array(e.dims),e.finalShapeGatherIndices=[],e.finalShapeGatherIndicesSparse=[],e.inputShapeGatherIndicesSparse=new Array(e.dims);for(let r=0;r0?o[e]:o[e+1&1];{const i=n<0?r+n:n;return io[1]?o[1]:i}}const L5=Object.freeze(Object.defineProperty({__proto__:null,assertParamsValid:Bk,computeFlatOffset:Vk,computeOutShape:Uk,getNormalizedAxes:F5,isSliceContinous:Wk,maskToAxes:O5,parseSliceParams:$v,sliceInfo:Gk,startForAxis:lA,startIndicesWithElidedDims:oA,stopForAxis:uA,stopIndicesWithElidedDims:iA,stridesForAxis:aA,stridesWithElidedDims:nA},Symbol.toStringTag,{value:"Module"}));class M5{static sgd(e){return new Lk(e)}static momentum(e,t,r=!1){return new JR(e,t,r)}static rmsprop(e,t=.9,r=0,s=null,o=!1){return new ZR(e,t,r,s,o)}static adam(e=.001,t=.9,r=.999,s=null){return new YR(e,t,r,s)}static adadelta(e=.001,t=.95,r=null){return new KR(e,t,r)}static adamax(e=.002,t=.9,r=.999,s=null,o=0){return new QR(e,t,r,s,o)}static adagrad(e,t=.1){return new XR(e,t)}}const Wd=M5;const z5=typeof requestAnimationFrame<"u"?requestAnimationFrame:typeof setImmediate<"u"?setImmediate:n=>n();function cA(){return new Promise(n=>z5(()=>n()))}function jk(n,e){const t=n[0].length;n.forEach((s,o)=>{U(s.length===t,()=>`Error in concat${t}D: rank of tensors[${o}] must be the same as the rank of the rest (${t})`)}),U(e>=0&&e`Error in concat${t}D: axis must be between 0 and ${t-1}.`);const r=n[0];n.forEach((s,o)=>{for(let i=0;i`Error in concat${t}D: Shape of tensors[${o}] (${s}) does not match the shape of the rest (${r}) along the non-concatenated axis ${o}.`)})}function da(n,e){const t=n[0].slice();for(let r=1;r=0)if(a>=0){if(a!==o)throw new Error(`rt input.shape and shape=${e} are incompatible: rt input.shape[${s+n}] = ${o} but shape[${s+n}] = ${a}`)}else r[i]=o}return r}function dA(n){const e={FIRST_DIM_SIZE:vi.FIRST_DIM_SIZE,VALUE_ROWIDS:vi.VALUE_ROWIDS,ROW_LENGTHS:vi.ROW_LENGTHS,ROW_SPLITS:vi.ROW_SPLITS,ROW_LIMITS:vi.ROW_LIMITS,ROW_STARTS:vi.ROW_STARTS},t=[];for(const r of n)if(r in e)t.push(e[r]);else break;return t}function fA(n){return n.length===0?0:n[0]===vi.FIRST_DIM_SIZE?n.length-1:n.length}function pA(n,e){if(n==null||e==null)return;const t=n.length,r=e.length;if(t>=r)throw new Error(`defaultValue.shape=${n} and ragged tensor flatValues.shape=${e}, are incompatible: defaultValue.rank = ${t} must be less than ragged tensor input flatValues.rank = ${r})`);for(let s=0;s=0&&i>=0&&o!==1&&o!==i)throw new Error(`defaultValue.shape=${n}, and ragged tensor input flatValues.shape=${e} are incompatible: defaultValue.shape[${s-n.length}] = ${o} but ragged tensor input.flatValues.shape[${s-n.length}] = ${i}`)}}const Hk=30;function Nv(n){return n<=Hk?n:iC(n,Math.floor(Math.sqrt(n)))}function qk(n,e,t){const r=t*(typeof n=="number"?n:n[0]),s=e*(typeof n=="number"?n:n[1]);return[r,s]}function sx(n,e,t,r=!0){let s=[];if(r)s=s.concat(e.slice(0)),s.push(n[0]/t),s=s.concat(n.slice(1));else{s=s.concat(n[0]);const o=e.length;for(let i=0;i=e*2+1||i%2===1?o.push(i):s.push(i);r.push(...s),r.push(0),r.push(...o)}return r}function ix(n,e,t,r=!0){const s=[];r?s.push(n[0]/t):s.push(n[0]*t);for(let o=1;o/g,e2=",",t2="...";function rI(n,e){n=n.replace(/\s/g,"");const t=(n.length-n.replace(B5,"").length)/Tb.length;if(t<1)throw new Error("Equations without an arrow are not supported.");if(t>1)throw new Error(`Equation must contain exactly one arrow ("${Tb}").`);const[r,s]=n.split(Tb);U(r.indexOf(t2)===-1,()=>`The ellipsis notation ("${t2}") is not supported yet.`);const o=r.split(e2),i=o.length;if(e!==i)throw new Error(`Expected ${i} input tensors, received ${e}`);if(i>2)throw new Error("Support for more than 2 input tensors is not implemented yet.");const a=[];for(let m=0;mv.indexOf(y)!==-1))throw new Error(`Output subscripts contain the label ${y} not present in the input subscripts.`);a.indexOf(y)===-1&&a.push(y)}for(let m=0;ms!==-1),{permutationIndices:t,expandDims:r}}function oI(n,e,t){const r=new Array(n);for(let s=0;s`Expected dimension ${r[e[s][i]]} at axis ${i} of input shaped ${JSON.stringify(o)}, but got dimension ${o[i]}`)}}function iI(n,e){const t=n,r=[];let s=0;n.length===0&&t.push(-1),s=n.length+1;for(let i=0;ie===t)}function U5(n,e){const t=[];for(let r=0;r"Number of splits must evenly divide the axis."),r=new Array(e).fill(n.shape[t]/e);else{const s=e.reduce((i,a)=>(a===-1&&(i+=1),i),0);U(s<=1,()=>"There should be only one negative value in split array.");const o=e.indexOf(-1);if(o!==-1){const i=e.reduce((a,l)=>l>0?a+l:a);e[o]=n.shape[t]-i}U(n.shape[t]===e.reduce((i,a)=>i+a),()=>"The sum of sizes must match the size of the axis dimension."),r=e}return r}function bA(n){return`Received SparseTensor with denseShape[0] = 0 but + indices.shape[0] = ${n}`}function CA(n,e){return`indices(${n}, 0) is invalid: ${e} < 0`}function SA(n,e,t){return`indices(${n}, 0) is invalid: ${e} >= ${t}`}function kA(n,e){return`only one output dimension may be -1, not both ${n} and ${e}`}function IA(n,e){return`size ${n} must be non-negative, not ${e}`}function $A(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function NA(n,e){const t=Se(n),r=Se(e);return`Input to reshape is a SparseTensor with ${t} + dense values, but the requested shape requires a multiple of ${r}. inputShape=${n} outputShape= ${e}`}function TA(n,e){const t=Se(n),r=Se(e);return`Input to reshape is a tensor with ${t} dense values, but the requested shape has ${r}. inputShape=${n} outputShape=${e}`}function IC(){return"segment ids must be >= 0"}function EA(){return"segment ids are not increasing"}function RA(n,e){return`Segment id ${n} out of range [0, ${e}), possibly because segmentIds input is not sorted.`}function AA(n,e,t){return`Bad: indices[${n}] == ${e} out of range [0, ${t})`}function _A(n,e){let t=!1,r;for(n<=Hk?(r=n,t=!0):r=iC(n,Math.floor(Math.sqrt(n)));!t;)r>e||r===n?t=!0:r=iC(n,r+1);return r}function DA(n,e,t){const r=[],s=n.length;for(let o=0;os))throw new Error(`Expect batchDims in the range of [-${s}, ${s}], but got ${r}`);if(r<0&&(r+=s),r>o)throw new Error(`batchDims (${r}) must be less than rank(x) ( + ${o}).`);if(tau(e))}catch(e){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${e}`)}}function OA(n){return n.map(e=>su(e))}const V5=Object.freeze(Object.defineProperty({__proto__:null,ERF_A1:Qk,ERF_A2:Jk,ERF_A3:Zk,ERF_A4:eI,ERF_A5:tI,ERF_P:Yk,PARALLELIZE_THRESHOLD:Hk,get RowPartitionType(){return vi},SELU_SCALE:Ev,SELU_SCALEALPHA:Tv,applyActivation:Ak,assertAndGetBroadcastShape:gt,assertAxesAreInnerMostDims:Dr,assertParamsConsistent:jk,assignToTypedArray:yA,axesAreInnerMostDims:pk,calculateShapes:ch,checkEinsumDimSizes:oI,checkPadOnDimRoundingMode:Ts,combineLocations:kR,combineRaggedTensorToTensorShapes:hA,complexWithEvenIndex:gA,complexWithOddIndex:xA,computeConv2DInfo:_r,computeConv3DInfo:xu,computeDefaultPad:lk,computeDilation2DInfo:Zg,computeOptimalWindowSize:Nv,computeOutAndReduceShapes:yr,computeOutShape:da,computePool2DInfo:Xo,computePool3DInfo:ll,convertConv2DDataFormat:ul,decodeEinsumEquation:rI,eitherStridesOrDilationsAreOne:Hr,expandShapeToKeepDim:Yn,exponent:wA,exponents:vA,fromStringArrayToUint8:OA,fromUint8ToStringArray:il,getAxesPermutation:En,getBroadcastDims:uf,getComplexWithIndex:nI,getEinsumComputePath:iI,getEinsumPermutation:sI,getFusedBiasGradient:Rk,getFusedDyActivation:Ek,getImageCenter:qk,getInnerMostAxes:Wn,getPermuted:ox,getRaggedRank:fA,getReductionAxes:ar,getReshaped:sx,getReshapedPermuted:ix,getRowPartitionTypesHelper:dA,getSliceBeginCoords:Kk,getSliceSize:Xk,getSparseFillEmptyRowsIndicesDenseShapeMismatch:bA,getSparseFillEmptyRowsNegativeIndexErrorMessage:CA,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:SA,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:$A,getSparseReshapeInputOutputMismatchErrorMessage:TA,getSparseReshapeInputOutputMultipleErrorMessage:NA,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:kA,getSparseReshapeNegativeOutputDimErrorMessage:IA,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:AA,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:IC,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:EA,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:RA,getUndoAxesPermutation:yu,isIdentityPermutation:aI,log:sU,mergeRealAndImagArrays:ol,prepareAndValidate:zk,prepareSplitSize:lI,segment_util:W5,shouldFuse:_k,slice_util:L5,splitRealAndImagArrays:mA,stridesOrDilationsArePositive:Yc,tupleValuesAreOne:Xc,upcastType:Ys,validateDefaultValueShape:pA,validateInput:dH,validateUpdateShape:WR,warn:go},Symbol.toStringTag,{value:"Module"}));k5();const FA={kernelName:v1,inputsToSave:["x"],gradFunc:(n,e)=>{const[t]=e;return{x:()=>ne(n,rx(Ge(t,"float32"),-1))}}};const G5={kernelName:ng,inputsToSave:["x"],gradFunc:(n,e)=>{const[t]=e;return{x:()=>{const r=bn(Ge(t,"float32")),s=jr(ut(Kt(1),r));return zn(st(n,s))}}}};const j5={kernelName:rg,inputsToSave:["x"],gradFunc:(n,e)=>{const[t]=e;return{x:()=>{const r=jr(ut(bn(Ge(t,"float32")),1));return st(n,r)}}}};const H5={kernelName:kf,inputsToSave:["a","b"],gradFunc:(n,e)=>{const[t,r]=e,s=gt(t.shape,r.shape);return{a:()=>{let a=n;const l=ar(t.shape,s);return l.length>0&&(a=rt(a,l)),ce(a,t.shape)},b:()=>{let a=n;const l=ar(r.shape,s);return l.length>0&&(a=rt(a,l)),ce(a,r.shape)}}}};const q5={kernelName:yS,saveAllInputs:!0,gradFunc:(n,e)=>{const t={};return e.forEach((r,s)=>{t[s]=()=>n.clone()}),t}};const K5={kernelName:w1,inputsToSave:["x"],gradFunc:(n,e)=>{const[t]=e;return{x:()=>Mt(t)}}};const X5={kernelName:b1,inputsToSave:["x"],gradFunc:(n,e)=>{const[t]=e;return{x:()=>Mt(t)}}};const Y5={kernelName:sg,inputsToSave:["x"],gradFunc:(n,e)=>{const[t]=e;return{x:()=>st(n,jr(ut(Kt(1),bn(Ge(t,"float32")))))}}};const Q5={kernelName:og,inputsToSave:["x"],gradFunc:(n,e)=>{const[t]=e;return{x:()=>{const r=jr(Pe(Kt(1),bn(Ge(t,"float32"))));return st(n,r)}}}};const J5={kernelName:lg,inputsToSave:["a","b"],gradFunc:(n,e)=>{const[t,r]=e,s=gt(t.shape,r.shape);return{a:()=>{const a=Pe(bn(t),bn(r));let l=ne(n,st(r,a));const c=ar(t.shape,s);return c.length>0&&(l=rt(l,c)),ce(l,t.shape)},b:()=>{const a=Pe(bn(t),bn(r));let l=zn(ne(n,st(t,a)));const c=ar(r.shape,s);return c.length>0&&(l=rt(l,c)),ce(l,r.shape)}}}};const Z5={kernelName:ig,inputsToSave:["x"],gradFunc:(n,e)=>{const[t]=e;return{x:()=>st(n,Pe(bn(Ge(t,"float32")),1))}}};const e6={kernelName:ag,inputsToSave:["x"],gradFunc:(n,e)=>{const[t]=e;return{x:()=>st(n,ut(Kt(1),bn(Ge(t,"float32"))))}}};function t6(n,e,t,r,s,o){const i=K(n,"dy","avgPool3dGrad"),a=K(e,"input","avgPool3dGrad");let l=i,c=a,d=!1;a.rank===4&&(d=!0,l=ce(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),c=ce(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),U(l.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${l.rank}.`),U(c.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${c.rank}.`),Ts("avgPool3dGrad",s,o);const p={dy:l,input:c},m={filterSize:t,strides:r,pad:s,dimRoundingMode:o},y=ae.runKernel(CS,p,m);return d?ce(y,[y.shape[1],y.shape[2],y.shape[3],y.shape[4]]):y}const n6=he({avgPool3dGrad_:t6});const r6={kernelName:S1,inputsToSave:["x"],gradFunc:(n,e,t)=>{const[r]=e,{filterSize:s,strides:o,pad:i,dimRoundingMode:a}=t;return{x:()=>n6(n,r,s,o,i,a)}}};function s6(n,e,t,r,s){const o=K(n,"dy","avgPoolGrad"),i=K(e,"input","avgPoolGrad");U(i.rank===o.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${o.rank})`);let a=i,l=o,c=!1;i.rank===3&&(c=!0,a=ce(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=ce(o,[1,o.shape[0],o.shape[1],o.shape[2]])),U(l.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`),U(a.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${a.rank}.`);const d={dy:l,input:a},p={filterSize:t,strides:r,pad:s},m=ae.runKernel(bS,d,p);return c?ce(m,[m.shape[1],m.shape[2],m.shape[3]]):m}const o6=he({avgPoolGrad_:s6});const i6={kernelName:C1,inputsToSave:["x"],gradFunc:(n,e,t)=>{const[r]=e,{filterSize:s,strides:o,pad:i}=t;return{x:()=>o6(n,r,s,o,i)}}};const a6={kernelName:k1,inputsToSave:["a","b"],gradFunc:(n,e,t)=>{const[r,s]=e,{transposeA:o,transposeB:i}=t;return!o&&!i?{a:()=>qt(n,s,!1,!0),b:()=>qt(r,n,!0,!1)}:!o&&i?{a:()=>qt(n,s,!1,!1),b:()=>qt(n,r,!0,!1)}:o&&!i?{a:()=>qt(s,n,!1,!0),b:()=>qt(r,n,!1,!1)}:{a:()=>qt(s,n,!0,!0),b:()=>qt(n,r,!0,!0)}}};const l6={kernelName:I1,gradFunc:(n,e,t)=>{const{blockShape:r,crops:s}=t;return{x:()=>Ck(n,r,s)}}};const u6={kernelName:tU,gradFunc:(n,e,t)=>{const r=t,s=r.inputShape,o=r.shape,i=Array.from(o);for(let l=s.length-1;l>=0;l--)if(s[l]===o[l])i[l]=1;else if(s[l]!==1)throw new Error(`broadcastTo(): [${s}] cannot be broadcast to [${o}].`);const a=[];for(let l=0;l1&&a.push(l);return{x:()=>rt(n,a,!0)}}};const c6={kernelName:ug,gradFunc:n=>({x:()=>n.clone()})};const h6={kernelName:cg,gradFunc:n=>({x:()=>Mt(n)})};const d6={kernelName:hg,inputsToSave:["x"],gradFunc:(n,e,t)=>{const[r]=e,{clipValueMin:s,clipValueMax:o}=t;return{x:()=>us(rl(lh(r,s),$f(r,o)),n,Mt(n))}}};const f6={kernelName:$1,inputsToSave:["x"],gradFunc:FA.gradFunc};const p6={kernelName:N1,saveAllInputs:!0,gradFunc:(n,e,t)=>{const r=e.map(l=>l.shape),{axis:s}=t,o=Tt(s,e[0].shape)[0],i=r.map(l=>l[o]);return yo(n,i,o).map(l=>()=>l)}};const m6={kernelName:T1,inputsToSave:["x","filter"],gradFunc:(n,e,t)=>{const[r,s]=e,{dilations:o,strides:i,pad:a,dataFormat:l}=t;return U(Xc(o),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${o}'`),{x:()=>hk(r.shape,n,s,i,a,l),filter:()=>Tk(r,n,s.shape,i,a,l)}}};const g6={kernelName:E1,inputsToSave:["dy","filter"],gradFunc:(n,e,t)=>{const[r,s]=e,{strides:o,pad:i,dataFormat:a,dimRoundingMode:l}=t;return{dy:()=>Qc(n,s,o,i,a,1,l),filter:()=>Tk(n,r,s.shape,o,i,a,l)}}};function x6(n,e,t,r,s){let o=n;n.rank===4&&(o=ce(n,[1,n.shape[0],n.shape[1],n.shape[2],n.shape[3]]));let i=e;i.rank===4&&(i=ce(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]])),U(o.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${o.shape}.`),U(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),U(t.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${t}.`),U(o.shape[4]===t[3],()=>`Error in conv3dDerFilter: depth of input ${o.shape[4]}) must match input depth in filter (${t[3]}.`),U(i.shape[4]===t[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${t[4]}).`);const a={x:o,dy:i},l={strides:r,pad:s,filterShape:t};return ae.runKernel(NS,a,l)}const y6=he({conv3DBackpropFilter_:x6});const v6={kernelName:R1,inputsToSave:["x","filter"],gradFunc:(n,e,t)=>{const{dilations:r,strides:s,pad:o}=t;U(Xc(r),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${r}'`);const[i,a]=e;return{x:()=>wR(i.shape,n,a,s,o),filter:()=>y6(i,n,a.shape,s,o)}}};const w6={kernelName:dg,inputsToSave:["x"],gradFunc:(n,e)=>{const[t]=e;return{x:()=>ne(zn(MR(Ge(t,"float32"))),n)}}};const b6={kernelName:fg,inputsToSave:["x"],gradFunc:(n,e)=>{const[t]=e;return{x:()=>ne(zR(Ge(t,"float32")),n)}}};const C6={kernelName:A1,inputsToSave:["x"],gradFunc:(n,e,t)=>{const[r]=e,{axis:s,exclusive:o,reverse:i}=t;return{x:()=>{const a=En([s],r.rank);let l=CR(n,s,o,!i);return a!=null&&(l=Lt(l,a)),l}}}};const S6={kernelName:_1,inputsToSave:["x","filter"],gradFunc:(n,e,t)=>{const{dilations:r,strides:s,pad:o,dimRoundingMode:i}=t,a=r??[1,1];U(Xc(a),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${a}'`);const[l,c]=e;return U(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`),U(c.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${c.rank}.`),U(l.shape[3]===c.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${l.shape[3]}) must match the inChannels dimension in filter ${c.shape[2]}.`),U(Hr(s,a),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${s} and dilations '${a}'.`),Ts("depthwiseConv2d",o,i),{x:()=>AH(l.shape,n,c,s,o,a,i),filter:()=>EH(l,n,c.shape,s,o,a,i)}}};const k6={kernelName:D1,inputsToSave:["x","filter"],gradFunc:(n,e,t)=>{const[r,s]=e,o={x:r,filter:s,dy:n},i={x:r,filter:s,dy:n};return{x:()=>ae.runKernel(aC,o,t),filter:()=>ae.runKernel(lC,i,t)}}};const I6={kernelName:mg,outputsToSave:[!0],gradFunc:(n,e)=>{const[t]=e,r={dy:n,y:t};return{x:()=>ae.runKernel(PS,r)}}};const $6={kernelName:gg,inputsToSave:["x"],gradFunc:(n,e)=>{const[t]=e,r=ne(xa(zn(bn(t))),2/Math.sqrt(Math.PI));return{x:()=>ne(n,r)}}};const N6={kernelName:xg,outputsToSave:[!0],gradFunc:(n,e)=>{const[t]=e;return{x:()=>ne(n,t)}}};const T6={kernelName:F1,inputsToSave:["input"],gradFunc:(n,e)=>{const[t]=e;return{input:()=>ce(n,t.shape)}}};const E6={kernelName:yg,inputsToSave:["x"],gradFunc:(n,e)=>{const[t]=e;return{x:()=>ne(n,xa(t))}}};const R6={kernelName:vg,gradFunc:n=>({x:()=>Mt(n)})};const A6={kernelName:wg,inputsToSave:["a","b"],gradFunc:(n,e)=>{const[t,r]=e,s=gt(t.shape,r.shape);return{a:()=>{const a=st(n,Ge(r,"float32")),l=ar(t.shape,s);return l.length>0?ce(rt(a,l),t.shape):a},b:()=>{let a=ne(n,Ge(t,"float32"));const l=ar(r.shape,s);l.length>0&&(a=ce(rt(a,l),r.shape));const c=bn(r);return zn(st(a,Ge(c,"float32")))}}}};const _6={kernelName:P1,inputsToSave:["x","mean","variance","scale"],gradFunc:(n,e,t)=>{const{varianceEpsilon:r}=t,[s,o,i,a]=e,l=a??Kt(1),c=ar(o.shape,s.shape),d=[];if(o.rank===1){for(let T=0;To.rank===1?ce(ne(ne(n,bi(ce(y,[1,1,1,o.shape[0]]),d)),l),s.shape):ce(ne(ne(n,y),l),s.shape),mean:()=>{let T=ne(ne(y,Kt(-1)),m);return o.rank===1&&(T=rt(T,c)),ce(T,o.shape)},variance:()=>{let T=ne(ne(v,p),m);return o.rank===1&&(T=rt(T,c)),ce(T,o.shape)},scale:()=>{const T=ne(p,y);let A=ne(n,T);return o.rank===1&&(A=rt(A,c)),ce(A,o.shape)},offset:()=>{let T=n;return o.rank===1&&(T=rt(T,c)),ce(T,o.shape)}}}};const D6={kernelName:L1,inputsToSave:["x","indices"],gradFunc:(n,e,t)=>{const[r,s]=e,{axis:o,batchDims:i}=t,a=Tt(o,r.shape)[0],l=(c,d,p)=>()=>{const m=c.shape,y=d.size,v=m.slice(0,a),b=v.length,w=m.slice(o,m.length).slice(1),k=w.length,I=n2(0,b),N=n2(b+1,b+1+k),T=r2([v,[y],w]),A=ce(p,T),O=ce(d,[y]),P=r2([[b],I,N]),B=Lt(A,P);let z=GR(B,O,c.shape[a]);const L=yu(P);return z=Lt(z,L),z};if(i===1){const c=r.shape[0],d=r.split(c,0);return{x:()=>sl(d.map((y,v)=>l(y,s.slice(v,1),n.slice(v,1))())).reshape(r.shape),indices:()=>s}}else return{x:l(r,s,n),indices:()=>s}}};function n2(n,e){const t=[];for(let r=n;r{const[t,r]=e;return{a:()=>Mt(t),b:()=>Mt(r)}}};const F6={kernelName:Cg,gradFunc:n=>({x:()=>Ge(n,"float32")})};const P6={kernelName:Sg,gradFunc:n=>({x:()=>Mt(n)})};const L6={kernelName:kg,gradFunc:n=>({x:()=>Mt(n)})};const M6={kernelName:Ig,gradFunc:n=>({x:()=>Mt(n)})};const z6={kernelName:z1,inputsToSave:["x"],gradFunc:(n,e,t)=>{const[r]=e,{alpha:s}=t,o=bo(r,0);return{x:()=>us(o,n,ne(n,s))}}};const B6={kernelName:Ng,inputsToSave:["x"],gradFunc:(n,e)=>{const[t]=e;return{x:()=>st(n,Pe(t,1))}}};const U6={kernelName:$g,inputsToSave:["x"],gradFunc:(n,e)=>{const[t]=e;return{x:()=>st(n,Ge(t,"float32"))}}};const W6={kernelName:rU,inputsToSave:[],outputsToSave:[!0],gradFunc:(n,e,t)=>{const[r]=e,{axis:s}=t;return{logits:()=>{const i=xa(r);return ut(n,ne(rt(n,s,!0),i))}}}};function V6(n,e,t,r=5,s=1,o=1,i=.5){const a={x:n,y:e,dy:t},l={depthRadius:r,bias:s,alpha:o,beta:i};return ae.runKernel(WS,a,l)}const G6=he({localResponseNormalizationBackprop_:V6});const j6={kernelName:j1,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(n,e,t)=>{const[r,s]=e,{depthRadius:o,bias:i,alpha:a,beta:l}=t;return{x:()=>G6(r,s,n,o,i,a,l)}}};function PA(n,e,t,r){return e.rankne(n,Ge(ga(t,e),n.dtype))}}const s2={kernelName:H1,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(n,e,t)=>{const r=t,{reductionIndices:s}=r,o=e[0],i=e[1],a=Tt(s,o.shape),l=PA(n,i,o,a);return{x:()=>l.x()}}};const H6={kernelName:Tg,inputsToSave:["a","b"],gradFunc:(n,e)=>{const[t,r]=e;return{a:()=>ne(n,Ge(lh(t,r),"float32")),b:()=>ne(n,Ge(Vy(t,r),"float32"))}}};function q6(n,e,t,r,s,o,i){const a=K(n,"dy","maxPool3dGrad"),l=K(e,"input","maxPool3dGrad"),c=K(t,"output","maxPool3dGrad");let d=a,p=l,m=c,y=!1;l.rank===4&&(y=!0,d=ce(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]]),p=ce(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),m=ce(c,[1,c.shape[0],c.shape[1],c.shape[2],c.shape[3]])),U(d.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${d.rank}.`),U(p.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${p.rank}.`),U(m.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${m.rank}.`),Ts("maxPool3dGrad",o,i);const v={dy:d,input:p,output:m},b={filterSize:r,strides:s,pad:o,dimRoundingMode:i},w=ae.runKernel(GS,v,b);return y?ce(w,[w.shape[1],w.shape[2],w.shape[3],w.shape[4]]):w}const K6=he({maxPool3dGrad_:q6});const X6={kernelName:K1,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(n,e,t)=>{const[r,s]=e,{filterSize:o,strides:i,pad:a,dimRoundingMode:l}=t;return{x:()=>K6(n,r,s,o,i,a,l)}}};function Y6(n,e,t,r,s,o,i){const a=K(n,"dy","maxPoolGrad"),l=K(e,"input","maxPoolGrad"),c=K(t,"output","maxPoolGrad");U(l.rank===a.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${a.rank})`),U(a.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${a.rank}.`),U(l.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`),Ts("maxPoolGrad",o,i);const d={dy:a,input:l,output:c},p={filterSize:r,strides:s,pad:o,dimRoundingMode:i};return ae.runKernel(VS,d,p)}const Q6=he({maxPoolGrad_:Y6});const J6={kernelName:q1,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(n,e,t)=>{const[r,s]=e,{filterSize:o,strides:i,pad:a}=t;return{x:()=>Q6(n,r,s,o,i,a)}}};const Z6={kernelName:X1,inputsToSave:["x"],gradFunc:(n,e,t)=>{const[r]=e,{axis:s}=t,o=Tt(s,r.shape),a=yr(r.shape,o)[1],l=Se(a);return{x:()=>{const d=r.shape.slice();o.forEach(y=>{d[y]=1});const p=ce(n,d);return st(ne(p,wu(r.shape,"float32")),l)}}}};const e8={kernelName:Y1,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(n,e,t)=>{const r=t,{axis:s}=r,[o,i]=e,a=Tt(s,o.shape),l=PA(n,i,o,a);return{x:()=>l.x()}}};const t8={kernelName:Eg,inputsToSave:["a","b"],gradFunc:(n,e)=>{const[t,r]=e;return{a:()=>ne(n,Ge($f(t,r),"float32")),b:()=>ne(n,Ge(bo(t,r),"float32"))}}};const n8={kernelName:Q1,inputsToSave:["x"],gradFunc:(n,e,t)=>{const r=e[0],{paddings:s}=t,o=s.map(i=>i[0]);return{x:()=>mn(n,o,r.shape)}}};const r8={kernelName:Rg,inputsToSave:["a","b"],gradFunc:(n,e)=>{const[t,r]=e,s=gt(t.shape,r.shape);return{a:()=>{const a=ar(t.shape,s);return a.length>0?ce(rt(n,a),t.shape):n},b:()=>{const a=ne(n,zn(Iv(st(t,r)))),l=ar(r.shape,s);return l.length>0?ce(rt(a,l),r.shape):a}}}};const s8={kernelName:Ag,inputsToSave:["a","b"],gradFunc:(n,e)=>{const[t,r]=e,s=gt(t.shape,r.shape);return{a:()=>{const a=ne(n,Ge(r,"float32")),l=ar(t.shape,s);return l.length>0?ce(rt(a,l),t.shape):a},b:()=>{const a=ne(n,Ge(t,"float32")),l=ar(r.shape,s);return l.length>0?ce(rt(a,l),r.shape):a}}}};const o8={kernelName:J1,gradFunc:n=>({x:()=>zn(n)})};const i8={kernelName:tv,inputsToSave:["indices"],gradFunc:(n,e)=>{const t=e[0];return{indices:()=>gr(t.shape,"float32")}}};const a8={kernelName:ev,gradFunc:n=>({x:()=>Mt(n)})};const l8={kernelName:nv,saveAllInputs:!0,gradFunc:(n,e,t)=>{const{axis:r}=t;return eh(n,r).map(o=>()=>o)}};const o2={kernelName:rv,inputsToSave:["x"],gradFunc:(n,e,t)=>{const r=e[0],{paddings:s}=t,o=s.map(i=>i[0]);return{x:()=>mn(n,o,r.shape)}}};const u8={kernelName:_g,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(n,e)=>{const[t,r,s]=e,o=t,i=r,a=gt(o.shape,i.shape);return{a:()=>{const d=Ge(i,"float32");let p=ne(n,ne(d,Jc(o,ut(d,Kt(1)))));const m=ar(o.shape,a);return m.length>0&&(p=rt(p,m)),ce(p,o.shape)},b:()=>{const d=bo(o,0),p=us(d,ya(o),Mt(o));let m=ne(n,ne(s,p));const y=ar(i.shape,a);return y.length>0&&(m=rt(m,y)),ce(m,i.shape)}}}};const c8={kernelName:sv,inputsToSave:["x","alpha"],gradFunc:(n,e)=>{const[t,r]=e,s=bo(t,0);return{x:()=>us(s,n,ne(n,r)),alpha:()=>{let o=us(s,Mt(n),ne(n,t));const i=ar(r.shape,n.shape);return i.length>0&&(o=rt(o,i)),ce(o,r.shape)}}}};function h8(n,e,t){const r=n.shape.slice();r[t]=1;const s=ce(e,r),o=CC(n,t,!0,!1),i=CC(n,t,!0,!0),a=ne(o,i);return ne(s,a)}function d8(n,e,t){const r=n.shape.length,s=r-t.length,o=En(t,r);let i=n;o!=null&&(i=Lt(n,o));const a=i.shape.slice(),c=a.splice(r-t.length,t.length).reduce((m,y)=>m*y,1);a.push(c);const d=i.reshape(a);let p=h8(d,e,s);if(p=p.reshape(i.shape),o!=null){const m=yu(o);p=Lt(p,m)}return p}const f8={kernelName:ov,inputsToSave:["x"],gradFunc:(n,e,t)=>{const[r]=e,{axis:s}=t;let o=[];return s==null?o=r.shape.map((i,a)=>a):typeof s=="number"?o=[s]:o=s,{x:()=>d8(r,n,o)}}};const p8={kernelName:pg,inputsToSave:["a","b"],gradFunc:(n,e)=>{const[t,r]=e,s=gt(t.shape,r.shape);return{a:()=>{const a=st(n,Ge(r,"float32")),l=ar(t.shape,s);return l.length>0?ce(rt(a,l),t.shape):a},b:()=>{let a=ne(n,Ge(t,"float32"));const l=ar(r.shape,s);l.length>0&&(a=ce(rt(a,l),r.shape));const c=bn(r);return zn(st(a,Ge(c,"float32")))}}}};const m8={kernelName:Dg,inputsToSave:["x"],gradFunc:(n,e)=>{const[t]=e;return{x:()=>st(n,zn(bn(t)))}}};const g8={kernelName:Fg,inputsToSave:["x"],gradFunc:(n,e)=>{const[t]=e,r=ne($f(t,6),rx(t));return{x:()=>ne(n,Ge(r,"float32"))}}};const x8={kernelName:Og,inputsToSave:["x"],gradFunc:(n,e)=>{const[t]=e;return{x:()=>ne(n,Ge(rx(t),"float32"))}}};const y8={kernelName:iv,inputsToSave:["x"],gradFunc:(n,e)=>{const[t]=e;return{x:()=>ce(n,t.shape)}}};const v8={kernelName:lv,inputsToSave:["images"],gradFunc:(n,e,t)=>{const[r]=e,s={dy:n,images:r};return{images:()=>ae.runKernel(QS,s,t)}}};const w8={kernelName:av,inputsToSave:["images"],gradFunc:(n,e,t)=>{const[r]=e,s={dy:n,images:r};return{images:()=>ae.runKernel(YS,s,t)}}};const b8={kernelName:uv,gradFunc:(n,e,t)=>{const{dims:r}=t,s=Tt(r,n.shape);return{x:()=>Zc(n,s)}}};const C8={kernelName:Pg,gradFunc:n=>({x:()=>Mt(n)})};const S8={kernelName:Lg,inputsToSave:["x"],gradFunc:(n,e)=>{const[t]=e;return{x:()=>zn(st(n,ne(Jc(t,1.5),2)))}}};const k8={kernelName:cv,inputsToSave:["condition"],gradFunc:(n,e)=>{const[t]=e;return{condition:()=>Ge(Mt(t),"float32"),t:()=>ne(n,Ge(t,n.dtype)),e:()=>ne(n,Ge(yk(t),n.dtype))}}};const I8={kernelName:Mg,inputsToSave:["x"],gradFunc:(n,e)=>{const[t]=e;return{x:()=>{const r=bo(t,Kt(0)),s=Kt(Tv),o=Kt(Ev),i=ne(n,o),a=ne(ne(n,s),xa(Ge(t,"float32")));return us(r,i,a)}}}};const $8={kernelName:Wg,outputsToSave:[!0],gradFunc:(n,e)=>{const[t]=e;return{x:()=>ne(n,ne(t,ut(Kt(1),t)))}}};const N8={kernelName:Ug,gradFunc:n=>({x:()=>Mt(n)})};const T8={kernelName:zg,inputsToSave:["x"],gradFunc:(n,e)=>{const[t]=e;return{x:()=>ne(dk(Ge(t,"float32")),n)}}};const E8={kernelName:Bg,inputsToSave:["x"],gradFunc:(n,e)=>{const[t]=e;return{x:()=>ne(bR(Ge(t,"float32")),n)}}};const R8={kernelName:hv,inputsToSave:["x"],gradFunc:(n,e,t)=>{const[r]=e,{begin:s,size:o}=t,i=r.shape,[a,l]=$v(r,s,o),c=[];for(let d=0;dbk(n,c)}}};const A8={kernelName:mv,outputsToSave:[!0],gradFunc:(n,e,t)=>{const[r]=e,{dim:s}=t,o=!0,i=ne(n,r);return{logits:()=>ut(i,ne(rt(i,[s],o),r))}}};const _8={kernelName:Vg,inputsToSave:["x"],gradFunc:(n,e)=>{const[t]=e;return{x:()=>ne(n,If(t))}}};const i2={kernelName:fv,gradFunc:(n,e,t)=>{const{blockShape:r,paddings:s}=t;return{x:()=>ck(n,r,s)}}};const a2={kernelName:pv,gradFunc:(n,e,t)=>{const{axis:r}=t;return{x:()=>Is(n,r)}}};const D8={kernelName:Gg,inputsToSave:["x"],gradFunc:(n,e)=>{const[t]=e;return{x:()=>st(n,ne(jr(Ge(t,"float32")),2))}}};const O8={kernelName:JS,inputsToSave:["x"],gradFunc:(n,e)=>{const[t]=e;return{x:()=>ne(n,ne(Ge(t,"float32"),2))}}};const F8={kernelName:jg,inputsToSave:["a","b"],gradFunc:(n,e)=>{const[t,r]=e,s=Kt(2);return{a:()=>ne(n,ne(s,ut(t,r))),b:()=>ne(n,ne(s,ut(r,t)))}}};const P8={kernelName:Yg,gradFunc:n=>({x:()=>Mt(n)})};const L8={kernelName:Hg,inputsToSave:["a","b"],gradFunc:(n,e)=>{const[t,r]=e,s=gt(t.shape,r.shape);return{a:()=>{let a=n;const l=ar(t.shape,s);return l.length>0&&(a=rt(a,l)),ce(a,t.shape)},b:()=>{let a=n;const l=ar(r.shape,s);return l.length>0&&(a=rt(a,l)),ce(zn(a),r.shape)}}}};const M8={kernelName:dv,inputsToSave:["x"],gradFunc:(n,e,t)=>{const[r]=e,s=r.shape.slice(),{axis:o}=t;Tt(o,r.shape).forEach(c=>{s[c]=1});const a=ce(n,s),l=ne(a,wu(r.shape,"float32"));return{x:()=>l}}};const z8={kernelName:qg,inputsToSave:["x"],gradFunc:(n,e)=>{const[t]=e;return{x:()=>st(n,bn(dk(t)))}}};const B8={kernelName:Kg,outputsToSave:[!0],gradFunc:(n,e)=>{const[t]=e;return{x:()=>ne(ut(Kt(1),bn(t)),n)}}};const U8={kernelName:Xg,inputsToSave:["x"],gradFunc:(n,e,t)=>{const[r]=e,{reps:s}=t;return{x:()=>{let i=Mt(r);if(r.rank===1)for(let a=0;a{const r=t,{perm:s}=r,o=yu(s);return{x:()=>Lt(n,o)}}};const V8={kernelName:gv,gradFunc:(n,e,t)=>{const r=t,{axis:s}=r;return{value:()=>sl(n,s)}}};const G8={kernelName:xv,inputsToSave:["segmentIds"],gradFunc:(n,e)=>{const[t]=e;return{x:()=>j8(n,t)}}};function j8(n,e){const t=vu(e,Mt(e)),r=mk(n,t);let s=lh(e,Kt(0,"int32"));const o=r.rank-s.rank;for(let a=0;a({x:()=>Mt(n)})};const q8=[FA,G5,j5,H5,q5,K5,X5,Y5,Q5,J5,Z5,e6,r6,i6,a6,l6,u6,c6,h6,d6,f6,p6,g6,m6,v6,w6,b6,C6,S6,k6,p8,I6,$6,N6,T6,E6,A6,R6,_6,D6,O6,F6,P6,L6,M6,z6,B6,U6,W6,j6,s2,s2,H6,X6,J6,Z6,e8,t8,n8,r8,s8,o8,i8,a8,l8,o2,o2,u8,c8,f8,m8,g8,x8,y8,v8,w8,b8,C8,S8,k8,I8,$8,N8,T8,E8,R8,A8,_8,i2,i2,a2,a2,D8,F8,O8,P8,L8,M8,z8,B8,U8,W8,V8,G8,H8];for(const n of q8)oU(n);Ce().prototype.abs=function(){return this.throwIfDisposed(),os(this)};Ce().prototype.acos=function(){return this.throwIfDisposed(),yW(this)};Ce().prototype.acosh=function(){return this.throwIfDisposed(),wW(this)};Ce().prototype.add=function(n){return this.throwIfDisposed(),Pe(this,n)};Ce().prototype.all=function(n,e){return this.throwIfDisposed(),xR(this,n,e)};Ce().prototype.any=function(n,e){return this.throwIfDisposed(),wC(this,n,e)};Ce().prototype.argMax=function(n){return this.throwIfDisposed(),Pm(this,n)};Ce().prototype.argMin=function(n){return this.throwIfDisposed(),IW(this,n)};Ce().prototype.asScalar=function(){return this.throwIfDisposed(),U(this.size===1,()=>"The array must have only 1 element."),ce(this,[])};Ce().prototype.asType=function(n){return this.throwIfDisposed(),Ge(this,n)};Ce().prototype.as1D=function(){return this.throwIfDisposed(),ce(this,[this.size])};Ce().prototype.as2D=function(n,e){return this.throwIfDisposed(),ce(this,[n,e])};Ce().prototype.as3D=function(n,e,t){return this.throwIfDisposed(),ce(this,[n,e,t])};Ce().prototype.as4D=function(n,e,t,r){return this.throwIfDisposed(),ce(this,[n,e,t,r])};Ce().prototype.as5D=function(n,e,t,r,s){return this.throwIfDisposed(),ce(this,[n,e,t,r,s])};Ce().prototype.asin=function(){return this.throwIfDisposed(),NW(this)};Ce().prototype.asinh=function(){return this.throwIfDisposed(),EW(this)};Ce().prototype.atan=function(){return this.throwIfDisposed(),AW(this)};Ce().prototype.atan2=function(n){return this.throwIfDisposed(),DW(this,n)};Ce().prototype.atanh=function(){return this.throwIfDisposed(),FW(this)};Ce().prototype.avgPool=function(n,e,t,r){return this.throwIfDisposed(),uk(this,n,e,t,r)};Ce().prototype.batchToSpaceND=function(n,e){return this.throwIfDisposed(),ck(this,n,e)};Ce().prototype.batchNorm=function(n,e,t,r,s){return this.throwIfDisposed(),bv(this,n,e,t,r,s)};Ce().prototype.broadcastTo=function(n){return this.throwIfDisposed(),Nm(this,n)};Ce().prototype.cast=function(n){return this.throwIfDisposed(),Ge(this,n)};Ce().prototype.ceil=function(){return this.throwIfDisposed(),lV(this)};Ce().prototype.clipByValue=function(n,e){return this.throwIfDisposed(),wo(this,n,e)};Ce().prototype.concat=function(n,e){return this.throwIfDisposed(),n instanceof tr&&(n=[n]),Is([this,...n],e)};Ce().prototype.conv1d=function(n,e,t,r,s,o){return this.throwIfDisposed(),yR(this,n,e,t,r,s,o)};Ce().prototype.conv2dTranspose=function(n,e,t,r,s){return this.throwIfDisposed(),vR(this,n,e,t,r,s)};Ce().prototype.conv2d=function(n,e,t,r,s,o){return this.throwIfDisposed(),Qc(this,n,e,t,r,s,o)};Ce().prototype.cos=function(){return this.throwIfDisposed(),dk(this)};Ce().prototype.cosh=function(){return this.throwIfDisposed(),bR(this)};Ce().prototype.cumprod=function(n,e,t){return this.throwIfDisposed(),CC(this,n,e,t)};Ce().prototype.cumsum=function(n,e,t){return this.throwIfDisposed(),CR(this,n,e,t)};Ce().prototype.depthToSpace=function(n,e){return this.throwIfDisposed(),DV(this,n,e)};Ce().prototype.depthwiseConv2d=function(n,e,t,r,s,o){return this.throwIfDisposed(),fk(this,n,e,t,r,s,o)};Ce().prototype.dilation2d=function(n,e,t,r,s){return this.throwIfDisposed(),PV(this,n,e,t,r,s)};Ce().prototype.divNoNan=function(n){return this.throwIfDisposed(),UV(this,n)};Ce().prototype.div=function(n){return this.throwIfDisposed(),st(this,n)};Ce().prototype.dot=function(n){return this.throwIfDisposed(),VV(this,n)};Ce().prototype.elu=function(){return this.throwIfDisposed(),Sv(this)};Ce().prototype.equal=function(n){return this.throwIfDisposed(),ga(this,n)};Ce().prototype.erf=function(){return this.throwIfDisposed(),SR(this)};Ce().prototype.euclideanNorm=function(n,e){return this.throwIfDisposed(),tG(this,n,e)};Ce().prototype.exp=function(){return this.throwIfDisposed(),xa(this)};Ce().prototype.expandDims=function(n){return this.throwIfDisposed(),Ss(this,n)};Ce().prototype.expm1=function(){return this.throwIfDisposed(),oG(this)};Ce().prototype.fft=function(){return this.throwIfDisposed(),UR(this)};Ce().prototype.flatten=function(){return this.throwIfDisposed(),ce(this,[this.size])};Ce().prototype.floor=function(){return this.throwIfDisposed(),Iv(this)};Ce().prototype.floorDiv=function(n){return this.throwIfDisposed(),gR(this,n)};Ce().prototype.gather=function(n,e,t){return this.throwIfDisposed(),mk(this,n,e,t)};Ce().prototype.greaterEqual=function(n){return this.throwIfDisposed(),lh(this,n)};Ce().prototype.greater=function(n){return this.throwIfDisposed(),bo(this,n)};Ce().prototype.ifft=function(){return this.throwIfDisposed(),SC(this)};Ce().prototype.irfft=function(){return this.throwIfDisposed(),Jj(this)};Ce().prototype.isFinite=function(){return this.throwIfDisposed(),pG(this)};Ce().prototype.isInf=function(){return this.throwIfDisposed(),gG(this)};Ce().prototype.isNaN=function(){return this.throwIfDisposed(),yG(this)};Ce().prototype.leakyRelu=function(n){return this.throwIfDisposed(),xk(this,n)};Ce().prototype.lessEqual=function(n){return this.throwIfDisposed(),$f(this,n)};Ce().prototype.less=function(n){return this.throwIfDisposed(),Vy(this,n)};Ce().prototype.localResponseNormalization=function(n,e,t,r){return this.throwIfDisposed(),SG(this,n,e,t,r)};Ce().prototype.logSigmoid=function(){return this.throwIfDisposed(),RG(this)};Ce().prototype.logSoftmax=function(n){return this.throwIfDisposed(),TR(this,n)};Ce().prototype.logSumExp=function(n,e){return this.throwIfDisposed(),ER(this,n,e)};Ce().prototype.log=function(){return this.throwIfDisposed(),ya(this)};Ce().prototype.log1p=function(){return this.throwIfDisposed(),NR(this)};Ce().prototype.logicalAnd=function(n){return this.throwIfDisposed(),rl(this,n)};Ce().prototype.logicalNot=function(){return this.throwIfDisposed(),yk(this)};Ce().prototype.logicalOr=function(n){return this.throwIfDisposed(),RR(this,n)};Ce().prototype.logicalXor=function(n){return this.throwIfDisposed(),MG(this,n)};Ce().prototype.matMul=function(n,e,t){return this.throwIfDisposed(),qt(this,n,e,t)};Ce().prototype.maxPool=function(n,e,t,r){return this.throwIfDisposed(),vk(this,n,e,t,r)};Ce().prototype.max=function(n,e){return this.throwIfDisposed(),Si(this,n,e)};Ce().prototype.maximum=function(n){return this.throwIfDisposed(),vu(this,n)};Ce().prototype.mean=function(n,e){return this.throwIfDisposed(),Xn(this,n,e)};Ce().prototype.min=function(n,e){return this.throwIfDisposed(),Wy(this,n,e)};Ce().prototype.minimum=function(n){return this.throwIfDisposed(),zm(this,n)};Ce().prototype.mirrorPad=function(n,e){return this.throwIfDisposed(),HG(this,n,e)};Ce().prototype.mod=function(n){return this.throwIfDisposed(),KG(this,n)};Ce().prototype.mul=function(n){return this.throwIfDisposed(),ne(this,n)};Ce().prototype.neg=function(){return this.throwIfDisposed(),zn(this)};Ce().prototype.norm=function(n,e,t){return this.throwIfDisposed(),kv(this,n,e,t)};Ce().prototype.notEqual=function(n){return this.throwIfDisposed(),Gy(this,n)};Ce().prototype.oneHot=function(n,e=1,t=0){return this.throwIfDisposed(),AR(this,n,e,t)};Ce().prototype.onesLike=function(){return this.throwIfDisposed(),Ko(this)};Ce().prototype.pad=function(n,e){return this.throwIfDisposed(),bk(this,n,e)};Ce().prototype.pool=function(n,e,t,r,s,o){return this.throwIfDisposed(),sj(this,n,e,t,r,s,o)};Ce().prototype.pow=function(n){return this.throwIfDisposed(),Jc(this,n)};Ce().prototype.prelu=function(n){return this.throwIfDisposed(),Sk(this,n)};Ce().prototype.prod=function(n,e){return this.throwIfDisposed(),aj(this,n,e)};Ce().prototype.reciprocal=function(){return this.throwIfDisposed(),_j(this)};Ce().prototype.relu=function(){return this.throwIfDisposed(),uh(this)};Ce().prototype.relu6=function(){return this.throwIfDisposed(),DR(this)};Ce().prototype.reshapeAs=function(n){return this.throwIfDisposed(),ce(this,n.shape)};Ce().prototype.reshape=function(n){return this.throwIfDisposed(),ce(this,n)};Ce().prototype.resizeBilinear=function(n,e,t){return this.throwIfDisposed(),HR(this,n,e,t)};Ce().prototype.resizeNearestNeighbor=function(n,e,t){return this.throwIfDisposed(),qR(this,n,e,t)};Ce().prototype.reverse=function(n){return this.throwIfDisposed(),Zc(this,n)};Ce().prototype.rfft=function(){return this.throwIfDisposed(),tH(this)};Ce().prototype.round=function(){return this.throwIfDisposed(),OR(this)};Ce().prototype.rsqrt=function(){return this.throwIfDisposed(),FR(this)};Ce().prototype.selu=function(){return this.throwIfDisposed(),PR(this)};Ce().prototype.separableConv2d=function(n,e,t,r,s,o){return this.throwIfDisposed(),LR(this,n,e,t,r,s,o)};Ce().prototype.sigmoid=function(){return this.throwIfDisposed(),If(this)};Ce().prototype.sign=function(){return this.throwIfDisposed(),Uj(this)};Ce().prototype.sin=function(){return this.throwIfDisposed(),MR(this)};Ce().prototype.sinh=function(){return this.throwIfDisposed(),zR(this)};Ce().prototype.slice=function(n,e){return this.throwIfDisposed(),mn(this,n,e)};Ce().prototype.softmax=function(n){return this.throwIfDisposed(),Nk(this,n)};Ce().prototype.softplus=function(){return this.throwIfDisposed(),ex(this)};Ce().prototype.spaceToBatchND=function(n,e){return this.throwIfDisposed(),Ck(this,n,e)};Ce().prototype.split=function(n,e){return this.throwIfDisposed(),yo(this,n,e)};Ce().prototype.sqrt=function(){return this.throwIfDisposed(),jr(this)};Ce().prototype.square=function(){return this.throwIfDisposed(),bn(this)};Ce().prototype.squaredDifference=function(n){return this.throwIfDisposed(),rH(this,n)};Ce().prototype.squeeze=function(n){return this.throwIfDisposed(),nx(this,n)};Ce().prototype.stack=function(n,e){this.throwIfDisposed();const t=n instanceof tr?[this,n]:[this,...n];return sl(t,e)};Ce().prototype.step=function(n){return this.throwIfDisposed(),rx(this,n)};Ce().prototype.stridedSlice=function(n,e,t,r,s,o,i,a){return this.throwIfDisposed(),lH(this,n,e,t,r,s,o,i,a)};Ce().prototype.sub=function(n){return this.throwIfDisposed(),ut(this,n)};Ce().prototype.sum=function(n,e){return this.throwIfDisposed(),rt(this,n,e)};Ce().prototype.tan=function(){return this.throwIfDisposed(),cH(this)};Ce().prototype.tanh=function(){return this.throwIfDisposed(),wv(this)};Ce().prototype.tile=function(n){return this.throwIfDisposed(),bi(this,n)};Ce().prototype.toBool=function(){return this.throwIfDisposed(),Ge(this,"bool")};Ce().prototype.toFloat=function(){return this.throwIfDisposed(),Ge(this,"float32")};Ce().prototype.toInt=function(){return this.throwIfDisposed(),Ge(this,"int32")};Ce().prototype.topk=function(n,e){return this.throwIfDisposed(),pH(this,n,e)};Ce().prototype.transpose=function(n){return this.throwIfDisposed(),Lt(this,n)};Ce().prototype.unique=function(n){return this.throwIfDisposed(),xH(this,n)};Ce().prototype.unsortedSegmentSum=function(n,e){return this.throwIfDisposed(),GR(this,n,e)};Ce().prototype.unstack=function(n){return this.throwIfDisposed(),eh(this,n)};Ce().prototype.where=function(n,e){return this.throwIfDisposed(),us(n,this,e)};Ce().prototype.zerosLike=function(){return this.throwIfDisposed(),Mt(this)};class sa extends Error{constructor(e){super(e),Object.setPrototypeOf(this,sa.prototype)}}class jo extends Error{constructor(e){super(e),Object.setPrototypeOf(this,jo.prototype)}}class Z extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Z.prototype)}}class wt extends Error{constructor(e){super(e),Object.setPrototypeOf(this,wt.prototype)}}class cI extends Error{constructor(e){super(e),Object.setPrototypeOf(this,cI.prototype)}}class LA{constructor(e){this.maxEntries=e||100,this.cache=new Map}get(e){let t;return this.cache.has(e)&&(t=this.cache.get(e),this.cache.delete(e),this.cache.set(e,t)),t}put(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxEntries){const r=this.cache.keys().next().value;this.cache.delete(r)}this.cache.set(e,t)}getMaxEntries(){return this.maxEntries}setMaxEntries(e){if(e<0)throw new Error(`The maxEntries of LRU caches must be at least 0, but got ${e}.`);if(this.maxEntries>e)for(let t=0;tt.toUpperCase())}let Uo={};function hI(n){if(n==null)return null;const e={};return e.className=n.getClassName(),e.config=n.getConfig(),e}function $C(n){if(!(n==null||typeof n!="object"))if(Array.isArray(n))n.forEach(e=>$C(e));else{const e=Object.keys(n);for(const t of e){const r=n[t];r!=null&&typeof r=="object"&&(!Array.isArray(r)&&r.type==="ndarray"&&typeof r.value=="number"?n[t]=r.value:$C(r))}}}function ax(n,e={},t={},r="object",s=!1){if(typeof n=="string"){const o=n;let i;if(o in t)i=t[o];else if(o in Uo)i=Uo[o];else if(i=e[o],i==null)throw new Z(`Unknown ${r}: ${n}. This may be due to one of the following reasons: +1. The ${r} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. +2. The custom ${r} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return i}else{const o=n;if(o.className==null||o.config==null)throw new Z(`${r}: Improper config format: ${JSON.stringify(o)}. +'className' and 'config' must set.`);const i=o.className;let a,l;if(i in t?[a,l]=t[i]:i in Uo?[a,l]=Uo.className:i in e&&([a,l]=e[i]),a==null)throw new Z(`Unknown ${r}: ${i}. This may be due to one of the following reasons: +1. The ${r} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. +2. The custom ${r} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(l!=null){const c={};for(const y of Object.keys(Uo))c[y]=Uo[y];for(const y of Object.keys(t))c[y]=t[y];const d=o.config;d.customObjects=c;const p=Object.assign({},Uo);for(const y of Object.keys(t))Uo[y]=t[y];$C(o.config);const m=l(a,o.config,t,s);return Uo=Object.assign({},p),m}else{const c=Object.assign({},Uo);for(const p of Object.keys(t))Uo[p]=t[p];const d=new a(o.config);return Uo=Object.assign({},c),d}}}function K8(n,e){return ne?1:0}function sy(n,e){return-1*K8(n,e)}function ou(n){if(n==null)return n;const e=[];for(const t of n)e.indexOf(t)===-1&&e.push(t);return e}function X8(n){if(n==null)throw new Z(`Invalid value in obj: ${JSON.stringify(n)}`);for(const e in n)if(n.hasOwnProperty(e))return!1;return!0}function hh(n,e,t){if(t!=null&&n.indexOf(t)<0)throw new Z(`${t} is not a valid ${e}. Valid values are ${n} or null/undefined.`)}function dI(n,e,t=0,r=1/0){return oa(t>=0),oa(r>=t),Array.isArray(n)&&n.length>=t&&n.length<=r&&n.every(s=>typeof s===e)}function xr(n,e){Array.isArray(n)?(U(n.length>0,()=>`${e} is unexpectedly an empty array.`),n.forEach((t,r)=>xr(t,`element ${r+1} of ${e}`))):U(Number.isInteger(n)&&n>0,()=>`Expected ${e} to be a positive integer, but got ${MA(n)}.`)}function MA(n){return n===null?"null":Array.isArray(n)?"["+n.map(e=>MA(e)).join(",")+"]":typeof n=="string"?`"${n}"`:`${n}`}function Y8(n,e,t){let r=t!=null?t():Cs(),s;return(...i)=>{const a=t!=null?t():Cs();return a-r0){const t=`${n}_${e}`;return Vd.set(t,1),t}else return n}const oq=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function GA(n){return!!n.match(oq)}function iq(n){return n===parseInt(n.toString(),10)}function iu(n,e,t){e==null&&(e=0),t==null&&(t=n.length);let r=1;for(let s=e;se&&(e=r)}return e}function Ii(n,e){if(e{if(n.shape.length!==2)throw new Z(`repeat() expects a rank-2 tensor, but received a rank-${n.shape.length} tensor.`);const t=lx(n,1);return NC(t,[1,e,1])})}function lq(n){const e=[iu(n.shape)];return ce(n,e)}function uq(n){if(n.rank<=1)throw new Z(`batchFlatten requires a minimum rank of 2. Got rank: ${n.rank}.`);const e=[n.shape[0],iu(n.shape,1)];return ce(n,e)}function zc(n,e,t){return me(()=>{switch(n.rank){case 1:return Ik(n,e,t);case 2:return BR(n,[e,0],[t,n.shape[1]]);case 3:return $k(n,[e,0,0],[t,n.shape[1],n.shape[2]]);case 4:return Hy(n,[e,0,0,0],[t,n.shape[1],n.shape[2],n.shape[3]]);case 5:return mn(n,[e,0,0,0,0],[t,n.shape[1],n.shape[2],n.shape[3],n.shape[4]]);case 6:return mn(n,[e,0,0,0,0,0],[t,n.shape[1],n.shape[2],n.shape[3],n.shape[4],n.shape[5]]);default:throw new Z(`sliceAlongFirstAxis() received an unsupported tensor rank: ${n.rank}`)}})}function Rb(n,e,t){return me(()=>{switch(n.rank){case 1:return Ik(n,e,t);case 2:return BR(n,[0,e],[n.shape[0],t]);case 3:return $k(n,[0,0,e],[n.shape[0],n.shape[1],t]);case 4:return Hy(n,[0,0,0,e],[n.shape[0],n.shape[1],n.shape[2],t]);default:throw new Z(`sliceAlongLastAxis() received an unsupported tensor rank: ${n.rank}`)}})}function iy(n,e,t,r){return me(()=>{switch(n.rank){case 1:return Ik(n,e,t);case 2:switch(r){case 1:return zc(n,e,t);case 2:return Rb(n,e,t);default:throw new Z(`The axis is not within the rank of the tensor ${r}`)}case 3:switch(r){case 1:return zc(n,e,t);case 2:return $k(n,[0,e,0],[n.shape[0],t,n.shape[2]]);case 3:return Rb(n,e,t);default:throw new Z(`The axis is not within the rank of the tensor ${r}`)}case 4:switch(r){case 1:return zc(n,e,t);case 2:return Hy(n,[0,e,0,0],[n.shape[0],t,n.shape[2],n.shape[3]]);case 3:return Hy(n,[0,0,e,0],[n.shape[0],n.shape[1],t,n.shape[3]]);case 4:return Rb(n,e,t);default:throw new Z(`The axis is not within the rank of the tensor ${r}`)}default:throw new Z(`sliceAlongLastAxis() received an unsupported tensor rank: ${n.rank}`)}})}function fI(n,e=-1){let t;return e<0&&(t=n[0].rank,t!==0?e=t:e=0),e===n[0].rank&&(e=-1),Is(n,e)}function c2(n,e){switch(n.rank){case 1:return hV([n,e]);case 2:return fV([n,e],0);case 3:return mV([n,e],0);case 4:return xV([n,e],0);default:throw new Z(`concatAlongFirstAxis() received an unsupported tensor rank: ${n.rank}`)}}function NC(n,e){if(Array.isArray(e)||(e=[e]),n.rank!==e.length)throw new Z(`The length of input n (${e.length}) does not match the number of dimensions in input x (${n.rank})`);return bi(n,e)}function Av(n,e=0,t=1,r,s){return Tj(n,e,t,r,s)}function pa(n,e,t,r){if(n.rank<2||e.rank<2)throw new wt(`dot requires both inputs to be rank >= 2 but got x shape = ${n.shape} and y shape = ${e.shape}`);if(e.rank>=3){const s=n.shape.slice(-1)[0],o=e.shape.slice(-2)[0];if(s!==o)throw new wt(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${n.shape} and y shape = ${e.shape}`)}if(n.rank===2&&e.rank===2)return KN({a:n,b:e,transposeA:!1,transposeB:!1,bias:r?TC(n.rank,r,$i()):null,activation:t});{const s=n.shape.slice(),o=s.pop();n=ce(n,[-1,o]);const i=e.shape.slice(),a=i.pop(),l=i.pop(),c=[...i,a],d=Array.from({length:e.rank},(v,b)=>b===0?e.rank-2:b<=e.rank-2?b-1:b);e=ce(Lt(e,d),[l,-1]);const p=[...s,...c];return ce(KN({a:n,b:e,transposeA:!1,transposeB:!1,bias:r?TC(n.rank,r,$i()):null,activation:t}),p)}}function jA(n,e,t){return me(()=>(Array.isArray(e)?e=qs(e,"int32"):e=Ge(e,"int32"),mk(n,e,t)))}function ux(n){return ne(n,n)}function TC(n,e,t){const r=e.shape;if(e.rank!==1&&e.rank!==n)throw new Z(`Unexpected bias dimensions: ${e.rank}; expected it to be 1 or ${n}`);if(n===5){if(t==="channelsFirst")return r.length===1?ce(e,[1,r[0],1,1,1]):ce(e,[1,r[3],r[0],r[1],r[2]]);if(t==="channelsLast")return r.length===1?ce(e,[1,1,1,1,r[0]]):ce(e,[1].concat(r))}else if(n===4){if(t==="channelsFirst")return r.length===1?ce(e,[1,r[0],1,1]):ce(e,[1,r[2],r[0],r[1]]);if(t==="channelsLast")return r.length===1?ce(e,[1,1,1,r[0]]):ce(e,[1].concat(r))}else if(n===3){if(t==="channelsFirst")return r.length===1?ce(e,[1,r[0],1]):ce(e,[1,r[1],r[0]]);if(t==="channelsLast")return r.length===1?ce(e,[1,1,r[0]]):ce(e,[1].concat(r))}else if(n<3)return e;throw new Z(`Unsupported input rank by biasAdd: ${e.rank}`)}function Ei(n,e,t){return me(()=>(t==null&&(t=$i()),Vn(t),Pe(n,TC(n.rank,e,t))))}function cq(n,e=1){if(e!==1)throw new wt(`Support for alpha values other than 1 (${e}) is not implemented yet.`);return Sv(n)}function hq(n){return me(()=>st(n,Pe(os(n),1)))}function HA(n,e,t,r){return me(()=>kH(n,e,t,r))}function dq(n){return me(()=>{const e=Pe(.5,ne(.2,n));return wo(e,0,1)})}function cx(n,e,t=!1){return t?n():e()}const fq=["fanIn","fanOut","fanAvg"],pq=["normal","uniform","truncatedNormal"];function mq(n){hh(fq,"FanMode",n)}function gq(n){hh(pq,"Distribution",n)}class Yo extends Tf{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}}class qA extends Yo{apply(e,t){return gr(e,t)}}qA.className="Zeros";_e(qA);class pI extends Yo{apply(e,t){return wu(e,t)}}pI.className="Ones";_e(pI);class KA extends Yo{constructor(e){if(super(),typeof e!="object")throw new Z(`Expected argument of type ConstantConfig but got ${e}`);if(e.value===void 0)throw new Z(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return me(()=>ne(Kt(this.value),wu(e,t)))}getConfig(){return{value:this.value}}}KA.className="Constant";_e(KA);class XA extends Yo{constructor(e){super(),this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=e.minval||this.DEFAULT_MINVAL,this.maxval=e.maxval||this.DEFAULT_MAXVAL,this.seed=e.seed}apply(e,t){return tx(e,this.minval,this.maxval,t,this.seed)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}}XA.className="RandomUniform";_e(XA);class YA extends Yo{constructor(e){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new wt(`randomNormal does not support dType ${t}.`);return Av(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}}YA.className="RandomNormal";_e(YA);class QA extends Yo{constructor(e){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new wt(`truncatedNormal does not support dType ${t}.`);return VR(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}}QA.className="TruncatedNormal";_e(QA);class JA extends Yo{constructor(e){super(),this.gain=e.gain!=null?e.gain:1}apply(e,t){return me(()=>{if(e.length!==2||e[0]!==e[1])throw new Z("Identity matrix initializer can only be used for 2D square matrices.");return ne(this.gain,$R(e[0]))})}getConfig(){return{gain:this.gain}}}JA.className="Identity";_e(JA);function xq(n,e="channelsLast"){let t,r;if(Vn(e),n.length===2)t=n[0],r=n[1];else if([3,4,5].indexOf(n.length)!==-1){if(e==="channelsFirst"){const s=iu(n,2);t=n[1]*s,r=n[0]*s}else if(e==="channelsLast"){const s=iu(n,0,n.length-2);t=n[n.length-2]*s,r=n[n.length-1]*s}}else{const s=iu(n);t=Math.sqrt(s),r=Math.sqrt(s)}return[t,r]}class Qs extends Yo{constructor(e){if(super(),e.scale<0)throw new Z(`scale must be a positive float. Got: ${e.scale}`);this.scale=e.scale==null?1:e.scale,this.mode=e.mode==null?"fanIn":e.mode,mq(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,gq(this.distribution),this.seed=e.seed}apply(e,t){const r=xq(e),s=r[0],o=r[1];let i=this.scale;if(this.mode==="fanIn"?i/=Math.max(1,s):this.mode==="fanOut"?i/=Math.max(1,o):i/=Math.max(1,(s+o)/2),this.distribution==="normal"){const a=Math.sqrt(i);if(t=t||"float32",t!=="float32"&&t!=="int32")throw new wt(`${this.getClassName()} does not support dType ${t}.`);return VR(e,0,a,t,this.seed)}else{const a=Math.sqrt(3*i);return tx(e,-a,a,t,this.seed)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}}Qs.className="VarianceScaling";_e(Qs);class mI extends Qs{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Qs.className}}mI.className="GlorotUniform";_e(mI);class gI extends Qs{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Qs.className}}gI.className="GlorotNormal";_e(gI);class xI extends Qs{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Qs.className}}xI.className="HeNormal";_e(xI);class yI extends Qs{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Qs.className}}yI.className="HeUniform";_e(yI);class vI extends Qs{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Qs.className}}vI.className="LeCunNormal";_e(vI);class wI extends Qs{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Qs.className}}wI.className="LeCunUniform";_e(wI);class ZA extends Yo{constructor(e){super(),this.DEFAULT_GAIN=1,this.ELEMENTS_WARN_SLOW=2e3,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed}apply(e,t){return me(()=>{if(e.length<2)throw new wt("Shape must be at least 2D.");if(t!=="int32"&&t!=="float32"&&t!==void 0)throw new TypeError(`Unsupported data type ${t}.`);t=t;const r=Se(e.slice(0,-1)),s=e[e.length-1],o=r*s;o>this.ELEMENTS_WARN_SLOW&&console.warn(`Orthogonal initializer is being called on a matrix with more than ${this.ELEMENTS_WARN_SLOW} (${o}) elements: Slowness may result.`);const i=[Math.max(s,r),Math.min(s,r)],a=Av(i,0,1,t,this.seed),l=w5.qr(a,!1);let c=l[0];const p=l[1].flatten().stridedSlice([0],[Math.min(s,r)*Math.min(s,r)],[Math.min(s,r)+1]);return c=ne(c,p.sign()),rr*s);return e}const f2="Variable";class yq{constructor(e,t="float32",r=f2,s=!0,o=null){this.dtype=t??"float32",this.shape=e.shape,this.id=BA(),r=r??f2,this.originalName=WA(r),this.name=VA(this.originalName),this.trainable_=s,this.constraint=o,this.val=wH(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),vq(this.val,e),this.val.id!==e.id&&(this.val.assign(e),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(e){this.trainable_=e,this.val.trainable=e}}function vq(n,e){if(n.shape.toString()!==e.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(n.shape)+" vs. "+JSON.stringify(e.shape))}function RC(n){return n.map(e=>e.read())}function bI(n){n.forEach(e=>{e[0].write(e[1])})}class rr{constructor(e){this.dtype=e.dtype,this.shape=e.shape,e.shape!=null?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}}class va{constructor(e,t,r,s,o,i,a){this.dtype=e,this.shape=t,this.sourceLayer=r,this.inputs=s,this.callArgs=o,this.outputTensorIndex=a,this.id=BA(),i!=null&&(this.originalName=WA(i),this.name=VA(this.originalName)),this.rank=t.length}}let wq=0;class _v{constructor(e,t){this.callArgs=t,this.id=wq++,this.outboundLayer=e.outboundLayer,this.inboundLayers=e.inboundLayers,this.nodeIndices=e.nodeIndices,this.tensorIndices=e.tensorIndices,this.inputTensors=e.inputTensors,this.outputTensors=e.outputTensors,this.inputMasks=e.inputMasks,this.outputMasks=e.outputMasks,this.inputShapes=e.inputShapes,this.outputShapes=e.outputShapes;for(const r of e.inboundLayers)r?.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){const e=[];for(const t of this.inboundLayers)t!=null?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}}let bq=0;class Et extends Tf{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=bq++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let t=e.name;if(!t){const r=this.getClassName();t=el(r)+"_"+Rv(r)}if(this.name=t,this.trainable_=e.trainable==null?!0:e.trainable,e.inputShape!=null||e.batchInputShape!=null){let r;if(e.batchInputShape!=null)r=e.batchInputShape;else if(e.inputShape!=null){let o=null;e.batchSize!=null&&(o=e.batchSize),r=[o].concat(e.inputShape)}this.batchInputShape=r;let s=e.dtype;s==null&&(s=e.inputDType),s==null&&(s="float32"),this.dtype=s}e.weights!=null?this.initialWeights=e.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(e,t){return e.name+"_ib-"+t.toString()}getNodeAtIndex(e,t){if(this.inboundNodes.length===0)throw new jo(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new Z(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return ks(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return ks(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new sa(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new sa(`Layer ${this.name} is not connected, no input to return.`);return ks(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new sa(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new sa(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return ks(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(e=>e())}get updates(){return this._updates}get built(){return this._built}set built(e){this._built=e}get trainable(){return this.trainable_}set trainable(e){this._trainableWeights.forEach(t=>t.trainable=e),this.trainable_=e}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(e=>e.trainable):[]}set trainableWeights(e){this._trainableWeights=e}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(e=>!e.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(e){this._nonTrainableWeights=e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(e){const t=rn(e);if(this.inputSpec==null||this.inputSpec.length===0)return;const r=rn(this.inputSpec);if(t.length!==r.length)throw new Z(`Layer ${this.name} expects ${r.length} inputs, but it received ${t.length} input tensors. Input received: ${e}`);for(let s=0;si.maxNDim)throw new Z(`Input ${s} is incompatible with layer ${this.name}: expected max_ndim=${i.maxNDim}, found ndim=${a}`);if(i.minNDim!=null&&a=0?l[d]:l[l.length+d];if(p!=null&&[p,null].indexOf(m)===-1)throw new Z(`Input ${s} is incompatible with layer ${this.name}: expected axis ${d} of input shape to have value ${p} but got shape ${l}.`)}}if(i.shape!=null)for(let l=0;l{if(!this.built){this.assertInputCompatibility(e);const i=[];for(const a of rn(e))i.push(a.shape);this.build(ks(i)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&o&&(this._refCount=1)}if(this.assertInputCompatibility(e),o){let i=this.call(e,t);this.supportsMasking&&this.setMaskMetadata(e,i);const a=rn(i),l=[];for(let c of a)r.indexOf(c)!==-1&&(c=c.clone()),l.push(c);if(i=ks(l),this.activityRegularizer!=null)throw new wt("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return i}else{const i=Cq(e),a=this.computeOutputShape(i);let l;const c=Sq(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?i[0]:i),a!=null&&a.length>0&&Array.isArray(a[0])?l=a.map((d,p)=>new va(c,d,this,rn(e),t,this.name,p)):l=new va(c,a,this,rn(e),t,this.name),this.addInboundNode(e,l,null,null,i,a,t),this._refCount++,this.activityRegularizer!=null)throw new wt("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return l}})}warnOnIncompatibleInputShape(e){if(this.batchInputShape!=null)if(e.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(e)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let t=!1;this.batchInputShape.forEach((r,s)=>{r!=null&&e[s]!=null&&e[s]!==r&&(t=!0)}),t&&console.warn(`The shape of the input tensor (${JSON.stringify(e)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new sa(`The layer ${this.name} has never been called and thus has no defined output shape.`);const e=[];for(const t of this.inboundNodes){const r=JSON.stringify(t.outputShapes);e.indexOf(r)===-1&&e.push(r)}if(e.length===1){const t=this.inboundNodes[0].outputShapes;return Array.isArray(t)&&Array.isArray(t[0])&&t.length===1?t[0]:t}else throw new sa(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new jo(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Ky(this.weights)}build(e){this.built=!0}getWeights(e=!1){return RC(e?this.trainableWeights:this.weights)}setWeights(e){me(()=>{const t=this.weights;if(t.length!==e.length)throw new Z(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${e.length}, but the layer was expecting ${t.length} weights. Provided weights: ${e}...`);if(t.length===0)return;const r=[],s=RC(t);for(let o=0;oo.apply(d.read())),i==null&&(i=!0),i?this._trainableWeights.push(d):this._nonTrainableWeights.push(d),d}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){e==null||Array.isArray(e)&&e.length===0||(e=rn(e),this._losses!==void 0&&this._losses!==null&&this.losses.push(...e))}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(t!=null)if(Array.isArray(t))t.forEach(r=>{if(r!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return t}setMaskMetadata(e,t,r){if(!this.supportsMasking)return;const s=this.computeMask(e,r),o=rn(t),i=rn(s);if(o.length!==i.length)throw new Error(`${this.name} outputs ${o.length} tensors but ${o.length} masks for those tensors`);for(let a=0;ae.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return--this._refCount===0&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}}function Cq(n){n=rn(n);const e=[];for(const t of n)e.push(t.shape);return ks(e)}function Sq(n){return"float32"}function e_(n,e,t){if((e==null||t!=null&&t>0)&&(e=n.sourceLayer,t=n.nodeIndex),e.inboundNodes.length===0)return[n];{const r=e.inboundNodes[t];if(r.inboundLayers.length===0)return r.inputTensors;{const s=[];for(let o=0;ov.name),l=[],c=e.names();for(const v of a)c.indexOf(v)!==-1?l.push(e.getValue(v)):l.push(null);const d=a.join(",")+"|"+e.names().sort().join(",");let p=Xy.get(d),m;if(p==null){const v=Eq(i,e);p=v.sorted,m=v.recipientCounts,Xy.put(d,p),Yy.put(d,m)}m={},s||Object.assign(m,Yy.get(d));const y=new eu(e);for(let v=0;v0,()=>"Expected at least one fetch, got none");let t=[],r={};if(n.length===1){const s=p2(n[0],e);t=s.sorted,r=s.recipientMap}else{const s=new Set;for(const o of n){const{sorted:i,recipientMap:a}=p2(o,e);for(const l of i)s.has(l.name)||(t.push(l),s.add(l.name));for(const l in a)r[l]==null&&(r[l]=new Set),a[l].forEach(c=>r[l].add(c))}}return{sorted:t,recipientCounts:Rq(r)}}function Rq(n){const e={};for(const t in n)e[t]=n[t].size;return e}function p2(n,e){const t=new Set,r=[],s={};for(const a of e.names())t.add(a);const o=[],i=[];for(o.push(n);o.length>0;){const a=o[o.length-1];if(t.has(a.name)){o.pop();continue}const l=i[i.length-1]===o.length-1;if(a.inputs.length===0||l)o.pop(),r.push(a),t.add(a.name),l&&i.pop();else{i.push(o.length-1);for(const c of a.inputs)s[c.name]==null&&(s[c.name]=new Set),s[c.name].add(a.name),!t.has(c.name)&&o.push(c)}}return{sorted:r,recipientMap:s}}function Aq(n){let e;if(n.sourceLayer.inboundNodes.length===1)e=n.sourceLayer.output;else{let t=null;for(let r=0;r100,Tq);function CI(n,e){return me(()=>jr(rt(ne(n,n),e,!0)))}class dx extends Tf{getConfig(){return{}}}class t_ extends dx{constructor(e){super(),this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return me(()=>{const t=CI(e,this.axis),r=wo(t,0,this.maxValue);return ne(e,st(r,Pe(nr(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}}t_.className="MaxNorm";_e(t_);class n_ extends dx{constructor(e){super(),this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return me(()=>st(e,Pe(nr(),CI(e,this.axis))))}getConfig(){return{axis:this.axis}}}n_.className="UnitNorm";_e(n_);class r_ extends dx{apply(e){return uh(e)}}r_.className="NonNeg";_e(r_);class s_ extends dx{constructor(e){super(),this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=e.minValue!=null?e.minValue:this.defaultMinValue,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.rate=e.rate!=null?e.rate:this.defaultRate,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return me(()=>{const t=CI(e,this.axis),r=Pe(ne(this.rate,wo(t,this.minValue,this.maxValue)),ne(1-this.rate,t));return ne(e,st(r,Pe(nr(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}}s_.className="MinMaxNorm";_e(s_);const m2={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function or(n){return hI(n)}function g2(n,e={}){return ax(n,Go.getMap().classNameMap,e,"constraint")}function ir(n){if(n==null)return null;if(typeof n=="string"){const t={className:n in m2?m2[n]:n,config:{}};return g2(t)}else return n instanceof dx?n:g2(n)}async function $c(n){if(n==null)return;const e=[],t=[],r=[];for(const s in n){const o=n[s];if(typeof o!="number"){const i=o;e.push(i.data()),t.push(s),r.push(i)}}if(e.length>0){const s=await Promise.all(e);for(let o=0;oPe(this.totals[s],ne(o,r)));this.totals[s]=a,i?.dispose()}}}async onEpochEnd(e,t){if(t!=null)for(const r of this.params.metrics)this.totals[r]!=null&&(typeof this.totals[r]=="number"?t[r]=this.totals[r]/this.seen:me(()=>{const s=ne(st(1,this.seen),this.totals[r]);t[r]=s,this.totals[r].dispose(),ha(t[r])}))}}class Pq extends Um{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){t==null&&(t={}),this.epoch.push(e);for(const r in t)this.history[r]==null&&(this.history[r]=[]),this.history[r].push(t[r])}async syncData(){const e=[],t=[],r=[];for(const o in this.history){const i=this.history[o];for(let a=0;anew Lq(r,e))}class Vo{constructor(){}static registerCallbackConstructor(e,t){U(e>=0&&Number.isInteger(e),()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`),Vo.checkForDuplicate(t),Vo.constructors[e]==null&&(Vo.constructors[e]=[]),Vo.constructors[e].push(t)}static checkForDuplicate(e){for(const t in Vo.constructors)Vo.constructors[+t].forEach(s=>{if(s===e)throw new Z("Duplicate callback constructor.")})}static clear(){Vo.constructors={}}static createCallbacks(e){const t=[];for(const r in Vo.constructors){const s=+r;e>=s&&t.push(...Vo.constructors[s])}return t.map(r=>new r)}}Vo.constructors={};function a_(n,e,t,r,s,o,i,a,l){const c=new Pq,d=[new Fq,...Vo.createCallbacks(e)];n!=null&&d.push(...n),d.push(c);const p=new Oq(d);return p.setParams({epochs:t,initialEpoch:r,samples:s,steps:o,batchSize:i,verbose:e,doValidation:a,metrics:l}),{callbackList:p,history:c}}function ma(n,e={},t=!1){return ax(n,Go.getMap().classNameMap,e,"layer",t)}function Qy(n,e){return me(()=>{n.dtype!=="float32"&&(n=Ge(n,"float32"));const t=rt(ux(n),e,!0),r=Cv(t.shape,nr()),s=jr(vu(t,r));return st(n,s)})}function Dv(n,e){return me(()=>Xn(ux(ut(e,n)),-1))}function SI(n,e){return me(()=>Xn(os(ut(e,n)),-1))}function kI(n,e){return me(()=>{const t=ut(n,e),r=wo(os(n),nr(),Number.MAX_VALUE),s=os(st(t,r));return ne(100,Xn(s,-1))})}function Mq(n,e){return me(()=>{const t=wo(e,nr(),Number.MAX_VALUE),r=ya(Pe(1,t)),s=wo(n,nr(),Number.MAX_VALUE),o=ya(Pe(1,s));return Xn(ux(ut(r,o)),-1)})}function zq(n,e){return me(()=>{const t=vu(0,ut(1,ne(n,e)));return Xn(ux(t),-1)})}function Bq(n,e){return me(()=>{const t=vu(0,ut(1,ne(n,e)));return Xn(t,-1)})}function Uq(n,e){return me(()=>{const t=rt(ne(n,e),-1),r=Si(ne(ut(1,n),e),-1);return vu(0,Pe(1,ut(r,t)))})}function Wq(n,e){return me(()=>{const t=Math.log(2),r=ut(e,n),s=ut(Pe(r,ex(ne(-2,r))),t);return Xn(s,-1)})}function Wm(n,e,t=!1){return me(()=>{if(t)e=Nk(e);else{const r=rt(e,e.shape.length-1,!0);e=st(e,r)}return e=wo(e,nr(),1-nr()),zn(rt(ne(Ge(n,"float32"),ya(e)),e.shape.length-1))})}function Jy(n,e,t=!1){return me(()=>{const r=Ge(Iv(lq(n)),"int32");e=wo(e,nr(),1-nr());const s=e.shape,o=ce(AR(r,s[s.length-1]),s);return Wm(o,e,t)})}function Vq(n,e){if(!Xt(n.shape,e.shape))throw new Z(`logits and labels must have the same shape, but got shapes ${JSON.stringify(n.shape)} and ${JSON.stringify(e.shape)}`);return me(()=>{const t=uh(e),r=zn(os(e));return Pe(ut(t,ne(e,n)),NR(xa(r)))})}function Ov(n,e){return me(()=>{let t;return t=wo(e,nr(),1-nr()),t=ya(st(t,ut(1,t))),Xn(Vq(n,t),-1)})}function Gq(n,e){return me(()=>{const t=wo(n,nr(),1),r=wo(e,nr(),1);return rt(ne(n,ya(st(t,r))),-1)})}function jq(n,e){return me(()=>{const t=ya(Pe(nr(),e));return Xn(ut(e,ne(n,t)),-1)})}function l_(n,e){return me(()=>{const t=Qy(n,-1),r=Qy(e,-1),s=ne(t,r);return zn(rt(s,-1))})}const Zy={meanSquaredError:Dv,meanAbsoluteError:SI,meanAbsolutePercentageError:kI,meanSquaredLogarithmicError:Mq,squaredHinge:zq,hinge:Bq,categoricalHinge:Uq,logcosh:Wq,categoricalCrossentropy:Wm,sparseCategoricalCrossentropy:Jy,binaryCrossentropy:Ov,kullbackLeiblerDivergence:Gq,poisson:jq,cosineProximity:l_};function Ab(n){if(typeof n=="string"){if(n in Zy)return Zy[n];let e=`Unknown loss ${n}`;throw n.toLowerCase().includes("softmaxcrossentropy")&&(e=`Unknown loss ${n}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new Z(e)}else return n}function u_(n,e){return me(()=>{const t=ne(.5,Ko(e)),r=fa(bo(e,t),n.dtype);return Xn(ga(n,r),-1)})}function c_(n,e){return me(()=>fa(ga(Pm(n,-1),Pm(e,-1)),"float32"))}function Hq(n,e){return me(()=>Ge(rt(rl(ga(n,1),ga(e,1))),"float32"))}function qq(n,e){return me(()=>Ge(rt(rl(ga(n,0),ga(e,1))),"float32"))}function Kq(n,e){return me(()=>{const t=Hq(n,e),r=qq(n,e),s=Pe(t,r);return Ge(us(bo(s,0),st(t,s),0),"float32")})}function Xq(n,e){return Ov(n,e)}function Yq(n,e){return n.rank===e.rank&&(n=nx(n,[n.rank-1])),e=Pm(e,-1),e.dtype!==n.dtype&&(e=Ge(e,n.dtype)),Ge(ga(n,e),"float32")}const Qq=Dv,Jq=Dv,Zq=SI,eK=SI,tK=kI,nK=kI,h_=Wm,rK=l_,d_=Jy,e1={binaryAccuracy:u_,categoricalAccuracy:c_,precision:Kq,categoricalCrossentropy:h_,sparseCategoricalCrossentropy:d_,mse:Qq,MSE:Jq,mae:Zq,MAE:eK,mape:tK,MAPE:nK,cosine:rK};function sK(n){if(typeof n=="string"&&n in e1)return e1[n];if(typeof n!="string"&&n!=null)return n;throw new Z(`Unknown metric ${n}`)}function ay(n){if(oa(n!==null,`Unknown LossOrMetricFn ${n}`),typeof n=="string")return n;{let e;for(const t of Object.keys(Zy))if(Zy[t]===n){e=t;break}if(e!==void 0)return e;for(const t of Object.keys(e1))if(e1[t]===n){e=t;break}return e!==void 0?e:n.name}}function oK(n){const e={Adagrad:()=>Wd.adagrad(.01),Adadelta:()=>Wd.adadelta(1,.95,nr()),Adam:()=>Wd.adam(.001,.9,.999,nr()),Adamax:()=>Wd.adamax(.002,.9,.999,nr(),0),RMSProp:()=>Wd.rmsprop(.001,.9,0,nr()),SGD:()=>Wd.sgd(.01)};if(e.adagrad=e.Adagrad,e.adadelta=e.Adadelta,e.adam=e.Adam,e.adamax=e.Adamax,e.rmsprop=e.RMSProp,e.sgd=e.SGD,n in e)return e[n]();throw new Z(`Unknown Optimizer ${n}`)}const y2=1*1024*1024;function v2(n,e,t=!1){if(n==null||typeof n!="object"||Object.getPrototypeOf(n)!==Object.prototype||!AC(n))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(t){const r=JSON.stringify(n);r.length>y2&&console.warn(`User-defined metadata of model "${e}" is too large in size (length=${r.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${y2}.`)}}function AC(n){if(n===null)return!0;if(typeof n=="object")if(Object.getPrototypeOf(n)===Object.prototype){const e=Object.keys(n);for(const t of e)if(typeof t!="string"||!AC(n[t]))return!1;return!0}else if(Array.isArray(n)){for(const e of n)if(!AC(e))return!1;return!0}else return!1;else{const e=typeof n;return e==="string"||e==="number"||e==="boolean"}}function iK(n,e,t,r=console.log){const s=lK(n),o=["Layer (type)","Input Shape","Output shape","Param #"];s?(e=e||90,t=t||[.32,.61,.89,1]):(e=e||115,t=t||[.24,.48,.7,.8,1]),t[t.length-1]<=1&&(t=t.map(d=>Math.floor(e*d)));let i;if(!s){o.push("Receives inputs"),i=[];for(const d in n.nodesByDepth)i.push(...n.nodesByDepth[d])}r("_".repeat(e)),t1(o,t,r),r("=".repeat(e));const a=n.layers;for(let d=0;d1||s.length===1&&s[0].inboundLayers.length>1){e=!1;break}r.push(...s)}if(e)for(const s of n.layers){let o=!1;for(const i of s.inboundNodes)if(r.indexOf(i)!==-1)if(o){e=!1;break}else o=!0;if(!e)break}return e}function t1(n,e,t=console.log){let r="";for(let s=0;s0&&(r=r.slice(0,r.length-1)+" "),r+=n[s],r=r.slice(0,e[s]),r+=" ".repeat(e[s]-r.length);t(r)}function uK(n,e,t){let r,s;try{s=n.inboundNodes.map(l=>JSON.stringify(l.inputShapes)).join(",")}catch{s="multiple"}try{r=JSON.stringify(n.outputShape)}catch{r="multiple"}const o=n.name,i=n.getClassName(),a=[`${o} (${i})`,s,r,n.countParams().toString()];t1(a,e,t)}function cK(n,e,t,r){let s,o;try{o=n.inboundNodes.map(p=>JSON.stringify(p.inputShapes)).join(",")}catch{o="multiple"}try{s=JSON.stringify(n.outputShape)}catch{s="multiple"}const i=[];for(const p of n.inboundNodes)if(!(t!=null&&t.length>0&&t.indexOf(p)===-1))for(let m=0;m{const e=Object.keys(n);if(e.length===0)return!1;const t=e[0].split("/");return!isNaN(parseInt(t[t.length-1],10))};class xi extends Et{constructor(e){if(super({}),this.containerNodes=new Set,this.name=e.name,this.name==null){const I=this.getClassName().toLowerCase();this.name=Rv(I)}if(this.supportsMasking=!1,this.trainable_=!0,Array.isArray(e.inputs)?this.inputs=e.inputs.slice():this.inputs=[e.inputs],Array.isArray(e.outputs)?this.outputs=e.outputs.slice():this.outputs=[e.outputs],ou(this.inputs).length!==this.inputs.length)throw new Z(`The list of inputs passed to the model is redundant. All inputs should only appear once. Found: ${this.inputs.map(I=>I.name)}`);ou(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(I=>I.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(const I of this.outputs){const N=I.sourceLayer,T=I.nodeIndex,A=I.tensorIndex;this.outputLayers.push(N),this.outputLayersNodeIndices.push(T),this.outputLayersTensorIndices.push(A)}for(const I of this.inputs){const N=I.sourceLayer,T=I.nodeIndex,A=I.tensorIndex;oa(T===0,"input layer has >1 nodes"),oa(A===0,"input layer has >1 tensors"),this.inputLayers.push(N),this.inputLayersNodeIndices.push(T),this.inputLayersTensorIndices.push(A)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let I=0;II.shape),this.internalOutputShapes=this.outputs.map(I=>I.shape);const t={},r={},s={},o={},i={},a=[],l=(I,N,T,A,O,P)=>{(A==null||O==null||P==null)&&(A=I.sourceLayer,O=I.nodeIndex,P=I.tensorIndex);const B=A.inboundNodes[O];if(T.indexOf(B)!==-1)throw new jo(`The tensor ${I.name} at layer "${A.name}" is part of a cycle.`);if(N.indexOf(B)!==-1)return;this.containerNodes.add(xi.nodeKey(A,O)),A.id in i||(i[A.id]=Object.keys(i).length),T.indexOf(B)===-1&&T.push(B);const z=B.inboundLayers.length;for(let L=0;L=0;)T.splice(T.indexOf(B),1);a.push(B)},c=[],d=[];for(const I of this.outputs)l(I,c,d);const p=a.slice().reverse();for(const I of p){r[I.id]=I,I.id in t||(t[I.id]=0);let N=t[I.id];const T=s[I.outboundLayer.id]==null?0:s[I.outboundLayer.id];N=Math.max(N,T),s[I.outboundLayer.id]=N,o[I.outboundLayer.id]=I.outboundLayer,t[I.id]=N;for(let A=0;AparseInt(I,10)).sort(sy);this.layers=[];for(const I of v){const N=y[I];N.sort((T,A)=>{const O=i[T.id],P=i[A.id];return OP?1:0});for(const T of N)T instanceof xi&&this.internalContainerRefs.push(T),this.layers.push(T)}this.layersByDepth=y,v=Object.keys(m).map(I=>parseInt(I,10)).sort(sy);const b=this.inputs.slice(),w=[];for(const I of v)for(const N of m[I]){const T=N.outboundLayer;if(T!=null){for(const A of N.inputTensors)if(b.indexOf(A)===-1)throw new jo(`Graph disconnected: cannot obtain value for tensor ${A} at layer "${T.name}". The following previous layers were accessed without issue: ${w}`);for(const A of N.outputTensors)b.push(A);w.push(T.name)}}this.nodesByDepth=m;const k=this.layers.map(I=>I.name);for(const I of k){const N=k.filter(T=>T===I).length;if(N!==1)throw new jo(`The name "${I}" is used ${N} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(k))}this.outboundNodes=[],this.inboundNodes=[],new _v({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(I=>null),outputMasks:this.outputs.map(I=>null),inputShapes:this.inputs.map(I=>I.shape),outputShapes:this.outputs.map(I=>I.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();const e={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(const t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(const t of this.internalContainerRefs)e.numDisposedVariables+=t.dispose().numDisposedVariables}return e.refCountAfterDispose=this._refCount,e}get trainable(){return this.trainable_}set trainable(e){this.layers.forEach(t=>{t._trainableWeights.forEach(r=>r.trainable=e)}),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new Z("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let e=[];for(const t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){const e=[];for(const t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){const t=[];for(const r of this.layers)t.push(...r.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){const r={};let s=0;const o=hK(e);o&&this.parseWeights(e);for(const a of this.layers)for(const[l,c]of a.weights.entries()){const d=o?`${c.name.split("/").slice(0,-1).join("/")+"/"}${l}`:c.originalName;if(r[d]!=null)throw new Z(`Duplicate weight name: ${d}`);r[d]=c,s++}const i=[];for(const a in e){let l=a;if(r[a]==null){const c=a.split("/");l=c.slice(0,-2).concat([c[c.length-1]]).join("/")}if(r[l]!=null)i.push([r[l],e[a]]);else if(t)throw new Z(`Provided weight data has no target variable: ${a}`);delete r[l]}if(t){const a=[];for(const l in r)a.push(l);if(a.length>0)throw new Z(`${a.length} of ${s} weights are not set: ${a}`)}bI(i)}parseWeights(e){for(const t in Object.keys(e)){const r=t.split("/"),s=["vars","layer_checkpoint_dependencies"],o=r.map(i=>i.startsWith("_")?i.slice(1):i).filter(i=>!s.includes(i)).join("/");o!==t&&(e[o]=e[t],delete e[t])}}updatedConfig(){const e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${p_}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){const r=_C(this.updatedConfig());return t?JSON.stringify(r):r}call(e,t){return me(()=>{e=rn(e);const r=new eu;for(let s=0;s{e=rn(e);let r;return t==null?r=th(null,e.length):r=rn(t),this.runInternalGraph(e,r)[1]})}computeOutputShape(e){const t=qy(e);if(t.length!==this.inputLayers.length)throw new Z(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);const r={};for(let a=0;aparseInt(a,10)).sort(sy);if(s.length>1)for(const a of s){const l=this.nodesByDepth[a];for(const c of l){const d=c.outboundLayer;if(this.inputLayers.map(b=>b.id).indexOf(d.id)!==-1)continue;const p=[];for(let b=0;bparseInt(l,10)).sort(sy);for(const l of s){const c=this.nodesByDepth[l];for(const d of c){const p=d.outboundLayer,m=d.inputTensors,y=d.outputTensors,v=new Array;for(const b of m)b.id in r&&v.push(r[b.id]);if(v.length===m.length){let b={},w,k,I,N;if(d.callArgs!=null&&(b=d.callArgs),v.length===1){const[T,A]=v[0];b.mask==null&&(b.mask=A),I=rn(p.call(T,b)),N=rn(p.computeMask(T,A)),w=[T],k=[A]}else w=v.map(T=>T[0]),k=v.map(T=>T[1]),b.mask==null&&(b.mask=k),I=rn(p.call(w,b)),N=rn(p.computeMask(w,k));if(p.activityRegularizer)throw new wt("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let T=0;T{const e=[];for(const t of this.layers)for(let r=0;r0){const b=[];for(let w=0;w0&&w.apply(ks(I),N)}function c(w){const k=w.name,I=ma(w,t.customObjects!=null?t.customObjects:{});I.setFastWeightInitDuringBuild(s),o[k]=I,w.inboundNodes.forEach(T=>{if(!(T instanceof Array))throw new Z(`Corrupted configuration, expected array for nodeData: ${T}`);a(I,T)})}const d=t.name,p=t.layers;for(const w of p)c(w);for(;!X8(i);)for(const w of p){const k=o[w.name];if(k.name in i){const I=i[k.name];delete i[k.name];for(const N of I)l(k,N)}}const m=[],y=[],v=t.inputLayers;for(const w of v){const k=w[0],I=w[1],N=w[2];oa(k in o);const A=o[k].inboundNodes[I].outputTensors;m.push(A[N])}const b=t.outputLayers;for(const w of b){const k=w[0],I=w[1],N=w[2];oa(k in o);const A=o[k].inboundNodes[I].outputTensors;y.push(A[N])}return new e({inputs:m,outputs:y,name:d})}get stateful(){if(this._stateful)throw new Z("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(const e of this.layers)if(e.stateful)return!0;return!1}resetStates(){me(()=>{this.layers.forEach(e=>{e.stateful&&e.resetStates()})})}}function dK(n,e,t){const r=e.length;if(n==null||Array.isArray(n)&&n.length===0)return e.map(s=>null);if(r===1)return Array.isArray(n)&&n.length===1?n:typeof n=="object"&&e[0]in n?[n[e[0]]]:[n];if(Array.isArray(n)){if(n.length!==r)throw new Error(`Provided ${t} is an array of ${n.length} element(s), but the model has ${r} outputs. Make sure a set of weights is provided for each model output.`);return n}else if(typeof n=="object"&&Object.keys(n).length>0&&typeof n[Object.keys(n)[0]]=="object"){const s=[];return e.forEach(o=>{o in n?s.push(n[o]):s.push(null)}),s}else throw new Error(`The model has multiple (${r}) outputs, so ${t} must be either an array with ${r} elements or an object with ${e} keys. Provided ${t} not understood: ${JSON.stringify(n)}`)}function m_(n,e){return dK(n,e,"classWeight")}async function g_(n,e,t,r){if(t!=null){const s=me(()=>{if(n.shape.length===1)return Lc(n);if(n.shape.length===2){if(n.shape[1]>1)return Pm(n,1);if(n.shape[1]===1)return ce(n,[n.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${n.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${n.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),o=Array.from(await s.data());kt(s);const i=[];return o.forEach(a=>{if(t[a]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${a} exists in the data but not in classWeight`);i.push(t[a])}),qs(i,"float32")}else return null}function fK(n,e){return ne(n,e)}const pK=32;function x_(n,e){let t,r;const s=e;t=s.xs,r=s.ys,U(t!=null&&r!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${e}`);const o=w2("input",n.inputNames,t),i=w2("output",n.outputNames,r),a=o[0].shape[0];U(o.length===n.inputs.length,()=>`LayersModel has ${n.inputs.length} inputs, but the dataset provides ${o.length} inputs. (Expected input keys: ${JSON.stringify(n.inputNames)})`),U(i.length===n.outputs.length,()=>`LayersModel has ${n.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(n.outputNames)})`);for(let l=0;l`Batch size mismatch: input ${n.inputNames[l]} has ${o[l].shape[0]}; expected ${a} based on input ${n.inputNames[0]}.`);for(let l=0;l`Batch size mismatch: output ${n.outputNames[l]} has ${i[l].shape[0]}; expected ${a} based on input ${n.inputNames[0]}.`);return{xs:o,ys:i}}function w2(n,e,t){if(t instanceof tr)return[t];if(Array.isArray(t))return U(t.length===e.length,()=>`Received an array of ${t.length} Tensors, but expected ${e.length} to match the ${n} keys ${e}.`),t;{const r=[];for(const s of e){if(t[s]==null)throw new Z(`The feature data generated by the dataset lacks the required ${n} key '${s}'.`);r.push(t[s])}return r}}function mK(n){if(n.length===3)throw new wt("Validation with sample weights is not implemented yet.");return{xs:n[0],ys:n[1]}}async function gK(n,e,t){const r=t.batchesPerEpoch!=null;if(U(n.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),U(t!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),U(t.epochs!=null&&t.epochs>0&&Number.isInteger(t.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${t.epochs}`),U(!r||t.batchesPerEpoch>0&&Number.isInteger(t.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${t.batchesPerEpoch}`),U(t.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),n.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");n.isTraining=!0;try{const s=t.validationData!=null;let o,i;if(s)if(b2(t.validationData))U(t.validationBatches==null||t.validationBatches>0&&Number.isInteger(t.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${t.validationBatches}`);else{const w=mK(t.validationData);o=w.xs,i=w.ys}const a=n.makeTrainFunction(),l=n.getDedupedMetricsNames();let c;s?c=l.slice().concat(l.map(w=>"val_"+w)):c=l.slice();const d=i_(t.callbacks,t.yieldEvery),p=t.verbose==null?1:t.verbose,{callbackList:m,history:y}=a_(d,p,t.epochs,null,null,xK(e,t),null,s,c);m.setModel(n),n.history=y,await m.onTrainBegin(),n.stopTraining_=!1;let v=t.initialEpoch==null?0:t.initialEpoch,b=await e.iterator();for(;v=t.batchesPerEpoch:N.done){if(s){let T;b2(t.validationData)?T=rn(await n.evaluateDataset(t.validationData,{batches:t.validationBatches})):T=rn(n.evaluate(o,i,{batchSize:t.validationBatchSize==null?pK:t.validationBatchSize,verbose:0}));for(let A=0;A0)throw new wt("Verbose mode is not implemented yet.");U(!r||t.batches>0&&Number.isInteger(t.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(t.batches)}`);const i=yK(e)?e:await e.iterator();let a=0,l=0;for(;!r||l{if(c.value){const{xs:d,ys:p}=x_(n,c.value),m=d.concat(p),y=me(()=>s(m));if(kt(m),l===0)for(let b=0;bPe(o[b],ne(v,w))),l>0&&kt(k)}kt(y),a+=v,++l}return o}),c.done){r&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${t.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let c=0;c0&&Number.isInteger(n),()=>`batchSize is required to be a positive integer, but got ${n}`)}function gm(n,e,t){return n==null?[null]:Array.isArray(n)?n.map(r=>zc(r,e,t-e)):zc(n,e,t-e)}function DC(n,e){return me(()=>n==null?null:Array.isArray(n)?n.map(t=>DC(t,e)):jA(n,e.dtype==="int32"?e:Ge(e,"int32")))}function Db(n,e){const t=[];let r=0,s=null;for(;r=n&&(s=n),t.push([r,s]),r=s;return t}function y_(n){const e=[];n instanceof tr&&(n=[n]);for(let t=0;tt.push(s.id));else if(e!=null)for(const s in e){const o=e[s];t.push(o.id)}const r=[];if(n instanceof tr)t.indexOf(n.id)===-1&&r.push(n);else if(Array.isArray(n))n.forEach(s=>{t.indexOf(s.id)===-1&&r.push(s)});else if(n!=null)for(const s in n){const o=n[s];t.indexOf(o.id)===-1&&r.push(o)}r.forEach(s=>{s.isDisposed||s.dispose()})}function wK(n){return n instanceof tr}function OC(n){return Array.isArray(n)}function C2(n){return!wK(n)&&!OC(n)}function S2(n,e,t,r=!0,s=""){if(e==null||e.length===0){if(n!=null){let i=!1;if(OC(n)&&n.length>0)i=!0;else if(C2(n)){for(const a in n)if(n.hasOwnProperty(a)){i=!0;break}}else i=!0;if(i)throw new Z(`Error when checking model ${s} expected no data, but got ${n}`)}return[]}if(n==null)return e.map(i=>null);let o;if(C2(n)){n=n,o=[];for(const i of e){if(n[i]==null)throw new Z(`No data provided for "${i}". Need data for each key in: ${e}`);o.push(n[i])}}else if(OC(n)){if(n=n,n.length!==e.length)throw new Z(`Error when checking model ${s}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${e.length} Tensor(s), but instead got the following list of Tensor(s): ${n}`);o=n}else{if(n=n,e.length>1)throw new Z(`The model ${s} expects ${e.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${n.shape}`);o=[n]}if(o=y_(o),t!=null)for(let i=0;i=0&&c!==d)throw new Z(`${s} expected a batch of elements where each example has shape [${t[i].slice(1,t[i].length)}] (i.e.,tensor shape [*,${t[i].slice(1,t[i].length)}]) but the ${s} received an input with ${a.shape[0]} examples, each with shape [${a.shape.slice(1,a.shape.length)}] (tensor shape [${a.shape}])`)}}return o}function bK(n,e,t){const r=ou(n.map(o=>o.shape[0]));r.sort();const s=ou(e.map(o=>o.shape[0]));if(s.sort(),r.length>1)throw new Z(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(n.map(o=>o.shape))}`);if(s.length>1)throw new Z(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map(o=>o.shape))}`);if(r.length>0&&s.length>0&&!Xt(r,s))throw new Z(`Input Tensors should have the same number of samples as target Tensors. Found ${r[0]} input sample(s) and ${s[0]} target sample(s).`)}function CK(n,e,t){const r=[Dv,Ov,Wm];for(let s=0;s1)throw new Z(`The model expects ${e.length} ${s} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(n.shape)}.`);o=[n]}if(t!=null)for(let i=0;i[]);let t;if(typeof n=="string"||typeof n=="function")t=[n];else if(Array.isArray(n)||typeof n=="object")t=n;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${n}`);if(Array.isArray(t))return e.map(r=>t);{const r=[];for(const s of e){let o=t.hasOwnProperty(s)?t[s]:[];Array.isArray(o)||(o=[o]),r.push(o)}return r}}const kK="layers-model";class nf extends xi{constructor(e){super(e),this.isTraining=!1}summary(e,t,r=console.log){if(!this.built)throw new Z("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");iK(this,e,t,r)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=oK(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof bu))throw new Z("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(!Array.isArray(e.loss)&&typeof e.loss!="string"&&typeof e.loss!="function"){e.loss=e.loss;for(const i in e.loss)if(this.outputNames.indexOf(i)===-1)throw new Z(`Unknown entry in loss dictionary: "${i}". Only expected the following keys: ${this.outputNames}`);for(const i of this.outputNames)e.loss[i]==null&&console.warn(`Output "${i}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${i} during training`),t.push(Ab(e.loss[i]))}else if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new Z(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${e.loss}.`);t=e.loss.map(a=>Ab(a))}else{const i=Ab(e.loss);this.outputs.forEach(a=>{t.push(i)})}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let i=0;i{for(let i=0;i1&&(this.metricsTensors.push([a,i]),this.metricsNames.push(this.outputNames[i]+"_loss"))}});const s=SK(e.metrics,this.outputNames),o=(i,a,l)=>{this.outputNames.length>1&&(a=this.outputNames[i]+"_"+a),this.metricsNames.push(a),this.metricsTensors.push([l,i])};Mc("metric",()=>{for(let i=0;i{let p,m,y;for(const v of c){if(typeof v=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(v)!==-1){const w=this.internalOutputShapes[i];w[w.length-1]===1||this.lossFunctions[i]===Ov?["accuracy","acc"].indexOf(v)!==-1?m=u_:["crossentropy","ce"].indexOf(v)!==-1&&(m=Xq):this.lossFunctions[i]===Jy?["accuracy","acc"].indexOf(v)!==-1?m=Yq:["crossentropy","ce"].indexOf(v)!==-1&&(m=d_):["accuracy","acc"].indexOf(v)!==-1?m=c_:["crossentropy","ce"].indexOf(v)!==-1&&(m=h_);let k;["accuracy","acc"].indexOf(v)!==-1?k="acc":["crossentropy","ce"].indexOf(v)!==-1&&(k="ce"),y=m,p=""+k}else y=sK(v),p=""+ay(v);let b;Mc(p,()=>{b=y}),o(i,p,b)}})(a)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(e,t,r={}){const s=r.batchSize==null?32:r.batchSize;_b(s);const i=this.standardizeUserDataXY(e,t,!0,s);try{const a=i[0].concat(i[1]);this.makeTestFunction();const l=this.testFunction,c=this.testLoop(l,a,s,r.verbose,r.steps);return ks(c)}finally{gi(i[0],e),gi(i[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),vK(this,e,t)}checkNumSamples(e,t,r,s="steps"){let o;if(r!=null){if(o=null,t!=null)throw new Z(`If ${s} is set, batchSize must be null or undefined.Got batchSize = ${t}`)}else if(e!=null)Array.isArray(e)?o=e[0].shape[0]:o=e.shape[0];else throw new Z(`Either the input data should have a defined shape, or ${s} shoud be specified.`);return o}execute(e,t){if(Array.isArray(t)&&t.length===0)throw new Z("`outputs` is an empty Array, which is not allowed.");const r=Array.isArray(t),s=r?t:[t],o=this.retrieveSymbolicTensors(s),i=new eu;if(e instanceof tr&&(e=[e]),Array.isArray(e)){if(e.length!==this.inputs.length)throw new Z(`The number of inputs provided (${e.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let l=0;la.name);for(let a=0;a0){const s=[];throw t.forEach((o,i)=>{o==null&&s.push(e[i])}),new Z(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(s)}`)}return t}predictLoop(e,t=32,r=!1){return me(()=>{const s=this.checkNumSamples(e);if(r)throw new wt("Verbose predictLoop() is not implemented yet.");const o=Db(s,t),i=this.outputs.map(a=>[]);for(let a=0;a{const c=o[a][0],d=o[a][1],p=gm(e,c,d),m=[];if(Array.isArray(p))for(let v=0;vi[d].push(c));return ks(i.map(a=>Is(a,0)))})}predict(e,t={}){const r=y_(e);k2(r,this.inputNames,this.feedInputShapes,!1);try{const s=t.batchSize==null?32:t.batchSize;return _b(s),this.predictLoop(r,s)}finally{gi(r,e)}}predictOnBatch(e){k2(e,this.inputNames,this.feedInputShapes,!0);const t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,r=!0,s){if(this.optimizer_==null)throw new jo("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");const o=[];for(let i=0;i0&&e[0].shape[0]%s!==0)throw new Z(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${s}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,r,s,o=!0,i){const[a,l]=this.standardizeUserDataXY(e,t,o,i);if(r!=null)throw new Error("sample weight is not supported yet.");let c=null;if(s!=null){const d=m_(s,this.outputNames);c=[];for(let p=0;p{const i=this.checkNumSamples(t,r,o,"steps"),a=[];if(s>0)throw new wt("Verbose mode is not implemented yet.");if(o!=null)throw new wt("steps mode in testLoop() is not implemented yet");{const l=Db(i,r),c=qs(Ii(0,i));for(let d=0;d1){const i=l2(e.slice(0,r),s);o+=`_${i}`}t.push(o)}return t}makeTrainFunction(){return e=>{const t=[],r=e.slice(0,this.inputs.length),s=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),o=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),i=[],a=()=>{const p=[];for(let b=0;b1&&b{v=Pe(v,b)}),v},l=this.collectedTrainableWeights.map(p=>p.read());return[this.optimizer_.minimize(a,!0,l)].concat(i)}}makeTestFunction(){this.testFunction=e=>me(()=>{const t=[];let r;const s=e.slice(0,this.inputs.length),o=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),i=[];for(let c=0;c0){if(w=!0,r.validationData.length===2)l=r.validationData[0],c=r.validationData[1];else throw r.validationData.length===3?new wt("validationData including sample weights is not supported yet."):new Z(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${r.validationData} is invalid.`);const L=await this.standardizeUserData(l,c,null,null,!0,y);d=L[0],p=L[1],k=d.concat(p)}else if(r.validationSplit!=null&&r.validationSplit>0&&r.validationSplit<1){w=!0;const z=Math.floor(s[0].shape[0]*(1-r.validationSplit)),L=s[0].shape[0];d=gm(s,z,L),i=s,s=gm(s,0,z),p=gm(o,z,L),a=o,o=gm(o,0,z),k=d.concat(p)}else r.validationSteps!=null&&(w=!0);const I=s.concat(o).concat(m);this.checkTrainableWeightsConsistency();const N=this.makeTrainFunction(),T=this.getDedupedMetricsNames();let A,O;w?(this.makeTestFunction(),A=this.testFunction,O=T.slice().concat(T.map(z=>"val_"+z))):(A=null,k=[],O=T.slice());const P=i_(r.callbacks,r.yieldEvery);return await this.fitLoop(N,I,T,y,r.epochs,r.verbose,P,A,k,r.shuffle,O,r.initialEpoch,null,null)}finally{this.isTraining=!1,gi(s,e),gi(o,t),gi(i,e),gi(a,t),gi(d,l),gi(p,c),m!=null&&kt(m)}}async fitLoop(e,t,r,s,o,i,a,l,c,d,p,m,y,v){s==null&&(s=32),o==null&&(o=1),d==null&&(d=!0),m==null&&(m=0);let b=!1;if(l!=null&&c!=null&&(b=!0),v!=null&&(b=!0,y==null))throw new Z("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");const w=this.checkNumSamples(t,s,y,"steps_per_epoch");let k;w!=null&&(k=Ii(0,w)),i==null&&(i=1);const{callbackList:I,history:N}=a_(a,i,o,m,w,y,s,b,p);I.setModel(this),this.history=N,await I.onTrainBegin(),this.stopTraining_=!1;for(let T=m;T{const L=P[B][0],_=P[B][1],H=zc(O,L,_-L);z.batch=B,z.size=_-L;const Y=DC(t,H),re=e(Y);for(let te=0;teel(t))}else{const t=Object.keys(this.loss);e={};const r=this.loss;for(const s of t)if(typeof r[s]=="string")e[s]=el(r[s]);else throw new Error("Serialization of non-string loss is not supported.")}return e}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[el(ay(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>el(ay(e)));{const e={};for(const t in this.metrics)e[t]=el(ay(this.metrics[t]));return e}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(e){if(e.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(e.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(e.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");const t=n1(e.optimizer_config),r=ma(t);let s;if(typeof e.loss=="string")s=Ac(e.loss);else if(Array.isArray(e.loss))s=e.loss.map(i=>Ac(i));else if(e.loss!=null){s={};for(const i in e.loss)s[i]=Ac(e.loss[i])}let o;if(Array.isArray(e.metrics))o=e.metrics.map(i=>Ac(i));else if(e.metrics!=null){o={};for(const i in e.metrics)o[i]=Ac(e.metrics[i])}this.compile({loss:s,metrics:o,optimizer:r})}async save(e,t){if(typeof e=="string"){const c=HU(e);if(c.length===0)throw new Z(`Cannot find any save handlers for URL '${e}'`);if(c.length>1)throw new Z(`Found more than one (${c.length}) save handlers for URL '${e}'`);e=c[0]}if(e.save==null)throw new Z("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");const r=await FN(this.getNamedWeights(t)),a={modelTopology:this.toJSON(null,!1),format:kK,generatedBy:`TensorFlow.js tfjs-layers v${p_}`,convertedBy:null};if((t==null?!1:t.includeOptimizer)&&this.optimizer!=null){a.trainingConfig=this.getTrainingConfig();const c="optimizer",{data:d,specs:p}=await FN(await this.optimizer.getWeights(),c);r.specs.push(...p),r.data=MU([r.data,d])}return this.userDefinedMetadata!=null&&(v2(this.userDefinedMetadata,this.name,!0),a.userDefinedMetadata=this.userDefinedMetadata),a.weightData=r.data,a.weightSpecs=r.specs,e.save(a)}setUserDefinedMetadata(e){v2(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}}nf.className="Model";_e(nf);class v_ extends nf{}v_.className="Functional";_e(v_);async function IK(n,e){if(e==null&&(e={}),typeof n=="string"){const t=qU(n,e);if(t.length===0)t.push(R5(n,e));else if(t.length>1)throw new Z(`Found more than one (${t.length}) load handlers for URL '${n}'`);n=t[0]}return $K(n,void 0,e)}async function $K(n,e,t){if(t==null&&(t={}),n.load==null)throw new Z("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");const r=await n.load();let s=r.modelTopology;s.model_config!=null&&(s=s.model_config);const o=t.strict==null?!0:t.strict,i=r.weightData!=null&&r.weightSpecs!=null&&o,a=ma(n1(s),e,i),l=r.trainingConfig;if(l!=null&&a.loadTrainingConfig(l),r.userDefinedMetadata!=null&&a.setUserDefinedMetadata(r.userDefinedMetadata),r.weightData!=null){if(r.weightSpecs==null)throw new Z("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");const{modelWeights:c,optimizerWeights:d}=NK(r.weightData,r.weightSpecs);a.loadWeights(c,o),a.optimizer!=null&&d.length>0&&await a.optimizer.setWeights(d),kt(c),kt(d.map(p=>p.tensor))}return a}function NK(n,e){const t=_U(n,e),r={},s=[];return e.forEach(o=>{o.group==="optimizer"?s.push({name:o.name,tensor:t[o.name]}):r[o.name]=t[o.name]}),{modelWeights:r,optimizerWeights:s}}class Vm extends nf{constructor(e){if(super({inputs:[],outputs:[]}),e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:Rv("sequential_"),e.layers!=null)for(const t of e.layers)this.add(t)}checkShape(e){if(e.inboundNodes[0].outputTensors[0].shape.some(r=>r<0))throw new Z(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){const t=e instanceof Vm||e instanceof nf;let r;if(t){if(r=e,r.outputs.length!==1)throw new Z("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(r.inputs.length!==1)throw new Z("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(e.inboundNodes.length===0){if(e.batchInputShape==null)throw new Z("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");const s=$q({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(s)}if(t)this.outputs=r.outputs,this.inputs=r.inputs;else{if(e.inboundNodes.length!==1)throw new Z(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${e.name} which has ${e.inboundNodes.length} pre-existing inbound connections.`);if(e.inboundNodes[0].outputTensors.length!==1)throw new Z("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[e.inboundNodes[0].outputTensors[0]],this.inputs=e_(this.outputs[0])}this.inboundNodes=[],new _v({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:th(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(s=>s.shape),outputShapes:this.outputs[0].shape})}else{const s=e.apply(this.outputs[0]);if(Array.isArray(s))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[s],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{const e=this.layers.length-1;this.layers[e].outboundNodes=[],this.outputs=[this.layers[e].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(e,t){return this.model==null&&this.build(),this.model.call(e,t)}build(e){if(Gt(e),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new nf({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(e,t,r=console.log){this.built||this.build(),super.summary(e,t,r)}setWeights(e){this.model==null&&this.build(),this.model.setWeights(e)}evaluate(e,t,r={}){if(!this.built)throw new jo("The model needs to be compiled before being used.");return this.model.evaluate(e,t,r)}async evaluateDataset(e,t){if(!this.built)throw new jo("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return this.model==null&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return this.model==null&&this.build(),this.model.predictOnBatch(e)}compile(e){this.build(),this.model.compile(e),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,r={}){if(!this.built)throw new jo("The model needs to be compiled before being used.");return this.model.fit(e,t,r)}async fitDataset(e,t){if(!this.built)throw new jo("The model needs to be compiled before being used.");return this.model.fitDataset(e,t)}async trainOnBatch(e,t){return this.model.trainOnBatch(e,t)}static fromConfig(e,t,r={},s=!1){let o,i={};if(t instanceof Array){if(t[0].className==null||t[0].className==="Merge")throw new Z("Legacy serialization format not supported yet.");o=t}else U(t.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),o=t.layers,delete t.layers,i=t;const a=new e(i);if(!(a instanceof Vm))throw new wt(`Sequential.fromConfig called on non-Sequential input: ${a}`);for(const l of o){const d=ma(l,void 0,s);s&&d.setFastWeightInitDuringBuild(!0),a.add(d)}return a}set stopTraining(e){if(this.model==null)throw new Z("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(this.model==null)throw new Z("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){const e=[];for(const t of this.layers){const r={};r.className=t.getClassName(),r.config=t.getConfig(),e.push(r)}return{name:this.name,layers:e}}}Vm.className="Sequential";_e(Vm);let qr=class extends Tf{getConfig(){return{}}};class w_ extends qr{apply(e,t=1){return cq(e,t)}}w_.className="elu";_e(w_);class b_ extends qr{apply(e){return PR(e)}}b_.className="selu";_e(b_);class C_ extends qr{apply(e){return uh(e)}}C_.className="relu";_e(C_);class S_ extends qr{apply(e){return me(()=>zm(6,uh(e)))}}S_.className="relu6";_e(S_);class k_ extends qr{apply(e){return e}}k_.className="linear";_e(k_);class I_ extends qr{apply(e){return If(e)}}I_.className="sigmoid";_e(I_);class $_ extends qr{apply(e){return dq(e)}}$_.className="hardSigmoid";_e($_);class N_ extends qr{apply(e){return ex(e)}}N_.className="softplus";_e(N_);class T_ extends qr{apply(e){return hq(e)}}T_.className="softsign";_e(T_);class E_ extends qr{apply(e){return wv(e)}}E_.className="tanh";_e(E_);let II=class extends qr{apply(e,t=-1){return Nk(e,t)}};II.className="softmax";_e(II);class R_ extends qr{apply(e,t=-1){return TR(e,t)}}R_.className="logSoftmax";_e(R_);class A_ extends qr{apply(e){return me(()=>me(()=>{const t=Math.sqrt(2),r=ne(.5,Pe(1,SR(st(e,t))));return ne(e,r)}))}}A_.className="gelu";_e(A_);class __ extends qr{apply(e){return me(()=>ne(.5,ne(e,Pe(1,wv(ne(jr(st(2,Math.PI)),Pe(e,ne(.044715,Jc(e,3)))))))))}}__.className="gelu_new";_e(__);class D_ extends qr{apply(e){return me(()=>ne(e,wv(ex(e))))}}D_.className="mish";_e(D_);class O_ extends qr{apply(e,t=1){return me(()=>ne(If(ne(e,t)),e))}}O_.className="swish";_e(O_);function uu(n){return n.getClassName()}function Ob(n,e={}){return ax(n,Go.getMap().classNameMap,e,"activation")}function cu(n){if(n==null){const e={};return e.className="linear",e.config={},Ob(e)}if(typeof n=="string"){const e={};return e.className=n,e.config={},Ob(e)}else return n instanceof qr?n:Ob(n)}function TK(n){if(n!=null&&typeof n!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${n}`)}class F_ extends Tf{}class P_ extends F_{constructor(e){super(),TK(e),this.l1=e==null||e.l1==null?.01:e.l1,this.l2=e==null||e.l2==null?.01:e.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(e){return me(()=>{let t=gr([1]);return this.hasL1&&(t=Pe(t,rt(ne(this.l1,os(e))))),this.hasL2&&(t=Pe(t,rt(ne(this.l2,ux(e))))),ce(t,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}}P_.className="L1L2";_e(P_);const I2={l1l2:"L1L2"};function un(n){return hI(n)}function $2(n,e={}){return ax(n,Go.getMap().classNameMap,e,"regularizer")}function In(n){if(n==null)return null;if(typeof n=="string"){const t={className:n in I2?I2[n]:n,config:{}};return $2(t)}else return n instanceof F_?n:$2(n)}class L_ extends Et{constructor(e){super(e??{}),this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=ft(e);let r=uh(e);return this.maxValue!=null&&(r=wo(r,0,this.maxValue)),r}computeOutputShape(e){return e}getConfig(){const e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}}L_.className="ReLU";_e(L_);class M_ extends Et{constructor(e){super(e??{}),this.DEFAULT_ALPHA=.3,e==null&&(e={}),this.alpha=e.alpha==null?this.DEFAULT_ALPHA:e.alpha}call(e,t){const r=ft(e);return xk(r,this.alpha)}computeOutputShape(e){return e}getConfig(){const e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}}M_.className="LeakyReLU";_e(M_);class z_ extends Et{constructor(e){if(super(e??{}),this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=kn(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=In(e.alphaRegularizer),this.alphaConstraint=ir(e.alphaConstraint),e.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else if(typeof e.sharedAxes=="number")this.sharedAxes=[e.sharedAxes];else throw new Z(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`)}build(e){e=Gt(e);const t=e.slice(1);if(this.sharedAxes!=null)for(const s of this.sharedAxes)t[s-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);const r={};if(this.sharedAxes!=null)for(let s=1;s{let r=ft(e);const s=t.mask;if(s!=null){const o=ne(ut(wu(r.shape),Ge(s,r.dtype)),Kt(-1e9));r=Pe(r,o)}return this.axis instanceof Array?this.axis.length>1?xa(ut(r,ER(r,this.axis,!0))):this.softmax(r,this.axis[0]):this.softmax(r,this.axis)})}computeOutputShape(e){return e}getConfig(){const e={axis:this.axis},t=super.getConfig();return Object.assign(e,t),e}}W_.className="Softmax";_e(W_);function rf(n,e,t){if(typeof n=="number")return th(n,e);if(n.length!==e)throw new Z(`The ${t} argument must be an integer or tuple of ${e} integers. Received: ${n.length} elements.`);for(let r=0;r(Vn(e),e==="channelsFirst"?Lt(n,[0,2,3,1]):n))}function V_(n,e){return me(()=>(Vn(e),e==="channelsFirst"?Lt(n,[0,2,3,4,1]):n))}function EK(n,e,t,r=1,s="valid",o,i=1){return me(()=>{if(o==null&&(o=$i()),Vn(o),n.shape.length!==3)throw new Z(`The input of a conv1dWithBias operation should be 3, but is ${n.shape.length} instead.`);if(e.shape.length!==3)throw new Z(`The kernel for a conv1dWithBias operation should be 3, but is ${e.shape.length} instead`);if(t!=null&&t.shape.length!==1)throw new Z(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(o==="channelsFirst"&&(n=Lt(n,[0,2,1])),s==="causal")throw new wt("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let a=yR(n,e,r,s==="same"?"same":"valid","NWC",i);return t!=null&&(a=Ei(a,t)),a})}function N2(n,e,t,r=[1,1],s="valid",o,i,a=null){return me(()=>{if(o==null&&(o=$i()),Vn(o),n.rank!==3&&n.rank!==4)throw new Z(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${n.rank}.`);if(e.rank!==3&&e.rank!==4)throw new Z(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${n.rank}.`);let l=$I(n,o);if(s==="causal")throw new wt("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=NH({x:l,filter:e,strides:r,pad:s==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:t,activation:a}),o==="channelsFirst"&&(l=Lt(l,[0,3,1,2])),l})}function RK(n,e,t,r=[1,1,1],s="valid",o,i){return me(()=>{if(o==null&&(o=$i()),Vn(o),n.rank!==4&&n.rank!==5)throw new Z(`conv3dWithBias expects input to be of rank 4 or 5, but received ${n.rank}.`);if(e.rank!==4&&e.rank!==5)throw new Z(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${n.rank}.`);let a=V_(n,o);if(s==="causal")throw new wt("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return a=SV(a,e,r,s==="same"?"same":"valid","NDHWC",i),t!=null&&(a=Ei(a,t)),o==="channelsFirst"&&(a=Lt(a,[0,4,1,2,3])),a})}class Fv extends Et{constructor(e,t){if(super(t),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",Fv.verifyArgs(t),this.rank=e,xr(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new wt(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=rf(t.kernelSize,e,"kernelSize"),this.strides=rf(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,Co(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Vn(this.dataFormat),this.activation=cu(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=kn(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=ir(t.biasConstraint),this.biasRegularizer=In(t.biasRegularizer),this.activityRegularizer=In(t.activityRegularizer),this.dilationRate=rf(t.dilationRate==null?1:t.dilationRate,e,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new Z(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new Z(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new Z(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(e){if(oa("kernelSize"in e,"required key 'kernelSize' not in config"),typeof e.kernelSize!="number"&&!dI(e.kernelSize,"number",1,3))throw new Z(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){const e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:uu(this.activation),useBias:this.useBias,biasInitializer:Tn(this.biasInitializer),biasRegularizer:un(this.biasRegularizer),activityRegularizer:un(this.activityRegularizer),biasConstraint:or(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}}class Ef extends Fv{constructor(e,t){super(e,t),this.kernel=null,Ef.verifyArgs(t),this.filters=t.filters,xr(this.filters,"filters"),this.kernelInitializer=kn(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=ir(t.kernelConstraint),this.kernelRegularizer=In(t.kernelRegularizer)}build(e){e=Gt(e);const t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new Z(`The channel dimension of the input should be defined. Found ${e[t]}`);const r=e[t],s=this.kernelSize.concat([r,this.filters]);this.kernel=this.addWeight("kernel",s,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[t]:r}}],this.built=!0}call(e,t){return me(()=>{e=ft(e);let r;const s=this.bias==null?null:this.bias.read(),o=zA(this.activation.getClassName());if(o!=null&&this.rank===2)r=N2(e,this.kernel.read(),s,this.strides,this.padding,this.dataFormat,this.dilationRate,o);else{if(this.rank===1)r=EK(e,this.kernel.read(),s,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)r=N2(e,this.kernel.read(),s,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)r=RK(e,this.kernel.read(),s,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new wt("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(r=this.activation.apply(r))}return r})}computeOutputShape(e){e=Gt(e);const t=[],r=this.dataFormat==="channelsLast"?e.slice(1,e.length-1):e.slice(2);for(let o=0;o 0 but got ${JSON.stringify(e.filters)}`)}}class fx extends Ef{constructor(e){super(2,e),fx.verifyArgs(e)}getConfig(){const e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!dI(e.kernelSize,"number",1,2))throw new Z(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}}fx.className="Conv2D";_e(fx);class px extends Ef{constructor(e){super(3,e),px.verifyArgs(e)}getConfig(){const e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!(Array.isArray(e.kernelSize)&&(e.kernelSize.length===1||e.kernelSize.length===3)))throw new Z(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}}px.className="Conv3D";_e(px);class G_ extends fx{constructor(e){if(super(e),this.inputSpec=[new rr({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new Z(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=Gt(e),e.length!==4)throw new Z("Input should have rank 4; Received input shape: "+JSON.stringify(e));const t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new Z("The channel dimension of the inputs should be defined. Found `None`.");const r=e[t],s=this.kernelSize.concat([this.filters,r]);this.kernel=this.addWeight("kernel",s,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new rr({ndim:4,axes:{[t]:r}})],this.built=!0}call(e,t){return me(()=>{let r=ft(e);if(r.shape.length!==4)throw new Z(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${r.shape.length}`);const s=r.shape,o=s[0];let i,a;this.dataFormat==="channelsFirst"?(i=2,a=3):(i=1,a=2);const l=s[i],c=s[a],d=this.kernelSize[0],p=this.kernelSize[1],m=this.strides[0],y=this.strides[1],v=ia(l,m,d,this.padding),b=ia(c,y,p,this.padding),w=[o,v,b,this.filters];this.dataFormat!=="channelsLast"&&(r=Lt(r,[0,2,3,1]));let k=vR(r,this.kernel.read(),w,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(k=Lt(k,[0,3,1,2])),this.bias!=null&&(k=Ei(k,this.bias.read(),this.dataFormat)),this.activation!=null&&(k=this.activation.apply(k)),k})}computeOutputShape(e){e=Gt(e);const t=e.slice();let r,s,o;this.dataFormat==="channelsFirst"?(r=1,s=2,o=3):(r=3,s=1,o=2);const i=this.kernelSize[0],a=this.kernelSize[1],l=this.strides[0],c=this.strides[1];return t[r]=this.filters,t[s]=ia(t[s],l,i,this.padding),t[o]=ia(t[o],c,a,this.padding),t}getConfig(){const e=super.getConfig();return delete e.dilationRate,e}}G_.className="Conv2DTranspose";_e(G_);class j_ extends px{constructor(e){if(super(e),this.inputSpec=[new rr({ndim:5})],this.padding!=="same"&&this.padding!=="valid")throw new Z(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=Gt(e),e.length!==5)throw new Z("Input should have rank 5; Received input shape: "+JSON.stringify(e));const t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new Z("The channel dimension of the inputs should be defined. Found `None`.");const r=e[t],s=this.kernelSize.concat([this.filters,r]);this.kernel=this.addWeight("kernel",s,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new rr({ndim:5,axes:{[t]:r}})],this.built=!0}call(e,t){return me(()=>{let r=ft(e);if(r.shape.length!==5)throw new Z(`Conv3DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${r.shape.length}`);const s=r.shape,o=s[0];let i,a,l;this.dataFormat==="channelsFirst"?(l=2,i=3,a=4):(l=1,i=2,a=3);const c=s[l],d=s[i],p=s[a],m=this.kernelSize[0],y=this.kernelSize[1],v=this.kernelSize[2],b=this.strides[0],w=this.strides[1],k=this.strides[2],I=ia(c,b,m,this.padding),N=ia(d,w,y,this.padding),T=ia(p,k,v,this.padding),A=[o,I,N,T,this.filters];this.dataFormat!=="channelsLast"&&(r=Lt(r,[0,2,3,4,1]));let O=$V(r,this.kernel.read(),A,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(O=Lt(O,[0,4,1,2,3])),this.bias!==null&&(O=Ei(O,this.bias.read(),this.dataFormat)),this.activation!==null&&(O=this.activation.apply(O)),O})}computeOutputShape(e){e=Gt(e);const t=e.slice();let r,s,o,i;this.dataFormat==="channelsFirst"?(r=1,s=2,o=3,i=4):(r=4,s=1,o=2,i=3);const a=this.kernelSize[0],l=this.kernelSize[1],c=this.kernelSize[2],d=this.strides[0],p=this.strides[1],m=this.strides[2];return t[r]=this.filters,t[s]=ia(t[s],d,a,this.padding),t[o]=ia(t[o],p,l,this.padding),t[i]=ia(t[i],m,c,this.padding),t}getConfig(){const e=super.getConfig();return delete e.dilationRate,e}}j_.className="Conv3DTranspose";_e(j_);class H_ extends Ef{constructor(e,t){if(super(e,t),this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,t.filters==null)throw new Z("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(t.kernelInitializer!=null||t.kernelRegularizer!=null||t.kernelConstraint!=null)throw new Z("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(t.padding!=null&&t.padding!=="same"&&t.padding!=="valid")throw new Z(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=kn(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=In(t.depthwiseRegularizer),this.depthwiseConstraint=ir(t.depthwiseConstraint),this.pointwiseInitializer=kn(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=In(t.pointwiseRegularizer),this.pointwiseConstraint=ir(t.pointwiseConstraint)}build(e){if(e=Gt(e),e.length{e=ft(e);let r;if(this.rank===1)throw new wt("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=Lt(e,[0,2,3,1])),r=LR(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(r=Ei(r,this.bias.read(),this.dataFormat)),this.activation!=null&&(r=this.activation.apply(r)),this.dataFormat==="channelsFirst"&&(r=Lt(r,[0,3,1,2])),r})}getConfig(){const e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=Tn(this.depthwiseInitializer),e.pointwiseInitializer=Tn(this.pointwiseInitializer),e.depthwiseRegularizer=un(this.depthwiseRegularizer),e.pointwiseRegularizer=un(this.pointwiseRegularizer),e.depthwiseConstraint=or(this.depthwiseConstraint),e.pointwiseConstraint=or(this.pointwiseConstraint),e}}H_.className="SeparableConv";class q_ extends H_{constructor(e){super(2,e)}}q_.className="SeparableConv2D";_e(q_);class Pv extends Ef{constructor(e){super(1,e),Pv.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){const e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!dI(e.kernelSize,"number",1,1))throw new Z(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}}Pv.className="Conv1D";_e(Pv);class K_ extends Et{constructor(e){super(e),typeof e.cropping=="number"?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:typeof e.cropping[0]=="number"?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=e.dataFormat===void 0?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return this.dataFormat==="channelsFirst"?[e[0],e[1],e[2]-this.cropping[0][0]-this.cropping[0][1],e[3]-this.cropping[1][0]-this.cropping[1][1]]:[e[0],e[1]-this.cropping[0][0]-this.cropping[0][1],e[2]-this.cropping[1][0]-this.cropping[1][1],e[3]]}call(e,t){return me(()=>{if(e=ft(e),this.dataFormat==="channelsLast"){const r=iy(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return iy(r,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{const r=iy(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return iy(r,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){const e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}K_.className="Cropping2D";_e(K_);class X_ extends Et{constructor(e){super(e),this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=e.size==null?this.DEFAULT_SIZE:e.size,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Vn(this.dataFormat),this.interpolation=e.interpolation==null?"nearest":e.interpolation,rq(this.interpolation)}computeOutputShape(e){if(this.dataFormat==="channelsFirst"){const t=e[2]==null?null:this.size[0]*e[2],r=e[3]==null?null:this.size[1]*e[3];return[e[0],e[1],t,r]}else{const t=e[1]==null?null:this.size[0]*e[1],r=e[2]==null?null:this.size[1]*e[2];return[e[0],t,r,e[3]]}}call(e,t){return me(()=>{let r=ft(e);const s=r.shape;if(this.dataFormat==="channelsFirst"){r=Lt(r,[0,2,3,1]);const o=this.size[0]*s[2],i=this.size[1]*s[3],a=this.interpolation==="nearest"?nl.resizeNearestNeighbor(r,[o,i]):nl.resizeBilinear(r,[o,i]);return Lt(a,[0,3,1,2])}else{const o=this.size[0]*s[1],i=this.size[1]*s[2];return this.interpolation==="nearest"?nl.resizeNearestNeighbor(r,[o,i]):nl.resizeBilinear(r,[o,i])}})}getConfig(){const e={size:this.size,dataFormat:this.dataFormat,interpolation:this.interpolation},t=super.getConfig();return Object.assign(e,t),e}}X_.className="UpSampling2D";_e(X_);function AK(n,e,t=[1,1],r="valid",s,o){return me(()=>{s==null&&(s=$i()),Vn(s);let i=$I(n,s);if(n.rank!==4)throw new Z(`Input for depthwiseConv2d is required to be 4-D, but is instead ${n.rank}-D`);if(e.rank!==4)throw new Z(`depthwiseKernel is required to be 4-D, but is instead ${e.rank}-D`);return i=fk(i,e,t,r==="same"?"same":"valid","NHWC",o),s==="channelsFirst"&&(i=Lt(i,[0,3,1,2])),i})}class Y_ extends Fv{constructor(e){super(2,e),this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=kn(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=ir(e.depthwiseConstraint),this.depthwiseRegularizer=In(e.depthwiseRegularizer)}build(e){if(e=Gt(e),e.length<4)throw new Z(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);const t=this.dataFormat==="channelsFirst"?1:3;if(e[t]==null||e[t]<0)throw new Z(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);const r=e[t],s=[this.kernelSize[0],this.kernelSize[1],r,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",s,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[r*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return me(()=>{e=ft(e);let r=AK(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(r=Ei(r,this.bias.read(),this.dataFormat)),this.activation!=null&&(r=this.activation.apply(r)),r})}computeOutputShape(e){e=Gt(e);const t=this.dataFormat==="channelsFirst"?e[2]:e[1],r=this.dataFormat==="channelsFirst"?e[3]:e[2],s=this.dataFormat==="channelsFirst"?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,o=ki(t,this.kernelSize[0],this.padding,this.strides[0]),i=ki(r,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[e[0],s,o,i]:[e[0],o,i,s]}getConfig(){const e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=Tn(this.depthwiseInitializer),e.depthwiseRegularizer=un(this.depthwiseRegularizer),e.depthwiseConstraint=or(this.depthwiseRegularizer),e}}Y_.className="DepthwiseConv2D";_e(Y_);function Q_(n,e,t,r){if(Array.isArray(n)){if(e!=null||t!=null)throw new Z("When inputs is an array, neither initialState or constants should be provided");r!=null&&(t=n.slice(n.length-r,n.length),n=n.slice(0,n.length-r)),n.length>1&&(e=n.slice(1,n.length)),n=n[0]}function s(o){return o==null||Array.isArray(o)?o:[o]}return e=s(e),t=s(t),{inputs:n,initialState:e,constants:t}}function J_(n,e,t,r=!1,s,o,i=!1,a=!1){return me(()=>{const l=e.shape.length;if(l<3)throw new Z(`Input should be at least 3D, but is ${l}D.`);const c=[1,0].concat(Ii(2,l));e=Lt(e,c),i&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),s!=null&&(s=Ge(Ge(s,"bool"),"float32"),s.rank===l-1&&(s=Ss(s,-1)),s=Lt(s,c)),r&&(e=Zc(e,0),s!=null&&(s=Zc(s,0)));const d=[];let p,m=t;const y=e.shape[0],v=eh(e);let b;s!=null&&(b=eh(s));for(let k=0;kn(I,m));if(s==null)p=N[0],m=N[1];else{const T=me(()=>{const A=b[k],O=ut(Ko(A),A),P=Pe(ne(N[0],A),ne(m[0],O)),B=m.map((z,L)=>Pe(ne(N[1][L],A),ne(z,O)));return{output:P,newStates:B}});p=T.output,m=T.newStates}a&&d.push(p)}let w;return a&&(w=sl(d,1)),[p,w,m]})}class Cu extends Et{constructor(e){super(e);let t;if(e.cell==null)throw new Z("cell property is missing for the constructor of RNN.");if(Array.isArray(e.cell)?t=new EI({cells:e.cell}):t=e.cell,t.stateSize==null)throw new Z("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=e.returnSequences==null?!1:e.returnSequences,this.returnState=e.returnState==null?!1:e.returnState,this.goBackwards=e.goBackwards==null?!1:e.goBackwards,this._stateful=e.stateful==null?!1:e.stateful,this.unroll=e.unroll==null?!1:e.unroll,this.supportsMasking=!0,this.inputSpec=[new rr({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){const e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return Ii(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){EC(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);const r=t[0];let s;if(this.returnSequences?s=[e[0],e[1],r]:s=[e[0],r],this.returnState){const o=[];for(const i of t)o.push([e[0],i]);return[s].concat(o)}else return s}computeMask(e,t){return me(()=>{Array.isArray(t)&&(t=t[0]);const r=this.returnSequences?t:null;if(this.returnState){const s=this.states.map(o=>null);return[r].concat(s)}else return r})}get states(){if(this.states_==null){const e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let r=0;ri.shape[i.shape.length-1]),o))throw new Z(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=o.map(i=>new rr({shape:[null,i]}));this.stateful&&this.resetStates()}resetStates(e,t=!1){me(()=>{if(!this.stateful)throw new sa("Cannot call resetStates() on an RNN Layer that is not stateful.");const r=this.inputSpec[0].shape[0];if(r==null)throw new Z("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(s=>gr([r,s])):this.states_=[gr([r,this.cell.stateSize])];else if(e==null)kt(this.states_),this.keptStates!=null&&(kt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(s=>gr([r,s])):this.states_[0]=gr([r,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new Z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t===!0?this.keptStates.push(this.states_.slice()):kt(this.states_);for(let s=0;sha(s.clone()))})}apply(e,t){let r=t==null?null:t.initialState,s=t==null?null:t.constants;t==null&&(t={});const o=Q_(e,r,s,this.numConstants);e=o.inputs,r=o.initialState,s=o.constants;let i=[],a=[];if(r!=null){t.initialState=r,i=i.concat(r),this.stateSpec=[];for(const c of r)this.stateSpec.push(new rr({shape:c.shape}));a=a.concat(this.stateSpec)}if(s!=null&&(t.constants=s,i=i.concat(s),this.numConstants=s.length),i[0]instanceof va){const c=[e].concat(i),d=this.inputSpec.concat(a),p=this.inputSpec;this.inputSpec=d;const m=super.apply(c,t);return this.inputSpec=p,m}else return super.apply(e,t)}call(e,t){return me(()=>{const r=t==null?null:t.mask,s=t==null?null:t.training;let o=t==null?null:t.initialState;e=ft(e),o==null&&(this.stateful?o=this.states_:o=this.getInitialState(e));const i=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(o.length!==i)throw new Z(`RNN Layer has ${i} state(s) but was passed ${o.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");const a={training:s},c=J_((v,b)=>{const w=this.cell.call([v].concat(b),a);return[w[0],w.slice(1)]},e,o,this.goBackwards,r,null,this.unroll,this.returnSequences),d=c[0],p=c[1],m=c[2];this.stateful&&this.resetStates(m,s);const y=this.returnSequences?p:d;return this.returnState?[y].concat(m):y})}getInitialState(e){return me(()=>{let t=gr(e.shape);return t=rt(t,[1,2]),t=lx(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(r=>r>1?NC(t,[1,r]):t):this.cell.stateSize>1?[NC(t,[1,this.cell.stateSize])]:[t]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){const e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(t.numConstants=this.numConstants);const r=this.cell.getConfig();return this.getClassName()===Cu.className&&(t.cell={className:this.cell.getClassName(),config:r}),Object.assign(Object.assign(Object.assign({},r),e),t)}static fromConfig(e,t,r={}){const s=t.cell,o=ma(s,r);return new e(Object.assign(t,{cell:o}))}}Cu.className="RNN";_e(Cu);class Lv extends Et{}class NI extends Lv{constructor(e){super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,xr(this.units,"units"),this.activation=cu(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=kn(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=kn(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=kn(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=In(e.kernelRegularizer),this.recurrentRegularizer=In(e.recurrentRegularizer),this.biasRegularizer=In(e.biasRegularizer),this.kernelConstraint=ir(e.kernelConstraint),this.recurrentConstraint=ir(e.recurrentConstraint),this.biasConstraint=ir(e.biasConstraint),this.dropout=hf([1,lu([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=hf([1,lu([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Gt(e),this.kernel=this.addWeight("kernel",[e[e.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return me(()=>{if(e=e,e.length!==2)throw new Z(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let r=e[1];e=e[0];const s=t.training==null?!1:t.training;0Ko(e),rate:this.dropout,training:s,dropoutFunc:this.dropoutFunc})),0Ko(r),rate:this.recurrentDropout,training:s,dropoutFunc:this.dropoutFunc}));let o;const i=this.dropoutMask,a=this.recurrentDropoutMask;i!=null?o=pa(ne(e,i),this.kernel.read()):o=pa(e,this.kernel.read()),this.bias!=null&&(o=Ei(o,this.bias.read())),a!=null&&(r=ne(r,a));let l=Pe(o,pa(r,this.recurrentKernel.read()));return this.activation!=null&&(l=this.activation.apply(l)),[l,l]})}getConfig(){const e=super.getConfig(),t={units:this.units,activation:uu(this.activation),useBias:this.useBias,kernelInitializer:Tn(this.kernelInitializer),recurrentInitializer:Tn(this.recurrentInitializer),biasInitializer:Tn(this.biasInitializer),kernelRegularizer:un(this.kernelRegularizer),recurrentRegularizer:un(this.recurrentRegularizer),biasRegularizer:un(this.biasRegularizer),activityRegularizer:un(this.activityRegularizer),kernelConstraint:or(this.kernelConstraint),recurrentConstraint:or(this.recurrentConstraint),biasConstraint:or(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},e),t)}}NI.className="SimpleRNNCell";_e(NI);class Z_ extends Cu{constructor(e){e.cell=new NI(e),super(e)}call(e,t){return me(()=>{this.cell.dropoutMask!=null&&(kt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(kt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const r=t==null?null:t.mask,s=t==null?null:t.training,o=t==null?null:t.initialState;return super.call(e,{mask:r,training:s,initialState:o})})}static fromConfig(e,t){return new e(t)}}Z_.className="SimpleRNN";_e(Z_);class TI extends Lv{constructor(e){if(super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.resetAfter)throw new Z("GRUCell does not support reset_after parameter set to true.");this.units=e.units,xr(this.units,"units"),this.activation=cu(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=cu(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=kn(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=kn(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=kn(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=In(e.kernelRegularizer),this.recurrentRegularizer=In(e.recurrentRegularizer),this.biasRegularizer=In(e.biasRegularizer),this.kernelConstraint=ir(e.kernelConstraint),this.recurrentConstraint=ir(e.recurrentConstraint),this.biasConstraint=ir(e.biasConstraint),this.dropout=hf([1,lu([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=hf([1,lu([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Gt(e);const t=e[e.length-1];this.kernel=this.addWeight("kernel",[t,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return me(()=>{if(e=e,e.length!==2)throw new Z(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);const r=t.training==null?!1:t.training;let s=e[1];e=e[0],0Ko(e),rate:this.dropout,training:r,count:3,dropoutFunc:this.dropoutFunc})),0Ko(s),rate:this.recurrentDropout,training:r,count:3,dropoutFunc:this.dropoutFunc}));const o=this.dropoutMask,i=this.recurrentDropoutMask;let a,l,c;0{this.cell.dropoutMask!=null&&(kt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(kt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const r=t==null?null:t.mask,s=t==null?null:t.training,o=t==null?null:t.initialState;return super.call(e,{mask:r,training:s,initialState:o})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}}eD.className="GRU";_e(eD);class Mv extends Lv{constructor(e){super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,xr(this.units,"units"),this.activation=cu(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=cu(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=kn(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=kn(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=kn(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=In(e.kernelRegularizer),this.recurrentRegularizer=In(e.recurrentRegularizer),this.biasRegularizer=In(e.biasRegularizer),this.kernelConstraint=ir(e.kernelConstraint),this.recurrentConstraint=ir(e.recurrentConstraint),this.biasConstraint=ir(e.biasConstraint),this.dropout=hf([1,lu([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=hf([1,lu([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=Gt(e);const r=e[e.length-1];this.kernel=this.addWeight("kernel",[r,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let s;if(this.useBias){if(this.unitForgetBias){const o=this.biasInitializer,i=this.units;s=new(t=class extends Yo{apply(l,c){const d=o.apply([i]),p=new pI().apply([i]),m=o.apply([i*2]);return c2(c2(d,p),m)}},t.className="CustomInit",t)}else s=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,s,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return me(()=>{const r=t.training==null?!1:t.training;if(e=e,e.length!==3)throw new Z(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let s=e[1];const o=e[2];e=e[0],0Ko(e),rate:this.dropout,training:r,count:4,dropoutFunc:this.dropoutFunc})),0Ko(s),rate:this.recurrentDropout,training:r,count:4,dropoutFunc:this.dropoutFunc}));const i=this.dropoutMask,a=this.recurrentDropoutMask;let l,c,d,p;0{this.cell.dropoutMask!=null&&(kt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(kt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const r=t==null?null:t.mask,s=t==null?null:t.training,o=t==null?null:t.initialState;return super.call(e,{mask:r,training:s,initialState:o})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}}tD.className="LSTM";_e(tD);class EI extends Lv{constructor(e){super(e),this.cells=e.cells}get stateSize(){const e=[];for(const t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return me(()=>{e=e;let r=e.slice(1);const s=[];for(const a of this.cells.slice().reverse())Array.isArray(a.stateSize)?s.push(r.splice(0,a.stateSize.length)):s.push(r.splice(0,1));s.reverse();const o=[];let i;for(let a=0;a{Mc(`RNNCell_${s}`,()=>{r.build(e),Array.isArray(r.stateSize)?t=r.stateSize[0]:t=r.stateSize,e=[e[0],t]})}),this.built=!0}getConfig(){const e=super.getConfig(),t=o=>({className:o.getClassName(),config:o.getConfig()}),s={cells:this.cells.map(t)};return Object.assign(Object.assign({},e),s)}static fromConfig(e,t,r={}){const s=[];for(const o of t.cells)s.push(ma(o,r));return new e({cells:s})}get trainableWeights(){if(!this.trainable)return[];const e=[];for(const t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){const e=[];for(const t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){const t=[];for(const r of this.cells)t.push(...r.trainableWeights);return t.concat(e)}return e}getWeights(){const e=[];for(const t of this.cells)e.push(...t.weights);return RC(e)}setWeights(e){const t=[];for(const r of this.cells){const s=r.weights.length,o=e.splice(s);for(let i=0;io!=null?o(e(),t):HA(e(),t),a=()=>cx(i,e,r);return!s||s<=1?ha(a().clone()):Array(s).fill(void 0).map(a).map(c=>ha(c.clone()))}var _K=function(n,e){var t={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&e.indexOf(r)<0&&(t[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,r=Object.getOwnPropertySymbols(n);s{if(this.cell.dropoutMask!=null&&(kt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(kt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new Z("ConvRNN2D cell does not support constants");const r=t==null?null:t.mask,s=t==null?null:t.training,o=t==null?null:t.initialState;return super.call(e,{mask:r,training:s,initialState:o})})}computeOutputShape(e){let t=this.computeSingleOutputShape(e);return this.returnSequences||(t=[t[0],...t.slice(2)]),this.returnState&&(t=[t,...Array(2).fill([e[0],...t.slice(-3)])]),t}getInitialState(e){return me(()=>{const{stateSize:t}=this.cell,r=e.shape,s=this.computeSingleOutputShape(r),o=[s[0],...s.slice(2)],i=gr(o);return Array.isArray(t)?Array(t.length).fill(i):[i]})}resetStates(e,t=!1){me(()=>{if(!this.stateful)throw new sa("Cannot call resetStates() on an RNN Layer that is not stateful.");const r=this.inputSpec[0].shape,s=this.computeSingleOutputShape(r),o=[s[0],...s.slice(2)];if(r[0]==null)throw new Z("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>gr(o)):this.states_=[gr(o)];else if(e==null)kt(this.states_),this.keptStates!=null&&(kt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>gr(o)):this.states_[0]=gr(o);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new Z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t?this.keptStates.push(this.states_.slice()):kt(this.states_);for(let a=0;aha(a.clone()))})}computeSingleOutputShape(e){const{dataFormat:t,filters:r,kernelSize:s,padding:o,strides:i,dilationRate:a}=this.cell,l=t==="channelsFirst",c=e[l?3:2],d=e[l?4:3],p=ki(c,s[0],o,i[0],a[0]),m=ki(d,s[1],o,i[1],a[1]);return[...e.slice(0,2),...l?[r,p,m]:[p,m,r]]}}nD.className="ConvRNN2D";class RI extends Mv{constructor(e){const{filters:t,kernelSize:r,strides:s,padding:o,dataFormat:i,dilationRate:a}=e;super(Object.assign(Object.assign({},e),{units:t})),this.filters=t,xr(this.filters,"filters"),this.kernelSize=rf(r,2,"kernelSize"),this.kernelSize.forEach(l=>xr(l,"kernelSize")),this.strides=rf(s||1,2,"strides"),this.strides.forEach(l=>xr(l,"strides")),this.padding=o||"valid",Co(this.padding),this.dataFormat=i||"channelsLast",Vn(this.dataFormat),this.dilationRate=rf(a||1,2,"dilationRate"),this.dilationRate.forEach(l=>xr(l,"dilationRate"))}build(e){var t;e=Gt(e);const r=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[r]==null)throw new Z(`The channel dimension of the input should be defined. Found ${e[r]}`);const s=e[r],o=4,i=this.kernelSize.concat([s,this.filters*o]);this.kernel=this.addWeight("kernel",i,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);const a=this.kernelSize.concat([this.filters,this.filters*o]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",a,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let l;if(this.unitForgetBias){const c=this.biasInitializer,d=this.filters;l=new(t=class extends Yo{apply(m,y){const v=c.apply([d]),b=wu([d]),w=c.apply([d*2]);return fI([v,b,w])}},t.className="CustomInit",t)}else l=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*o],null,l,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return me(()=>{if(e.length!==3)throw new Z(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);const r=t.training||!1,s=e[0],o=e[1],i=e[2],a=4;0Ko(s),rate:this.dropout,training:r,count:a,dropoutFunc:this.dropoutFunc}));const l=this.dropoutMask,c=(se,V,X)=>!V||!V[X]?se:ne(V[X],se);let d=c(s,l,0),p=c(s,l,1),m=c(s,l,2),y=c(s,l,3);0Ko(o),rate:this.recurrentDropout,training:r,count:a,dropoutFunc:this.dropoutFunc}));const v=this.recurrentDropoutMask;let b=c(o,v,0),w=c(o,v,1),k=c(o,v,2),I=c(o,v,3);const N=3,[T,A,O,P]=yo(this.kernel.read(),a,N),[B,z,L,_]=this.useBias?yo(this.bias.read(),a):[null,null,null,null];d=this.inputConv(d,T,B,this.padding),p=this.inputConv(p,A,z,this.padding),m=this.inputConv(m,O,L,this.padding),y=this.inputConv(y,P,_,this.padding);const[H,Y,re,te]=yo(this.recurrentKernel.read(),a,N);b=this.recurrentConv(b,H),w=this.recurrentConv(w,Y),k=this.recurrentConv(k,re),I=this.recurrentConv(I,te);const le=this.recurrentActivation.apply(Pe(d,b)),de=this.recurrentActivation.apply(Pe(p,w)),j=Pe(ne(de,i),ne(le,this.activation.apply(Pe(m,k)))),ie=ne(this.recurrentActivation.apply(Pe(y,I)),this.activation.apply(j));return[ie,ie,j]})}getConfig(){const e=super.getConfig(),{units:t}=e,r=_K(e,["units"]),s={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign(Object.assign({},r),s)}inputConv(e,t,r,s){const o=Qc(e,t,this.strides,s||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return r?Ei(o,r,this.dataFormat):o}recurrentConv(e,t){return Qc(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}}RI.className="ConvLSTM2DCell";_e(RI);class rD extends nD{constructor(e){const t=new RI(e);super(Object.assign(Object.assign({},e),{cell:t}))}static fromConfig(e,t){return new e(t)}}rD.className="ConvLSTM2D";_e(rD);class AI extends Et{constructor(e){super(e),this.rate=Math.max(Math.min(e.rate,1),0),this.noiseShape=e.noiseShape,this.seed=e.seed,this.supportsMasking=!0}getNoiseShape(e){if(this.noiseShape==null)return this.noiseShape;const t=e.shape,r=[];for(let s=0;s{this.invokeCallHook(e,t);const r=ft(e);if(0HA(r,this.rate,o,this.seed),()=>r,s)}return e})}getConfig(){const e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}}AI.className="Dropout";_e(AI);class sD extends AI{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){const t=e.shape;return[t[0],1,t[2]]}}sD.className="SpatialDropout1D";_e(sD);class oD extends Et{constructor(e){if(super(e),this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.batchInputShape==null&&e.inputShape==null&&e.inputDim!=null){let t=null;e.batchSize!=null&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,xr(this.units,"units"),this.activation=cu(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=kn(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=kn(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=ir(e.kernelConstraint),this.biasConstraint=ir(e.biasConstraint),this.kernelRegularizer=In(e.kernelRegularizer),this.biasRegularizer=In(e.biasRegularizer),this.activityRegularizer=In(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=Gt(e);const t=e[e.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[t,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:t}}],this.built=!0}computeOutputShape(e){e=Gt(e);const t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return me(()=>{this.invokeCallHook(e,t);const r=ft(e),s=zA(this.activation.getClassName());let o;return s!=null?o=pa(r,this.kernel.read(),s,this.bias?this.bias.read():null):(o=pa(r,this.kernel.read()),this.bias!=null&&(o=Ei(o,this.bias.read())),this.activation!=null&&(o=this.activation.apply(o))),o})}getConfig(){const e={units:this.units,activation:uu(this.activation),useBias:this.useBias,kernelInitializer:Tn(this.kernelInitializer),biasInitializer:Tn(this.biasInitializer),kernelRegularizer:un(this.kernelRegularizer),biasRegularizer:un(this.biasRegularizer),activityRegularizer:un(this.activityRegularizer),kernelConstraint:or(this.kernelConstraint),biasConstraint:or(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}}oD.className="Dense";_e(oD);class iD extends Et{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=Gt(e);for(const t of e.slice(1))if(t==null)throw new Z(`The shape of the input to "Flatten" is not fully defined (got ${e.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[e[0],iu(e,1)]}call(e,t){return me(()=>{this.invokeCallHook(e,t);let r=ft(e);if(this.dataFormat==="channelsFirst"&&r.rank>1){const s=[0];for(let o=2;o{this.invokeCallHook(e,t);const r=ft(e);return this.activation.apply(r)})}getConfig(){const e={activation:uu(this.activation)},t=super.getConfig();return Object.assign(e,t),e}}aD.className="Activation";_e(aD);class lD extends Et{constructor(e){super(e),this.n=e.n,this.inputSpec=[{ndim:2}]}computeOutputShape(e){return[e[0],this.n,e[1]]}call(e,t){return me(()=>(e=ft(e),aq(e,this.n)))}getConfig(){const e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}}lD.className="RepeatVector";_e(lD);class uD extends Et{constructor(e){super(e),this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);const r=ft(e),s=r.shape,o=s.slice(0,1).concat(this.fixUnknownDimension(s.slice(1),this.targetShape));return ce(r,o)})}getConfig(){const e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}}uD.className="Reshape";_e(uD);class cD extends Et{constructor(e){if(super(e),e.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(e.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${e.dims} instead.`);const t=Ii(1,e.dims.length+1);if(!Xt(e.dims.slice().sort(),t))throw new Error("Invalid permutation `dims`: "+JSON.stringify(e.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=e.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new rr({ndim:this.dims.length+1})]}computeOutputShape(e){e=Gt(e);const t=e.slice();return this.dims.forEach((r,s)=>{t[s+1]=e[r]}),t}call(e,t){return Lt(ft(e),this.dimsIncludingBatch)}getConfig(){const e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}}cD.className="Permute";_e(cD);class hD extends Et{constructor(e){super(e??{}),this.supportsMasking=!0,e!=null?this.maskValue=e.maskValue==null?0:e.maskValue:this.maskValue=0}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){const r=ft(e);return wC(Gy(r,this.maskValue),-1)}call(e,t){return me(()=>{this.invokeCallHook(e,t);const r=ft(e),i=wC(Gy(r,this.maskValue),-1,!0);return ne(r,Ge(i,r.dtype))})}}hD.className="Masking";_e(hD);class dD extends Et{constructor(e){if(super(e),this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",e.batchInputShape==null&&e.inputShape==null){let t=null;e.batchSize!=null&&(t=e.batchSize),e.inputLength==null?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(rn(e.inputLength))}this.inputDim=e.inputDim,xr(this.inputDim,"inputDim"),this.outputDim=e.outputDim,xr(this.outputDim,"outputDim"),this.embeddingsInitializer=kn(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=In(e.embeddingsRegularizer),this.activityRegularizer=In(e.activityRegularizer),this.embeddingsConstraint=ir(e.embeddingsConstraint),this.maskZero=e.maskZero,this.supportsMasking=e.maskZero,this.inputLength=e.inputLength}build(e){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(e){}computeMask(e,t){return me(()=>this.maskZero?(e=ft(e),Gy(e,Mt(e))):null)}computeOutputShape(e){if(e=Gt(e),this.inputLength==null)return[...e,this.outputDim];const t=rn(this.inputLength);if(t.length!==e.length-1)throw new Z(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let r=0;for(let s=0;s{this.invokeCallHook(e,t);let r=ft(e);r.dtype!=="int32"&&(r=fa(r,"int32"));const s=jA(this.embeddings.read(),ce(r,[r.size]));return ce(s,Gt(this.computeOutputShape(r.shape)))})}getConfig(){const e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Tn(this.embeddingsInitializer),embeddingsRegularizer:un(this.embeddingsRegularizer),activityRegularizer:un(this.activityRegularizer),embeddingsConstraint:or(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}}dD.className="Embedding";_e(dD);class dh extends Et{constructor(e){super(e||{}),this.supportsMasking=!0}mergeFunction(e){throw new wt}computeElementwiseOpOutputShape(e,t){if(e==null||t==null)return null;if(e.length1)throw new Z(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let r=e[0]==null?null:e[0].slice(1);for(let o=1;oo.length);e.indexOf(null)===-1&&ou(s).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return me(()=>{if(e=e,this.reshapeRequired){const r=[],s=e.map(o=>o.rank);if(s.indexOf(null)===-1){const o=lu(s);for(let i of e){const a=i.rank;for(let l=0;l1){const d=Ii(1,c).concat([0]);r.push(Lt(l,d)),o=!0}else r.push(l)}let i=this.mergeFunction(r);const a=i.rank;if(o){if(a==null){const l=i.shape,c=l.length,d=l[c-1],p=[d].concat(l.slice(0,l.length-1));i=ce(Lt(ce(i,[-1,d]),[1,0]),p)}else if(a>1){const l=[a-1].concat(Ii(0,a-1));i=Lt(i,l)}}return i}}else return this.mergeFunction(e)})}computeOutputShape(e){e=e;let t;e[0]==null?t=null:t=e[0].slice(1);for(let s=1;s{if(t==null)return null;if(!Array.isArray(t))throw new Z("`mask` should be an Array");if(!Array.isArray(e))throw new Z("`inputs` should be an Array");if(t.length!==e.length)throw new Z(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every(s=>s==null))return null;t=t.map(s=>s==null?s:Ss(s,0));let r=t[0];for(let s=1;s{let t=e[0].clone();for(let r=1;r{let t=e[0].clone();for(let r=1;r{let t=e[0].clone();for(let r=1;r{let t=e[0];for(let r=1;r{let t=e[0];for(let r=1;r1)throw new Z("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return me(()=>fI(e,this.axis))}computeOutputShape(e){if(!(Array.isArray(e)&&Array.isArray(e[0])))throw new Z("A `Concatenate` layer should be called on a list of inputs.");const t=e,r=t[0].slice(),s=this.axis<0?r.length+this.axis:this.axis;for(const o of t.slice(1)){if(r[s]==null||o[s]==null){r[s]=null;break}r[s]+=o[s]}return r}computeMask(e,t){if(t==null)return null;if(!Array.isArray(t))throw new Z("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new Z("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new Z(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return me(()=>{let r=!0;if(t.forEach(i=>{if(i!=null){r=!1;return}}),r)return null;const s=[];for(let i=0;i3||e.shape.length>3)throw new wt("batchDot is not implemented for tensors of 4D or higher rank yet");if(U(n.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${n.shape.length}`),U(n.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${e.shape.length}`),typeof t=="number"&&(t=[t,t]),n.dtype==="complex64"||e.dtype==="complex64")throw new wt("batchDot is not implemented for complex64-type Tensors yet.");const r=n.shape.length,s=e.shape.length;t==null&&(t=[r-1,s-2]);const o=t;return me(()=>{let i;if(r>s){i=r-s;const l=[];for(let c=0;cr){i=s-r;const l=[];for(let c=0;c0){let l;r>s?l=r+s-3:l=r-1;const c=[];for(let d=l;d"A `Dot` layer should be called on a list of exactly 2 inputs.");const t=e[0],r=e[1];if(t.length>3||r.length>3)throw new wt("Dot layer does not support tensors of 4D or higher rank yet.");const s=this.interpretAxes(t,r);if(t[s[0]]!==r[s[1]])throw new Z(`Dimension incompatibility: ${t[s[0]]} !== ${r[s[1]]}`)}mergeFunction(e){if(e.length!==2)throw new Z(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t=e[0],r=e[1],s;return Array.isArray(this.axes)?s=this.axes.map((o,i)=>xm(o,e[i].shape.length)):s=[xm(this.axes,t.shape.length),xm(this.axes,r.shape.length)],this.normalize&&(t=Qy(t,s[0]),r=Qy(r,s[1])),DK(t,r,s)}interpretAxes(e,t){let r;return Array.isArray(this.axes)?r=this.axes:r=[xm(this.axes,e.length),xm(this.axes,t.length)],r}computeOutputShape(e){U(Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");const t=e[0].slice(),r=e[1].slice();if(t.length>3||r.length>3)throw new wt("Dot layer does not support tensors of 4D or higher rank yet.");const s=this.interpretAxes(t,r);t.splice(s[0],1),r.splice(s[1],1),r.splice(0,1);const o=t.concat(r);return o.length===1&&o.push(1),o}computeMask(e,t){return null}getConfig(){const e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}}vD.className="Dot";_e(vD);class wD extends Et{constructor(e){super(e),this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return me(()=>{this.invokeCallHook(e,t);const r=ft(e);return cx(()=>Pe(Av(r.shape,0,this.stddev),r),()=>r,t.training||!1)})}}wD.className="GaussianNoise";_e(wD);class bD extends Et{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return me(()=>{this.invokeCallHook(e,t);const r=ft(e);return this.rate>0&&this.rate<1?cx(()=>{const o=Math.sqrt(this.rate/(1-this.rate));return ne(r,Av(r.shape,1,o))},()=>r,t.training||!1):r})}}bD.className="GaussianDropout";_e(bD);class CD extends Et{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||ft(e).shape}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return me(()=>{if(this.rate<1&&this.rate>0){const r=this._getNoiseShape(e);return cx(()=>{const o=ft(e),a=-1.6732632423543772*1.0507009873554805;let l=lh(tx(r),this.rate);l=fa(l,"float32");const c=((1-this.rate)*(1+this.rate*a**2))**-.5,d=-c*a*this.rate,p=Pe(ne(o,l),ne(Pe(l,-1),a));return Pe(ne(p,c),d)},()=>ft(e),t.training||!1)}return e})}}CD.className="AlphaDropout";_e(CD);function Gm(n,e,t,r,s,o=.001){let i;if(n.rank===2)i=ZW(n,e,t,r,s,o);else if(n.rank===3)i=tV(n,e,t,r,s,o);else if(n.rank===4)i=rV(n,e,t,r,s,o);else throw new wt(`batchNormalization is not implemented for array of rank ${n.rank} yet`);return i}function OK(n,e,t,r,s=.001){return me(()=>{const o=wk(n,r),i=o.mean,a=o.variance;return[Gm(n,i,a,t,e,s),i,a]})}function FK(n,e,t,r,s=.001){return me(()=>{const o=wk(n,r),i=o.mean,a=o.variance,l=[];for(const v of Ii(0,n.rank))r.indexOf(v)!==-1?l.push(1):l.push(n.shape[v]);const c=ce(i,l),d=ce(a,l),p=e==null?null:ce(e,l),m=t==null?null:ce(t,l);return[Gm(n,c,d,m,p,s),i,a]})}function PK(n,e,t,r,s=.001){return Xt(r.slice().sort(),Ii(0,n.rank-1))?OK(n,e,t,r,s):FK(n,e,t,r,s)}class SD extends Et{constructor(e){e==null&&(e={}),super(e),this.supportsMasking=!0,this.axis=e.axis==null?-1:e.axis,this.momentum=e.momentum==null?.99:e.momentum,this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=kn(e.betaInitializer||"zeros"),this.gammaInitializer=kn(e.gammaInitializer||"ones"),this.movingMeanInitializer=kn(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=kn(e.movingVarianceInitializer||"ones"),this.betaConstraint=ir(e.betaConstraint),this.gammaConstraint=ir(e.gammaConstraint),this.betaRegularizer=In(e.betaRegularizer),this.gammaRegularizer=In(e.gammaRegularizer)}build(e){e=Gt(e);const t=this.axis>=0?this.axis:this.axis+e.length,r=e[t];if(r==null)throw new Z(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new rr({ndim:e.length,axes:{[t]:r}})];const s=[r];this.scale&&(this.gamma=this.addWeight("gamma",s,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",s,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",s,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",s,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return me(()=>{const r=t.training==null?!1:t.training,s=ft(e),o=s.shape,i=o.length,a=Ii(0,i),l=this.axis>=0?this.axis:this.axis+i;a.splice(l,1);const c=th(1,i);c[l]=o[l];const d=a.slice();d.sort();const p=!Xt(d,Ii(0,i).slice(0,i-1)),m=()=>{if(p){const I=ce(this.movingMean.read(),c),N=ce(this.movingVariance.read(),c),T=this.center?ce(this.beta.read(),c):null,A=this.scale?ce(this.gamma.read(),c):null;return Gm(s,I,N,T,A,this.epsilon)}else return Gm(s,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!r)return m();const[y,v,b]=PK(s,this.gamma.read(),this.beta.read(),a,this.epsilon),w=(I,N,T)=>{me(()=>{const A=1-T,O=I.read(),P=ne(ut(O,N),A);I.write(ut(O,P))})};return(()=>{w(this.movingMean,v,this.momentum),w(this.movingVariance,b,this.momentum)})(),y})}getConfig(){const e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Tn(this.betaInitializer),gammaInitializer:Tn(this.gammaInitializer),movingMeanInitializer:Tn(this.movingMeanInitializer),movingVarianceInitializer:Tn(this.movingVarianceInitializer),betaRegularizer:un(this.betaRegularizer),gammaRegularizer:un(this.gammaRegularizer),betaConstraint:or(this.betaConstraint),gammaConstraint:or(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}}SD.className="BatchNormalization";_e(SD);class kD extends Et{constructor(e){if(e==null&&(e={}),super(e),this.axis=e.axis==null?-1:e.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(const t of this.axis)if(!Number.isInteger(t))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=kn(e.betaInitializer||"zeros"),this.gammaInitializer=kn(e.gammaInitializer||"ones"),this.betaRegularizer=In(e.betaRegularizer),this.gammaRegularizer=In(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=Gt(e);const t=e.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let o=0;o=t)throw new Error(`Invalid axis: ${o}`);if(this.axis.length!==ou(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);const r=this.axis.map(o=>e[o]),s=!0;this.scale?this.gamma=this.addWeight("gamma",r,"float32",this.gammaInitializer,this.gammaRegularizer,s):this.gamma=null,this.center?this.beta=this.addWeight("beta",r,"float32",this.betaInitializer,this.betaRegularizer,s):this.beta=null,this.built=!0}call(e,t){const r=ft(e),s=r.shape,o=s.length;return me(()=>{let{mean:a,variance:l}=wk(r,this.axis,!0);const c=th(1,o);for(const b of this.axis)c[b]=s[b];const d=b=>b!=null&&b.shape.length!==o?ce(b,c):b;let p=this.scale?d(this.gamma.read()):null,m=this.center?d(this.beta.read()):null;const y=[],v=[];for(let b=0;b{if(n.rank!==4)throw new Z(`temporalPadding expects input tensor to be 4-D, but received a ${n.rank}-D tensor.`);if(e==null&&(e=[[1,1],[1,1]]),e.length!==2||e[0].length!==2||e[1].length!==2)throw new Z("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(t==null&&(t=$i()),t!=="channelsLast"&&t!=="channelsFirst")throw new Z(`Unknown data format: ${t}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let r;return t==="channelsFirst"?r=[[0,0],[0,0],e[0],e[1]]:r=[[0,0],e[0],e[1],[0,0]],bk(n,r)})}class ID extends Et{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?$i():e.dataFormat,e.padding==null)this.padding=[[1,1],[1,1]];else if(typeof e.padding=="number")this.padding=[[e.padding,e.padding],[e.padding,e.padding]];else{if(e.padding=e.padding,e.padding.length!==2)throw new Z(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${e.padding.length} array.`);let t,r;if(typeof e.padding[0]=="number")t=[e.padding[0],e.padding[0]],r=[e.padding[1],e.padding[1]];else{if(e.padding=e.padding,e.padding[0].length!==2)throw new Z(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${e.padding[0].length} array.`);if(t=e.padding[0],e.padding[1].length!==2)throw new Z(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${e.padding[1].length} array.`);r=e.padding[1]}this.padding=[t,r]}this.inputSpec=[new rr({ndim:4})]}computeOutputShape(e){e=Gt(e);let t,r;return this.dataFormat==="channelsFirst"?(e[2]!=null&&e[2]>=0?t=e[2]+this.padding[0][0]+this.padding[0][1]:t=null,e[3]!=null&&e[3]>=0?r=e[3]+this.padding[1][0]+this.padding[1][1]:r=null,[e[0],e[1],t,r]):(e[1]!=null&&e[1]>=0?t=e[1]+this.padding[0][0]+this.padding[0][1]:t=null,e[2]!=null&&e[2]>=0?r=e[2]+this.padding[1][0]+this.padding[1][1]:r=null,[e[0],t,r,e[3]])}call(e,t){return me(()=>LK(ft(e),this.padding,this.dataFormat))}getConfig(){const e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}ID.className="ZeroPadding2D";_e(ID);function zv(n,e,t,r,s,o){return me(()=>{Vn(s),UA(o),Co(r),t==null&&(t=[1,1]),r==null&&(r="valid"),s==null&&(s=$i()),o==null&&(o="max"),n=$I(n,s);let i;const a=r==="same"?"same":"valid";return o==="max"?i=vk(n,e,t,a):i=uk(n,e,t,a),s==="channelsFirst"&&(i=Lt(i,[0,3,1,2])),i})}function $D(n,e,t,r,s,o){return me(()=>{Vn(s),UA(o),Co(r),t==null&&(t=[1,1,1]),r==null&&(r="valid"),s==null&&(s=$i()),o==null&&(o="max"),n=V_(n,s);let i;const a=r==="same"?"same":"valid";return o==="max"?i=UG(n,e,t,a):i=VW(n,e,t,a),s==="channelsFirst"&&(i=Lt(i,[0,4,1,2,3])),i})}class ND extends Et{constructor(e){if(e.poolSize==null&&(e.poolSize=2),super(e),typeof e.poolSize=="number")this.poolSize=[e.poolSize];else if(Array.isArray(e.poolSize)&&e.poolSize.length===1&&typeof e.poolSize[0]=="number")this.poolSize=e.poolSize;else throw new Z(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);if(xr(this.poolSize,"poolSize"),e.strides==null)this.strides=this.poolSize;else if(typeof e.strides=="number")this.strides=[e.strides];else if(Array.isArray(e.strides)&&e.strides.length===1&&typeof e.strides[0]=="number")this.strides=e.strides;else throw new Z(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);xr(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,Co(this.padding),this.inputSpec=[new rr({ndim:3})]}computeOutputShape(e){e=Gt(e);const t=ki(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return me(()=>{this.invokeCallHook(e,t),e=lx(ft(e),2);const r=this.poolingFunction(ft(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return nx(r,[2])})}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}}class TD extends ND{constructor(e){super(e)}poolingFunction(e,t,r,s,o){return Vn(o),Co(s),zv(e,t,r,s,o,"max")}}TD.className="MaxPooling1D";_e(TD);class ED extends ND{constructor(e){super(e)}poolingFunction(e,t,r,s,o){return Vn(o),Co(s),zv(e,t,r,s,o,"avg")}}ED.className="AveragePooling1D";_e(ED);class RD extends Et{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==2)throw new Z(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides];xr(this.poolSize,"poolSize"),xr(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Vn(this.dataFormat),Co(this.padding),this.inputSpec=[new rr({ndim:4})]}computeOutputShape(e){e=Gt(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],r=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=ki(t,this.poolSize[0],this.padding,this.strides[0]),r=ki(r,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,r]:[e[0],t,r,e[3]]}call(e,t){return me(()=>(this.invokeCallHook(e,t),this.poolingFunction(ft(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class AD extends RD{constructor(e){super(e)}poolingFunction(e,t,r,s,o){return Vn(o),Co(s),zv(e,t,r,s,o,"max")}}AD.className="MaxPooling2D";_e(AD);class _D extends RD{constructor(e){super(e)}poolingFunction(e,t,r,s,o){return Vn(o),Co(s),zv(e,t,r,s,o,"avg")}}_D.className="AveragePooling2D";_e(_D);class DD extends Et{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==3)throw new Z(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides,e.strides];xr(this.poolSize,"poolSize"),xr(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Vn(this.dataFormat),Co(this.padding),this.inputSpec=[new rr({ndim:5})]}computeOutputShape(e){e=Gt(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],r=this.dataFormat==="channelsFirst"?e[3]:e[2],s=this.dataFormat==="channelsFirst"?e[4]:e[3];return t=ki(t,this.poolSize[0],this.padding,this.strides[0]),r=ki(r,this.poolSize[1],this.padding,this.strides[1]),s=ki(s,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,r,s]:[e[0],t,r,s,e[4]]}call(e,t){return me(()=>(this.invokeCallHook(e,t),this.poolingFunction(ft(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class OD extends DD{constructor(e){super(e)}poolingFunction(e,t,r,s,o){return Vn(o),Co(s),$D(e,t,r,s,o,"max")}}OD.className="MaxPooling3D";_e(OD);class FD extends DD{constructor(e){super(e)}poolingFunction(e,t,r,s,o){return Vn(o),Co(s),$D(e,t,r,s,o,"avg")}}FD.className="AveragePooling3D";_e(FD);class PD extends Et{constructor(e){super(e),this.inputSpec=[new rr({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new wt}}class LD extends PD{constructor(e){super(e||{})}call(e,t){return me(()=>{const r=ft(e);return Xn(r,1)})}}LD.className="GlobalAveragePooling1D";_e(LD);class MD extends PD{constructor(e){super(e||{})}call(e,t){return me(()=>{const r=ft(e);return Si(r,1)})}}MD.className="GlobalMaxPooling1D";_e(MD);class zD extends Et{constructor(e){super(e),this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Vn(this.dataFormat),this.inputSpec=[new rr({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new wt}getConfig(){const e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class BD extends zD{call(e,t){return me(()=>{const r=ft(e);return this.dataFormat==="channelsLast"?Xn(r,[1,2]):Xn(r,[2,3])})}}BD.className="GlobalAveragePooling2D";_e(BD);class UD extends zD{call(e,t){return me(()=>{const r=ft(e);return this.dataFormat==="channelsLast"?Si(r,[1,2]):Si(r,[2,3])})}}UD.className="GlobalMaxPooling2D";_e(UD);class WD extends Et{constructor(e){super(e),this.layer=e.layer}build(e){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(e){this.layer!=null&&(this.layer.trainable=e)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(e){this.layer.setWeights(e)}getConfig(){const e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,r={}){const s=t.layer,o=ma(s,r);delete t.layer;const i={layer:o};return Object.assign(i,t),new e(i)}}class VD extends WD{constructor(e){super(e),this.supportsMasking=!0}build(e){if(e=Gt(e),e.length<3)throw new Z(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];const t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){e=Gt(e);const t=[e[0]].concat(e.slice(2)),r=this.layer.computeOutputShape(t),s=e[1];return[r[0],s].concat(r.slice(1))}call(e,t){return me(()=>(e=ft(e),J_((i,a)=>[ft(this.layer.call(i,t)),[]],e,[],!1,null,null,!1,!0)[1]))}}VD.className="TimeDistributed";_e(VD);function MK(n){hh(nq,"BidirectionalMergeMode",n)}const zK="concat";class GD extends WD{constructor(e){super(e);const t=e.layer.getConfig(),r={};r.className=e.layer.getClassName(),r.config=t,this.forwardLayer=ma(r),t.goBackwards=t.goBackwards!==!0;const s={};if(s.className=e.layer.getClassName(),s.config=t,this.backwardLayer=ma(s),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?zK:e.mergeMode,MK(this.mergeMode),e.weights)throw new wt("weights support is not implemented for Bidirectional layer yet.");this._stateful=e.layer.stateful,this.returnSequences=e.layer.returnSequences,this.returnState=e.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=e.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(e){this._trainable=e,this.forwardLayer!=null&&(this.forwardLayer.trainable=e),this.backwardLayer!=null&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){const t=e.length,r=Math.floor(t/2);this.forwardLayer.setWeights(e.slice(0,r)),this.backwardLayer.setWeights(e.slice(r))}computeOutputShape(e){let t=this.forwardLayer.computeOutputShape(e);Array.isArray(t)&&Array.isArray(t[0])||(t=[t]),t=t;let r,s,o;return this.returnState&&(o=t.slice(1)),r=t[0],r=r,this.mergeMode==="concat"?(r[r.length-1]*=2,s=[r]):this.mergeMode==null?s=[r,r.slice()]:s=[r],this.returnState?this.mergeMode==null?s.concat(o).concat(o.slice()):[r].concat(o).concat(o.slice()):ks(s)}apply(e,t){let r=t==null?null:t.initialState,s=t==null?null:t.constants;t==null&&(t={});const o=Q_(e,r,s,this.numConstants);if(e=o.inputs,r=o.initialState,s=o.constants,Array.isArray(e)&&(r=e.slice(1),e=e[0]),(r==null||r.length===0)&&s==null)return super.apply(e,t);const i=[],a=[];if(r!=null){const c=r.length;if(c%2>0)throw new Z("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");t.initialState=r,i.push(...r);const d=r.map(p=>new rr({shape:p.shape}));this.forwardLayer.stateSpec=d.slice(0,c/2),this.backwardLayer.stateSpec=d.slice(c/2),a.push(...d)}if(s!=null)throw new wt("Support for constants in Bidirectional layers is not implemented yet.");const l=i[0]instanceof va;for(const c of i)if(c instanceof va!==l)throw new Z("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(l){const c=[e].concat(i),d=this.inputSpec.concat(a),p=this.inputSpec;this.inputSpec=d;const m=super.apply(c,t);return this.inputSpec=p,m}else return super.apply(e,t)}call(e,t){return me(()=>{const r=t.initialState;let s,o;if(r==null)s=this.forwardLayer.call(e,t),o=this.backwardLayer.call(e,t);else{const l=r.slice(0,r.length/2),c=r.slice(r.length/2);s=this.forwardLayer.call(e,Object.assign(t,{initialState:l})),o=this.backwardLayer.call(e,Object.assign(t,{initialState:c}))}let i;this.returnState&&(Array.isArray(s)&&(i=s.slice(1).concat(o.slice(1))),s=s[0],o=o[0]),this.returnSequences&&(o=Zc(o,1));let a;return this.mergeMode==="concat"?a=fI([s,o]):this.mergeMode==="sum"?a=Pe(s,o):this.mergeMode==="ave"?a=ne(.5,Pe(s,o)):this.mergeMode==="mul"?a=ne(s,o):this.mergeMode==null&&(a=[s,o]),this.returnState?this.mergeMode==null?a.concat(i):[a].concat(i):a})}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){Mc(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),Mc(this.backwardLayer.name,()=>{this.backwardLayer.build(e)}),this.built=!0}computeMask(e,t){Array.isArray(t)&&(t=t[0]);let r;if(this.returnSequences?this.mergeMode==null?r=[t,t]:r=t:this.mergeMode==null?r=[null,null]:r=null,this.returnState){const o=this.forwardLayer.states.map(i=>null);return Array.isArray(r)?r.concat(o).concat(o):[r].concat(o).concat(o)}else return r}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(e),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){const e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){const r=ma(t.layer);if(delete t.layer,t.numConstants!=null)throw new wt("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");const s=t;return s.layer=r,new e(s)}}GD.className="Bidirectional";_e(GD);class jD extends Et{constructor(e){super(e),this.scale=e.scale,e.offset?this.offset=e.offset:this.offset=0}getConfig(){const e={scale:this.scale,offset:this.offset},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return me(()=>(e=ft(e),e.dtype!=="float32"&&(e=fa(e,"float32")),Pe(ne(e,this.scale),this.offset)))}}jD.className="Rescaling";_e(jD);const{resizeBilinear:BK,cropAndResize:UK}=nl;class HD extends Et{constructor(e){super(e),this.height=e.height,this.width=e.width}centerCrop(e,t,r,s,o,i,a,l){return me(()=>{let c,d=!1;const p=t/i,m=r/a,y=(s+t)/i,v=(o+r)/a,b=[p,m,y,v],w=[];e.rank===3?(d=!0,c=sl([e])):c=e;for(let A=0;A{const o=BK(e,[t,r]);return fa(o,s)})}call(e,t){return me(()=>{const r=ft(e),s=r.dtype,o=r.shape,i=o[o.length-3],a=o[o.length-2];let l=0;i!==this.height&&(l=Math.floor((i-this.height)/2));let c=0;return a!==this.width&&(c=Math.floor((a-this.width)/2),c===0&&(c=1)),l>=0&&c>=0?this.centerCrop(r,l,c,this.height,this.width,i,a,s):this.upsize(e,this.height,this.width,s)})}getConfig(){const e={height:this.height,width:this.width},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){e=Gt(e);const t=e.length-3,r=e.length-2;return e[t]=this.height,e[r]=this.width,e}}HD.className="CenterCrop";_e(HD);function WK(n,e,t,r){let s=ft(n);if(s.dtype!=="int32"&&(s=fa(s,"int32")),e==="int")return s;const o=s.shape;if(s.rank===0&&(s=Ss(s,-1)),e==="oneHot"&&s.shape[s.shape.length-1]!==1&&(s=Ss(s,-1)),s.rank>2)throw new Z(`When outputMode is not int, maximum output rank is 2 Received outputMode ${e} and input shape ${o} which would result in output rank ${s.rank}.`);const i=["multiHot","oneHot"].includes(e),a=s;let l;if(typeof r<"u"&&e==="count"?l=zN(a,r,t,i):l=zN(a,[],t,i),e!=="tfIdf")return l;if(r)return ne(l,r);throw new Z("When outputMode is 'tfIdf', weights must be provided.")}class qD extends Et{constructor(e){super(e),this.numTokens=e.numTokens,e.outputMode?this.outputMode=e.outputMode:this.outputMode="multiHot"}getConfig(){const e={numTokens:this.numTokens,outputMode:this.outputMode},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){return e=Gt(e),e==null?[this.numTokens]:this.outputMode==="oneHot"&&e[e.length-1]!==1?(e.push(this.numTokens),e):(e[e.length-1]=this.numTokens,e)}call(e,t){return me(()=>{e=ft(e),e.dtype!=="int32"&&(e=fa(e,"int32"));let r;if(typeof t.countWeights<"u"){if(this.outputMode!=="count")throw new Z(`countWeights is not used when outputMode !== count. + Received countWeights=${t.countWeights}`);r=ft(t.countWeights)}const s=Si(e),o=Wy(e),i=bo(this.numTokens,s).bufferSync().get(0),a=lh(o,0).bufferSync().get(0);if(!(i&&a))throw new Z(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return WK(e,this.outputMode,this.numTokens,r)})}}qD.className="CategoryEncoding";_e(qD);const VK=["bilinear","nearest"],T2=new Set(VK);class KD extends Et{constructor(e){if(super(e),this.height=e.height,this.width=e.width,e.interpolation)if(T2.has(e.interpolation))this.interpolation=e.interpolation;else throw new Z(`Invalid interpolation parameter: ${e.interpolation} is not implemented`);else this.interpolation="bilinear";this.cropToAspectRatio=!!e.cropToAspectRatio}computeOutputShape(e){e=Gt(e);const t=e[2];return[this.height,this.width,t]}getConfig(){const e={height:this.height,width:this.width,interpolation:this.interpolation,cropToAspectRatio:this.cropToAspectRatio},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return me(()=>{const r=[this.height,this.width];if(this.interpolation==="bilinear")return nl.resizeBilinear(e,r,!this.cropToAspectRatio);if(this.interpolation==="nearest")return nl.resizeNearestNeighbor(e,r,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...T2]} are supported`)})}}KD.className="Resizing";_e(KD);class XD{constructor(e){this.seed=e}next(){if(this.seed!==void 0)return this.seed++}}XD.className="RandomSeed";class YD extends Et{constructor(e){super(e),this.randomGenerator=new XD(e.seed)}getConfig(){const e={seed:this.randomGenerator.seed},t=super.getConfig();return Object.assign(e,t),e}}YD.className="BaseRandomLayer";const GK=["bilinear","nearest"],E2=new Set(GK);class QD extends YD{constructor(e){super(e);const{factor:t,interpolation:r="bilinear"}=e;if(this.factor=t,Array.isArray(this.factor)&&this.factor.length===2)this.widthLower=this.factor[0],this.widthUpper=this.factor[1];else if(!Array.isArray(this.factor)&&this.factor>0)this.widthLower=-this.factor,this.widthUpper=this.factor;else throw new Z(`Invalid factor: ${this.factor}. Must be positive number or tuple of 2 numbers`);if(this.widthLower<-1||this.widthUpper<-1)throw new Z(`factor must have values larger than -1. Got: ${this.factor}`);if(this.widthUpper{const r=ft(e);this.imgHeight=r.shape[r.shape.length-3];const s=r.shape[r.shape.length-2];this.widthFactor=tx([1],1+this.widthLower,1+this.widthUpper,"float32",this.randomGenerator.next());let o=this.widthFactor.dataSync()[0]*s;o=Math.round(o);const i=[this.imgHeight,o];switch(this.interpolation){case"bilinear":return nl.resizeBilinear(e,i);case"nearest":return nl.resizeNearestNeighbor(e,i);default:throw new Error(`Interpolation is ${this.interpolation} + but only ${[...E2]} are supported`)}})}}QD.className="RandomWidth";_e(QD);const jK=ye();jK.registerFlag("KEEP_INTERMEDIATE_TENSORS",()=>!1,n=>{n&&console.warn("Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.")});var R2;(function(n){n[n.DT_INVALID=0]="DT_INVALID",n[n.DT_FLOAT=1]="DT_FLOAT",n[n.DT_DOUBLE=2]="DT_DOUBLE",n[n.DT_INT32=3]="DT_INT32",n[n.DT_UINT8=4]="DT_UINT8",n[n.DT_INT16=5]="DT_INT16",n[n.DT_INT8=6]="DT_INT8",n[n.DT_STRING=7]="DT_STRING",n[n.DT_COMPLEX64=8]="DT_COMPLEX64",n[n.DT_INT64=9]="DT_INT64",n[n.DT_BOOL=10]="DT_BOOL",n[n.DT_QINT8=11]="DT_QINT8",n[n.DT_QUINT8=12]="DT_QUINT8",n[n.DT_QINT32=13]="DT_QINT32",n[n.DT_BFLOAT16=14]="DT_BFLOAT16",n[n.DT_QINT16=15]="DT_QINT16",n[n.DT_QUINT16=16]="DT_QUINT16",n[n.DT_UINT16=17]="DT_UINT16",n[n.DT_COMPLEX128=18]="DT_COMPLEX128",n[n.DT_HALF=19]="DT_HALF",n[n.DT_RESOURCE=20]="DT_RESOURCE",n[n.DT_VARIANT=21]="DT_VARIANT",n[n.DT_UINT32=22]="DT_UINT32",n[n.DT_UINT64=23]="DT_UINT64",n[n.DT_FLOAT_REF=101]="DT_FLOAT_REF",n[n.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",n[n.DT_INT32_REF=103]="DT_INT32_REF",n[n.DT_UINT8_REF=104]="DT_UINT8_REF",n[n.DT_INT16_REF=105]="DT_INT16_REF",n[n.DT_INT8_REF=106]="DT_INT8_REF",n[n.DT_STRING_REF=107]="DT_STRING_REF",n[n.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",n[n.DT_INT64_REF=109]="DT_INT64_REF",n[n.DT_BOOL_REF=110]="DT_BOOL_REF",n[n.DT_QINT8_REF=111]="DT_QINT8_REF",n[n.DT_QUINT8_REF=112]="DT_QUINT8_REF",n[n.DT_QINT32_REF=113]="DT_QINT32_REF",n[n.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF",n[n.DT_QINT16_REF=115]="DT_QINT16_REF",n[n.DT_QUINT16_REF=116]="DT_QUINT16_REF",n[n.DT_UINT16_REF=117]="DT_UINT16_REF",n[n.DT_COMPLEX128_REF=118]="DT_COMPLEX128_REF",n[n.DT_HALF_REF=119]="DT_HALF_REF",n[n.DT_RESOURCE_REF=120]="DT_RESOURCE_REF",n[n.DT_VARIANT_REF=121]="DT_VARIANT_REF",n[n.DT_UINT32_REF=122]="DT_UINT32_REF",n[n.DT_UINT64_REF=123]="DT_UINT64_REF"})(R2||(R2={}));var A2;(function(n){(function(e){e[e.LEGACY=0]="LEGACY",e[e.V1=1]="V1",e[e.V2=2]="V2"})(n.CheckpointFormatVersion||(n.CheckpointFormatVersion={}))})(A2||(A2={}));var _2;(function(n){n[n.FAIL=0]="FAIL",n[n.SHORTEST=1]="SHORTEST",n[n.LONGEST=2]="LONGEST"})(_2||(_2={}));function Ye(n,e){Array.isArray(n)||(n=[n]),n.forEach(t=>{t!=null&&U(t.dtype!=="complex64",()=>`${e} does not support complex64 tensors in the CPU backend.`)})}const HK=jR;class Bv extends hS{nextDataId(){return Bv.nextDataId++}constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new yE(this,na())}write(e,t,r){this.firstUse&&(this.firstUse=!1,ye().get("IS_NODE")&&go(` +============================ +Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, visit https://github.com/tensorflow/tfjs-node for more details. +============================`));const s={id:this.nextDataId()};return this.data.set(s,{values:e,dtype:r,refCount:1}),s}makeTensorInfo(e,t,r){let s;if(t==="string"&&r!=null&&r.length>0&&tg(r[0])){const o=r.map(i=>su(i));s=this.write(o,e,t)}else s=this.write(r,e,t);return{dataId:s,shape:e,dtype:t}}refCount(e){return this.data.has(e)?this.data.get(e).refCount:0}incRef(e){const t=this.data.get(e);t.refCount++}decRef(e){if(this.data.has(e)){const t=this.data.get(e);t.refCount--}}move(e,t,r,s,o){this.data.set(e,{values:t,dtype:s,refCount:o})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){const{dtype:t,complexTensorInfos:r}=this.data.get(e);if(t==="complex64"){const s=this.readSync(r.real.dataId),o=this.readSync(r.imag.dataId);return ol(s,o)}return K4(this.data.get(e).values,t)}bufferSync(e){const t=this.readSync(e.dataId);if(e.dtype==="string")try{const r=t.map(s=>au(s));return Nt(e.shape,e.dtype,r)}catch{throw new Error("Failed to decode encoded string bytes into utf-8")}return Nt(e.shape,e.dtype,t)}makeOutput(e,t,r){return na().makeTensorFromTensorInfo(this.makeTensorInfo(t,r,e),this)}disposeData(e,t=!1){if(this.data.has(e)){if(this.data.get(e).refCount--,!t&&this.data.get(e).refCount>0)return!1;const{complexTensorInfos:r}=this.data.get(e);r!=null&&(this.disposeData(r.real.dataId,!0),this.disposeData(r.imag.dataId,!0)),this.data.delete(e)}return!0}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}async time(e){const t=Cs();return e(),{kernelMs:Cs()-t}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(e){Ye([e],"where");const t=this.readSync(e.dataId);return HK(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}}Bv.nextDataId=0;function JD(n){const e=new Float32Array(n.length);for(let t=0;t{const{x:e}=n.inputs,t=n.backend;Ye(e,"abs");let r=new Float32Array(Se(e.shape));const s=t.data.get(e.dataId).values;return r=JD(s),t.makeOutput(r,e.shape,e.dtype)},KK={kernelName:v1,backendName:"cpu",kernelFunc:qK};function Gn(n){return(e,t,r,s,o)=>{const i=gt(e,t),a=i.length,l=tt(i),c=Se(i),d=Vr(o,c),p=e.length,m=t.length,y=tt(e),v=tt(t),b=uf(e,i),w=uf(t,i);if(b.length+w.length===0)for(let k=0;kN[P]=0);const T=ca(N,p,y),A=I.slice(-m);w.forEach(P=>A[P]=0);const O=ca(A,m,v);d[k]=n(r[T],s[O])}return[d,i]}}function Hs(n){const{inputs:e,backend:t}=n,{real:r,imag:s}=e,o=t.data.get(r.dataId).values,i=t.data.get(s.dataId).values,a=t.makeTensorInfo(r.shape,"complex64"),l=t.data.get(a.dataId);return l.complexTensorInfos={real:t.makeTensorInfo(r.shape,"float32",o),imag:t.makeTensorInfo(s.shape,"float32",i)},a}const XK={kernelName:IS,backendName:"cpu",kernelFunc:Hs};function r1(n,e,t="float32"){if(t==="complex64"){const s=r1(n,e,"float32"),o=r1(n,e,"float32");return Hs({inputs:{real:s,imag:o},backend:n})}const r=Gr(Se(e),t);return n.makeTensorInfo(e,t,r)}function wa(n){const{inputs:e,backend:t}=n,{x:r}=e;return t.incRef(r.dataId),{dataId:r.dataId,shape:r.shape,dtype:r.dtype}}const YK={kernelName:Cg,backendName:"cpu",kernelFunc:wa};function nh(n){const{inputs:e,backend:t}=n,{input:r}=e,s=t.data.get(r.dataId).complexTensorInfos.real,o=t.data.get(s.dataId).values;return t.makeTensorInfo(s.shape,s.dtype,o)}const QK={kernelName:XS,backendName:"cpu",kernelFunc:nh};function ZD(n,e,t,r){if(r==="int32"){const s=Int32Array.from(n);return[e,"int32",s]}if(r==="bool"){const s=ah([0],t),[o,i]=Gn((a,l)=>a!==l?1:0)(e,[],n,s,"bool");return[i,"bool",o]}throw new Error(`Error in Cast: failed to cast ${t} to ${r}`)}function du(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{dtype:o}=r;if(o==="complex64"){if(s.dtype==="complex64")return wa({inputs:{x:s},backend:t});const d=r1(t,s.shape,s.dtype),p=du({inputs:{x:s},backend:t,attrs:{dtype:"float32"}}),m=Hs({inputs:{real:p,imag:d},backend:t});return t.disposeIntermediateTensorInfo(d),t.disposeIntermediateTensorInfo(p),m}if(s.dtype==="complex64"){const d=nh({inputs:{input:s},backend:t}),p=du({inputs:{x:d},backend:t,attrs:{dtype:o}});return t.disposeIntermediateTensorInfo(d),p}if(!wE(s.dtype,o)){const d=wa({inputs:{x:s},backend:t});return{dataId:d.dataId,shape:d.shape,dtype:o}}const i=t.data.get(s.dataId).values,[a,l,c]=ZD(i,s.shape,s.dtype,o);return t.makeTensorInfo(a,l,c)}const JK={kernelName:ug,backendName:"cpu",kernelFunc:du};function lr(n,e,t,r){return t==null?({inputs:s,backend:o})=>{const{a:i,b:a}=s,l=o;Ye([i,a],n);const c=l.data.get(i.dataId).values,d=l.data.get(a.dataId).values,p=i.dtype==="string"?il(c):c,m=i.dtype==="string"?il(d):d,y=r||i.dtype,[v,b]=e(i.shape,a.shape,p,m,y);return l.makeTensorInfo(b,y,v)}:({inputs:s,backend:o})=>{const{a:i,b:a}=s,l=o;if(i.dtype==="complex64"||a.dtype==="complex64"){const c=du({inputs:{x:i},backend:l,attrs:{dtype:"complex64"}}),d=l.data.get(c.dataId),p=d.complexTensorInfos.real,m=d.complexTensorInfos.imag,y=l.data.get(p.dataId).values,v=l.data.get(m.dataId).values,b=du({inputs:{x:a},backend:l,attrs:{dtype:"complex64"}}),w=l.data.get(b.dataId),k=w.complexTensorInfos.real,I=w.complexTensorInfos.imag,N=l.data.get(k.dataId).values,T=l.data.get(I.dataId).values,[A,O,P]=t(i.shape,a.shape,y,v,N,T),B=l.makeTensorInfo(P,"float32",A),z=l.makeTensorInfo(P,"float32",O),L=Hs({inputs:{real:B,imag:z},backend:l});return l.disposeIntermediateTensorInfo(c),l.disposeIntermediateTensorInfo(b),l.disposeIntermediateTensorInfo(B),l.disposeIntermediateTensorInfo(z),L}else{const c=l.data.get(i.dataId).values,d=l.data.get(a.dataId).values,p=r||i.dtype,[m,y]=e(i.shape,a.shape,c,d,p);return l.makeTensorInfo(y,p,m)}}}function _I(n){return(e,t,r,s,o,i)=>{const a=gt(e,t),l=Se(a),c=a.length,d=tt(a),p=Vr("float32",l),m=Vr("float32",l),y=uf(e,a),v=uf(t,a),b=ol(r,s),w=ol(o,i),k=e.length,I=tt(e),N=t.length,T=tt(t);if(y.length+v.length===0)for(let A=0;AP[H]=0);const B=ca(P,k,I),z=O.slice(-N);v.forEach(H=>z[H]=0);const L=ca(z,N,T),_=n(b[B*2],b[B*2+1],w[L*2],w[L*2+1]);p[A]=_.real,m[A]=_.imag}return[p,m,a]}}const eO=Gn(((n,e)=>n+e)),ZK=_I(((n,e,t,r)=>({real:n+t,imag:e+r}))),df=lr(kf,eO,ZK),e7={kernelName:kf,backendName:"cpu",kernelFunc:df};function DI(n,e,t,r,s){const o=Se(r),i=Gr(s,t);for(let a=0;a=s||(o>0?i[l]+=e[a]:i[l]+=1)}return i}function tO(n,e,t,r=!1){const s=n.shape[0],o=n.shape[1],i=Nt([s,t],e.dtype);for(let a=0;a=t||(r?i.set(1,a,c):e.size>0?i.set(i.get(a,c)+e.get(a,l),a,c):i.set(i.get(a,c)+1,a,c))}return i}const nO=Gn(((n,e)=>n&e)),t7=lr(kS,nO),n7={kernelName:kS,backendName:"cpu",kernelFunc:t7};function ba(n){return(e,t,r)=>{const s=Mn(t,e.length);for(let o=0;o{const{x:i}=r;Ye(i,n);const a=o,l=a.data.get(i.dataId).values;let c;if(i.dtype==="string"){if(!Array.isArray(l))throw new Error("String tensor's value was not an instance of Array");c=il(l)}else c=l;const d=t||i.dtype,p=e(c,d,s);return a.makeTensorInfo(i.shape,d,p)}}const rO=ba(n=>Math.ceil(n)),r7=Su(cg,rO),s7={kernelName:cg,backendName:"cpu",kernelFunc:r7};function sO(n,e,t,r){const s=Mn(t,Se(e));if(r&&t!=="string"){let o=0;n.forEach(i=>{const a=Se(i.shape);s.set(i.vals,o),o+=a})}else{let o=0;n.forEach(i=>{const a=t==="string"?il(i.vals):i.vals;let l=0;for(let c=0;cn===e?1:0),iO=lr(O1,oO,null,"bool"),o7={kernelName:O1,backendName:"cpu",kernelFunc:iO};const aO=ba(n=>Math.exp(n)),lO=Su(xg,aO,"float32"),i7={kernelName:xg,backendName:"cpu",kernelFunc:lO};const uO=ba(n=>Math.expm1(n)),a7=Su(yg,uO),l7={kernelName:yg,backendName:"cpu",kernelFunc:a7};const cO=ba(n=>Math.floor(n)),u7=Su(vg,cO),c7={kernelName:vg,backendName:"cpu",kernelFunc:u7};const hO=Gn((n,e)=>Math.floor(n/e)),h7=lr(wg,hO,null,"int32"),d7={kernelName:wg,backendName:"cpu",kernelFunc:h7};function dO(n,e,t,r,s,o,i,a,l){const c=Nt([r,o],t);for(let d=0;d=l/o)throw new Error(`Invalid indices: ${p} does not index into ${a}`);for(let y=0;yn>e?1:0),f7=lr(M1,pO,null,"bool"),p7={kernelName:M1,backendName:"cpu",kernelFunc:f7};const mO=Gn((n,e)=>n>=e?1:0),m7=lr(bg,mO,null,"bool"),g7={kernelName:bg,backendName:"cpu",kernelFunc:m7};const gO=Gn((n,e)=>nn<=e?1:0),v7=lr(U1,xO,null,"bool"),w7={kernelName:U1,backendName:"cpu",kernelFunc:v7};function yO(n,e,t){const r=(e-n)/(t-1),s=Gr(t,"float32");s[0]=n;for(let o=1;oMath.log(n)),b7=Su($g,vO),C7={kernelName:$g,backendName:"cpu",kernelFunc:b7};function wO(n,e,t,r){const s=Vr(r,Se(t));for(let o=0;oa)&&(a=c)}s[o]=a}return s}const bO=Gn(((n,e)=>Math.max(n,e))),S7=lr(Tg,bO),k7={kernelName:Tg,backendName:"cpu",kernelFunc:S7};const CO=Gn(((n,e)=>Math.min(n,e))),I7=lr(Eg,CO),$7={kernelName:Eg,backendName:"cpu",kernelFunc:I7};const OI=Gn(((n,e)=>n*e)),N7=_I(((n,e,t,r)=>({real:n*t-e*r,imag:n*r+e*t}))),Uv=lr(Ag,OI,N7),T7={kernelName:Ag,backendName:"cpu",kernelFunc:Uv};function SO(n,e,t){const r=mu(-1,t);return OI([],e,r,n,t)}function E7(n){const{inputs:e,backend:t}=n,{x:r}=e;Ye(r,"neg");const s=t.data.get(r.dataId).values,[o,i]=SO(s,r.shape,r.dtype);return t.makeTensorInfo(i,r.dtype,o)}const R7={kernelName:J1,backendName:"cpu",kernelFunc:E7};const kO=Gn(((n,e)=>n!==e?1:0)),A7=lr(Z1,kO,null,"bool"),_7={kernelName:Z1,backendName:"cpu",kernelFunc:A7};function FI(n,e,t,r,s){const o=e.length,i=Se(e),a=tt(e),l=tt(s),c=Vr(t,Se(s));for(let d=0;dt.disposeIntermediateTensorInfo(I)),t.makeTensorInfo(k,w,v)}const F7={kernelName:ov,backendName:"cpu",kernelFunc:O7};function P7(n,e,t){n.forEach((r,s)=>{if(r<0||r>=t){const o=Sf(s,e.length,tt(e)).join(",");throw new Error(`indices[${o}] = ${r} is not in [0, ${t})`)}})}function L7(n,e){for(let t=0;ts)throw new Error("Ragged splits must not point past values");for(let o=1;or[o])throw new Error("Ragged splits must be sorted in ascending order")}}function M7(n,e,t,r){const s=[];let o=0;const i=e.length-1+t.length,a=new Array(i).fill(null).map(()=>[0]);L7(t,r);let l=1;for(let c=0;c=0){const b=a[v],w=b[b.length-1]-y[d];for(let k=d;ks[i]=o)}return e}function D2(n,e){const t=n.slice(0,e);for(;t.length1)throw new Error("starts must be a scalar or vector");if(s.length>1)throw new Error("limits must be a scalar or vector");if(i.length>1)throw new Error("deltas must be a scalar or vector");const a=e.length===0,l=s.length===0,c=i.length===0,d=[];a||d.push(e[0]),l||d.push(s[0]),c||d.push(i[0]);for(let w=1;w0&&Ik)T=0;else if(T=Math.ceil(Math.abs((I-k)/N)),T>O2)throw new Error(`Requires ((limit - start) / delta) <= ${O2}`);m[w+1]=m[w]+T}const y=m[p],v=Mn(t,y);let b=0;for(let w=0;wr&&(r=o)}return r}static getMaxWidthValueRowID(e){const t=e.length;if(t===0)return 0;let r=0,s=e[0],o=0;for(let i=1;i"Final length of result must be equal to firstDimension."),o}calculateOutputIndexRowSplit(e,t,r,s){const o=e.length,i=[];for(let a=0;a0&&i.length!==e[o-1])throw new Error("Invalid row split size.");return i}calculateOutputIndexValueRowID(e,t,r,s){const o=e.length,i=[];if(o===0)return[];let a=0,l=e[0];if(l>=t.length)throw new Error(`Got currentValueRowId=${l}, which is not less than ${t.length}`);let c=t[l];i.push(c);for(let d=1;d=0&&(++a,a=t.length)throw new Error(`Got nextValueRowId=${p} which is not less than ${t.length}`);c=t[p]}i.push(c)}if(i.length!==e.length)throw new Error("Invalid row ids.");return i}calculateOutputIndex(e,t,r,s){const o=this.getRowPartitionTensor(e),i=this.getRowPartitionTypeByDimension(e);switch(i){case Wo.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(o,t,r,s);case Wo.ROW_SPLITS:if(o.length-1>t.length)throw new Error(`Row partition size is greater than output size: ${o.length-1} > ${t.length}`);return this.calculateOutputIndexRowSplit(o,t,r,s);default:throw new Error(`Unsupported partition type: ${Wo[i]}`)}}getFirstDimensionSize(){const e=this.rowPartitionValues[0];if(this.rowPartitionTypes.length===0)throw new Error("No row_partition_types given.");const t=this.rowPartitionTypes[0];switch(t){case Wo.FIRST_DIM_SIZE:return e[0];case Wo.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case Wo.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Wo[t]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error("Invalid first partition input. Tensor requires at least one element.");const t=this.getFirstDimensionSize(),r=this.calculateOutputSize(t),s=new Array(this.raggedRank+1);s[s.length-1]=1;for(let l=s.length-2;l>=0;--l)s[l]=s[l+1]*r[l+1];const o=P2(r,!1),i=Mn(this.valuesDType,Se(o));if(s[0]*r[0]>0){let l=this.calculateFirstParentOutputIndex(t,s[0],r[0]);for(let c=1;c<=this.raggedRank;++c)l=this.calculateOutputIndex(c-1,l,s[c],r[c]);this.setOutput(this.raggedRank,l,i,o)}return[o,i]}setOutput(e,t,r,s){if(r.length===0)return;const o=this.values,i=r;let a=s.slice();a=a.slice(e+1);const l=Se(a),c=t.length;let d=this.defaultValue;if(d.length!==l&&d.length!==1){const v=this.defaultValueShape;me(()=>{const b=ce(d,v);d=Nm(b,a).dataSync()})}let p=0,m=0,y=0;for(let v=0;v<=c;++v){let b=v=c){const w=r.length;b=Math.floor(w/l)}if(b>y)if(this.defaultValue.length===1)i.subarray(y*l,b*l).fill(this.defaultValue[0]),y=b;else for(;b>y;){const w=i.slice(y*l);F2(w,d,l),++y}b<0?(p=v+1,m=y):(p=v,m=y,y=m+1)}}}function F2(n,e,t){for(let r=0;r= 0`);if(r<-1)throw new Error(`Dimension ${r} must be >= -1`);r=-1}t.push(r)}return t}function TO(n,e,t,r,s,o,i,a,l,c){return new s1(n,e,t,r,s,o,i,a,l,c).compute()}function EO(n,e,t,r){const s=n===e,o=n1;if(s||o||i)return Gr(0,r);const a=Math.abs(Math.ceil((e-n)/t)),l=Gr(a,r);e1/Math.sqrt(n)),W7=Su(Lg,RO),V7={kernelName:Lg,backendName:"cpu",kernelFunc:W7};function Fc(n,e,t,r,s,o,i,a,l,c){const d=[r/s,s],p=n.values,m=e.values;if(r===0)return Nt(t,e.dtype);const y=l instanceof Ar?l:Nt(d,e.dtype);typeof l=="string"||typeof l=="number"?y.values.fill(l):typeof l=="boolean"&&y.values.fill(+l);for(let v=0;v=r/s)throw new Error(`Invalid indices: ${b} does not index into ${t}`);for(let k=0;k1/(1+Math.exp(-n))),AO=sn(Wg,n=>1/(1+Math.exp(-n))),j7={kernelName:Wg,backendName:"cpu",kernelFunc:AO};function _O(n,e,t,r,s){const o=Wk(r,e,t),i=Se(t),a=tt(r);if(o){const p=Vk(e,a);return s==="string"?n.slice(p,p+i):n.subarray(p,p+i)}const l=s==="string"?il(n):n,c=Nt(r,s,l),d=Nt(t,s);for(let p=0;pv+e[b]);d.set(c.get(...y),...m)}return s==="string"?OA(d.values):d.values}function rh(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{begin:o,size:i}=r;Ye(s,"slice");const[a,l]=$v(s,o,i);Bk(s,a,l);const c=t.data.get(s.dataId).values,d=_O(c,a,l,s.shape,s.dtype);return t.makeTensorInfo(l,s.dtype,d)}const H7={kernelName:hv,backendName:"cpu",kernelFunc:rh};function DO(n,e,t,r,s,o,i){const a=e[0],l=o[0],c=new Array(l),d=new Array(a),p=e[1];if(l===0){if(a!==0)throw new Error(bA(a));const w=Mn(t,0),k=Mn(s,0);return[w,[0,p],k,c,d]}let m=!0,y=0;const v=new Array(l).fill(0);for(let w=0;w=l)throw new Error(SA(w,k,l));++v[k],m=m&&k>=y,y=k}let b=!0;for(let w=0;w0&&(v[w]+=v[w-1])}if(b&&m){const w=n,k=r;for(let I=0;I0){y[m-1]=1;for(let w=m-2;w>=0;--w)y[w]=y[w+1]*r[w+1]}const v=[];if(a>0){v[a-1]=1;for(let w=a-2;w>=0;--w)v[w]=v[w+1]*l[w+1]}const b=Mn(t,i*a);for(let w=0;w0?s[a-1]+1:0;if(p<0)throw new Error(IC());const m=e.slice();m[0]=p;const y=m.reduce((N,T)=>N*T,1),v=Mn(t,y);if(a===0)return p>0&&v.fill(i),[v,m];if(p<=0)throw new Error(IC());let b=0,w=1,k=0,I=s[b];for(;;){let N=0;if(w=N)throw new Error(EA())}if(I<0||I>=p)throw new Error(RA(I,p));I>k&&v.fill(i,k*c,I*c);for(let T=b;T=l[0])throw new Error(AA(T,r[T],l[0]));for(let O=0;Oa)break}return kMath.sqrt(n)),K7=sn(Gg,n=>Math.sqrt(n)),X7={kernelName:Gg,backendName:"cpu",kernelFunc:K7};const FO=Gn(((n,e)=>{const t=n-e;return t*t})),Y7=lr(jg,FO),Q7={kernelName:jg,backendName:"cpu",kernelFunc:Y7};const PO=ba((n,e)=>{const{pattern:t,replaceGlobal:r,rewrite:s}=e;return n.replace(new RegExp(t,r?"g":""),s)}),J7=Su(ZS,PO),Z7={kernelName:ZS,backendName:"cpu",kernelFunc:J7};function LO(n,e,t,r){const s=Nt(n,e.dtype);for(let o=0;o0?0:a-l);let y=0;y+=c*this.leftPad.length;for(let I=0;II.forEach(N=>b[w++]=N);for(let I=0;I0){k(e[m+p-1]);for(let I=0;I0){let l=t[0];if(l!==0)throw new Error(`First split value must be 0, got ${l}`);for(let c=1;c=l;if(d=d&&t[c]<=r,!d)throw new Error(`Invalid split value ${t[c]}, must be in [${l}, ${r}]`);l=t[c]}if(l!==r)throw new Error(`Last split value must be data size. Expected ${r}, got ${l}`)}const o=s-1,i=Mn("int32",s);if(r===0||s===0){const l=new Array(r);for(let c=0;c<=o;++c)i[c]=0;return[l,i]}i[0]=0;for(let l=1;l<=o;++l){const c=t[l]-t[l-1];let d=0;this.nGramWidths.forEach(p=>{d+=this.getNumNGrams(c,p)}),this.preserveShort&&c>0&&d===0&&(d=1),i[l]=i[l-1]+d}const a=new Array(i[o]);for(let l=0;l{const m=t[l+1]-t[l],y=this.getNumNGrams(m,p);this.createNGrams(e,c,a,d,y,p),d+=y}),this.preserveShort&&d===i[l]){const p=t[l+1]-t[l];if(p===0)continue;const m=p+2*this.padWidth;this.createNGrams(e,c,a,d,1,m)}}return[a,i]}}function MO(n,e,t,r,s,o,i,a){return new eX(t,r,s,o,i,a).compute(n,e)}function tX(n,e,t,r){if(!n.length)return;if(e.length===0){for(let o=0;on-e)),nX=_I(((n,e,t,r)=>({real:n-t,imag:e-r}))),LI=lr(Hg,UO,nX),rX={kernelName:Hg,backendName:"cpu",kernelFunc:LI};function WO(n,e){const t=new Array(n.rank);for(let s=0;s{const t=e.value-n.value;return t===0?n.index-e.index:t};function VO(n,e,t=0,r=n.length-1){for(;r>t;){if(r-t>600){const a=r-t+1,l=e-t+1,c=Math.log(a),d=.5*Math.exp(2*c/3),p=.5*Math.sqrt(c*d*(a-d)/a)*Math.sign(l-a/2),m=Math.max(t,Math.floor(e-l*d/a+p)),y=Math.min(r,Math.floor(e+(a-l)*d/a+p));VO(n,e,m,y)}const s=n[e];let o=t,i=r;for(jd(n,t,e),Cm(n[r],s)>0&&jd(n,t,r);o0;)i=i-1}Cm(n[t],s)===0?jd(n,t,i):(i=i+1,jd(n,i,r)),i<=e&&(t=i+1),e<=i&&(r=i-1)}}function GO(n,e,t,r,s){const o=e[e.length-1],[i,a]=[n.length/o,o],l=Vr(t,i*r),c=Vr("int32",i*r);for(let p=0;pv[N]={value:I,index:N}),r{for(let w=0;wnew Bv,1);const HO=sn(mg,n=>n>=0?n:Math.exp(n)-1),oX={kernelName:mg,backendName:"cpu",kernelFunc:HO};function qO(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{alpha:o}=r;Ye([s],"leakyRelu");const i=Se(s.shape),a=t.data.get(s.dataId).values,l=Vr("float32",i);for(let c=0;cn<0?e*n:n);function KO(n){const{inputs:e,backend:t}=n,{x:r,alpha:s}=e;Ye([r,s],"prelu");const o=t.data.get(r.dataId).values,i=t.data.get(s.dataId).values,[a,l]=aX(r.shape,s.shape,o,i,"float32");return t.makeTensorInfo(l,"float32",a)}const lX={kernelName:sv,backendName:"cpu",kernelFunc:KO};const XO=sn(Og,n=>Math.max(0,n)),uX={kernelName:Og,backendName:"cpu",kernelFunc:XO};const YO=sn(Fg,n=>Math.min(Math.max(0,n),6)),cX={kernelName:Fg,backendName:"cpu",kernelFunc:YO};function o1(n,e,t,r,s){if(t==="linear")return wa({inputs:{x:e},backend:n});if(t==="relu")return XO({inputs:{x:e},backend:n});if(t==="elu")return HO({inputs:{x:e},backend:n});if(t==="relu6")return YO({inputs:{x:e},backend:n});if(t==="prelu")return KO({inputs:{x:e,alpha:r},backend:n});if(t==="leakyrelu")return qO({inputs:{x:e},backend:n,attrs:{alpha:s}});if(t==="sigmoid")return AO({inputs:{x:e},backend:n});throw new Error(`Activation ${t} has not been implemented for the CPU backend.`)}function gn(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{shape:o}=r,i=Se(s.shape),a=vE(o,i),l=Se(a);U(i===l,()=>`The new shape (${a}) has ${l} elements and the old shape (${s.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),t.incRef(s.dataId);const c=t.data.get(s.dataId);if(c.complexTensorInfos!=null){const d=c.complexTensorInfos.real,p=c.complexTensorInfos.imag;d.shape=a,p.shape=a}return{dataId:s.dataId,shape:a,dtype:s.dtype}}const hX={kernelName:iv,backendName:"cpu",kernelFunc:gn};function QO(n){const{inputs:e,backend:t,attrs:r}=n,{a:s,b:o}=e,{transposeA:i,transposeB:a}=r;Ye([s,o],"matMul");const l=s.shape.length,c=o.shape.length,d=i?s.shape[l-2]:s.shape[l-1],p=a?o.shape[c-1]:o.shape[c-2],m=i?s.shape[l-1]:s.shape[l-2],y=a?o.shape[c-2]:o.shape[c-1],v=s.shape.slice(0,-2),b=o.shape.slice(0,-2),w=Se(v),k=Se(b),N=gt(s.shape.slice(0,-2),o.shape.slice(0,-2)).concat([m,y]);U(d===p,()=>`Error in matMul: inner shapes (${d}) and (${p}) of Tensors with shapes ${s.shape} and ${o.shape} and transposeA=${i} and transposeB=${a} must match.`);const T=i?[w,d,m]:[w,m,d],A=a?[k,y,p]:[k,p,y],O=gn({inputs:{x:s},backend:t,attrs:{shape:T}}),P=gn({inputs:{x:o},backend:t,attrs:{shape:A}}),B=i?O.shape[1]:O.shape[2],z=i?O.shape[2]:O.shape[1],L=a?P.shape[1]:P.shape[2],_=Math.max(w,k),H=t.data.get(O.dataId).values,Y=t.data.get(P.dataId).values,re=tt(O.shape),te=tt(P.shape),[le,de,j]=i?[re[0],1,re[1]]:[re[0],re[1],1],[ie,se,V]=a?[1,te[1],te[0]]:[te[1],1,te[0]],X=z*L,xe=Nt([_,z,L],O.dtype),Ie=xe.values,ke=t.blockSize;for(let Ee=0;Ee<_;Ee++){const Me=Ee%w,ze=Ee%k;for(let Be=0;BeMath.acos(n)),gX={kernelName:ng,backendName:"cpu",kernelFunc:mX};const xX=sn(rg,n=>Math.acosh(n)),yX={kernelName:rg,backendName:"cpu",kernelFunc:xX};function vX(n){const{inputs:e,backend:t}=n,r=e;Ye(e,"addN");const s=r.map(a=>t.data.get(a.dataId).values),o=Nt(r[0].shape,r[0].dtype),i=o.values;for(let a=0;aI&&(I=A,N=T)}y[w]=N}return c.forEach(w=>t.disposeIntermediateTensorInfo(w)),t.makeTensorInfo(d,"int32",y)}const $X={kernelName:w1,backendName:"cpu",kernelFunc:IX};function NX(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{axis:o}=r;Ye(s,"argMin");let i=Tt(o,s.shape);const a=En(i,s.shape.length);let l=s;const c=[];a!=null&&(l=Ns({inputs:{x:s},backend:t,attrs:{perm:a}}),c.push(l),i=Wn(i.length,l.shape.length)),i=[i[0]],Dr("argMin",i,l.shape.length);const[d,p]=yr(l.shape,i),m=Se(d),y=Gr(m,"int32"),v=Se(p),b=t.data.get(l.dataId).values;for(let w=0;wt.disposeIntermediateTensorInfo(w)),t.makeTensorInfo(d,"int32",y)}const TX={kernelName:b1,backendName:"cpu",kernelFunc:NX};const EX=sn(sg,n=>Math.asin(n)),RX={kernelName:sg,backendName:"cpu",kernelFunc:EX};const AX=sn(og,n=>Math.asinh(n)),_X={kernelName:og,backendName:"cpu",kernelFunc:AX};const DX=sn(ig,n=>Math.atan(n)),OX={kernelName:ig,backendName:"cpu",kernelFunc:DX};const FX=Gn((n,e)=>Math.atan2(n,e)),PX=lr(lg,FX),LX={kernelName:lg,backendName:"cpu",kernelFunc:PX};const MX=sn(ag,n=>Math.atanh(n)),zX={kernelName:ag,backendName:"cpu",kernelFunc:MX};function MI(n,e,t,r,s,o){const i=s.strideHeight,a=s.strideWidth,l=s.dilationHeight,c=s.dilationWidth,d=s.effectiveFilterHeight,p=s.effectiveFilterWidth,m=s.padInfo.top,y=s.padInfo.left,v=o==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,b=Nt(s.outShape,t),w=b.values,k=s.outShape[1]*s.outShape[2]*s.outShape[3],I=s.outShape[2]*s.outShape[3],N=s.outShape[3];for(let T=0;Tde?de=ke:o==="avg"&&(j+=ke,ie++)}if(isNaN(de))break}const se=H+Y*N+P;w[se]=o==="avg"?j/ie:de}}}return b}function JO(n,e,t,r,s=!1,o=!1){const i=Nt(r.outShape,"int32"),a=r.strideHeight,l=r.strideWidth,c=r.dilationHeight,d=r.dilationWidth,p=r.effectiveFilterHeight,m=r.effectiveFilterWidth,y=r.padInfo.top,v=r.padInfo.left,b=Nt(e,t,n);for(let w=0;wL&&(L=le,s?_=o?((w*r.inHeight+H)*r.inWidth+re)*r.inChannels+k:(H*r.inWidth+re)*r.inChannels+k:_=Y*m+te)}}i.set(_,w,I,O,k)}}return i}function ZO(n,e,t,r,s,o){const i=s.strideDepth,a=s.strideHeight,l=s.strideWidth,c=s.dilationDepth,d=s.dilationHeight,p=s.dilationWidth,m=s.effectiveFilterDepth,y=s.effectiveFilterHeight,v=s.effectiveFilterWidth,b=s.padInfo.front,w=s.padInfo.top,k=s.padInfo.left,I=o==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,N=Nt(s.outShape,t),T=N.values,A=s.outShape[1]*s.outShape[2]*s.outShape[3]*s.outShape[4],O=s.outShape[2]*s.outShape[3]*s.outShape[4],P=s.outShape[3]*s.outShape[4],B=s.outShape[4];for(let z=0;zze?ze=Yt:o==="avg"&&(Be+=Yt,Je++),isNaN(ze))break}if(isNaN(ze))break}if(isNaN(ze))break}const lt=Me+H;T[lt]=o==="avg"?Be/Math.max(Je,1):ze}}}}return N}function BX(n,e){const t=Nt(e.outShape,"int32"),r=e.strideDepth,s=e.strideHeight,o=e.strideWidth,i=e.dilationDepth,a=e.dilationHeight,l=e.dilationWidth,c=e.effectiveFilterDepth,d=e.effectiveFilterHeight,p=e.effectiveFilterWidth,m=e.padInfo.front,y=e.padInfo.top,v=e.padInfo.left;for(let b=0;b=Y&&(Y=V,re=le*d*p+j*d+se)}}}t.set(re,b,k,A,z,w)}}}return t}function UX(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e;Ye(s,"avgPool");const{filterSize:o,strides:i,pad:a,dimRoundingMode:l}=r,c=1;U(Hr(i,c),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);const d=Xo(s.shape,o,i,c,a,l);let p;if(d.filterWidth===1&&d.filterHeight===1&&Xt(d.inShape,d.outShape))p=wa({inputs:{x:s},backend:t});else{const m=t.data.get(s.dataId).values,y=tt(s.shape),v=MI(m,s.shape,s.dtype,y,d,"avg");p=t.makeTensorInfo(d.outShape,s.dtype,v.values)}return p}const WX={kernelName:C1,backendName:"cpu",kernelFunc:UX};function VX(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{filterSize:o,strides:i,pad:a,dimRoundingMode:l,dataFormat:c}=r;Ye(s,"avgPool3d");const d=ll(s.shape,o,i,1,a,l,c),p=t.data.get(s.dataId).values,m=ZO(p,s.shape,s.dtype,tt(s.shape),d,"avg");return t.makeTensorInfo(m.shape,"float32",m.values)}const GX={kernelName:S1,backendName:"cpu",kernelFunc:VX};function jX(n){const{inputs:e,backend:t,attrs:r}=n,{dy:s,input:o}=e,{filterSize:i,strides:a,pad:l,dimRoundingMode:c}=r;Ye([s,o],"avgPool3DGrad");const d=ll(o.shape,i,a,1,l,c),p=d.strideDepth,m=d.strideHeight,y=d.strideWidth,v=d.filterDepth,b=d.filterHeight,w=d.filterWidth,k=d.dilationDepth,I=d.dilationHeight,N=d.dilationWidth,T=d.effectiveFilterDepth,A=d.effectiveFilterHeight,O=d.effectiveFilterWidth,P=T-1-d.padInfo.front,B=O-1-d.padInfo.left,z=A-1-d.padInfo.top,L=Nt(o.shape,"float32"),_=1/(v*b*w),H=t.bufferSync(s);for(let Y=0;Y=d.outDepth||Math.floor(xe)!==xe))for(let Ie=0;Ie=d.outHeight||Math.floor(ke)!==ke))for(let Ee=0;Ee=d.outWidth||Math.floor(Me)!==Me)continue;const ze=H.get(Y,xe,ke,Me,re);V+=ze}}}L.set(V*_,Y,te,le,de,re)}return t.makeTensorInfo(L.shape,L.dtype,L.values)}const HX={kernelName:CS,backendName:"cpu",kernelFunc:jX};function qX(n){const{inputs:e,backend:t,attrs:r}=n,{dy:s,input:o}=e,i=o;Ye([s,o],"avgPoolGrad");const{filterSize:a,strides:l,pad:c}=r,d=Xo(i.shape,a,l,1,c),p=d.strideHeight,m=d.strideWidth,y=d.filterHeight,v=d.filterWidth,b=d.dilationHeight,w=d.dilationWidth,k=d.effectiveFilterHeight,I=d.effectiveFilterWidth,N=I-1-d.padInfo.left,T=k-1-d.padInfo.top,A=Nt(i.shape,"float32"),O=1/(y*v),P=t.data.get(s.dataId).values,B=Nt(s.shape,"float32",P);for(let z=0;z=d.outHeight||Math.floor(de)!==de))for(let j=0;j=d.outWidth||Math.floor(ie)!==ie)continue;const se=B.get(z,de,ie,L);te+=se}}A.set(te*O,z,_,H,L)}return t.makeTensorInfo(A.shape,A.dtype,A.values)}const KX={kernelName:bS,backendName:"cpu",kernelFunc:qX};function XX(n){const{inputs:e,backend:t,attrs:r}=n,{x:s,scale:o,offset:i,mean:a,variance:l}=e;U(a.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),U(i==null||a.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),U(o==null||a.shape.length===o.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),Ye([s,a,l,o,i],"batchNorm");let{varianceEpsilon:c}=r;c==null&&(c=.001);const d=t.data.get(s.dataId).values,p=t.data.get(a.dataId).values,m=t.data.get(l.dataId).values,y=o?t.data.get(o.dataId).values:new Float32Array([1]),v=i?t.data.get(i.dataId).values:new Float32Array([0]),b=new Float32Array(d.length),w=v.length,k=y.length,I=m.length,N=p.length;let T=0,A=0,O=0,P=0;for(let B=0;B=w&&(T=0),A>=N&&(A=0),O>=k&&(O=0),P>=I&&(P=0);return t.makeTensorInfo(s.shape,s.dtype,b)}const YX={kernelName:P1,backendName:"cpu",kernelFunc:XX};function QX(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{blockShape:o,crops:i}=r;Ye([s],"batchToSpaceND");const a=o.reduce((k,I)=>k*I),l=sx(s.shape,o,a),c=ox(l.length,o.length),d=ix(s.shape,o,a),p=Kk(i,o.length),m=Xk(d,i,o.length),y=gn({inputs:{x:s},backend:t,attrs:{shape:l}}),v=Ns({inputs:{x:y},backend:t,attrs:{perm:c}}),b=gn({inputs:{x:v},backend:t,attrs:{shape:d}}),w=rh({inputs:{x:b},backend:t,attrs:{begin:p,size:m}});return t.disposeIntermediateTensorInfo(y),t.disposeIntermediateTensorInfo(v),t.disposeIntermediateTensorInfo(b),w}const JX={kernelName:I1,backendName:"cpu",kernelFunc:QX};function ZX(n){const{inputs:e,backend:t,attrs:r}=n,{x:s,weights:o}=e,{size:i}=r,a=t.data.get(s.dataId).values,l=t.data.get(o.dataId).values,c=DI(a,l,o.dtype,o.shape,i);return t.makeTensorInfo([i],o.dtype,c)}const e9={kernelName:SS,backendName:"cpu",kernelFunc:ZX};function t9(n){const{inputs:e,backend:t}=n,{s0:r,s1:s}=e,o=t.data.get(r.dataId).values,i=t.data.get(s.dataId).values,a=gt(Array.from(o),Array.from(i));return t.makeTensorInfo([a.length],"int32",Int32Array.from(a))}const n9={kernelName:IE,backendName:"cpu",kernelFunc:t9};const r9=sn(hg,(n,e)=>{const t=e;return n>t.clipValueMax?t.clipValueMax:n{const{x:e}=n.inputs,t=n.backend,r=new Float32Array(Se(e.shape)),s=t.data.get(e.dataId),o=s.complexTensorInfos.real,i=s.complexTensorInfos.imag,a=t.data.get(o.dataId).values,l=t.data.get(i.dataId).values;for(let c=0;cb.shape);jk(i,o);let a=da(e.map(b=>b.shape),o);if(Se(a)===0)return t.makeTensorInfo(a,e[0].dtype,[]);const l=e.filter(b=>Se(b.shape)>0);if(l.length===1)return wa({inputs:{x:l[0]},backend:t});if(l[0].dtype==="complex64"){const b=l.map(T=>nh({inputs:{input:T},backend:t})),w=l.map(T=>ff({inputs:{input:T},backend:t})),k=pf({inputs:b,backend:t,attrs:{axis:o}}),I=pf({inputs:w,backend:t,attrs:{axis:o}}),N=Hs({inputs:{real:k,imag:I},backend:t});return b.forEach(T=>t.disposeIntermediateTensorInfo(T)),w.forEach(T=>t.disposeIntermediateTensorInfo(T)),t.disposeIntermediateTensorInfo(k),t.disposeIntermediateTensorInfo(I),N}const c=l.map(b=>{const k=[-1,Se(b.shape.slice(o))];return gn({inputs:{x:b},backend:t,attrs:{shape:k}})}),d=c.map(b=>({vals:t.data.get(b.dataId).values,shape:b.shape}));a=da(c.map(b=>b.shape),1);const p=c[0].shape[0]===1,m=sO(d,a,e[0].dtype,p),y=da(l.map(b=>b.shape),o),v=t.makeTensorInfo(y,e[0].dtype,m);return c.forEach(b=>t.disposeIntermediateTensorInfo(b)),v}const l9={kernelName:N1,backendName:"cpu",kernelFunc:pf};function eF(n){const{inputs:e,backend:t,attrs:r}=n,{x:s,filter:o}=e,{strides:i,pad:a,dataFormat:l,dilations:c,dimRoundingMode:d}=r;Ye([s,o],"conv2d");const p=ul(l),m=_r(s.shape,o.shape,i,c,a,d,!1,p),y=m.filterHeight,v=m.filterWidth,b=m.dilationHeight,w=m.dilationWidth,k=m.padInfo.left,I=m.padInfo.top,N=m.dataFormat==="channelsLast",T=new Ar(m.outShape,s.dtype),A=tt(s.shape),O=tt(o.shape),P=A[0],B=N?A[1]:A[2],z=N?A[2]:1,L=N?1:A[1],_=T.strides[0],H=N?T.strides[1]:T.strides[2],Y=N?T.strides[2]:1,re=N?1:T.strides[1],te=t.data.get(s.dataId).values,le=t.data.get(o.dataId).values,de=T.values;for(let j=0;j=m.inHeight)continue;const Ee=Ie*O[0],Me=ie+ke*B;for(let ze=0;ze=m.inWidth)continue;const bt=Ee+lt*O[1],Rt=Me+pt*z;let Ot=bt;for(let Bt=0;Bt=c.inDepth)continue;const j=le*z[0],ie=_+de*B[1];for(let se=0;se=c.inHeight)continue;const ke=j+xe*z[1],Ee=ie+Ie*B[2];for(let Me=0;Me=c.inWidth)continue;const pt=ke+Je*z[2],bt=Ee+lt*c.inChannels;let Rt=pt;for(let Ot=0;OtMath.cos(n)),b9={kernelName:dg,backendName:"cpu",kernelFunc:w9};const C9=sn(fg,n=>Math.cosh(n)),S9={kernelName:fg,backendName:"cpu",kernelFunc:C9};function k9(n){const{inputs:e,backend:t,attrs:r}=n,{image:s,boxes:o,boxInd:i}=e,{cropSize:a,method:l,extrapolationValue:c}=r,[d,p,m,y]=s.shape,v=o.shape[0],[b,w]=a,k=Nt([v,b,w,y],"float32"),I=t.data.get(o.dataId).values,N=t.data.get(i.dataId).values,T=t.data.get(s.dataId).values,A=tt(s.shape),O=tt(k.shape);for(let P=0;P=d)continue;const re=b>1?(_-z)*(p-1)/(b-1):0,te=w>1?(H-L)*(m-1)/(w-1):0;for(let le=0;le1?z*(p-1)+le*re:.5*(z+_)*(p-1);if(de<0||de>p-1){for(let j=0;j1?L*(m-1)+V*te:.5*(L+H)*(m-1);if(X<0||X>m-1){for(let Ee=0;Ee1?L*(m-1)+j*te:.5*(L+H)*(m-1);if(ie<0||ie>m-1){for(let X=0;Xk+v-I-1:(k,I)=>k+I;for(let k=0;kk+v-I-1:(k,I)=>k+I;for(let k=0;k`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`);const a=s.shape[0],l=s.shape[1],c=s.shape[2],d=s.shape[3],p=l*o,m=c*o,y=d/(o*o),v=t.data.get(s.dataId).values,b=new Float32Array(a*p*m*y);let w=0;for(let k=0;k`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${m}'`);const y=_r(s.shape,o.shape,i,m,a,c,!0),{filterHeight:v,filterWidth:b,dilationHeight:w,dilationWidth:k,padInfo:I}=y,N=I.left,T=I.top,A=y.outChannels/y.inChannels,O=new Ar(y.outShape,s.dtype),P=t.data.get(s.dataId).values,B=t.data.get(o.dataId).values,z=O.values;for(let L=0;L=y.inHeight)continue;const j=le*p[0],ie=_+de*d[1];for(let se=0;se=y.inWidth)continue;const ke=j+xe*p[1],Ee=ie+Ie*y.inChannels;let Me=V,ze=ke;for(let Be=0;Be{const{x:r,filter:s}=n,{strides:o,pad:i,dilations:a}=t,l=e,c=l.data.get(r.dataId).values,d=r.shape.length,p=l.data.get(s.dataId).values,m=s.shape.length,{batchSize:y,inHeight:v,inWidth:b,inChannels:w,outHeight:k,outWidth:I,padInfo:N,strideHeight:T,strideWidth:A,filterHeight:O,filterWidth:P,dilationHeight:B,dilationWidth:z,outShape:L}=Zg(r.shape,s.shape,o,i,"NHWC",a),_=Se(L),H=L.length,Y=Mn(r.dtype,_);for(let te=0;te=0&&Ie=0&&EeV&&(V=Be)}}}const X=ca([te,le,j,se],H,tt(L));Y[X]=V}}}return{dataId:l.write(ah(Y,r.dtype),L,r.dtype),shape:L,dtype:r.dtype}}};const W9={kernelName:lC,backendName:"cpu",kernelFunc:({inputs:n,backend:e,attrs:t})=>{const{x:r,filter:s,dy:o}=n,{strides:i,pad:a,dilations:l}=t,c=e,d=Ci(r.shape,c.data.get(r.dataId).values),p=Ci(s.shape,c.data.get(s.dataId).values),{batchSize:m,inHeight:y,inWidth:v,inChannels:b,outHeight:w,outWidth:k,padInfo:I,strideHeight:N,strideWidth:T,filterHeight:A,filterWidth:O,dilationHeight:P,dilationWidth:B,outShape:z}=Zg(r.shape,s.shape,i,a,"NHWC",l);U(o.rank===z.length,()=>`Error in ${lC}, dy must have the same rank as output ${z.length}, but got ${o.rank}`);const L=Ci(z,c.data.get(o.dataId).values),_=CE(s.shape,s.dtype);for(let Y=0;Y=0&&xe=0&&keie&&(ie=Ee,se=X,V=Ie)}}}_[se][V][j]+=L[Y][re][le][j]}}}return{dataId:c.write(ah(_,r.dtype),s.shape,s.dtype),shape:s.shape,dtype:s.dtype}}};const V9={kernelName:aC,backendName:"cpu",kernelFunc:({inputs:n,backend:e,attrs:t})=>{const{x:r,filter:s,dy:o}=n,{strides:i,pad:a,dilations:l}=t,c=e,d=Ci(r.shape,c.data.get(r.dataId).values),p=Ci(s.shape,c.data.get(s.dataId).values),{batchSize:m,inHeight:y,inWidth:v,inChannels:b,outHeight:w,outWidth:k,padInfo:I,strideHeight:N,strideWidth:T,filterHeight:A,filterWidth:O,dilationHeight:P,dilationWidth:B,outShape:z}=Zg(r.shape,s.shape,i,a,"NHWC",l);U(o.rank===z.length,()=>`Error in ${aC}, dy must have the same rank as output ${z.length}, but got ${o.rank}`);const L=Ci(z,c.data.get(o.dataId).values),_=CE(r.shape,r.dtype);for(let Y=0;Y=0&&xe=0&&keie&&(ie=Ee,se=xe,V=ke)}}}_[Y][se][V][j]+=L[Y][re][le][j]}}}return{dataId:c.write(ah(_,r.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}};function G9(n){const{inputs:e,backend:t,attrs:r}=n,{image:s}=e,{canvas:o,options:i}=r,{contextOptions:a,imageOptions:l}=i||{},c=l?.alpha||1,d=a?.contextType||"2d";if(d!=="2d")throw new Error(`Context type ${a.contextType} is not supported by the CPU backend.`);const p=o.getContext(d,a?.contextAttributes||{});if(p==null)throw new Error(`Could not get the context with ${d} type.`);const[m,y]=s.shape.slice(0,2),v=s.shape.length===2?1:s.shape[2],b=t.data.get(s.dataId).values,w=s.dtype==="float32"?255:1,k=new Uint8ClampedArray(y*m*4);for(let N=0;N1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${P}.`)}else if(s.dtype==="int32"&&(P<0||P>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${P}.`);v===1?(T[0]=P*w,T[1]=P*w,T[2]=P*w):T[O]=P*w}const A=N*4;k[A+0]=Math.round(T[0]),k[A+1]=Math.round(T[1]),k[A+2]=Math.round(T[2]),k[A+3]=Math.round(T[3])}o.width=y,o.height=m;const I=new ImageData(k,y,m);return p.putImageData(I,0,0),s}const j9={kernelName:nU,backendName:"cpu",kernelFunc:G9};function mx(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{axis:o,keepDims:i}=r;Ye(s,"sum");let a;s.dtype==="bool"?a=du({inputs:{x:s},backend:t,attrs:{dtype:"int32"}}):a=wa({inputs:{x:s},backend:t});const l=a.shape.length,c=Tt(o,a.shape),d=En(c,l);let p=c,m=a;d!=null&&(m=Ns({inputs:{x:a},backend:t,attrs:{perm:d}}),p=Wn(p.length,l)),Dr("sum",p,m.shape.length);const[y,v]=yr(m.shape,p),b=Ys(m.dtype,"int32");let w=r1(t,y,b);const k=Se(v),I=t.data.get(w.dataId).values,N=t.data.get(m.dataId).values;for(let T=0;T=0&&(m=mx({inputs:{x:m},backend:t,attrs:{axis:c[b]-(i.length-y),keepDims:!1}}),v.push(m)),y--)}for(const b of v)b!==m&&t.disposeIntermediateTensorInfo(b);return m}const K9={kernelName:FS,backendName:"cpu",kernelFunc:q9};function X9(n){const{inputs:e,backend:t}=n,{dy:r,y:s}=e;Ye([r,s],"eluGrad");const o=new Float32Array(Se(s.shape)),i=t.data.get(s.dataId).values,a=t.data.get(r.dataId).values;for(let l=0;l=0?o[l]=a[l]:o[l]=a[l]*(c+1)}return t.makeTensorInfo(s.shape,"float32",o)}const Y9={kernelName:PS,backendName:"cpu",kernelFunc:X9};const Q9=Yk,J9=Qk,Z9=Jk,eY=Zk,tY=eI,nY=tI,rY=sn(gg,n=>{const e=Math.sign(n),t=Math.abs(n),r=1/(1+Q9*t);return e*(1-((((nY*r+tY)*r+eY)*r+Z9)*r+J9)*r*Math.exp(-t*t))}),sY={kernelName:gg,backendName:"cpu",kernelFunc:rY};function i1(n){const{inputs:e,backend:t,attrs:r}=n,{input:s}=e,{dim:o}=r,i=s.shape.length,a=s.shape.slice();let l=o;return o<0&&(U(-(i+1)<=o,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+o+1),a.splice(l,0,1),gn({inputs:{x:s},backend:t,attrs:{shape:a}})}const oY={kernelName:F1,backendName:"cpu",kernelFunc:i1};const iY=Gn((n,e)=>n/e),zI=lr(pg,iY),FC={kernelName:pg,backendName:"cpu",kernelFunc:zI};function nF(n,e,t){const r=n.shape,s=r[0],o=r[1],i=t.data.get(n.dataId),a=i.complexTensorInfos.real,l=i.complexTensorInfos.imag,c=[s,o],d=Se(c),p=Vr("float32",d),m=Vr("float32",d);for(let w=0;w{const{image:r}=n,s=t,o=Vr(r.dtype,Se(r.shape)),[i,a,l,c]=r.shape,d=s.data.get(r.dataId).values;for(let m=0;m=0&&N=0,()=>`GatherV2: the index value ${A} is not in [0, ${d-1}]`)}let p=a;a==null&&(p=0);const m=Se(o.shape),y=uI(s,o,l,p),v=gn({inputs:{x:s},backend:t,attrs:{shape:[y.batchSize,y.outerSize,y.dimSize,y.sliceSize]}}),b=gn({inputs:{x:o},backend:t,attrs:{shape:[y.batchSize,m/y.batchSize]}}),w=[y.batchSize,y.outerSize,m/y.batchSize,y.sliceSize],k=t.bufferSync(b),I=t.bufferSync(v),N=fO(I,k,w);return t.disposeIntermediateTensorInfo(v),t.disposeIntermediateTensorInfo(b),t.makeTensorInfo(y.outputShape,N.dtype,N.values)}const CY={kernelName:L1,backendName:"cpu",kernelFunc:bY};function SY(n){const{inputs:e,backend:t}=n,{input:r}=e,s=Se(r.shape),o=r.shape[r.shape.length-1],i=s/o,a=gn({inputs:{x:r},backend:t,attrs:{shape:[i,o]}}),l=nF(a,!0,t),c=gn({inputs:{x:l},backend:t,attrs:{shape:r.shape}});return t.disposeIntermediateTensorInfo(a),t.disposeIntermediateTensorInfo(l),c}const kY={kernelName:BS,backendName:"cpu",kernelFunc:SY};const IY=sn(Sg,n=>Number.isFinite(n)?1:0,"bool"),$Y={kernelName:Sg,backendName:"cpu",kernelFunc:IY};const NY=sn(kg,n=>Math.abs(n)===1/0?1:0,"bool"),TY={kernelName:kg,backendName:"cpu",kernelFunc:NY};const EY=sn(Ig,n=>Number.isNaN(n)?1:0,"bool"),RY={kernelName:Ig,backendName:"cpu",kernelFunc:EY};function AY(n){const{backend:e,attrs:t}=n,{start:r,stop:s,num:o}=t,i=yO(r,s,o);return e.makeTensorInfo([i.length],"float32",i)}const _Y={kernelName:TE,backendName:"cpu",kernelFunc:AY};const DY=sn(Ng,n=>Math.log1p(n)),OY={kernelName:Ng,backendName:"cpu",kernelFunc:DY};const FY=Gn((n,e)=>n&&e),PY=lr(W1,FY,null,"bool"),LY={kernelName:W1,backendName:"cpu",kernelFunc:PY};const MY=sn(V1,n=>n?0:1,"bool"),zY={kernelName:V1,backendName:"cpu",kernelFunc:MY};const BY=Gn((n,e)=>n||e),UY=lr(G1,BY,null,"bool"),WY={kernelName:G1,backendName:"cpu",kernelFunc:UY};function VY(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{depthRadius:o,bias:i,alpha:a,beta:l}=r;Ye(s,"LRN");const c=s.shape[3],d=c-1,p=t.data.get(s.dataId).values,m=Se(s.shape),y=new Float32Array(m);function v(b){const w=b%c;let k=b-w+Math.max(0,w-o);const I=b-w+Math.min(w+o,d);let N=0;for(;k<=I;k++){const T=p[k];N+=T*T}return N}for(let b=0;b`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);const d=Xo(s.shape,o,i,c,a,l);let p;if(d.filterWidth===1&&d.filterHeight===1&&Xt(d.inShape,d.outShape))p=wa({inputs:{x:s},backend:t});else{const m=t.data.get(s.dataId).values,y=tt(s.shape),v=MI(m,s.shape,s.dtype,y,d,"max");p=t.makeTensorInfo(d.outShape,s.dtype,v.values)}return p}const XY={kernelName:q1,backendName:"cpu",kernelFunc:KY};function YY(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{filterSize:o,strides:i,pad:a,dimRoundingMode:l,dataFormat:c}=r;Ye(s,"maxPool3d");const d=ll(s.shape,o,i,1,a,l,c),p=t.data.get(s.dataId).values,m=ZO(p,s.shape,s.dtype,tt(s.shape),d,"max");return t.makeTensorInfo(m.shape,"float32",m.values)}const QY={kernelName:K1,backendName:"cpu",kernelFunc:YY};function JY(n){const{inputs:e,backend:t,attrs:r}=n,{dy:s,input:o}=e,{filterSize:i,strides:a,pad:l,dimRoundingMode:c}=r;Ye([s,o],"maxPool3DGrad");const d=ll(o.shape,i,a,1,l,c),p=t.bufferSync(o),m=BX(p,d),y=d.strideDepth,v=d.strideHeight,b=d.strideWidth,w=d.dilationDepth,k=d.dilationHeight,I=d.dilationWidth,N=d.effectiveFilterDepth,T=d.effectiveFilterHeight,A=d.effectiveFilterWidth,O=N-1-d.padInfo.front,P=A-1-d.padInfo.left,B=T-1-d.padInfo.top,z=Nt(o.shape,"float32"),L=t.bufferSync(s);for(let _=0;_=d.outDepth||Math.floor(V)!==V))for(let X=0;X=d.outHeight||Math.floor(xe)!==xe))for(let Ie=0;Ie=d.outWidth||Math.floor(ke)!==ke)continue;const Ee=N*T*A-1-m.get(_,V,xe,ke,H),Me=se*T*A+X*A+Ie,ze=Ee===Me?1:0;if(ze===0)continue;const Be=L.get(_,V,xe,ke,H);ie+=Be*ze}}}z.set(ie,_,Y,re,te,H)}return t.makeTensorInfo(z.shape,z.dtype,z.values)}const ZY={kernelName:GS,backendName:"cpu",kernelFunc:JY};function eQ(n){const{inputs:e,backend:t,attrs:r}=n,{dy:s,input:o,output:i}=e,a=o;Ye([o,i],"maxPoolGrad");const{filterSize:l,strides:c,pad:d,dimRoundingMode:p}=r,m=Xo(a.shape,l,c,1,d,p),y=t.data.get(a.dataId).values,v=Nt(m.outShape,a.dtype,JO(y,a.shape,a.dtype,m).values),b=m.strideHeight,w=m.strideWidth,k=m.dilationHeight,I=m.dilationWidth,N=m.effectiveFilterHeight,T=m.effectiveFilterWidth,A=T-1-m.padInfo.left,O=N-1-m.padInfo.top,P=Nt(a.shape,"float32"),B=t.data.get(s.dataId).values,z=Nt(s.shape,"float32",B);for(let L=0;L=m.outHeight||Math.floor(j)!==j))for(let ie=0;ie=m.outWidth||Math.floor(se)!==se)continue;const V=N*T-1-v.get(L,j,se,_),X=de*T+ie,xe=V===X?1:0;if(xe===0)continue;const Ie=z.get(L,j,se,_);le+=Ie*xe}}P.set(le,L,H,Y,_)}return t.makeTensorInfo(P.shape,P.dtype,P.values)}const tQ={kernelName:VS,backendName:"cpu",kernelFunc:eQ};function nQ(n,e,t,r,s){const o=tt(e),i=MI(n,e,t,o,s,"max"),a=JO(n,e,t,s,!0,r);return[i.values,a.values]}const rQ={kernelName:EE,backendName:"cpu",kernelFunc:({inputs:n,attrs:e,backend:t})=>{const{x:r}=n,{filterSize:s,strides:o,pad:i,includeBatchInIndex:a}=e,l=t;Ye(r,"MaxPoolWithArgmax");const c=l.data.get(r.dataId).values,d=Xo(r.shape,s,o,[1,1],i),[p,m]=nQ(c,r.shape,r.dtype,a,d),y=l.write(p,d.outShape,r.dtype),v=l.write(m,d.outShape,r.dtype);return[{dataId:y,shape:d.outShape,dtype:r.dtype},{dataId:v,shape:d.outShape,dtype:"int32"}]}};function sQ(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{axis:o,keepDims:i}=r,a=Tt(o,s.shape),c=yr(s.shape,a)[1],d=Se(c),p=[],m=t.makeTensorInfo([],"float32",new Float32Array([d]));p.push(m);const y=du({inputs:{x:s},backend:t,attrs:{dtype:"float32"}});p.push(y);const v=zI({inputs:{a:y,b:m},backend:t});p.push(v);const b=mx({inputs:{x:v},backend:t,attrs:{axis:o,keepDims:i}});return p.forEach(w=>t.disposeIntermediateTensorInfo(w)),b}const oQ={kernelName:X1,backendName:"cpu",kernelFunc:sQ};function iQ(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{axis:o,keepDims:i}=r;Ye(s,"min");const a=Tt(o,s.shape);let l=a;const c=En(l,s.shape.length);let d=s;c!=null&&(d=Ns({inputs:{x:s},backend:t,attrs:{perm:c}}),l=Wn(l.length,s.shape.length)),Dr("min",l,d.shape.length);const[p,m]=yr(d.shape,l),y=Se(m),v=Gr(Se(p),d.dtype),b=t.data.get(d.dataId).values;for(let k=0;kN[0]+s.shape[T]+N[1]),l=o.map(N=>N[0]),c=o.map((N,T)=>N[0]+s.shape[T]),d=i==="reflect"?0:1,p=t.data.get(s.dataId).values,m=s.shape.length,y=tt(s.shape),v=Se(a),b=a.length,w=tt(a),k=Vr(s.dtype,v);for(let N=0;N=c[O]&&(T[O]=(c[O]-1)*2-T[O]+d);T=T.map((O,P)=>O-l[P]);const A=ca(T,m,y);k[N]=p[A]}return{dataId:t.write(k,a,s.dtype),shape:a,dtype:s.dtype}}const uQ={kernelName:Q1,backendName:"cpu",kernelFunc:lQ};const cQ=Gn(((n,e)=>{const t=n%e;return n<0&&e<0||n>=0&&e>=0?t:(t+e)%e})),hQ=lr(Rg,cQ),dQ={kernelName:Rg,backendName:"cpu",kernelFunc:hQ};function sF(n){const{inputs:e,backend:t,attrs:r}=n,{logits:s}=e,{dim:o}=r,i=s.shape.length;let a=o;if(a===-1&&(a=i-1),a!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${a}`);const l=Tt([a],s.shape),c=rF({inputs:{x:s},backend:t,attrs:{reductionIndices:l,keepDims:!1}}),d=Yn(c.shape,l),p=gn({inputs:{x:c},backend:t,attrs:{shape:d}}),m=LI({inputs:{a:s,b:p},backend:t}),y=lO({inputs:{x:m},backend:t}),v=mx({inputs:{x:y},backend:t,attrs:{axis:l,keepDims:!1}}),b=gn({inputs:{x:v},backend:t,attrs:{shape:d}}),w=zI({inputs:{a:y,b},backend:t});return t.disposeIntermediateTensorInfo(c),t.disposeIntermediateTensorInfo(p),t.disposeIntermediateTensorInfo(m),t.disposeIntermediateTensorInfo(y),t.disposeIntermediateTensorInfo(v),t.disposeIntermediateTensorInfo(b),w}const fQ={kernelName:mv,backendName:"cpu",kernelFunc:sF};function pQ(n){const{inputs:e,backend:t,attrs:r}=n,{logits:s}=e,{numSamples:o,seed:i,normalized:a}=r;Ye(s,"multinomial");const l=a?s:sF({inputs:{logits:s},backend:t,attrs:{dim:-1}}),c=l.shape[0],d=l.shape[1],p=t.data.get(l.dataId).values,m=[c,o],y=Gr(Se(m),"int32");for(let v=0;v=0&&p[m]{fS(o,d.shape,"All tensors passed to stack must have matching shapes"),U(i===d.dtype,()=>"All tensors passed to stack must have matching dtypes")});const a=[],l=e.map(d=>{const p=i1({inputs:{input:d},backend:t,attrs:{dim:s}});return a.push(p),p}),c=pf({inputs:l,backend:t,attrs:{axis:s}});return a.forEach(d=>t.disposeIntermediateTensorInfo(d)),c}const EQ={kernelName:nv,backendName:"cpu",kernelFunc:iF};function RQ(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{paddings:o,constantValue:i}=r;Ye(s,"pad");const a=o.map((I,N)=>I[0]+s.shape[N]+I[1]),l=o.map(I=>I[0]),c=t.data.get(s.dataId).values,d=Se(s.shape),p=s.shape.length,m=tt(s.shape),y=Se(a),v=a.length,b=tt(a),w=Vr(s.dtype,y);i!==0&&w.fill(i);for(let I=0;IO+l[P]),A=ca(T,v,b);w[A]=c[I]}return{dataId:t.write(w,a,s.dtype),shape:a,dtype:s.dtype}}const aF={kernelName:rv,backendName:"cpu",kernelFunc:RQ};const AQ=Gn((n,e)=>Math.pow(n,e)),_Q=lr(_g,AQ),DQ={kernelName:_g,backendName:"cpu",kernelFunc:_Q};function OQ(n){const{inputs:e,backend:t,attrs:r}=n,{paramsNestedSplits:s,paramsDenseValues:o,indices:i}=e,{outputRaggedRank:a}=r,l=s.map(k=>t.data.get(k.dataId).values),c=s.map(k=>k.shape),d=t.data.get(o.dataId).values,p=t.data.get(i.dataId).values,[m,y,v]=$O(l,c,d,o.shape,o.dtype,p,i.shape),b=m.map(k=>t.makeTensorInfo([k.length],"int32",k)),w=t.makeTensorInfo(v,o.dtype,y);return b.concat([w])}const FQ={kernelName:AE,backendName:"cpu",kernelFunc:OQ};function PQ(n){const{inputs:e,backend:t}=n,{starts:r,limits:s,deltas:o}=e,i=t.data.get(r.dataId).values,a=t.data.get(s.dataId).values,l=t.data.get(o.dataId).values,[c,d]=NO(i,r.shape,r.dtype,a,s.shape,l,o.shape),p=t.makeTensorInfo([c.length],"int32",c),m=t.makeTensorInfo([d.length],r.dtype,d);return[p,m]}const LQ={kernelName:_E,backendName:"cpu",kernelFunc:PQ};function MQ(n){const{inputs:e,backend:t,attrs:r}=n,{shape:s,values:o,defaultValue:i,rowPartitionTensors:a}=e,{rowPartitionTypes:l}=r,c=t.data.get(s.dataId).values,d=t.data.get(o.dataId).values,p=t.data.get(i.dataId).values,m=a.map(w=>t.data.get(w.dataId).values),y=a.map(w=>w.shape),[v,b]=TO(c,s.shape,d,o.shape,o.dtype,p,i.shape,m,y,l);return t.makeTensorInfo(v,o.dtype,b)}const zQ={kernelName:DE,backendName:"cpu",kernelFunc:MQ};function BQ(n){const{backend:e,attrs:t}=n,{start:r,stop:s,dtype:o,step:i}=t,a=EO(r,s,i,o);return e.makeTensorInfo([a.length],o,a)}const UQ={kernelName:KS,backendName:"cpu",kernelFunc:BQ};const WQ=sn(Dg,n=>1/n),VQ={kernelName:Dg,backendName:"cpu",kernelFunc:WQ};function GQ(n){const{inputs:e,backend:t,attrs:r}=n,{images:s}=e,{alignCorners:o,halfPixelCenters:i,size:a}=r;Ye(s,"resizeBilinear");const l=tt(s.shape),[c,d]=a,[p,m,y,v]=s.shape,b=t.data.get(s.dataId).values,w=new Float32Array(Se([p,c,d,v])),k=[o&&c>1?m-1:m,o&&d>1?y-1:y],I=[o&&c>1?c-1:c,o&&d>1?d-1:d];let N=0;const T=k[0]/I[0],A=k[1]/I[1];for(let O=0;O1?c-1:c,i&&y>1?d-1:d],w=[i&&m>1?m-1:m,i&&y>1?y-1:y],k=b[0]/w[0],I=b[1]/w[1],N=t.data.get(o.dataId).values;let T=0;for(let A=0;A1?m-1:m,o&&d>1?y-1:y],I=[o&&c>1?c-1:c,o&&d>1?d-1:d],N=k[0]/I[0],T=k[1]/I[1];let A=0;for(let O=0;O1?d-1:d,i&&v>1?p-1:p],I=[i&&y>1?y-1:y,i&&v>1?v-1:v],N=k[0]/I[0],T=k[1]/I[1],A=1/N,O=1/T,P=Math.ceil(A)*2+2,B=Math.ceil(O)*2+2;for(let z=0;z=y)continue;const xe=L+X*l[1],Ie=X*N,ke=Math.min(d-1,i?Math.round(Ie):Math.floor(Ie));if(_===ke)for(let Ee=0;Ee=v)continue;const ze=xe+Me*l[2],Be=Me*T,Je=Math.min(p-1,i?Math.round(Be):Math.floor(Be));te===Je&&(se+=w[ze+ie])}}b[le+ie]=se}}}}return t.makeTensorInfo(s.shape,s.dtype,b)}const QQ={kernelName:YS,backendName:"cpu",kernelFunc:YQ};function JQ(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{dims:o}=r;Ye(s,"reverse");const i=s.shape.length,a=Tt(o,s.shape);if(i===0)return wa({inputs:{x:s},backend:t});const l=new Ar(s.shape,s.dtype),c=t.bufferSync(s);for(let d=0;dm[y]=s.shape[y]-1-m[y]),l.set(c.get(...m),...p)}return t.makeTensorInfo(l.shape,l.dtype,l.values)}const ZQ={kernelName:uv,backendName:"cpu",kernelFunc:JQ};const eJ={kernelName:sk,backendName:"cpu",kernelFunc:({inputs:n,attrs:e,backend:t})=>{const{image:r}=n,{radians:s,fillValue:o,center:i}=e,a=t,l=Vr(r.dtype,Se(r.shape)),[c,d,p,m]=r.shape,[y,v]=qk(i,d,p),b=255,w=Math.sin(s),k=Math.cos(s),I=a.data.get(r.dataId).values;for(let T=0;T=0&&re=0&&te{const e=Math.floor(n);return n-e<.5?Math.floor(n):n-e>.5?Math.ceil(n):e%2===0?e:e+1}),nJ={kernelName:Pg,backendName:"cpu",kernelFunc:tJ};function rJ(n){const{inputs:e,backend:t,attrs:r}=n,{indices:s,updates:o}=e,{shape:i}=r,{sliceRank:a,numUpdates:l,sliceSize:c,strides:d,outputSize:p}=ch(o,s,i),m=!0,y=t.bufferSync(s),v=t.bufferSync(o),b=Fc(y,v,i,p,c,l,a,d,0,m);return t.makeTensorInfo(i,b.dtype,b.values)}const sJ={kernelName:OE,backendName:"cpu",kernelFunc:rJ};function oJ(n,e){let t=0,r=n.length,s=0;for(;t1||s.shape.length===1?1:Se(s.shape.slice(1));for(let v=0;vn>=0?fJ*n:dJ*(Math.exp(n)-1)),mJ={kernelName:Mg,backendName:"cpu",kernelFunc:pJ};const gJ=sn(Ug,n=>n<0?-1:n>0?1:0),xJ={kernelName:Ug,backendName:"cpu",kernelFunc:gJ};const yJ=sn(zg,n=>Math.sin(n)),vJ={kernelName:zg,backendName:"cpu",kernelFunc:yJ};const wJ=sn(Bg,n=>Math.sinh(n)),bJ={kernelName:Bg,backendName:"cpu",kernelFunc:wJ};const CJ=11920928955078125e-23,L2=Math.log(CJ)+2,SJ=sn(Vg,n=>{const e=n>-L2,t=nNumber(w)))),t.makeTensorInfo([b.length],r.dtype,new Int32Array(b))]}const TJ={kernelName:LE,backendName:"cpu",kernelFunc:NJ};function EJ(n){const{inputs:e,backend:t}=n,{inputIndices:r,inputShape:s,newShape:o}=e;if(r.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape + ${r.shape}`);if(s.shape.length!==1)throw new Error(`Input shape should be a vector but received shape + ${s.shape}`);if(o.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${o.shape}`);const i=Array.from(t.data.get(s.dataId).values),a=t.data.get(r.dataId).values,l=Array.from(t.data.get(o.dataId).values),[c,d,p]=OO(a,r.shape,r.dtype,i,l);return[t.makeTensorInfo(d,r.dtype,c),t.makeTensorInfo([p.length],o.dtype,new Int32Array(p))]}const RJ={kernelName:ME,backendName:"cpu",kernelFunc:EJ};function AJ(n){const{inputs:e,backend:t}=n,{data:r,indices:s,segmentIds:o}=e;if(r.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(s.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${s.shape}`);if(o.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape + ${o.shape}`);if(s.shape[0]!==o.shape[0])throw new Error("segmentIds and indices should have same size.");const i=t.data.get(r.dataId).values,a=t.data.get(s.dataId).values,l=t.data.get(o.dataId).values,[c,d]=PI(i,r.shape,r.dtype,a,l,!0);return t.makeTensorInfo(d,r.dtype,c)}const _J={kernelName:zE,backendName:"cpu",kernelFunc:AJ};function DJ(n){const{inputs:e,backend:t}=n,{data:r,indices:s,segmentIds:o}=e;if(r.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(s.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${s.shape}`);if(o.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape + ${o.shape}`);if(s.shape[0]!==o.shape[0])throw new Error("segmentIds and indices should have same size.");const i=t.data.get(r.dataId).values,a=t.data.get(s.dataId).values,l=t.data.get(o.dataId).values,[c,d]=PI(i,r.shape,r.dtype,a,l);return t.makeTensorInfo(d,r.dtype,c)}const OJ={kernelName:BE,backendName:"cpu",kernelFunc:DJ};function FJ(n){const{inputs:e,backend:t,attrs:r}=n,{sparseIndices:s,sparseValues:o,defaultValue:i}=e,{outputShape:a}=r,{sliceRank:l,numUpdates:c,sliceSize:d,strides:p,outputSize:m}=ch(o,s,a),y=!1,v=t.bufferSync(s);let b;switch(o.dtype){case"bool":{const w=t.bufferSync(o),k=!!t.data.get(i.dataId).values[0];b=Fc(v,w,a,m,d,c,l,p,k,y);break}case"float32":{const w=t.bufferSync(o),k=t.data.get(i.dataId).values[0];b=Fc(v,w,a,m,d,c,l,p,k,y);break}case"int32":{const w=t.bufferSync(o),k=t.data.get(i.dataId).values[0];b=Fc(v,w,a,m,d,c,l,p,k,y);break}case"string":{const w=t.bufferSync(o),k=au(t.data.get(i.dataId).values[0]);b=Fc(v,w,a,m,d,c,l,p,k,y);break}default:throw new Error(`Unsupported type ${o.dtype}`)}return t.makeTensorInfo(a,b.dtype,b.values)}const PJ={kernelName:UE,backendName:"cpu",kernelFunc:FJ};function LJ(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{numOrSizeSplits:o,axis:i}=r,a=Tt(i,s.shape)[0],l=lI(s,o,a),c=new Array(s.shape.length).fill(0),d=s.shape.slice();return l.map(p=>{const m=[...d];m[a]=p;const y=rh({inputs:{x:s},backend:t,attrs:{begin:c,size:m}});return c[a]+=p,y})}const MJ={kernelName:pv,backendName:"cpu",kernelFunc:LJ};const zJ={kernelName:JS,backendName:"cpu",kernelFunc:({inputs:n,backend:e})=>{const{x:t}=n,r=e;Ye(t,"square");const s=r.data.get(t.dataId).values,o=new Float32Array(s.length);for(let a=0;a{const t=e;return isNaN(n)?NaN:n>0?1:t.alpha}),UJ={kernelName:Yg,backendName:"cpu",kernelFunc:BJ};function WJ(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{begin:o,end:i,strides:a,beginMask:l,endMask:c,ellipsisMask:d,newAxisMask:p,shrinkAxisMask:m}=r;Ye(s,"stridedSlice");const{finalShapeSparse:y,finalShape:v,isIdentity:b,sliceDim0:w,isSimpleSlice:k,begin:I,end:N,strides:T}=Gk(s.shape,o,i,a,l,c,d,p,m);let A;if(b)A=gn({inputs:{x:s},backend:t,attrs:{shape:v}});else if(w||k){U(s.shape.length>=1,()=>`Input must have rank at least 1, got: ${s.shape.length}`);const O=Uk(I,N,T),P=rh({inputs:{x:s},backend:t,attrs:{begin:I,size:O}});A=gn({inputs:{x:P},backend:t,attrs:{shape:v}}),t.disposeIntermediateTensorInfo(P)}else{const O=t.bufferSync(s),P=LO(y,O,T,I);A=t.makeTensorInfo(v,P.dtype,P.values)}return A}const VJ={kernelName:ek,backendName:"cpu",kernelFunc:WJ};function GJ(n){const{inputs:e,backend:t,attrs:r}=n,{separator:s,nGramWidths:o,leftPad:i,rightPad:a,padWidth:l,preserveShortSequences:c}=r,{data:d,dataSplits:p}=e,m=t.data.get(d.dataId).values,y=t.data.get(p.dataId).values,[v,b]=MO(m,y,s,o,i,a,l,c);return[t.makeTensorInfo([v.length],"string",v),t.makeTensorInfo(p.shape,"int32",b)]}const jJ={kernelName:WE,backendName:"cpu",kernelFunc:GJ};function HJ(n){const{inputs:e,backend:t,attrs:r}=n,{skipEmpty:s}=r,{input:o,delimiter:i}=e;if(o.dtype!=="string")throw new Error("Input must be of datatype string");if(o.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${o.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);const a=t.data.get(o.dataId).values,l=t.data.get(i.dataId).values[0],[c,d,p]=zO(a,l,s),m=d.length;return[t.makeTensorInfo([m,2],"int32",c),t.makeTensorInfo([m],"string",d),t.makeTensorInfo([2],"int32",new Int32Array(p))]}const qJ={kernelName:VE,backendName:"cpu",kernelFunc:HJ};function KJ(n){const{inputs:e,backend:t,attrs:r}=n,{numBuckets:s}=r,{input:o}=e;if(o.dtype!=="string")throw new Error("Input must be of datatype string");if(s<=0)throw new Error("Number of buckets must be at least 1");const i=t.data.get(o.dataId).values,a=BO(i,s);return t.makeTensorInfo(o.shape,"int32",a)}const XJ={kernelName:GE,backendName:"cpu",kernelFunc:KJ};const YJ=sn(qg,n=>Math.tan(n)),QJ={kernelName:qg,backendName:"cpu",kernelFunc:YJ};const JJ=sn(Kg,n=>Math.tanh(n)),ZJ={kernelName:Kg,backendName:"cpu",kernelFunc:JJ};function eZ(n){const{inputs:e,backend:t}=n,{tensor:r,indices:s,updates:o}=e,{sliceRank:i,numUpdates:a,sliceSize:l,strides:c,outputSize:d}=ch(o,s,r.shape),p=!1,m=t.bufferSync(s),y=t.bufferSync(o),v=t.bufferSync(r),b=Fc(m,y,r.shape,d,l,a,i,c,v,p);return t.makeTensorInfo(r.shape,b.dtype,b.values)}const tZ={kernelName:FE,backendName:"cpu",kernelFunc:eZ};function nZ(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{reps:o}=r;Ye(s,"tile");const i=WO(t.bufferSync(s),o);return t.makeTensorInfo(i.shape,i.dtype,i.values)}const rZ={kernelName:Xg,backendName:"cpu",kernelFunc:nZ};function sZ(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{k:o,sorted:i}=r;Ye(s,"topk");const a=t.data.get(s.dataId).values,[l,c]=GO(a,s.shape,s.dtype,o,i);return[t.makeTensorInfo(l.shape,l.dtype,l.values),t.makeTensorInfo(c.shape,c.dtype,c.values)]}const oZ={kernelName:tk,backendName:"cpu",kernelFunc:sZ};function iZ(n){const{inputs:e,attrs:t,backend:r}=n,{image:s,transforms:o}=e,{interpolation:i,fillMode:a,fillValue:l,outputShape:c}=t,[d,p,m,y]=s.shape,[v,b]=c??[p,m],w=[d,v,b,y],k=tt(s.shape),I=k[0],N=k[1],T=k[2],A=tt(w),O=A[0],P=A[1],B=A[2],z=Vr(s.dtype,Se(w));z.fill(l);const L=r.data.get(s.dataId).values,_=r.data.get(o.dataId).values;for(let Y=0;Ye-1)if(e<=1)t=0;else{const r=2*e;t-=r*Math.trunc(t/r),t>=e&&(t=r-t-1)}return Gc(0,t,e-1)}function uZ(n,e){let t=n;if(t<0)if(e<=1)t=0;else{const r=e-1;t+=e*(Math.trunc(-t/r)+1)}else if(t>e-1)if(e<=1)t=0;else{const r=e-1;t-=e*Math.trunc(t/r)}return Gc(0,t,e-1)}function cZ(n,e){return n}function hZ(n,e){return Gc(0,n,e-1)}function Sm(n,e,t,r,s,o,i,a,l,c,d){const p=i*r+a*s+l*o+c;return 0<=a&&at.disposeIntermediateTensorInfo(v)),y}const vZ={kernelName:xv,backendName:"cpu",kernelFunc:yZ};const wZ=[pX,KK,gX,yX,e7,wX,CX,kX,$X,TX,RX,_X,OX,LX,zX,WX,GX,HX,KX,dX,YX,JX,e9,n7,n9,JK,s7,s9,XK,i9,l9,u9,h9,f9,m9,x9,v9,b9,S9,I9,N9,E9,A9,D9,O9,P9,M9,B9,U9,W9,V9,j9,K9,oX,Y9,o7,sY,i7,oY,l7,hY,dY,pY,c7,d7,gY,yY,wY,CY,p7,g7,YK,kY,a9,$Y,TY,RY,iX,y7,w7,_Y,C7,OY,LY,zY,WY,GY,HY,qY,k7,XY,QY,ZY,tQ,rQ,oQ,aQ,$7,uQ,dQ,mQ,T7,R7,yQ,bQ,kQ,_7,$Q,TQ,EQ,aF,DQ,lX,F7,FQ,LQ,zQ,UQ,QK,FC,VQ,uX,cX,hX,jQ,qQ,XQ,QQ,ZQ,eJ,nJ,V7,sJ,uJ,hJ,mJ,j7,xJ,vJ,bJ,H7,fQ,kJ,$J,TJ,RJ,_J,OJ,PJ,MJ,X7,zJ,Q7,Z7,UJ,VJ,jJ,qJ,XJ,rX,H9,QJ,ZJ,tZ,rZ,oZ,aZ,D7,mZ,xZ,vZ,NQ];for(const n of wZ)HE(n);const _c={},ly={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function bZ(n,e){_c[n]=e}function Ni(n,e){if(!(n in _c)||e!=null){const r=SZ(n,e);if(r!==null)_c[n]=r;else return console.log("Could not get context for WebGL version",n),null}const t=_c[n];return t==null||t.isContextLost()?(delete _c[n],Ni(n)):(t.disable(t.DEPTH_TEST),t.disable(t.STENCIL_TEST),t.disable(t.BLEND),t.disable(t.DITHER),t.disable(t.POLYGON_OFFSET_FILL),t.disable(t.SAMPLE_COVERAGE),t.enable(t.SCISSOR_TEST),t.enable(t.CULL_FACE),t.cullFace(t.BACK),_c[n])}function CZ(n){if(!ye().getBool("IS_SAFARI")&&typeof OffscreenCanvas<"u"&&n===2)return new OffscreenCanvas(300,150);if(typeof document<"u")return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}function SZ(n,e){if(n!==1&&n!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");const t=e??CZ(n);return t.addEventListener("webglcontextlost",r=>{r.preventDefault(),delete _c[n]},!1),ye().getBool("SOFTWARE_WEBGL_ENABLED")&&(ly.failIfMajorPerformanceCaveat=!1),n===1?t.getContext("webgl",ly)||t.getContext("experimental-webgl",ly):t.getContext("webgl2",ly)}var jm;(function(n){n[n.DENSE=0]="DENSE",n[n.SHARED_BATCH=1]="SHARED_BATCH"})(jm||(jm={}));var xo;(function(n){n[n.RENDER=0]="RENDER",n[n.UPLOAD=1]="UPLOAD",n[n.PIXELS=2]="PIXELS",n[n.DOWNLOAD=3]="DOWNLOAD"})(xo||(xo={}));var Rr;(function(n){n[n.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",n[n.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",n[n.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",n[n.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",n[n.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"})(Rr||(Rr={}));function gx(n,e){return[e,n]}function kZ(n,e){return n*e}function uy(n){const e=Se(n),t=Math.ceil(e/4);return rC(t)}function Rf(n,e){return[Math.max(1,Math.ceil(e/2)),Math.max(1,Math.ceil(n/2))]}function IZ(n,e){const[t,r]=Rf(n,e);return t*r*4}function UI(n,e){const t=n;let r,s,o,i,a,l,c,d,p,m;return ye().getNumber("WEBGL_VERSION")===2?(r=t.R32F,s=t.R16F,o=t.RGBA16F,i=t.RGBA32F,a=t.RED,c=4,d=1,p=t.HALF_FLOAT,m=t.FLOAT,l=t.RGBA8):(r=n.RGBA,s=n.RGBA,o=n.RGBA,i=t.RGBA,a=n.RGBA,c=4,d=4,p=e!=null?e.HALF_FLOAT_OES:null,m=n.FLOAT,l=n.RGBA),{internalFormatFloat:r,internalFormatHalfFloat:s,internalFormatPackedHalfFloat:o,internalFormatPackedFloat:i,textureFormatFloat:a,downloadTextureFormat:l,downloadUnpackNumChannels:c,defaultNumChannels:d,textureTypeHalfFloat:p,textureTypeFloat:m}}function Ve(n,e){const t=e();return ye().getBool("DEBUG")&&$Z(n),t}function $Z(n){const e=n.getError();if(e!==n.NO_ERROR)throw new Error("WebGL Error: "+RZ(n,e))}const NZ=596e-10,TZ=65504;function EZ(n){return!!(ye().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||n===0||NZn.getExtension(e),'Extension "'+e+'" not supported on this browser.')}function AZ(n,e){const t=cl(n,()=>n.createShader(n.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(Ve(n,()=>n.shaderSource(t,e)),Ve(n,()=>n.compileShader(t)),n.getShaderParameter(t,n.COMPILE_STATUS)===!1)throw console.log(n.getShaderInfoLog(t)),new Error("Failed to compile vertex shader.");return t}function _Z(n,e){const t=cl(n,()=>n.createShader(n.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(Ve(n,()=>n.shaderSource(t,e)),Ve(n,()=>n.compileShader(t)),ye().get("ENGINE_COMPILE_ONLY"))return t;if(n.getShaderParameter(t,n.COMPILE_STATUS)===!1)throw lF(e,n.getShaderInfoLog(t)),new Error("Failed to compile fragment shader.");return t}const DZ=/ERROR: [0-9]+:([0-9]+):/g;function lF(n,e){const t=DZ.exec(e);if(t==null){console.log(`Couldn't parse line number in error: ${e}`),console.log(n);return}const r=+t[1],s=n.split(` +`),o=s.length.toString().length+2,i=s.map((p,m)=>Zd((m+1).toString(),o)+p);let a=0;for(let p=0;pn.createProgram(),"Unable to create WebGLProgram.")}function FZ(n,e){if(Ve(n,()=>n.linkProgram(e)),!ye().get("ENGINE_COMPILE_ONLY")&&n.getProgramParameter(e,n.LINK_STATUS)===!1)throw console.log(n.getProgramInfoLog(e)),new Error("Failed to link vertex and fragment shaders.")}function Fb(n,e){if(Ve(n,()=>n.validateProgram(e)),n.getProgramParameter(e,n.VALIDATE_STATUS)===!1)throw console.log(n.getProgramInfoLog(e)),new Error("Shader program validation failed.")}function PZ(n,e){const t=cl(n,()=>n.createBuffer(),"Unable to create WebGLBuffer");return Ve(n,()=>n.bindBuffer(n.ARRAY_BUFFER,t)),Ve(n,()=>n.bufferData(n.ARRAY_BUFFER,e,n.STATIC_DRAW)),t}function LZ(n,e){const t=cl(n,()=>n.createBuffer(),"Unable to create WebGLBuffer");return Ve(n,()=>n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,t)),Ve(n,()=>n.bufferData(n.ELEMENT_ARRAY_BUFFER,e,n.STATIC_DRAW)),t}function MZ(n){return cl(n,()=>n.createTexture(),"Unable to create WebGLTexture.")}function zZ(n,e){const t=ye().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(n<=0||e<=0){const r=`[${n}x${e}]`;throw new Error("Requested texture size "+r+" is invalid.")}if(n>t||e>t){const r=`[${n}x${e}]`,s=`[${t}x${t}]`;throw new Error("Requested texture size "+r+" greater than WebGL maximum on this browser / GPU "+s+".")}}function BZ(n){return cl(n,()=>n.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function z2(n,e,t,r,s,o,i){const a=n.getAttribLocation(e,t);return a===-1?!1:(Ve(n,()=>n.bindBuffer(n.ARRAY_BUFFER,r)),Ve(n,()=>n.vertexAttribPointer(a,s,n.FLOAT,!1,o,i)),Ve(n,()=>n.enableVertexAttribArray(a)),!0)}function UZ(n,e,t){HZ(n,t),Ve(n,()=>n.activeTexture(n.TEXTURE0+t)),Ve(n,()=>n.bindTexture(n.TEXTURE_2D,e))}function WZ(n,e,t){return cl(n,()=>n.getUniformLocation(e,t),'uniform "'+t+'" not present in program.')}function VZ(n,e,t){return n.getUniformLocation(e,t)}function GZ(n,e,t,r){Ve(n,()=>UZ(n,e,r)),Ve(n,()=>n.uniform1i(t,r))}function Pb(n,e,t){Ve(n,()=>n.bindFramebuffer(n.FRAMEBUFFER,t)),Ve(n,()=>n.framebufferTexture2D(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,e,0))}function B2(n,e){Ve(n,()=>n.bindFramebuffer(n.FRAMEBUFFER,e)),Ve(n,()=>n.framebufferTexture2D(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,null,0))}function hy(n){const e=n.checkFramebufferStatus(n.FRAMEBUFFER);if(e!==n.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+jZ(n,e))}function jZ(n,e){switch(e){case n.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case n.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case n.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case n.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return`unknown error ${e}`}}function cl(n,e,t){const r=Ve(n,()=>e());if(r==null)throw new Error(t);return r}function HZ(n,e){const t=n.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,r=e+n.TEXTURE0;if(rt){const s=`[gl.TEXTURE0, gl.TEXTURE${t}]`;throw new Error(`textureUnit must be in ${s}.`)}}function mf(n,e=2){return Se(n.slice(0,n.length-e))}function gf(n){if(n.length===0)throw Error("Cannot get rows and columns of an empty shape array.");return[n.length>1?n[n.length-2]:1,n[n.length-1]]}function dy(n){let e=[1,1,1];return n.length===0||n.length===1&&n[0]===1||(e=[mf(n),...gf(n)]),e}function qZ(n,e=!1){let t=ye().getNumber("WEBGL_MAX_TEXTURE_SIZE"),r=ye().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");r===1/0&&ye().getBool("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE")&&(r=t/2),e&&(t=t*2,r=r*2,n=n.map((a,l)=>l>=n.length-2?dS(n[l]):n[l]),n.length===1&&(n=[2,n[0]])),n.length!==2&&(n=pu(n).newShape);let s=Se(n),o=null;n.length<=1&&s<=t?o=[1,s]:n.length===2&&n[0]<=t&&n[1]<=t?o=n:n.length===3&&n[0]*n[1]<=t&&n[2]<=t?o=[n[0]*n[1],n[2]]:n.length===3&&n[0]<=t&&n[1]*n[2]<=t?o=[n[0],n[1]*n[2]]:n.length===4&&n[0]*n[1]*n[2]<=t&&n[3]<=t?o=[n[0]*n[1]*n[2],n[3]]:n.length===4&&n[0]<=t&&n[1]*n[2]*n[3]<=t&&(o=[n[0],n[1]*n[2]*n[3]]);const i=o!=null&&Math.max(...o)>r&&Math.min(...o)<=(e?2:1)&&Math.min(...o)>0;if(o==null||i)if(e){const a=mf(n);let l=2,c=2;n.length&&([l,c]=gf(n)),s=a*(l/2)*(c/2),o=rC(s).map(d=>d*2)}else o=rC(s);return o}function fy(n){return n%2===0}function l1(n,e){if(n=n.slice(-2),e=e.slice(-2),Xt(n,e)||!n.length||!e.length||n[0]===0||n[1]===0||e[0]===0||e[1]===0)return!0;if(n.length!==e.length){const t=n[n.length-1],r=e[e.length-1];if(t===r||fy(t)&&fy(r)&&(n[0]===1||e[0]===1))return!0}return n[1]===e[1]&&fy(n[0])&&fy(e[0])}let Lb,Mb;function KZ(n){if(Lb==null){const e=Ni(n);Lb=e.getParameter(e.MAX_TEXTURE_SIZE)}return Lb}function XZ(n){if(Mb==null){const e=Ni(n);Mb=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Mb)}function YZ(n){if(n===0)return 0;let e;const t=Ni(n);return Ho(t,"EXT_disjoint_timer_query_webgl2")&&n===2?e=2:Ho(t,"EXT_disjoint_timer_query")?e=1:e=0,e}function Ho(n,e){return n.getExtension(e)!=null}function U2(n){try{if(Ni(n)!=null)return!0}catch(e){return console.log("Error when getting WebGL context: ",e),!1}return!1}function QZ(n){if(n===0)return!1;const e=Ni(n);if(n===1){if(!Ho(e,"OES_texture_float"))return!1}else if(!Ho(e,"EXT_color_buffer_float"))return!1;return LC(e)}function JZ(n){if(n===0)return!1;const e=Ni(n);if(n===1){if(!Ho(e,"OES_texture_float")||!Ho(e,"WEBGL_color_buffer_float"))return!1}else{if(Ho(e,"EXT_color_buffer_float"))return LC(e);const r="EXT_color_buffer_half_float";if(Ho(e,r)){const s=e.getExtension(r);return ZZ(e,s)}return!1}return LC(e)}function LC(n){const e=UI(n),t=n.createTexture();n.bindTexture(n.TEXTURE_2D,t),n.texImage2D(n.TEXTURE_2D,0,e.internalFormatFloat,1,1,0,e.textureFormatFloat,e.textureTypeFloat,null);const o=n.createFramebuffer();n.bindFramebuffer(n.FRAMEBUFFER,o),n.framebufferTexture2D(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,t,0);const i=n.checkFramebufferStatus(n.FRAMEBUFFER)===n.FRAMEBUFFER_COMPLETE;return n.bindTexture(n.TEXTURE_2D,null),n.bindFramebuffer(n.FRAMEBUFFER,null),n.deleteTexture(t),n.deleteFramebuffer(o),i}function ZZ(n,e){const t=UI(n,e),r=n.createTexture();n.bindTexture(n.TEXTURE_2D,r),n.texImage2D(n.TEXTURE_2D,0,t.internalFormatHalfFloat,1,1,0,t.textureFormatFloat,t.textureTypeHalfFloat,null);const i=n.createFramebuffer();n.bindFramebuffer(n.FRAMEBUFFER,i),n.framebufferTexture2D(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,r,0);const a=n.checkFramebufferStatus(n.FRAMEBUFFER)===n.FRAMEBUFFER_COMPLETE;return n.bindTexture(n.TEXTURE_2D,null),n.bindFramebuffer(n.FRAMEBUFFER,null),n.deleteTexture(r),n.deleteFramebuffer(i),a}function eee(n){return n!==2?!1:Ni(n).fenceSync!=null}function xx(n,e){Array.isArray(n)||(n=[n]),n.forEach(t=>{t!=null&&U(t.dtype!=="complex64",()=>`${e} does not support complex64 tensors in the WebGL backend.`)})}const Qe=ye();Qe.registerFlag("HAS_WEBGL",()=>Qe.getNumber("WEBGL_VERSION")>0);Qe.registerFlag("WEBGL_VERSION",()=>U2(2)?2:U2(1)?1:0);Qe.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);Qe.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>Qe.get("WEBGL_VERSION")===2);Qe.registerFlag("WEBGL_CPU_FORWARD",()=>!0);Qe.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);Qe.registerFlag("WEBGL_PACK",()=>Qe.getBool("HAS_WEBGL"));Qe.registerFlag("WEBGL_PACK_NORMALIZATION",()=>Qe.getBool("WEBGL_PACK"));Qe.registerFlag("WEBGL_PACK_CLIP",()=>Qe.getBool("WEBGL_PACK"));Qe.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>Qe.getBool("WEBGL_PACK"));Qe.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>Qe.getBool("WEBGL_PACK"));Qe.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>Qe.getBool("WEBGL_PACK"));Qe.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>Qe.getBool("WEBGL_PACK"));Qe.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>Qe.getBool("WEBGL_PACK"));Qe.registerFlag("WEBGL_PACK_REDUCE",()=>Qe.getBool("WEBGL_PACK"));Qe.registerFlag("WEBGL_LAZILY_UNPACK",()=>Qe.getBool("WEBGL_PACK"));Qe.registerFlag("WEBGL_CONV_IM2COL",()=>Qe.getBool("WEBGL_PACK"));Qe.registerFlag("WEBGL_PACK_CONV2DTRANSPOSE",()=>Qe.getBool("WEBGL_PACK"));Qe.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>KZ(Qe.getNumber("WEBGL_VERSION")));Qe.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>XZ(Qe.getNumber("WEBGL_VERSION")));Qe.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{const n=Qe.getNumber("WEBGL_VERSION");return n===0?0:YZ(n)});Qe.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>Qe.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!oR());Qe.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>QZ(Qe.getNumber("WEBGL_VERSION")));Qe.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>Qe.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:Qe.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));Qe.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>JZ(Qe.getNumber("WEBGL_VERSION")));Qe.registerFlag("WEBGL_FENCE_API_ENABLED",()=>eee(Qe.getNumber("WEBGL_VERSION")));Qe.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>Qe.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);Qe.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,n=>{if(typeof n!="number")throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be a number but got ${n}.`);if(n<0&&n!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${n}.`)});Qe.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>oR()?1:-1,n=>{if(typeof n!="number")throw new Error(`WEBGL_FLUSH_THRESHOLD must be a number but got ${n}.`);if(n<0&&n!==-1)throw new Error(`WEBGL_FLUSH_THRESHOLD must be -1 (indicating never manual flush) or at least 0, but got ${n}.`)});Qe.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128);Qe.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1);Qe.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5);Qe.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128);Qe.registerFlag("WEBGL_EXP_CONV",()=>!1);Qe.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>Qe.getBool("IS_TEST"));Qe.registerFlag("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE",()=>1/0);Qe.registerFlag("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE",()=>!1);Qe.registerFlag("WEBGL2_ISNAN_CUSTOM",()=>!1);Qe.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);function hs(){let n,e,t,r,s,o,i,a,l,c;return ye().getNumber("WEBGL_VERSION")===2?(n="#version 300 es",e="in",t="out",r="in",s="texture",o="outputColor",i="out vec4 outputColor;",a=ye().getBool("WEBGL2_ISNAN_CUSTOM")?` + bool isnan_custom(float val) { + uint floatToUint = floatBitsToUint(val); + return (floatToUint & 0x7fffffffu) > 0x7f800000u; + } + + bvec4 isnan_custom(vec4 val) { + return bvec4(isnan_custom(val.x), + isnan_custom(val.y), isnan_custom(val.z), isnan_custom(val.w)); + } + + #define isnan(value) isnan_custom(value) + `:"",l="",c=` + #define round(value) newRound(value) + int newRound(float value) { + return int(floor(value + 0.5)); + } + + ivec4 newRound(vec4 value) { + return ivec4(floor(value + vec4(0.5))); + } + `):(n="",e="attribute",t="varying",r="varying",s="texture2D",o="gl_FragColor",i="",a=` + #define isnan(value) isnan_custom(value) + bool isnan_custom(float val) { + return (val > 0. || val < 1. || val == 0.) ? false : true; + } + bvec4 isnan_custom(vec4 val) { + return bvec4(isnan(val.x), isnan(val.y), isnan(val.z), isnan(val.w)); + } + `,l=` + uniform float INFINITY; + + bool isinf(float val) { + return abs(val) == INFINITY; + } + bvec4 isinf(vec4 val) { + return equal(abs(val), vec4(INFINITY)); + } + `,c=` + int round(float value) { + return int(floor(value + 0.5)); + } + + ivec4 round(vec4 value) { + return ivec4(floor(value + vec4(0.5))); + } + `),{version:n,attribute:e,varyingVs:t,varyingFs:r,texture2D:s,output:o,defineOutput:i,defineSpecialNaN:a,defineSpecialInf:l,defineRound:c}}function fh(n,e,t="index"){const r=tt(e);return r.map((s,o)=>{const i=`int ${n[o]} = ${t} / ${s}`,a=o===r.length-1?`int ${n[o+1]} = ${t} - ${n[o]} * ${s}`:`index -= ${n[o]} * ${s}`;return`${i}; ${a};`}).join("")}function Wv(n,e,t="index"){const r=tt(e);return r.map((s,o)=>{const i=`int ${n[o]} = ${t} / outShapeStrides[${o}]`,a=o===r.length-1?`int ${n[o+1]} = ${t} - ${n[o]} * outShapeStrides[${o}]`:`index -= ${n[o]} * outShapeStrides[${o}]`;return`${i}; ${a};`}).join("")}function tee(n,e){const t=n.length,r=n.map(o=>`${e}[${o}]`),s=new Array(t-1);s[t-2]=r[t-1];for(let o=t-3;o>=0;--o)s[o]=`(${s[o+1]} * ${r[o+1]})`;return s}function nee(n,e,t="index"){const r=n.map((o,i)=>i),s=tee(r,e);return s.map((o,i)=>{const a=`int ${n[i]} = ${t} / ${s[i]}`,l=i===s.length-1?`int ${n[i+1]} = ${t} - ${n[i]} * ${s[i]}`:`index -= ${n[i]} * ${s[i]}`;return`${a}; ${l};`}).join("")}function WI(n){const e=tt(n).map(t=>t.toString());return` + int getFlatIndex(ivec3 coords) { + return coords.x * ${e[0]} + coords.y * ${e[1]} + coords.z; + } +`}function VI(){return` + int getFlatIndex(ivec3 coords) { + return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z; + } +`}const uF=` + const float FLOAT_MAX = 1.70141184e38; + const float FLOAT_MIN = 1.17549435e-38; + + lowp vec4 encode_float(highp float v) { + if (isnan(v)) { + return vec4(255, 255, 255, 255); + } + + highp float av = abs(v); + + if(av < FLOAT_MIN) { + return vec4(0.0, 0.0, 0.0, 0.0); + } else if(v > FLOAT_MAX) { + return vec4(0.0, 0.0, 128.0, 127.0) / 255.0; + } else if(v < -FLOAT_MAX) { + return vec4(0.0, 0.0, 128.0, 255.0) / 255.0; + } + + highp vec4 c = vec4(0,0,0,0); + + highp float e = floor(log2(av)); + highp float m = exp2(fract(log2(av))) - 1.0; + + c[2] = floor(128.0 * m); + m -= c[2] / 128.0; + c[1] = floor(32768.0 * m); + m -= c[1] / 32768.0; + c[0] = floor(8388608.0 * m); + + highp float ebias = e + 127.0; + c[3] = floor(ebias / 2.0); + ebias -= c[3] * 2.0; + c[2] += floor(ebias) * 128.0; + + c[3] += 128.0 * step(0.0, -v); + + return c / 255.0; + } +`;const{getBroadcastDims:cF}=V5;function ree(n,e,t){const r=[];if(n.forEach(y=>{const v=Se(y.shapeInfo.logicalShape);if(y.shapeInfo.isUniform?r.push(`uniform float ${y.name}${v>1?`[${v}]`:""};`):(r.push(`uniform sampler2D ${y.name};`),r.push(`uniform int offset${y.name};`)),t.enableShapeUniforms){const{uniformShape:b}=GI(t.packedInputs,y.shapeInfo.logicalShape,y.shapeInfo.texShape);switch(b.length){case 1:r.push(`uniform int ${y.name}Shape;`);break;case 2:r.push(`uniform ivec2 ${y.name}Shape;`);break;case 3:r.push(`uniform ivec3 ${y.name}Shape;`);break;case 4:r.push(`uniform ivec4 ${y.name}Shape;`);break}r.push(`uniform ivec2 ${y.name}TexShape;`)}}),t.enableShapeUniforms){switch(e.logicalShape.length){case 1:r.push("uniform int outShape;");break;case 2:r.push("uniform ivec2 outShape;"),r.push("uniform int outShapeStrides;");break;case 3:r.push("uniform ivec3 outShape;"),r.push("uniform ivec2 outShapeStrides;");break;case 4:r.push("uniform ivec4 outShape;"),r.push("uniform ivec3 outShapeStrides;");break}r.push("uniform ivec2 outTexShape;")}t.customUniforms&&t.customUniforms.forEach(y=>{r.push(`uniform ${y.type} ${y.name}${y.arrayIndex?`[${y.arrayIndex}]`:""};`)});const s=r.join(` +`),o=n.map(y=>see(y,e,t.packedInputs,t.enableShapeUniforms)).join(` +`),i=e.texShape,a=hs(),l=aee(a);let c,d,p=cee(a);return e.isPacked?(c=oee(e.logicalShape,i,t.enableShapeUniforms),d=uee(a)):(c=iee(e.logicalShape,i,t.enableShapeUniforms),d=lee(a)),t.packedInputs&&(p+=pee),[p,l,d,s,c,o,t.userCode].join(` +`)}function Af(n,e=!1){const t=n.shapeInfo.logicalShape;switch(t.length){case 0:return $ee(n,e);case 1:return Tee(n,e);case 2:return Ree(n,e);case 3:return _ee(n,e);case 4:return Oee(n,e);case 5:return Fee(n);case 6:return Pee(n);default:throw new Error(`${t.length}-D input sampling is not yet supported`)}}function hF(n,e){switch(n.shapeInfo.logicalShape.length){case 0:return Iee(n);case 1:return Nee(n,e);case 2:return Eee(n,e);case 3:return Aee(n,e);default:return Dee(n,e)}}function see(n,e,t=!1,r){let s="";t?s+=hF(n,r):s+=Af(n,r);const o=n.shapeInfo.logicalShape,i=e.logicalShape;return o.length<=i.length&&(t?s+=Lee(n,e):s+=Mee(n,e)),s}function oee(n,e,t){switch(n.length){case 0:return dF();case 1:return mee(n,e,t);case 2:return See(n,e,t);case 3:return xee(n,e,t);default:return vee(n,e,t)}}function iee(n,e,t){switch(n.length){case 0:return dF();case 1:return gee(n,e,t);case 2:return kee(n,e,t);case 3:return yee(n,e,t);case 4:return wee(n,e,t);case 5:return bee(n,e);case 6:return Cee(n,e);default:throw new Error(`${n.length}-D output sampling is not yet supported`)}}function aee(n){return` + float sampleTexture(sampler2D textureSampler, vec2 uv) { + return ${n.texture2D}(textureSampler, uv).r; + } + `}function lee(n){return` + void setOutput(float val) { + ${n.output} = vec4(val, 0, 0, 0); + } + `}function uee(n){return` + void setOutput(vec4 val) { + ${n.output} = val; + } + `}function cee(n){return`${n.version} + precision highp float; + precision highp int; + precision highp sampler2D; + ${n.varyingFs} vec2 resultUV; + ${n.defineOutput} + const vec2 halfCR = vec2(0.5, 0.5); + + struct ivec5 + { + int x; + int y; + int z; + int w; + int u; + }; + + struct ivec6 + { + int x; + int y; + int z; + int w; + int u; + int v; + }; + + uniform float NAN; + ${n.defineSpecialNaN} + ${n.defineSpecialInf} + ${n.defineRound} + + int imod(int x, int y) { + return x - y * (x / y); + } + + int idiv(int a, int b, float sign) { + int res = a / b; + int mod = imod(a, b); + if (sign < 0. && mod != 0) { + res -= 1; + } + return res; + } + + //Based on the work of Dave Hoskins + //https://www.shadertoy.com/view/4djSRW + #define HASHSCALE1 443.8975 + float random(float seed){ + vec2 p = resultUV * seed; + vec3 p3 = fract(vec3(p.xyx) * HASHSCALE1); + p3 += dot(p3, p3.yzx + 19.19); + return fract((p3.x + p3.y) * p3.z); + } + + ${hee} + ${dee} + ${fee} + `}const hee=` +vec2 uvFromFlat(int texNumR, int texNumC, int index) { + int texR = index / texNumC; + int texC = index - texR * texNumC; + return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); +} +vec2 packedUVfrom1D(int texNumR, int texNumC, int index) { + int texelIndex = index / 2; + int texR = texelIndex / texNumC; + int texC = texelIndex - texR * texNumC; + return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); +} +`,dee=` +vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, + int texNumC, int row, int col) { + int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2); + int texR = texelIndex / texNumC; + int texC = texelIndex - texR * texNumC; + return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); +} +`,fee=` +vec2 packedUVfrom3D(int texNumR, int texNumC, + int texelsInBatch, int texelsInLogicalRow, int b, + int row, int col) { + int index = b * texelsInBatch + (row / 2) * texelsInLogicalRow + (col / 2); + int texR = index / texNumC; + int texC = index - texR * texNumC; + return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); +} +`,pee=` + float getChannel(vec4 frag, vec2 innerDims) { + vec2 modCoord = mod(innerDims, 2.); + return modCoord.x == 0. ? + (modCoord.y == 0. ? frag.r : frag.g) : + (modCoord.y == 0. ? frag.b : frag.a); + } + float getChannel(vec4 frag, int dim) { + float modCoord = mod(float(dim), 2.); + return modCoord == 0. ? frag.r : frag.g; + } +`;function dF(){return` + int getOutputCoords() { + return 0; + } + `}function mee(n,e,t){const r=[Math.ceil(e[0]/2),Math.ceil(e[1]/2)];return r[0]===1?t?` + int getOutputCoords() { + return 2 * int(resultUV.x * ceil(float(outTexShape[1]) / 2.0)); + } + `:` + int getOutputCoords() { + return 2 * int(resultUV.x * ${r[1]}.0); + } + `:r[1]===1?t?` + int getOutputCoords() { + return 2 * int(resultUV.y * ceil(float(outTexShape[0]) / 2.0)); + } + `:` + int getOutputCoords() { + return 2 * int(resultUV.y * ${r[0]}.0); + } + `:t?` + int getOutputCoords() { + ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(packedTexShape[0], packedTexShape[1])); + return 2 * (resTexRC.x * packedTexShape[1] + resTexRC.y); + } + `:` + int getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${r[0]}, ${r[1]})); + return 2 * (resTexRC.x * ${r[1]} + resTexRC.y); + } + `}function gee(n,e,t){return e[0]===1?t?` + int getOutputCoords() { + return int(resultUV.x * float(outTexShape[1])); + } + `:` + int getOutputCoords() { + return int(resultUV.x * ${e[1]}.0); + } + `:e[1]===1?t?` + int getOutputCoords() { + return int(resultUV.y * float(outTexShape[0])); + } + `:` + int getOutputCoords() { + return int(resultUV.y * ${e[0]}.0); + } + `:t?` + int getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(outTexShape[0], outTexShape[1])); + return resTexRC.x * outTexShape[1] + resTexRC.y; + } + `:` + int getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${e[0]}, ${e[1]})); + return resTexRC.x * ${e[1]} + resTexRC.y; + } + `}function xee(n,e,t){if(t)return` + ivec3 getOutputCoords() { + ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); + int texelsInLogicalRow = int(ceil(float(outShape[2]) / 2.0)); + int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[1]) / 2.0)); + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(packedTexShape[0], packedTexShape[1])); + int index = resTexRC.x * packedTexShape[1] + resTexRC.y; + + int b = index / texelsInBatch; + index -= b * texelsInBatch; + + int r = 2 * (index / texelsInLogicalRow); + int c = imod(index, texelsInLogicalRow) * 2; + + return ivec3(b, r, c); + } + `;const r=[Math.ceil(e[0]/2),Math.ceil(e[1]/2)],s=Math.ceil(n[2]/2),o=s*Math.ceil(n[1]/2);return` + ivec3 getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${r[0]}, ${r[1]})); + int index = resTexRC.x * ${r[1]} + resTexRC.y; + + int b = index / ${o}; + index -= b * ${o}; + + int r = 2 * (index / ${s}); + int c = imod(index, ${s}) * 2; + + return ivec3(b, r, c); + } + `}function yee(n,e,t){if(t)return` + ivec3 getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(outTexShape[0], outTexShape[1])); + int index = resTexRC.x * outTexShape[1] + resTexRC.y; + ${Wv(["r","c","d"],n)} + return ivec3(r, c, d); + } +`;const r=fh(["r","c","d"],n);return` + ivec3 getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${e[0]}, ${e[1]})); + int index = resTexRC.x * ${e[1]} + resTexRC.y; + ${r} + return ivec3(r, c, d); + } + `}function vee(n,e,t){if(t)return` + ivec4 getOutputCoords() { + ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(packedTexShape[0], packedTexShape[1])); + int index = resTexRC.x * packedTexShape[1] + resTexRC.y; + + int texelsInLogicalRow = int(ceil(float(outShape[3]) / 2.0)); + int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[2]) / 2.0)); + int texelsInBatchN = texelsInBatch * outShape[1]; + + int b2 = index / texelsInBatchN; + index -= b2 * texelsInBatchN; + + int b = index / texelsInBatch; + index -= b * texelsInBatch; + + int r = 2 * (index / texelsInLogicalRow); + int c = imod(index, texelsInLogicalRow) * 2; + + return ivec4(b2, b, r, c); + } + `;const r=[Math.ceil(e[0]/2),Math.ceil(e[1]/2)],s=Math.ceil(n[n.length-1]/2),o=s*Math.ceil(n[n.length-2]/2);let i=o,a="",l="b, r, c";for(let c=2;c=1?d="coords = 0;":d=a.map(I=>`coords.${p[I+c]} = 0;`).join(` +`);let m="";i<2&&o>0?m="coords":m=n.shapeInfo.logicalShape.map((I,N)=>`coords.${p[N+c]}`).join(", ");let y="return outputValue;";const b=Se(n.shapeInfo.logicalShape)===1,k=Se(e.logicalShape)===1;if(o===1&&!b&&!k)y=` + return vec4(outputValue.xy, outputValue.xy); + `;else if(b&&!k)i===1?y=` + return vec4(outputValue.x, outputValue.x, 0., 0.); + `:y=` + return vec4(outputValue.x); + `;else if(a.length){const I=o-2,N=o-1;a.indexOf(I)>-1&&a.indexOf(N)>-1?y="return vec4(outputValue.x);":a.indexOf(I)>-1?y="return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);":a.indexOf(N)>-1&&(y="return vec4(outputValue.xx, outputValue.zz);")}return` + vec4 ${s}() { + ${l} coords = getOutputCoords(); + ${d} + vec4 outputValue = get${r}(${m}); + ${y} + } + `}function Mee(n,e){const t=n.name,r=t.charAt(0).toUpperCase()+t.slice(1),s="get"+r+"AtOutCoords",o=e.texShape,i=n.shapeInfo.texShape,a=n.shapeInfo.logicalShape.length,l=e.logicalShape.length;if(!n.shapeInfo.isUniform&&a===l&&n.shapeInfo.flatOffset==null&&Xt(i,o))return` + float ${s}() { + return sampleTexture(${t}, resultUV); + } + `;const c=on(l),d=cF(n.shapeInfo.logicalShape,e.logicalShape),p=l-a;let m;const y=["x","y","z","w","u","v"];a===0?m="":l<2&&d.length>=1?m="coords = 0;":m=d.map(b=>`coords.${y[b+p]} = 0;`).join(` +`);let v="";return l<2&&a>0?v="coords":v=n.shapeInfo.logicalShape.map((b,w)=>`coords.${y[w+p]}`).join(", "),` + float ${s}() { + ${c} coords = getOutputCoords(); + ${m} + return get${r}(${v}); + } + `}function on(n){if(n<=1)return"int";if(n===2)return"ivec2";if(n===3)return"ivec3";if(n===4)return"ivec4";if(n===5)return"ivec5";if(n===6)return"ivec6";throw Error(`GPU for rank ${n} is not yet supported`)}function GI(n,e,t){const{newShape:r,keptDims:s}=pu(e),o=e.length,i=n&&o===3&&e[0]===1,a=i?e.slice(1):r,l=!n&&o>1&&!Xt(e,t)&&r.lengthn[t]).join(", ")}function zee(n,e,t,r){const s=t.map((d,p)=>{const m={logicalShape:d.shape,texShape:d.isUniform?null:d.texData.texShape,isUniform:d.isUniform,isPacked:d.isUniform?!1:d.texData.isPacked,flatOffset:null};return d.texData!=null&&d.texData.slice!=null&&d.texData.slice.flatOffset>0&&(m.flatOffset=d.texData.slice.flatOffset),{name:e.variableNames[p],shapeInfo:m}}),o=s.map(d=>d.shapeInfo),i={logicalShape:r.shape,texShape:r.texData.texShape,isUniform:!1,isPacked:r.texData.isPacked,flatOffset:null},a=ree(s,i,e),l=_Z(n.gl,a),c=n.createProgram(l);return ye().get("ENGINE_COMPILE_ONLY")?{program:e,fragmentShader:l,source:a,webGLProgram:c,inShapeInfos:o,outShapeInfo:i,variablesLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:(n.buildVao(c),Object.assign({program:e,fragmentShader:l,source:a,webGLProgram:c,inShapeInfos:o,outShapeInfo:i},fF(n,e,c)))}function fF(n,e,t){const r=[],s=[];let o,i,a,l=null,c=null;c=n.getUniformLocation(t,"NAN",!1),ye().getNumber("WEBGL_VERSION")===1&&(l=n.getUniformLocation(t,"INFINITY",!1));const d=!1;for(const p of e.variableNames){const m={name:p,uniform:n.getUniformLocation(t,p,d),offset:n.getUniformLocation(t,`offset${p}`,d)};e.enableShapeUniforms&&(m.shape=n.getUniformLocation(t,`${p}Shape`,d),m.texShape=n.getUniformLocation(t,`${p}TexShape`,d)),r.push(m)}if(e.enableShapeUniforms&&(o=n.getUniformLocation(t,"outShape",d),a=n.getUniformLocation(t,"outShapeStrides",d),i=n.getUniformLocation(t,"outTexShape",d)),e.customUniforms)for(const p of e.customUniforms)s.push(n.getUniformLocation(t,p.name,d));return{variablesLocations:r,customUniformLocations:s,infLoc:l,nanLoc:c,outShapeLocation:o,outShapeStridesLocation:a,outTexShapeLocation:i}}function W2(n,e){if(n.length!==e.length)throw Error(`Binary was compiled with ${n.length} inputs, but was executed with ${e.length} inputs`);n.forEach((t,r)=>{const s=t.logicalShape,o=e[r],i=o.shape;if(!Xt(s,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${s} and ${i} must match`);if(t.isUniform&&o.isUniform)return;const a=t.texShape,l=o.isUniform?null:o.texData.texShape;if(!Xt(a,l))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${a} and ${l} must match`)})}function Bee(n,e,t,r,s){e.program.enableShapeUniforms||(W2(e.inShapeInfos,t),W2([e.outShapeInfo],[r]));const o=r.texData.texture,i=r.texData.texShape;r.texData.isPacked?n.setOutputPackedMatrixTexture(o.texture,i[0],i[1]):n.setOutputMatrixTexture(o.texture,i[0],i[1]),n.setProgram(e.webGLProgram),n.bindVertexArray(e.webGLProgram.vao),ye().getNumber("WEBGL_VERSION")===1&&e.infLoc!==null&&n.gl.uniform1f(e.infLoc,1/0),e.nanLoc!==null&&n.gl.uniform1f(e.nanLoc,NaN);for(let l=0;l{const a=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0;if(n.enableShapeUniforms&&!i.isUniform){const l=i.texData.texShape,{useSqueezeShape:c,uniformShape:d,keptDims:p}=GI(n.packedInputs,i.shape,l);let m="",y="",v="";if(d.length===1&&n.packedInputs){const A=[Math.ceil(l[0]/2),Math.ceil(l[1]/2)];m=`${A[0]>1}_${A[1]>1}`}else if(d.length===2&&!n.packedInputs)y=`${d[0]>1}_${d[1]>1}`;else if(d.length>2&&!n.packedInputs){const A=tt(d);v=`${A[0]===l[1]}_${A[A.length-1]===l[1]}`}const b=i.shape.length,w=d.length===2&&Xt(i.shape,l),k=Se(i.shape)===1,I=uf(i.shape,t.shape),N=!n.packedInputs&&b===t.shape.length&&Xt(l,t.texData.texShape),T=n.packedInputs||d.length>2?"":`${l[0]>1}_${l[1]>1}`;r+=`${b}_${N}_${c?p:""}_${d.length}_${k}_${I}_${w}_${m}_${y}_${v}_${T}_${a}`}else{const l=i.isUniform?"uniform":i.texData.texShape;r+=`${i.shape}_${l}_${a}`}});const s=n.userCode;let o=n.constructor.name;return o+="_"+r+"_"+s+`${ye().getNumber("WEBGL_VERSION")}`,o}function Kr(n){return ye().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&n<=4}class Wee{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=jm.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];const t=hs();this.outputShape=e,this.enableShapeUniforms=Kr(this.outputShape.length),this.userCode=` + ivec3 outCoordsFromFlatIndex(int index) { + ${this.enableShapeUniforms?Wv(["r","c","d"],e):fh(["r","c","d"],e)} + return ivec3(r, c, d); + } + + void main() { + ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1])); + int index = 4 * (resTexRC.x * texShape[1] + resTexRC.y); + + vec4 result = vec4(0.); + + for (int i=0; i<4; i++) { + int flatIndex = index + i; + ivec3 rc = outCoordsFromFlatIndex(flatIndex); + result[i] = getA(rc.x, rc.y, rc.z); + } + + ${t.output} = result; + } + `}}class Vee{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=jm.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];const t=hs();this.outputShape=e,this.enableShapeUniforms=Kr(this.outputShape.length),this.userCode=` + ivec3 outCoordsFromFlatIndex(int index) { + ${this.enableShapeUniforms?Wv(["r","c","d"],e):fh(["r","c","d"],e)} + return ivec3(r, c, d); + } + + void main() { + ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1])); + int index = 4 * (resTexRC.x * texShape[1] + resTexRC.y); + + vec4 result = vec4(0.); + + for (int i=0; i<4; i++) { + int flatIndex = index + i; + ivec3 rc = outCoordsFromFlatIndex(flatIndex); + result[i] = getChannel(getA(rc.x, rc.y, rc.z), vec2(rc.y, rc.z)); + } + + ${t.output} = result; + } + `}}class Gee{constructor(e){this.variableNames=["A"],this.outTexUsage=xo.DOWNLOAD;const t=hs();this.outputShape=e,this.userCode=` + ${uF} + + void main() { + float x = getAAtOutCoords(); + ${t.output} = encode_float(x); + } + `}}class jee{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=xo.DOWNLOAD;const t=hs();this.outputShape=e,this.userCode=` + ${uF} + + void main() { + ivec3 coords = getOutputCoords(); + float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z)); + ${t.output} = encode_float(x); + } + `}}const Hee={R:0,G:1,B:2,A:3};class V2{constructor(e,t=!1,r="RGBA"){this.variableNames=["A"],this.customUniforms=[{name:"texShape",type:"ivec2"}];const s=hs();this.outputShape=e,this.enableShapeUniforms=Kr(this.outputShape.length);let o="result";t&&(o="floor(result * 255. + 0.5)");let i="";for(let a=0;an.bindTexture(a,i)),Ve(n,()=>n.texParameteri(a,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE)),Ve(n,()=>n.texParameteri(a,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE)),Ve(n,()=>n.texParameteri(a,n.TEXTURE_MIN_FILTER,n.NEAREST)),Ve(n,()=>n.texParameteri(a,n.TEXTURE_MAG_FILTER,n.NEAREST)),ye().getNumber("WEBGL_VERSION")===1?Ve(n,()=>n.texImage2D(a,0,r,e,t,0,s,o,null)):Ve(n,()=>n.texStorage2D(a,1,r,e,t)),Ve(n,()=>n.bindTexture(n.TEXTURE_2D,null)),{texture:i,texShape:[t,e]}}function pF(n){return n.internalFormatFloat}function Qee(n,e,t,r){const[s,o]=gx(e,t);return yx(n,s,o,pF(r),r.textureFormatFloat,n.FLOAT)}function mF(n){return n.internalFormatHalfFloat}function Jee(n,e,t,r){const[s,o]=gx(e,t);return yx(n,s,o,mF(r),r.textureFormatFloat,r.textureTypeHalfFloat)}function gF(n){return n.downloadTextureFormat}function Zee(n,e,t,r){const[s,o]=gx(e,t);return yx(n,s,o,gF(r),n.RGBA,n.UNSIGNED_BYTE)}function xF(n){return n.internalFormatPackedFloat}function ete(n,e,t,r){const[s,o]=Rf(e,t);return yx(n,s,o,xF(r),n.RGBA,n.FLOAT)}function yF(n){return n.internalFormatPackedHalfFloat}function tte(n,e,t,r){const[s,o]=Rf(e,t);return yx(n,s,o,yF(r),n.RGBA,r.textureTypeHalfFloat)}function nte(n,e,t){return Ve(n,()=>n.bindBuffer(n.ARRAY_BUFFER,t)),z2(n,e,"clipSpacePos",t,3,20,0)&&z2(n,e,"uv",t,2,20,12)}function rte(n,e,t,r,s,o){Ve(n,()=>n.bindTexture(n.TEXTURE_2D,e));let i,a,l;s instanceof Uint8Array?(i=new Uint8Array(t*r*4),a=n.UNSIGNED_BYTE,l=n.RGBA):(i=new Float32Array(t*r*4),a=n.FLOAT,l=o.internalFormatPackedFloat),i.set(s),ye().getNumber("WEBGL_VERSION")===2?Ve(n,()=>n.texSubImage2D(n.TEXTURE_2D,0,0,0,t,r,n.RGBA,a,i)):Ve(n,()=>n.texImage2D(n.TEXTURE_2D,0,l,t,r,0,n.RGBA,a,i)),Ve(n,()=>n.bindTexture(n.TEXTURE_2D,null))}function ste(n,e,t){Ve(n,()=>n.bindTexture(n.TEXTURE_2D,e)),t.data instanceof Uint8Array?ye().getNumber("WEBGL_VERSION")===2?Ve(n,()=>n.texSubImage2D(n.TEXTURE_2D,0,0,0,t.width,t.height,n.RGBA,n.UNSIGNED_BYTE,t.data)):Ve(n,()=>n.texImage2D(n.TEXTURE_2D,0,n.RGBA,t.width,t.height,0,n.RGBA,n.UNSIGNED_BYTE,t.data)):ye().getNumber("WEBGL_VERSION")===2?Ve(n,()=>n.texSubImage2D(n.TEXTURE_2D,0,0,0,n.RGBA,n.UNSIGNED_BYTE,t)):Ve(n,()=>n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,t)),Ve(n,()=>n.bindTexture(n.TEXTURE_2D,null))}function ote(n,e,t,r){const s=n.createBuffer();Ve(n,()=>n.bindBuffer(n.PIXEL_PACK_BUFFER,s));const a=4*4*e*t;return Ve(n,()=>n.bufferData(n.PIXEL_PACK_BUFFER,a,n.STREAM_READ)),Ve(n,()=>n.readPixels(0,0,t,e,n.RGBA,n.FLOAT,0)),Ve(n,()=>n.bindBuffer(n.PIXEL_PACK_BUFFER,null)),s}function ite(n,e,t){const r=n,s=new Float32Array(t);return r.bindBuffer(r.PIXEL_PACK_BUFFER,e),r.getBufferSubData(r.PIXEL_PACK_BUFFER,0,s),r.bindBuffer(r.PIXEL_PACK_BUFFER,null),s}function ate(n,e,t,r){const[s,o]=gx(e,t),i=4,a=new Uint8Array(kZ(e*t,i));return Ve(n,()=>n.readPixels(0,0,s,o,r.downloadTextureFormat,n.UNSIGNED_BYTE,a)),new Float32Array(a.buffer)}function lte(n,e,t,r,s,o,i,a){const l=n,c=new Float32Array(IZ(o,i));return l.bindBuffer(l.PIXEL_PACK_BUFFER,e),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,c),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),c}function ute(n,e,t){const r=new Float32Array(e*t*4);return Ve(n,()=>n.readPixels(0,0,t,e,n.RGBA,n.FLOAT,r)),r}class zb{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.itemsToPoll=[];const t=ye().getNumber("WEBGL_VERSION");if(e!=null?(this.gl=e,bZ(t,e)):this.gl=Ni(t),e=this.gl,ye().getNumber("WEBGL_VERSION")===2){const o=e;this.createVertexArray=()=>Ve(o,()=>o.createVertexArray()),this.bindVertexArray=i=>Ve(o,()=>o.bindVertexArray(i)),this.deleteVertexArray=i=>Ve(o,()=>o.deleteVertexArray(i)),this.getVertexArray=()=>Ve(o,()=>o.getParameter(o.VERTEX_ARRAY_BINDING))}else if(e!=null){const o=e.getExtension("OES_vertex_array_object");if(o==null)throw new Error("All WebGL1 implementations are expected to offer OES_vertex_array_object.");this.createVertexArray=()=>Ve(e,()=>o.createVertexArrayOES()),this.bindVertexArray=i=>Ve(e,()=>o.bindVertexArrayOES(i)),this.deleteVertexArray=i=>Ve(e,()=>o.deleteVertexArrayOES(i)),this.getVertexArray=()=>Ve(e,()=>e.getParameter(o.VERTEX_ARRAY_BINDING_OES))}let r="WEBGL_color_buffer_float";const s="EXT_color_buffer_half_float";if(this.parallelCompilationExtension=this.gl.getExtension("KHR_parallel_shader_compile"),ye().getNumber("WEBGL_VERSION")===1){const o="OES_texture_float",i="OES_texture_half_float";if(this.textureFloatExtension=cy(this.gl,o),Ho(this.gl,i))this.textureHalfFloatExtension=cy(this.gl,i);else if(ye().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(r),Ho(this.gl,s))this.colorBufferHalfFloatExtension=cy(this.gl,s);else if(ye().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(r="EXT_color_buffer_float",Ho(this.gl,r))this.colorBufferFloatExtension=this.gl.getExtension(r);else if(Ho(this.gl,s))this.colorBufferHalfFloatExtension=this.gl.getExtension(s);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=Xee(this.gl),this.indexBuffer=Yee(this.gl),this.framebuffer=BZ(this.gl),this.textureConfig=UI(this.gl,this.textureHalfFloatExtension)}get debug(){return ye().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program!=null&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),this.outputTexture!=null&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");const e=this.gl;Ve(e,()=>e.finish()),Ve(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),Ve(e,()=>e.deleteFramebuffer(this.framebuffer)),Ve(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),Ve(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),Ve(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),Qee(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),Jee(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),Zee(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),ste(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,r,s){this.throwIfDisposed(),rte(this.gl,e,t,r,s,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),tte(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),ete(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(B2(this.gl,this.framebuffer),this.outputTexture=null),Ve(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,r){return this.downloadMatrixDriver(e,()=>ate(this.gl,t,r,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,r,s,o,i){return lte(this.gl,e,t,r,s,o,i,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return ite(this.gl,e,t)}createBufferFromTexture(e,t,r){this.bindTextureToFrameBuffer(e);const s=ote(this.gl,t,r,this.textureConfig);return this.unbindTextureToFrameBuffer(),s}createAndWaitForFence(){const e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,r;if(ye().getBool("WEBGL_FENCE_API_ENABLED")){const s=e,o=s.fenceSync(s.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),r=()=>{const i=s.clientWaitSync(o,0,0);return i===s.ALREADY_SIGNALED||i===s.CONDITION_SATISFIED},t=o}else ye().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),r=()=>this.isQueryAvailable(t,ye().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):r=()=>!0;return{query:t,isFencePassed:r}}downloadMatrixFromPackedTexture(e,t,r){return this.downloadMatrixDriver(e,()=>ute(this.gl,t,r))}createProgram(e){this.throwIfDisposed();const t=this.gl;this.vertexShader==null&&(this.vertexShader=Kee(t));const r=OZ(t);Ve(t,()=>t.attachShader(r,this.vertexShader)),Ve(t,()=>t.attachShader(r,e)),FZ(t,r);const s=Object.assign(r,{vao:this.createVertexArray()});return this.debug&&Fb(t,s),s}buildVao(e){this.setProgram(e),this.bindVertexArray(e.vao);const t=this.gl;Ve(t,()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer)),nte(t,e,this.vertexBuffer)}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&(Ve(this.gl,()=>this.gl.deleteProgram(e)),this.deleteVertexArray(e.vao))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&Fb(this.gl,this.program),Ve(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,r=!0){return this.throwIfDisposed(),r?WZ(this.gl,e,t):VZ(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),Ve(this.gl,()=>this.gl.getAttribLocation(e,t))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,r){this.throwIfDisposed(),this.throwIfNoProgram(),GZ(this.gl,e,t,r)}setOutputMatrixTexture(e,t,r){this.setOutputMatrixTextureDriver(e,r,t)}setOutputPackedMatrixTexture(e,t,r){this.throwIfDisposed();const[s,o]=Rf(t,r);this.setOutputMatrixTextureDriver(e,s,o)}setOutputMatrixWriteRegion(e,t,r,s){this.setOutputMatrixWriteRegionDriver(r,e,s,t)}setOutputPackedMatrixWriteRegion(e,t,r,s){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&Fb(this.gl,this.program),hy(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();const e=this.gl;if(this.debug){const t=this.getVertexArray();console.assert(t===this.program.vao,"VAO changed between setProgram and executeProgram!"),this.debugValidate()}Ve(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),Ve(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=cy(this.gl,ye().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(ye().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){const r=this.gl,s=this.getQueryTimerExtensionWebGL2(),o=r.createQuery();return r.beginQuery(s.TIME_ELAPSED_EXT,o),o}const e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(ye().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){const t=this.gl,r=this.getQueryTimerExtensionWebGL2();t.endQuery(r.TIME_ELAPSED_EXT);return}const e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await kN(()=>this.disposed||this.isQueryAvailable(e,ye().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,ye().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(t===0)return null;if(t===2){const r=this.gl;return r.getQueryParameter(e,r.QUERY_RESULT)/1e6}else{const r=this.getQueryTimerExtensionWebGL1();return r.getQueryObjectEXT(e,r.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(t===0)return!0;if(t===2){const r=this.gl,s=this.getQueryTimerExtensionWebGL2(),o=r.getQueryParameter(e,r.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(s.GPU_DISJOINT_EXT)),o&&!this.disjoint}else{const r=this.getQueryTimerExtensionWebGL1(),s=r.getQueryObjectEXT(e,r.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(r.GPU_DISJOINT_EXT)),s&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){const e=cte(this.itemsToPoll.map(t=>t.isDoneFn));for(let t=0;t<=e;++t){const{resolveFn:r}=this.itemsToPoll[t];r()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){if(this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1)return;let r;"setTimeoutCustom"in ye().platform&&(r=ye().platform.setTimeoutCustom.bind(ye().platform)),kN(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,r)}bindTextureToFrameBuffer(e){this.throwIfDisposed(),Pb(this.gl,e,this.framebuffer),this.debug&&hy(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(Pb(this.gl,this.outputTexture,this.framebuffer),this.debug&&hy(this.gl)):B2(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);const r=t();return this.unbindTextureToFrameBuffer(),r}setOutputMatrixTextureDriver(e,t,r){this.throwIfDisposed();const s=this.gl;Pb(s,e,this.framebuffer),this.debug&&hy(s),this.outputTexture=e,Ve(s,()=>s.viewport(0,0,t,r)),Ve(s,()=>s.scissor(0,0,t,r))}setOutputMatrixWriteRegionDriver(e,t,r,s){this.throwIfDisposed(),Ve(this.gl,()=>this.gl.scissor(e,t,r,s))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(this.program==null)throw new Error("No GPU program is currently set.")}}function cte(n){let e=0;for(;e`${n}.${t}`)}function ls(n,e){return e===1?[n]:CF(n,e)}function nne(n,e){if(n===1)return"rc";let t="";for(let r=0;r ${this.enableShapeUniforms?"outShape":this.outputShape[0]}`;let t="";for(let r=this.rank-2;r= ${this.enableShapeUniforms?`outShape[${r}]`:this.outputShape[r]}`,r= ${r}; + bool rEdge = rp1 >= ${s}; + `}getOutput(e){const t=this.getSourceCoordsArr(e);return this.rank===1?`getA(rc), (rc + 1 >= ${this.enableShapeUniforms?"outShape":this.outputShape[0]} ? 0. : getA(rc + 1)), 0, 0`:`getA(${t[0]}), + cEdge ? 0. : getA(${t[1]}), + rEdge ? 0. : getA(${t[2]}), + rEdge || cEdge ? 0. : getA(${t[3]})`}}class SF{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=e,this.enableShapeUniforms=Kr(this.outputShape.length);let r="";for(let s=0;s<4;s++){let o="thisRC = rc;";s%2===1&&(o+="thisRC.z += 1;"),s>1&&(o+="thisRC.y += 1;"),r+=` + ${o} + ${s>0?"if(thisRC.y < rows && thisRC.z < cols){":""} + int flatIndex = getFlatIndex(thisRC); + + ivec3 inputRC = inputCoordsFromReshapedOutCoords(flatIndex); + vec2 inputRCInnerDims = vec2(float(inputRC.y),float(inputRC.z)); + + result[${s}] = + getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims); + ${s>0?"}":""} + `}this.userCode=` + ${sne(t,this.enableShapeUniforms)} + ${this.enableShapeUniforms?VI():WI(e)} + + void main() { + ivec3 rc = getOutputCoords(); + + vec4 result = vec4(0.); + + ivec3 thisRC; + int rows = ${this.enableShapeUniforms?"outShape[1]":e[1]}; + int cols = ${this.enableShapeUniforms?"outShape[2]":e[2]}; + + ${r} + + setOutput(result); + } + `}}function sne(n,e){return` + ivec3 inputCoordsFromReshapedOutCoords(int index) { + ${e?nee(["r","c","d"],"inputShape"):fh(["r","c","d"],n)} + return ivec3(r, c, d); + } + `}class one{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.usedTextures={},this.logEnabled=!1}acquireTexture(e,t,r){const s=j2(t,r),o=H2(e,s,r);o in this.freeTextures||(this.freeTextures[o]=[]),o in this.usedTextures||(this.usedTextures[o]=[]);const i=G2(e,s,this.gpgpu.gl,this.gpgpu.textureConfig,r);if(this.freeTextures[o].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=i,this.log();const l=this.freeTextures[o].pop();return this.usedTextures[o].push(l),l}let a;return s===Rr.PACKED_2X2_FLOAT32?a=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):s===Rr.PACKED_2X2_FLOAT16?a=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):s===Rr.UNPACKED_FLOAT32?a=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):s===Rr.UNPACKED_FLOAT16?a=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):s===Rr.PACKED_4X1_UNSIGNED_BYTE&&(a=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[o].push(a),this.numUsedTextures++,this._numBytesAllocated+=i,this.log(),a}releaseTexture(e,t,r,s){if(this.freeTextures==null)return;const o=j2(r,s),i=H2(t,o,s);i in this.freeTextures||(this.freeTextures[i]=[]);const a=G2(t,o,this.gpgpu.gl,this.gpgpu.textureConfig,s),l=ye().getNumber("WEBGL_DELETE_TEXTURE_THRESHOLD");l!==-1&&this._numBytesAllocated>l?(this.gpgpu.deleteMatrixTexture(e.texture),this._numBytesAllocated-=a):(this.freeTextures[i].push(e),this.numFreeTextures++,this._numBytesFree+=a),this.numUsedTextures--;const c=this.usedTextures[i],d=c&&c.indexOf(e);if(d==null||d<0)throw new Error("Cannot release a texture that was never provided by this texture manager");c[d]=c[c.length-1],c.pop(),this.log()}log(){if(!this.logEnabled)return;const e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);const t=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*t)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(this.freeTextures!=null){for(const e in this.freeTextures)this.freeTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t.texture)});for(const e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t.texture)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}}function ine(n,e){const t=n;if(e===t.R32F)return 4;if(e===t.R16F)return 2;if(e===t.RGBA32F)return 16;if(e===n.RGBA)return 16;if(e===t.RGBA16F)return 8;if(e===t.RGBA8)return 4;throw new Error(`Unknown internal format ${e}`)}function G2(n,e,t,r,s){const o=ane(e,r);let i;if(s){const[l,c]=Rf(n[0],n[1]);i=l*c}else{const[l,c]=gx(n[0],n[1]);i=l*c}const a=ine(t,o);return i*a}function ane(n,e){switch(n){case Rr.PACKED_2X2_FLOAT32:return xF(e);case Rr.PACKED_2X2_FLOAT16:return yF(e);case Rr.UNPACKED_FLOAT32:return pF(e);case Rr.UNPACKED_FLOAT16:return mF(e);case Rr.PACKED_4X1_UNSIGNED_BYTE:return gF(e);default:throw new Error(`Unknown physical texture type ${n}`)}}function lne(n){return ye().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?n?Rr.PACKED_2X2_FLOAT32:Rr.UNPACKED_FLOAT32:n?Rr.PACKED_2X2_FLOAT16:Rr.UNPACKED_FLOAT16}function j2(n,e){if(n===xo.UPLOAD)return Rr.PACKED_2X2_FLOAT32;if(n===xo.RENDER||n==null)return lne(e);if(n===xo.DOWNLOAD||n===xo.PIXELS)return Rr.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${n}`)}function H2(n,e,t){return`${n[0]}_${n[1]}_${e}_${t}`}class la{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.enableShapeUniforms=Kr(this.outputShape.length),this.userCode=` + float unaryOperation(float x) { + ${t} + } + + void main() { + float x = getAAtOutCoords(); + float y = unaryOperation(x); + + setOutput(y); + } + `}}const Qo="if (isnan(x)) return x;",une="return x;",q2="return abs(x);",cne="return (x >= 0.0) ? x : (exp(x) - 1.0);",hne=Qo+` + return (x < 0.0) ? 0.0 : x; +`,dne=Qo+` + return (x < 0.0) ? 0.0 : min(6.0, x); +`,Yl="return x;",fne="return 1.0 / (1.0 + exp(-1.0 * x));";const pne="return x;",mne=` + vec4 result; + + result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); + result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0); + result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0); + result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); + + return result; +`,gne=` + vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); + bvec4 isNaN = isnan(x); + + result.r = isNaN.r ? x.r : result.r; + result.g = isNaN.g ? x.g : result.g; + result.b = isNaN.b ? x.b : result.b; + result.a = isNaN.a ? x.a : result.a; + + return result; +`,xne=` + vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); + bvec4 isNaN = isnan(x); + + result.r = isNaN.r ? x.r : result.r; + result.g = isNaN.g ? x.g : result.g; + result.b = isNaN.b ? x.b : result.b; + result.a = isNaN.a ? x.a : result.a; + + return result; +`,yne="return 1.0 / (1.0 + exp(-1.0 * x));";class tu{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.enableShapeUniforms=Kr(this.outputShape.length),this.userCode=` + vec4 unaryOperation(vec4 x) { + ${t} + } + + void main() { + vec4 x = getAAtOutCoords(); + vec4 y = unaryOperation(x); + + setOutput(y); + } + `}}class vne{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e,this.enableShapeUniforms=Kr(this.outputShape.length);const t=e.length,r=ls("rc",t),s=on(t),o=nne(t,r),i=r.slice(-2),a=t<=1?"rc":`vec2(${i.join(",")})`;this.userCode=` + void main() { + ${s} rc = getOutputCoords(); + vec4 packedInput = getA(${o}); + + setOutput(getChannel(packedInput, ${a})); + } + `}}const wne=jR,bne=1e-7,Cne=1e-4,py={};function Sne(n){return n in py||(py[n]={}),py[n]}const kne=ye().getNumber("CPU_HANDOFF_SIZE_THRESHOLD"),Ine=600;function $ne(){return ye().global.screen==null?1024:ye().global.screen.height*ye().global.screen.width*window.devicePixelRatio*Ine/1024/1024}class Vv extends hS{nextDataId(){return Vv.nextDataId++}constructor(e){if(super(),this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.lastGlFlushTime=0,this.warnedAboutMemory=!1,this.pendingDeletes=0,this.disposed=!1,!ye().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");let t;if(e!=null){if(e instanceof zb)t=e;else{const r=Ni(ye().getNumber("WEBGL_VERSION"),e);t=new zb(r)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{const r=Ni(ye().getNumber("WEBGL_VERSION"));t=new zb(r),this.binaryCache=Sne(ye().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=t,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new one(this.gpgpu),this.numMBBeforeWarning=$ne(),this.texData=new yE(this,na())}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}writeTexture(e,t,r,s,o,i){const a=this.makeTensorInfo(t,r),l=this.texData.get(a.dataId);l.isPacked=!1,l.texture={texture:e,texShape:[s,o]},l.texShape=[s,o];const c=dy(t),d=new V2(c,!1,i),p=this.runWebGLProgram(d,[a],r,[[s,o]]);return p.shape=t,l.texture=null,this.disposeIntermediateTensorInfo(a),p.dataId}write(e,t,r){if((ye().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||ye().getBool("DEBUG"))&&this.checkNumericalProblems(e),r==="complex64"&&e!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");const s={id:this.nextDataId()};return this.texData.set(s,{shape:t,dtype:r,values:e,usage:xo.UPLOAD,refCount:1}),s}refCount(e){return this.texData.has(e)?this.texData.get(e).refCount:0}incRef(e){const t=this.texData.get(e);t.refCount++}decRef(e){if(this.texData.has(e)){const t=this.texData.get(e);t.refCount--}}move(e,t,r,s,o){if(ye().getBool("DEBUG")&&this.checkNumericalProblems(t),s==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:r,dtype:s,values:t,usage:xo.UPLOAD,refCount:o})}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}readSync(e){const t=this.texData.get(e),{values:r,dtype:s,complexTensorInfos:o,slice:i,shape:a,isPacked:l}=t;if(i!=null){let m;l?m=new tu(a,Yl):m=new la(a,Yl);const y=this.runWebGLProgram(m,[{dataId:e,shape:a,dtype:s}],s),v=this.readSync(y.dataId);return this.disposeIntermediateTensorInfo(y),v}if(r!=null)return this.convertAndCacheOnCPU(e);if(s==="string")return r;const c=this.activeTimers!=null;let d;c&&(d=Cs());let p;if(s==="complex64"){const m=this.readSync(o.real.dataId),y=this.readSync(o.imag.dataId);p=ol(m,y)}else p=this.getValuesFromTexture(e);return c&&(this.downloadWaitMs+=Cs()-d),this.convertAndCacheOnCPU(e,p)}async read(e){if(this.pendingRead.has(e)){const v=this.pendingRead.get(e);return new Promise(b=>v.push(b))}const t=this.texData.get(e),{values:r,shape:s,slice:o,dtype:i,complexTensorInfos:a,isPacked:l}=t;if(o!=null){let v;l?v=new tu(s,Yl):v=new la(s,Yl);const b=this.runWebGLProgram(v,[{dataId:e,shape:s,dtype:i}],i),w=this.read(b.dataId);return this.disposeIntermediateTensorInfo(b),w}if(r!=null)return this.convertAndCacheOnCPU(e);if(ye().getBool("DEBUG")&&!ye().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&ye().getNumber("WEBGL_VERSION")===2)throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let c=null,d;if(i!=="complex64"&&ye().get("WEBGL_BUFFER_SUPPORTED")){d=this.decode(e);const v=this.texData.get(d.dataId);c=this.gpgpu.createBufferFromTexture(v.texture.texture,...uy(s))}this.pendingRead.set(e,[]),i!=="complex64"&&await this.gpgpu.createAndWaitForFence();let p;if(i==="complex64"){const v=await Promise.all([this.read(a.real.dataId),this.read(a.imag.dataId)]),b=v[0],w=v[1];p=ol(b,w)}else if(c==null)p=this.getValuesFromTexture(e);else{const v=Se(s);p=this.gpgpu.downloadFloat32MatrixFromBuffer(c,v)}if(d!=null&&this.disposeIntermediateTensorInfo(d),c!=null){const v=this.gpgpu.gl;Ve(v,()=>v.deleteBuffer(c))}const m=this.convertAndCacheOnCPU(e,p),y=this.pendingRead.get(e);return this.pendingRead.delete(e),y.forEach(v=>v(m)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e)&&na().removeDataId(e,this),this.pendingDeletes--),m}readToGPU(e,t={}){const r=this.texData.get(e),{values:s,shape:o,slice:i,dtype:a,isPacked:l,texture:c}=r;if(a==="complex64")throw new Error("Does not support reading texture for complex64 dtype.");if(i!=null){let y;l?y=new tu(o,Yl):y=new la(o,Yl);const v=this.runWebGLProgram(y,[{dataId:e,shape:o,dtype:a}],a),b=this.readToGPU(v,t);return this.disposeIntermediateTensorInfo(v),b}if(c==null)throw s!=null?new Error("Data is not on GPU but on CPU."):new Error("There is no data on GPU or CPU.");const d=this.decode(e,t.customTexShape),p=na().makeTensorFromTensorInfo(d),m=this.texData.get(d.dataId);return Object.assign({tensorRef:p},m.texture)}bufferSync(e){const t=this.readSync(e.dataId);if(e.dtype==="string")try{const r=t.map(s=>au(s));return Nt(e.shape,e.dtype,r)}catch{throw new Error("Failed to decode encoded string bytes into utf-8")}return Nt(e.shape,e.dtype,t)}checkNumericalProblems(e){if(e!=null)for(let t=0;t0}time(e){const t=this.activeTimers,r=[];let s=!1;this.programTimersStack==null?(this.programTimersStack=r,s=!0):this.activeTimers.push(r),this.activeTimers=r,e();const o=jc(this.activeTimers.map(l=>l.query)).filter(l=>l!=null),i=jc(this.activeTimers.map(l=>l.name)).filter(l=>l!=null);this.activeTimers=t,s&&(this.programTimersStack=null);const a={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if(ye().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){const l=await Promise.all(o);a.kernelMs=V4(l),a.getExtraProfileInfo=()=>l.map((c,d)=>({name:i[d],ms:c})).map(c=>`${c.name}: ${c.ms}`).join(", ")}else a.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,a})()}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return ye().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:Cs(),endMs:null}}endTimer(e){return ye().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=Cs(),e)}async getQueryTime(e){if(ye().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);const t=e;return t.endMs-t.startMs}disposeData(e,t=!1){if(this.pendingDisposal.has(e))return!1;if(!this.texData.has(e))return!0;if(t?this.texData.get(e).refCount=0:this.texData.get(e).refCount--,!t&&this.texData.get(e).refCount>0)return!1;if(this.pendingRead.has(e))return this.pendingDisposal.add(e),this.pendingDeletes++,!1;this.releaseGPUData(e);const{complexTensorInfos:r}=this.texData.get(e);return r!=null&&(this.disposeData(r.real.dataId,t),this.disposeData(r.imag.dataId,t)),this.texData.delete(e),!0}releaseGPUData(e){const{texture:t,dtype:r,texShape:s,usage:o,isPacked:i,slice:a}=this.texData.get(e),l=a&&a.origDataId||e,c=this.dataRefCount.get(l);c>1?this.dataRefCount.set(l,c-1):(this.dataRefCount.delete(l),t!=null&&(this.numBytesInGPU-=this.computeBytes(s,r),this.textureManager.releaseTexture(t,s,o,i)));const d=this.texData.get(e);d.texture=null,d.texShape=null,d.isPacked=!1,d.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture.texture}getDataInfo(e){return this.texData.get(e)}shouldExecuteOnCPU(e,t=kne){return ye().getBool("WEBGL_CPU_FORWARD")&&e.every(r=>this.texData.get(r.dataId).texture==null&&Se(r.shape)0&&tg(r[0])){const o=r.map(i=>su(i));s=this.write(o,e,t)}else s=this.write(r,e,t);return this.texData.get(s).usage=null,{dataId:s,shape:e,dtype:t}}makeOutput(e,t,r){return na().makeTensorFromTensorInfo(this.makeTensorInfo(e,t,r),this)}unpackTensor(e){const t=new vne(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){const t=new rne(e.shape);return this.runWebGLProgram(t,[e],e.dtype,null,!0)}packedReshape(e,t){const r=[mf(e.shape),...gf(e.shape)],s={dtype:e.dtype,shape:r,dataId:e.dataId},o=[mf(t),...gf(t)],i=new SF(o,r),a=!0,l=[r],c=this.runWebGLProgram(i,[s],e.dtype,l,a);return{dataId:c.dataId,shape:t,dtype:c.dtype}}decode(e,t){const r=this.texData.get(e),{isPacked:s,shape:o,dtype:i}=r;if(t!=null){const m=Se(o),y=t[0]*t[1]*4;U(m<=y,()=>"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.")}const a=dy(o);let l;s?l=new Vee(a):l=new Wee(a);const c=!0,d=[t??uy(a)],p=this.runWebGLProgram(l,[{shape:a,dtype:i,dataId:e}],i,d,c,t);return{dtype:i,shape:o,dataId:p.dataId}}runWebGLProgram(e,t,r,s,o=!1,i){const a=this.makeTensorInfo(e.outputShape,r),l=this.texData.get(a.dataId);if(e.packedOutput&&(l.isPacked=!0),e.outPackingScheme===jm.DENSE){const k=i??uy(e.outputShape);l.texShape=k.map(I=>I*2)}if(e.outTexUsage!=null&&(l.usage=e.outTexUsage),Se(a.shape)===0)return l.values=Vr(a.dtype,0),a;const c=[],d=t.map(k=>{if(k.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let I=this.texData.get(k.dataId);if(I.texture==null){if(!e.packedInputs&&Se(k.shape)<=ye().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:k.shape,texData:null,isUniform:!0,uniformValues:I.values};e.packedInputs&&(I.isPacked=!0,I.shape=k.shape)}if(this.uploadToGPU(k.dataId),!!I.isPacked!=!!e.packedInputs)k=I.isPacked?this.unpackTensor(k):this.packTensor(k),c.push(k),I=this.texData.get(k.dataId);else if(I.isPacked&&!l1(I.shape,k.shape)){const N=k,T=k.shape;k.shape=I.shape,k=this.packedReshape(k,T),c.push(k),I=this.texData.get(k.dataId),N.shape=T}return{shape:k.shape,texData:I,isUniform:!1}});this.uploadToGPU(a.dataId);const p={shape:a.shape,texData:l,isUniform:!1},m=Uee(e,d,p),y=this.getAndSaveBinary(m,()=>zee(this.gpgpu,e,d,p)),v=this.activeTimers!=null;let b;v&&(b=this.startTimer()),ye().get("ENGINE_COMPILE_ONLY")||Bee(this.gpgpu,y,d,p,s),c.forEach(k=>this.disposeIntermediateTensorInfo(k)),v&&(b=this.endTimer(b),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(b)}));const w=ye().getNumber("WEBGL_FLUSH_THRESHOLD");if(w>0){const k=Cs();k-this.lastGlFlushTime>w&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=k)}if(!ye().getBool("WEBGL_LAZILY_UNPACK")&&l.isPacked&&o===!1){const k=this.unpackTensor(a);return this.disposeIntermediateTensorInfo(a),k}return a}compileAndRun(e,t,r,s,o=!1){return r=r||t[0].dtype,this.runWebGLProgram(e,t,r,s,o)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(ye().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach(t=>{this.gpgpu.deleteProgram(this.binaryCache[t].webGLProgram),delete this.binaryCache[t]}),this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement<"u"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=me(()=>{if(!ye().get("WEBGL_RENDER_FLOAT32_ENABLED")){const e=ye().getBool("DEBUG");ye().set("DEBUG",!1);const t=this.abs(Kt(1e-8)).dataSync()[0];if(ye().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?bne:Cne}uploadToGPU(e){const t=this.texData.get(e),{shape:r,dtype:s,values:o,texture:i,usage:a,isPacked:l}=t;if(i!=null)return;const c=this.activeTimers!=null;let d;c&&(d=Cs());let p=t.texShape;if(p==null&&(p=qZ(r,l),t.texShape=p),o!=null){const m=dy(r);let y,v=p[1],b=p[0];const w=o instanceof Uint8Array||o instanceof Uint8ClampedArray;(l||!w)&&([v,b]=Rf(p[0],p[1])),l?y=new qee(m,w):y=new V2(m,w);const k=w?[b,v]:p,I=this.makeTensorInfo(k,s),N=this.texData.get(I.dataId);w?N.usage=xo.PIXELS:N.usage=xo.UPLOAD,N.texShape=k,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(I.dataId),v,b,o);const T=[[b,v]],O=this.runWebGLProgram(y,[I],s,T,!0),P=this.texData.get(O.dataId);t.texShape=P.texShape,t.isPacked=P.isPacked,t.usage=P.usage,ye().get("ENGINE_COMPILE_ONLY")?this.disposeData(O.dataId):(t.texture=P.texture,t.values=null,this.texData.delete(O.dataId)),this.disposeIntermediateTensorInfo(I),c&&(this.uploadWaitMs+=Cs()-d)}else{const m=this.acquireTexture(p,a,s,l);t.texture=m}}convertAndCacheOnCPU(e,t){const r=this.texData.get(e),{dtype:s}=r;return t!=null&&(r.values=Nne(t,s)),r.values}acquireTexture(e,t,r,s){if(this.numBytesInGPU+=this.computeBytes(e,r),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){const o=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${o} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,s)}computeBytes(e,t){return e[0]*e[1]*Py(t)}checkCompileCompletion(){for(const[,e]of Object.entries(this.binaryCache))this.checkCompletion_(e)}async checkCompileCompletionAsync(){const e=[];if(this.gpgpu.parallelCompilationExtension){for(const[,t]of Object.entries(this.binaryCache))e.push(this.checkCompletionAsync_(t));return Promise.all(e)}else{for(const[,t]of Object.entries(this.binaryCache)){const r=new Promise(s=>{try{this.checkCompletion_(t),s(!0)}catch(o){throw o}});e.push(r)}return Promise.all(e)}}async checkCompletionAsync_(e){return this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(e):(await cA(),this.checkCompletionAsync_(e))}checkCompletion_(e){if(this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.gl.LINK_STATUS)===!1)throw console.log(this.gpgpu.gl.getProgramInfoLog(e.webGLProgram)),this.gpgpu.gl.getShaderParameter(e.fragmentShader,this.gpgpu.gl.COMPILE_STATUS)===!1?(lF(e.source,this.gpgpu.gl.getShaderInfoLog(e.fragmentShader)),new Error("Failed to compile fragment shader.")):new Error("Failed to link vertex and fragment shaders.");return!0}getUniformLocations(){for(const e of Object.values(this.binaryCache)){this.gpgpu.buildVao(e.webGLProgram);const{variablesLocations:t,customUniformLocations:r,infLoc:s,nanLoc:o,outShapeLocation:i,outShapeStridesLocation:a,outTexShapeLocation:l}=fF(this.gpgpu,e.program,e.webGLProgram);e.variablesLocations=t,e.customUniformLocations=r,e.infLoc=s,e.nanLoc=o,e.outShapeLocation=i,e.outShapeStridesLocation=a,e.outTexShapeLocation=l}}createTensorFromGPUData(e,t,r){e.channels=e.channels||"RGBA";const{texture:s,height:o,width:i,channels:a}=e,l=na().backend;if(!l.gpgpu.gl.isTexture(s))throw new Error("The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.");const c=l.writeTexture(s,t,r,o,i,a);return na().makeTensorFromDataId(c,t,r,l)}}Vv.nextDataId=0;function Nne(n,e){if(e==="float32"||e==="complex64")return n;if(e==="int32"||e==="bool"){const t=e==="int32"?new Int32Array(n.length):new Uint8Array(n.length);for(let r=0;rnew Vv,2);const HI=` + if (isnan(a)) return a; + if (isnan(b)) return b; +`;class sh{constructor(e,t,r){this.variableNames=["A","B"],this.outputShape=gt(t,r),this.enableShapeUniforms=Kr(this.outputShape.length),this.userCode=` + float binaryOperation(float a, float b) { + ${e} + } + + void main() { + float a = getAAtOutCoords(); + float b = getBAtOutCoords(); + setOutput(binaryOperation(a, b)); + } + `}}const mh=` + result.r = isNaN.r ? NAN : result.r; + result.g = isNaN.g ? NAN : result.g; + result.b = isNaN.b ? NAN : result.b; + result.a = isNaN.a ? NAN : result.a; +`;class Ff{constructor(e,t,r,s=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=gt(t,r);const o=this.outputShape.length;this.enableShapeUniforms=Kr(o);let i="";if(s)if(o===0||Se(this.outputShape)===1)i=` + result.y = 0.; + result.z = 0.; + result.w = 0.; + `;else if(i=` + ${on(o)} coords = getOutputCoords(); + `,o===1)this.enableShapeUniforms?i+=` + result.y = (coords + 1) >= outShape ? 0. : result.y; + result.z = 0.; + result.w = 0.; + `:i+=` + result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y; + result.z = 0.; + result.w = 0.; + `;else{const l=ls("coords",o);this.enableShapeUniforms?i+=` + bool nextRowOutOfBounds = + (${l[o-2]} + 1) >= outShape[${o} - 2]; + bool nextColOutOfBounds = + (${l[o-1]} + 1) >= outShape[${o} - 1]; + result.y = nextColOutOfBounds ? 0. : result.y; + result.z = nextRowOutOfBounds ? 0. : result.z; + result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w; + `:i+=` + bool nextRowOutOfBounds = + (${l[o-2]} + 1) >= ${this.outputShape[o-2]}; + bool nextColOutOfBounds = + (${l[o-1]} + 1) >= ${this.outputShape[o-1]}; + result.y = nextColOutOfBounds ? 0. : result.y; + result.z = nextRowOutOfBounds ? 0. : result.z; + result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w; + `}this.userCode=` + vec4 binaryOperation(vec4 a, vec4 b) { + ${e} + } + + void main() { + vec4 a = getAAtOutCoords(); + vec4 b = getBAtOutCoords(); + + vec4 result = binaryOperation(a, b); + ${i} + + setOutput(result); + } + `}}function Js(n){const{inputs:e,backend:t}=n,{x:r}=e;return t.incRef(r.dataId),{dataId:r.dataId,shape:r.shape,dtype:r.dtype}}const Tne={kernelName:Cg,backendName:"webgl",kernelFunc:Js};function ku(n){const{inputs:e,backend:t}=n,{real:r,imag:s}=e,o=t.makeTensorInfo(r.shape,"complex64"),i=t.texData.get(o.dataId),a=Js({inputs:{x:r},backend:t}),l=Js({inputs:{x:s},backend:t});return i.complexTensorInfos={real:a,imag:l},o}const Ene={kernelName:IS,backendName:"webgl",kernelFunc:ku};const kF="return (a < 0.) ? b * a : a;",IF=` + vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); + return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); +`;function Rne(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{alpha:o}=r,i=t.makeTensorInfo([],"float32",mu(o,"float32")),a=ye().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Ff(IF,s.shape,i.shape):new sh(kF,s.shape,i.shape),l=t.runWebGLProgram(a,[s,i],"float32");return t.disposeIntermediateTensorInfo(i),l}const Ane={kernelName:z1,backendName:"webgl",kernelFunc:Rne};const $F="return (a < 0.) ? b * a : a;",NF=` + vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); + return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); +`;function _ne(n){const{inputs:e,backend:t}=n,{x:r,alpha:s}=e,o=ye().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Ff(NF,r.shape,s.shape):new sh($F,r.shape,s.shape);return t.runWebGLProgram(o,[r,s],"float32")}const Dne={kernelName:sv,backendName:"webgl",kernelFunc:_ne};const Pf="if (isnan(x)) return x;";function zt({opSnippet:n,packedOpSnippet:e,cpuKernelImpl:t,dtype:r}){return({inputs:s,backend:o})=>{const{x:i}=s,a=o,l=r||i.dtype;if(a.shouldExecuteOnCPU([i])&&t!=null){const p=a.texData.get(i.dataId),m=t(p.values,l);return a.makeTensorInfo(i.shape,l,m)}const c=ye().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&e!=null;let d;return c?d=new tu(i.shape,e):d=new la(i.shape,n),a.runWebGLProgram(d,[i],l)}}function Or({opSnippet:n,packedOpSnippet:e,checkOutOfBounds:t=!1,supportsComplex:r=!1,cpuKernelImpl:s,dtype:o}){return({inputs:i,backend:a})=>{const{a:l,b:c}=i,d=a;if(r&&l.dtype==="complex64"){const v=d.texData.get(l.dataId),b=d.texData.get(c.dataId),[w,k]=[[v.complexTensorInfos.real,b.complexTensorInfos.real],[v.complexTensorInfos.imag,b.complexTensorInfos.imag]].map(N=>{const[T,A]=N,O={dataId:T.dataId,dtype:T.dtype,shape:l.shape},P={dataId:A.dataId,dtype:A.dtype,shape:c.shape},B=new sh(n,l.shape,c.shape);return d.runWebGLProgram(B,[O,P],Ys(T.dtype,A.dtype))}),I=ku({inputs:{real:w,imag:k},backend:d});return d.disposeIntermediateTensorInfo(w),d.disposeIntermediateTensorInfo(k),I}const p=o||Ys(l.dtype,c.dtype);if((l.dtype==="string"||c.dtype==="string"||d.shouldExecuteOnCPU([l,c]))&&s!=null){const v=d.texData.get(l.dataId).values,b=d.texData.get(c.dataId).values,w=l.dtype==="string"?il(v):v,k=l.dtype==="string"?il(b):b,[I,N]=s(l.shape,c.shape,w,k,p),T=d.makeTensorInfo(N,p),A=d.texData.get(T.dataId);return A.values=I,T}const m=ye().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&e!=null;let y;return m?y=new Ff(e,l.shape,c.shape,t):y=new sh(n,l.shape,c.shape),d.runWebGLProgram(y,[l,c],p)}}function Hm(n,e=!1){if(n==="linear")return e?pne:une;if(n==="relu")return e?gne:hne;if(n==="elu")return e?mne:cne;if(n==="relu6")return e?xne:dne;if(n==="prelu")return e?NF:$F;if(n==="leakyrelu")return e?IF:kF;if(n==="sigmoid")return e?yne:fne;throw new Error(`Activation ${n} has not been implemented for the WebGL backend.`)}class TF{constructor(e,t,r,s=!1,o=!1,i=!1,a=null,l=!1,c=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=r,this.enableShapeUniforms=Kr(this.outputShape.length);const d=s?e[1]:e[2],p=Math.ceil(d/2),m=s?"i * 2, rc.y":"rc.y, i * 2",y=o?"rc.z, i * 2":"i * 2, rc.z",v=s?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],b=o?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"];let w="",k="";a&&(l?w=`vec4 activation(vec4 a) { + vec4 b = getPreluActivationWeightsAtOutCoords(); + ${a} + }`:c?w=`vec4 activation(vec4 a) { + vec4 b = getLeakyreluAlphaAtOutCoords(); + ${a} + }`:w=`vec4 activation(vec4 x) { + ${a} + }`,k="result = activation(result);");const I=i?"result += getBiasAtOutCoords();":"";i&&this.variableNames.push("bias"),l&&this.variableNames.push("preluActivationWeights"),c&&this.variableNames.push("leakyreluAlpha");let N="rc.x",T="rc.x";e[0]`The new shape (${l}) has ${c} elements and the old shape (${s.shape}) has ${a} elements. The new shape and old shape must have the same number of elements.`);const d=i.texData.get(s.dataId);return d.isPacked&&!l1(s.shape,l)&&!(d.texture!==null&&l1(d.shape,l))?Fne(s,l,i):(i.incRef(s.dataId),{dataId:s.dataId,shape:l,dtype:s.dtype})}const Pne={kernelName:iv,backendName:"webgl",kernelFunc:Ue};class Q2{constructor(e,t){this.variableNames=["x"];const{windowSize:r,batchSize:s,inSize:o,outSize:i}=e;this.outputShape=[s,i];const a=Math.floor(r/4)*4,l=r%4;let c="sumValue += dot(values, ones);";if(t!=null){const p=1/t;c=`sumValue += dot(values * ${of(p)?p.toPrecision(2):p}, ones);`}let d="";o%r>0&&(d=` + if (inIdx < 0 || inIdx >= ${o}) { + return 0.0; + } + `),this.userCode=` + const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); + + float getValue(int batch, int inIdx) { + ${d} + return getX(batch, inIdx); + } + + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int outIdx = coords[1]; + int inOffset = outIdx * ${r}; + + float sumValue = 0.0; + + for (int i = 0; i < ${a}; i += 4) { + int inIdx = inOffset + i; + vec4 values = vec4( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), + getValue(batch, inIdx + 3) + ); + + ${c} + } + + int inIdx = inOffset + ${a}; + if (${l===1}) { + vec4 values = vec4(getValue(batch, inIdx), 0.0, 0.0, 0.0); + + ${c} + } else if (${l===2}) { + vec4 values = vec4( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), 0.0, 0.0); + + ${c} + } else if (${l===3}) { + vec4 values = vec4( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), 0.0); + + ${c} + } + setOutput(sumValue); + } + `}}class Lne{constructor(e,t){this.variableNames=["x"];const{windowSize:r,batchSize:s,inSize:o,outSize:i}=e;this.outputShape=[s,i];let a="0.0",l="";t==="prod"?a="1.0":t==="min"?(a="1.0 / 1e-20",l="min"):t==="max"&&(a="-1.0 / 1e-20",l="max");let c=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="sum"?c="sumValue":t==="prod"?c="prodValue":t==="all"?c="allValue":t==="any"&&(c="anyValue");const d=Math.floor(r/4)*4,p=r%4;let m=` + if (${t==="sum"}) { + sumValue += dot(values, ones); + } else if (${t==="prod"}) { + vec2 tmp = vec2(values[0], values[1]) * vec2(values[2], values[3]); + prodValue *= tmp[0] * tmp[1]; + } else { + minMaxValue = ${l}(values, minMaxValue); + if (${t==="min"} || ${t==="max"}) { + minMaxValue = ${l}(values, minMaxValue); + bvec4 isNaN = isnan(values); + if (isNaN.r || isNaN.g || isNaN.b || isNaN.a) { + minMaxValue = vec4(NAN); + } + } + } + `,y="vec4";t==="all"?(a="1.0",m=` + bool reducedAllValue = all(values); + float floatedReducedAllValue = float(reducedAllValue); + allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0); + `,y="bvec4"):t==="any"&&(a="0.0",m=` + bool reducedAnyValue = any(values); + float floatedReducedAnyValue = float(reducedAnyValue); + anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0); + `,y="bvec4");let v="";o%r>0&&(v=` + if (inIdx < 0 || inIdx >= ${o}) { + return initializationValue; + } + `),this.userCode=` + const float initializationValue = ${a}; + const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); + + float getValue(int batch, int inIdx) { + ${v} + return getX(batch, inIdx); + } + + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int outIdx = coords[1]; + int inOffset = outIdx * ${r}; + + vec4 minMaxValue = vec4(${a}); + float prodValue = 1.0; + float sumValue = 0.0; + float allValue = 1.0; + float anyValue = 0.0; + + for (int i = 0; i < ${d}; i += 4) { + int inIdx = inOffset + i; + ${y} values = ${y}( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), + getValue(batch, inIdx + 3) + ); + + ${m} + } + + int inIdx = inOffset + ${d}; + if (${p===1}) { + ${y} values = ${y}( + getValue(batch, inIdx), + initializationValue, + initializationValue, + initializationValue + ); + + ${m} + } else if (${p===2}) { + ${y} values = ${y}( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + initializationValue, + initializationValue + ); + + ${m} + } else if (${p===3}) { + ${y} values = ${y}( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), + initializationValue + ); + + ${m} + } + setOutput(${c}); + } + `}}function Mne(n){const e=[];for(;e.length===0||e[e.length-1].outSize!==1;){const t=e.length?e[e.length-1].outSize:n[1],r=Nv(t);e.push({inSize:t,windowSize:r,outSize:Math.ceil(t/r)})}return e}function gh(n,e,t,r){const s=Mne(n.shape);let o=n;for(let i=0;i6)throw Error(`Transpose for rank ${e} is not yet supported`);const t=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],r=new Array(e);for(let s=0;s6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);const s=on(this.rank),o=CF("rc",this.rank),i=new Array(this.rank);for(let d=0;d`Error in matMul: inner shapes (${p}) and (${m}) of Tensors with shapes ${n.shape} and ${e.shape} and transposeA=${t} and transposeB=${r} must match.`);const A=t?[k,p,y]:[k,y,p],O=r?[I,v,m]:[I,m,v],P=Ue({inputs:{x:n},backend:s,attrs:{shape:A}}),B=Ue({inputs:{x:e},backend:s,attrs:{shape:O}}),z=[P,B],L=Math.max(k,I),_=t?P.shape[1]:P.shape[2],H=o!=null,Y=i!=null,re=l==="leakyrelu",te=l!=null?Hm(l,!0):null,le=H||Y||re||te!=null;let de;if((y===1||v===1)&&_>EF&&le===!1){let ie=P,se=B;t&&(ie=cs({inputs:{x:P},backend:s,attrs:{perm:[0,2,1]}}),z.push(ie)),r&&(se=cs({inputs:{x:B},backend:s,attrs:{perm:[0,2,1]}}),z.push(se));const V=v!==1,X=v===1;let xe=ie;V&&(xe=Ue({inputs:{x:ie},backend:s,attrs:{shape:[L,_,1]}}),z.push(xe));const Ie=v===1?2:1;let ke=se;X&&(ke=Ue({inputs:{x:se},backend:s,attrs:{shape:[L,1,_]}}),z.push(ke));const Ee=qI({inputs:{a:xe,b:ke},backend:s});de=jv({inputs:{x:Ee},backend:s,attrs:{axis:Ie,keepDims:!0}}),z.push(Ee)}else{const ie=Ys(n.dtype,e.dtype),se=new TF(A,O,[L,y,v],t,r,H,te,Y,re),V=[P,B];if(o!=null&&V.push(o),Y&&V.push(i),re){const X=s.makeTensorInfo([],"float32",mu(a,"float32"));V.push(X),z.push(X)}de=s.runWebGLProgram(se,V,ie)}const j=Ue({inputs:{x:de},backend:s,attrs:{shape:T}});z.push(de);for(const ie of z)s.disposeIntermediateTensorInfo(ie);return j}function jne(n){const{inputs:e,backend:t,attrs:r}=n,{a:s,b:o,bias:i,preluActivationWeights:a}=e,{transposeA:l,transposeB:c,activation:d,leakyreluAlpha:p}=r;return u1({a:s,b:o,transposeA:l,transposeB:c,backend:t,bias:i,preluActivationWeights:a,leakyreluAlpha:p,activation:d})}const Hne={kernelName:Ly,backendName:"webgl",kernelFunc:jne};const J2="return abs(x);";function qne(n){const{inputs:e,backend:t}=n,{x:r}=e;if(t.shouldExecuteOnCPU([r])&&r.dtype!=="complex64"){const o=t.texData.get(r.dataId),i=wF(o.values);return t.makeTensorInfo(r.shape,r.dtype,i)}let s;return ye().getBool("WEBGL_PACK_UNARY_OPERATIONS")?s=new tu(r.shape,J2):s=new la(r.shape,J2),t.runWebGLProgram(s,[r],r.dtype)}const Kne={kernelName:v1,backendName:"webgl",kernelFunc:qne};const Xne=Qo+` + if (abs(x) > 1.) { + return NAN; + } + return acos(x); +`,Yne=zt({opSnippet:Xne}),Qne={kernelName:ng,backendName:"webgl",kernelFunc:Yne};const Jne=Qo+` + if (x < 1.0) return NAN; +return log(x + sqrt(x * x - 1.0));`,Zne=zt({opSnippet:Jne}),ere={kernelName:rg,backendName:"webgl",kernelFunc:Zne};const Z2="return a + b;",tre=Or({opSnippet:Z2,packedOpSnippet:Z2,supportsComplex:!0,cpuKernelImpl:hte}),nre={kernelName:kf,backendName:"webgl",kernelFunc:tre};class rre{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((o,i)=>`T${i}`);const r=[];this.variableNames.forEach(o=>{r.push(`float v${o} = get${o}AtOutCoords();`)});const s=this.variableNames.map(o=>`v${o}`).join(" + ");this.userCode=` + void main() { + ${r.join(` + `)} + + float result = ${s}; + setOutput(result); + } + `}}class sre{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((o,i)=>`T${i}`);const r=[];this.variableNames.forEach(o=>{r.push(`vec4 v${o} = get${o}AtOutCoords();`)});const s=this.variableNames.map(o=>`v${o}`).join(" + ");this.userCode=` + void main() { + ${r.join(` + `)} + + vec4 result = ${s}; + setOutput(result); + } + `}}function Ny(n){const{inputs:e,backend:t}=n,r=e;if(r.length===1)return Js({inputs:{x:r[0]},backend:t});if(r.length>ye().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){const l=Math.floor(r.length/2),c=Ny({inputs:r.slice(0,l),backend:t}),d=Ny({inputs:r.slice(l),backend:t});return Ny({inputs:[c,d],backend:t})}const s=r.map(l=>l.dtype).reduce((l,c)=>Ys(l,c)),o=r.map(l=>l.shape),a=ye().getBool("WEBGL_PACK")?new sre(r[0].shape,o):new rre(r[0].shape,o);return t.runWebGLProgram(a,r,s)}const ore={kernelName:yS,backendName:"webgl",kernelFunc:Ny};function ire(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{axis:o,keepDims:i}=r,a=s.shape.length,l=Tt(o,s.shape);let c=l;const d=En(c,a);let p=s;d!=null&&(p=cs({inputs:{x:s},backend:t,attrs:{perm:d}}),c=Wn(c.length,a)),Dr("all",c,a);const[m,y]=yr(p.shape,c),v=Se(y),b=Ue({inputs:{x:p},backend:t,attrs:{shape:[-1,v]}}),w=gh(b,b.dtype,"all",t);let k;if(i){const I=Yn(m,l);k=Ue({inputs:{x:w},backend:t,attrs:{shape:I}})}else k=Ue({inputs:{x:w},backend:t,attrs:{shape:m}});return t.disposeIntermediateTensorInfo(b),t.disposeIntermediateTensorInfo(w),d!=null&&t.disposeIntermediateTensorInfo(p),k}const are={kernelName:vS,backendName:"webgl",kernelFunc:ire};function lre(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{axis:o,keepDims:i}=r,a=s.shape.length,l=Tt(o,s.shape);let c=l;const d=En(c,a);let p=s;d!=null&&(p=cs({inputs:{x:s},backend:t,attrs:{perm:d}}),c=Wn(c.length,a)),Dr("any",c,a);const[m,y]=yr(p.shape,c),v=Se(y),b=Ue({inputs:{x:p},backend:t,attrs:{shape:[-1,v]}}),w=gh(b,b.dtype,"any",t);let k;if(i){const I=Yn(m,l);k=Ue({inputs:{x:w},backend:t,attrs:{shape:I}})}else k=Ue({inputs:{x:w},backend:t,attrs:{shape:m}});return t.disposeIntermediateTensorInfo(b),t.disposeIntermediateTensorInfo(w),d!=null&&t.disposeIntermediateTensorInfo(p),k}const ure={kernelName:wS,backendName:"webgl",kernelFunc:lre};class cre{constructor(e,t,r){this.variableNames=["A"];const{windowSize:s,batchSize:o,outSize:i}=e;r||this.variableNames.push("bestIndicesA"),this.outputShape=[o,i];const a=t==="max"?">":"<",l=r?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int outIdx = coords[1]; + int inOffset = outIdx * ${s}; + + int bestIndex = inOffset; + float bestValue = getA(batch, bestIndex); + + for (int i = 0; i < ${s}; i++) { + int inIdx = ${l}; + float candidate = getA(batch, inIdx); + if (candidate ${a} bestValue) { + bestValue = candidate; + bestIndex = inIdx; + } + } + setOutput(float(bestIndex)); + } + `}}class hre{constructor(e,t,r,s){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,U(e.length>2,()=>`Packed arg${r.charAt(0).toUpperCase()+r.slice(1)} supports only inputs with rank above 2.`);const o=e[e.length-1],i=Math.ceil(o/t);this.outputShape=e.slice(0,-1),i>1&&this.outputShape.push(i),s||this.variableNames.push("bestIndicesA");const a=this.outputShape,l=a.length,c=on(l),d=ls("coords",l);let p,m;if(i===1){m=l+1;const B=on(m);p=` + ${B} sourceLocR = ${B}(${d.join()}, 0); + ++${d[l-1]}; + ${B} sourceLocG = ${B}(${d.join()}, 0); + ++${d[l-2]}; + ${B} sourceLocA = ${B}(${d.join()}, 0); + --${d[l-1]}; + ${B} sourceLocB = ${B}(${d.join()}, 0); + --${d[l-2]};`}else m=l,p=` + ${c} sourceLocR = coords; + ++${d[l-1]}; + ${c} sourceLocG = coords; + ++${d[l-2]}; + ${c} sourceLocA = coords; + --${d[l-1]}; + ${c} sourceLocB = coords; + --${d[l-2]};`;const y=["x","y","z","w","u","v"].slice(0,m),v="."+y[m-1],b=y.map(B=>"int "+B),w=ls("sourceLocR",m-1).concat("inIdx.r"),k=ls("sourceLocG",m-1).concat("inIdx.g"),I=ls("sourceLocB",m-1).concat("inIdx.b"),N=ls("sourceLocA",m-1).concat("inIdx.a"),T=r==="max"?"greaterThan":"lessThan",A=s?"":` + inIdx = round(vec4(getBestIndicesAChannel(${w.join()}), + getBestIndicesAChannel(${k.join()}), + getBestIndicesAChannel(${I.join()}), + getBestIndicesAChannel(${N.join()})));`,O=`vec4( + getAChannel(${w.join()}), + hasNextCol ? getAChannel(${k.join()}) : 0., + hasNextRow ? getAChannel(${I.join()}) : 0., + hasNextRow && hasNextCol ? getAChannel(${N.join()}) : 0.)`,P=s?"":` + float getBestIndicesAChannel(${b.join()}) { + return getChannel(getBestIndicesA(${y.join()}), + vec2(${y.slice(-2).join()})); + }`;this.userCode=` + float getAChannel(${b.join()}) { + return getChannel(getA(${y.join()}), + vec2(${y.slice(-2).join()})); + } + ${P} + void main() { + ${c} coords = getOutputCoords(); + bool hasNextCol = ${d[l-1]} < ${a[l-1]-1}; + bool hasNextRow = ${d[l-2]} < ${a[l-2]-1}; + ${p} + ivec4 srcIdx = ivec4(sourceLocR${v}, sourceLocG${v}, + sourceLocB${v}, sourceLocA${v}) * ${t}; + ivec4 inIdx = srcIdx; + vec4 bestIndex = vec4(inIdx); + vec4 bestValue = ${O}; + + for (int i = 0; i < ${t}; i++) { + inIdx = srcIdx; + ${A} + vec4 candidate = ${O}; + bvec4 nan = isnan(candidate); + bvec4 replace = bvec4( + vec4(${T}(candidate, bestValue)) * (vec4(1.0) - vec4(nan))); + + bestValue = vec4(replace.x ? candidate.x : bestValue.x, + replace.y ? candidate.y : bestValue.y, + replace.z ? candidate.z : bestValue.z, + replace.w ? candidate.w : bestValue.w); + bestIndex = mix(bestIndex, vec4(inIdx), vec4(replace)); + srcIdx++; + } + setOutput(bestIndex); + } + `}}function RF(n,e,t,r=null){let s=e.shape[0],o=e.shape[1];r!=null&&(s=r.shape[0],o=r.shape[1]);const i=Nv(o),a={windowSize:i,inSize:o,batchSize:s,outSize:Math.ceil(o/i)},l=new cre(a,t,r==null),c=[e];r!=null&&c.push(r);const d=n.runWebGLProgram(l,c,"int32");if(d.shape[1]===1)return d;const p=RF(n,e,t,d);return n.disposeIntermediateTensorInfo(d),p}function AF(n,e,t,r=null){const s=r!=null?r.shape:e.shape,o=s[s.length-1],i=Nv(o),a=new hre(s,i,t,r==null),l=r==null?[e]:[e,r],c=n.runWebGLProgram(a,l,"int32");if(c.shape.length===e.shape.length){const d=AF(n,e,t,c);return n.disposeIntermediateTensorInfo(c),d}return c}function _F(n,e,t,r){const s=[t];if(Dr("arg"+r.charAt(0).toUpperCase()+r.slice(1),s,e.shape.length),!ye().getBool("WEBGL_PACK_REDUCE")||e.shape.length<=2){const o=[],i=n.texData.get(e.dataId),a=i!==null&&i.isPacked;let l=e;a&&(l=n.unpackTensor(e),o.push(l));const[c,d]=yr(l.shape,s),p=Se(d),m=Ue({inputs:{x:l},backend:n,attrs:{shape:[-1,p]}});o.push(m);const y=RF(n,m,r);o.push(y);const v=Ue({inputs:{x:y},backend:n,attrs:{shape:c}});return o.forEach(b=>n.disposeIntermediateTensorInfo(b)),v}return AF(n,e,r)}function dre(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{axis:o}=r;let i=Tt(o,s.shape);const a=En(i,s.shape.length);let l=s;const c=[];a!=null&&(l=cs({inputs:{x:s},backend:t,attrs:{perm:a}}),c.push(l),i=Wn(i.length,l.shape.length)),Dr("argMax",[i[0]],l.shape.length);const d=_F(t,l,i[0],"max");return c.forEach(p=>t.disposeIntermediateTensorInfo(p)),d}const fre={kernelName:w1,backendName:"webgl",kernelFunc:dre};function pre(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{axis:o}=r;let i=Tt(o,s.shape);const a=En(i,s.shape.length);let l=s;const c=[];a!=null&&(l=cs({inputs:{x:s},backend:t,attrs:{perm:a}}),c.push(l),i=Wn(i.length,l.shape.length)),Dr("argMin",[i[0]],l.shape.length);const d=_F(t,l,i[0],"min");return c.forEach(p=>t.disposeIntermediateTensorInfo(p)),d}const mre={kernelName:b1,backendName:"webgl",kernelFunc:pre};const gre=Qo+` + if (abs(x) > 1.) { + return NAN; + } + return asin(x); +`,xre=zt({opSnippet:gre}),yre={kernelName:sg,backendName:"webgl",kernelFunc:xre};const vre=Qo+"return log(x + sqrt(x * x + 1.0));",wre=zt({opSnippet:vre}),bre={kernelName:og,backendName:"webgl",kernelFunc:wre};const Cre=Qo+` + return atan(x); +`,Sre=zt({opSnippet:Cre}),kre={kernelName:ig,backendName:"webgl",kernelFunc:Sre};const Ire=HI+` + return atan(a, b); +`,$re=` + vec4 result = atan(a, b); + bvec4 isNaNA = isnan(a); + bvec4 isNaNB = isnan(b); + bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w); + `+mh+` + return result; +`,Nre=Or({opSnippet:Ire,packedOpSnippet:$re}),Tre={kernelName:lg,backendName:"webgl",kernelFunc:Nre};const Ere=Qo+` + if ((x < -1.0) || (x > 1.0)) return NAN; +return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Rre=zt({opSnippet:Ere}),Are={kernelName:ag,backendName:"webgl",kernelFunc:Rre};class qm{constructor(e,t,r,s=!1,o=!1){if(this.variableNames=["x"],t==="avg"&&r)throw new Error("Cannot compute positions for average pool.");const i=e.filterWidth,a=e.strideHeight,l=e.strideWidth,c=e.dilationHeight,d=e.dilationWidth,p=e.effectiveFilterHeight,m=e.effectiveFilterWidth,y=e.padInfo.top,v=e.padInfo.left;this.outputShape=e.outShape;const b=t==="avg",w=`((batch * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + d`,k=`(xR * ${e.inWidth} + xC) * ${e.inChannels} + d`;let I="0.0";if(b||(I="-1.0 / 1e-20"),r){this.userCode=` + const ivec2 strides = ivec2(${a}, ${l}); + const ivec2 pads = ivec2(${y}, ${v}); + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d = coords[3]; + + ivec2 xRCCorner = coords.yz * strides - pads; + int xRCorner = xRCCorner.x; + int xCCorner = xRCCorner.y; + + // max/min x(?, ?, d) to get y(yR, yC, d). + // ? = to be determined + float minMaxValue = 0.0; + float minMaxValueFound = 0.0; + int minMaxPosition = 0; + float avgValue = 0.0; + + for (int wR = 0; wR < ${p}; + wR += ${c}) { + int xR = xRCorner + wR; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${m}; + wC += ${d}) { + int xC = xCCorner + wC; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + float value = getX(batch, xR, xC, d); + + // If a min / max value has already been found, use it. If not, + // use the current value. + float currMinMaxValue = mix( + value, minMaxValue, minMaxValueFound); + if (value >= currMinMaxValue) { + minMaxValue = value; + minMaxValueFound = 1.0; + minMaxPosition = ${s?o?w:k:`wR * ${m} + wC`}; + } + } + } + setOutput(float(minMaxPosition)); + } + `;return}const N="max";let T=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(T="avgValue / max(count, 1.0)");const A=Math.floor(i/4)*4,O=i%4,P=` + if (${b}) { + avgValue += dot(values, ones); + } else { + minMaxValue = ${N}(values, minMaxValue); + } + `;this.userCode=` + const ivec2 strides = ivec2(${a}, ${l}); + const ivec2 pads = ivec2(${y}, ${v}); + const float initializationValue = ${I}; + const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); + + float count = 0.0; + + float getValue(int batch, int xR, int xC, int d) { + if (xC < 0 || xC >= ${e.inWidth}) { + return initializationValue; + } + count += 1.0; + return getX(batch, xR, xC, d); + } + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d = coords[3]; + + ivec2 xRCCorner = coords.yz * strides - pads; + int xRCorner = xRCCorner.x; + int xCCorner = xRCCorner.y; + + // max/min x(?, ?, d) to get y(yR, yC, d). + // ? = to be determined + vec4 minMaxValue = vec4(${I}); + float avgValue = 0.0; + count = 0.0; + + for (int wR = 0; wR < ${p}; + wR += ${c}) { + int xR = xRCorner + wR; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${A}; wC += 4) { + int xC = xCCorner + wC * ${d}; + + vec4 values = vec4( + getValue(batch, xR, xC, d), + getValue(batch, xR, xC + ${d}, d), + getValue(batch, xR, xC + 2 * ${d}, d), + getValue(batch, xR, xC + 3 * ${d}, d) + ); + + ${P} + } + + int xC = xCCorner + ${A}; + if (${O===1}) { + vec4 values = vec4( + getValue(batch, xR, xC, d), + initializationValue, + initializationValue, + initializationValue + ); + + ${P} + } else if (${O===2}) { + vec4 values = vec4( + getValue(batch, xR, xC, d), + getValue(batch, xR, xC + ${d}, d), + initializationValue, + initializationValue + ); + + ${P} + } else if (${O===3}) { + vec4 values = vec4( + getValue(batch, xR, xC, d), + getValue(batch, xR, xC + ${d}, d), + getValue(batch, xR, xC + 2 * ${d}, d), + initializationValue + ); + + ${P} + } + } + setOutput(${T}); + } + `}}class KI{constructor(e,t,r,s=!1,o=!1){if(this.variableNames=["x"],t==="avg"&&r)throw new Error("Cannot compute positions for average pool.");const i=e.filterWidth,a=e.strideDepth,l=e.strideHeight,c=e.strideWidth,d=e.dilationDepth,p=e.dilationHeight,m=e.dilationWidth,y=e.effectiveFilterDepth,v=e.effectiveFilterHeight,b=e.effectiveFilterWidth,w=e.padInfo.front,k=e.padInfo.top,I=e.padInfo.left;this.outputShape=e.outShape;const N=t==="avg";let T="0.0";if(N||(T="-1.0 / 1e-20"),r){this.userCode=` + const ivec3 strides = + ivec3(${a}, ${l}, ${c}); + const ivec3 pads = ivec3(${w}, ${k}, ${I}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int ch = coords.u; + + ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads; + int xDCorner = xCorner.x; + int xRCorner = xCorner.y; + int xCCorner = xCorner.z; + + // max/min x(?, ?, ?, ch) to get y(yD, yR, yC, ch). + // ? = to be determined + float minMaxValue = 0.0; + float minMaxValueFound = 0.0; + int minMaxPosition = 0; + + for (int wD = 0; wD < ${y}; + wD += ${d}) { + int xD = xDCorner + wD; + + if (xD < 0 || xD >= ${e.inDepth}) { + continue; + } + + for (int wR = 0; wR < ${v}; + wR += ${p}) { + int xR = xRCorner + wR; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${b}; + wC += ${m}) { + int xC = xCCorner + wC; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + float value = getX(batch, xD, xR, xC, ch); + + // If a min / max value has already been found, use it. If not, + // use the current value. + float currMinMaxValue = mix( + value, minMaxValue, minMaxValueFound); + if (value >= currMinMaxValue) { + minMaxValue = value; + minMaxValueFound = 1.0; + minMaxPosition = ${s?o?`(((batch * ${e.inDepth} + xD) * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`((xD * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`wD * ${v} * ${b} + + wR * ${b} + wC`}; + } + } + } + } + setOutput(float(minMaxPosition)); + } + `;return}const A="max";let O=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(O="avgValue / max(count, 1.0)");const P=Math.floor(i/4)*4,B=i%4,z=` + if (${N}) { + avgValue += dot(values, ones); + } else { + minMaxValue = ${A}(values, minMaxValue); + } + `;this.userCode=` + const ivec3 strides = + ivec3(${a}, ${l}, ${c}); + const ivec3 pads = ivec3(${w}, ${k}, ${I}); + const float initializationValue = ${T}; + const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); + + float count = 0.0; + + float getValue(int batch, int xD, int xR, int xC, int ch) { + if (xC < 0 || xC >= ${e.inWidth}) { + return initializationValue; + } + count += 1.0; + return getX(batch, xD, xR, xC, ch); + } + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int ch = coords.u; + + ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads; + int xDCorner = xCorner.x; + int xRCorner = xCorner.y; + int xCCorner = xCorner.z; + + // max/min x(?, ?, ?, d) to get y(yD, yR, yC, ch). + // ? = to be determined + vec4 minMaxValue = vec4(${T}); + float avgValue = 0.0; + count = 0.0; + + for (int wD = 0; wD < ${y}; + wD += ${d}) { + int xD = xDCorner + wD; + + if (xD < 0 || xD >= ${e.inDepth}) { + continue; + } + + for (int wR = 0; wR < ${v}; + wR += ${p}) { + int xR = xRCorner + wR; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${P}; wC += 4) { + int xC = xCCorner + wC * ${m}; + + vec4 values = vec4( + getValue(batch, xD, xR, xC, ch), + getValue(batch, xD, xR, xC + ${m}, ch), + getValue(batch, xD, xR, xC + 2 * ${m}, ch), + getValue(batch, xD, xR, xC + 3 * ${m}, ch) + ); + + ${z} + } + + int xC = xCCorner + ${P}; + if (${B===1}) { + vec4 values = vec4( + getValue(batch, xD, xR, xC, ch), + initializationValue, + initializationValue, + initializationValue + ); + + ${z} + } else if (${B===2}) { + vec4 values = vec4( + getValue(batch, xD, xR, xC, ch), + getValue(batch, xD, xR, xC + ${m}, ch), + initializationValue, + initializationValue + ); + + ${z} + } else if (${B===3}) { + vec4 values = vec4( + getValue(batch, xD, xR, xC, ch), + getValue(batch, xD, xR, xC + ${m}, ch), + getValue(batch, xD, xR, xC + 2 * ${m}, ch), + initializationValue + ); + + ${z} + } + } + } + setOutput(${O}); + } + `}}function _re(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e;xx(s,"avgPool");const{filterSize:o,strides:i,pad:a,dimRoundingMode:l}=r,c=1;U(Hr(i,c),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);const d=Xo(s.shape,o,i,c,a,l);if(d.filterWidth===1&&d.filterHeight===1&&Xt(d.inShape,d.outShape))return Js({inputs:{x:s},backend:t});const p=new qm(d,"avg",!1);return t.runWebGLProgram(p,[s],"float32")}const Dre={kernelName:C1,backendName:"webgl",kernelFunc:_re};function Ore(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{filterSize:o,strides:i,pad:a,dimRoundingMode:l,dataFormat:c}=r,d=[1,1,1],p=ll(s.shape,o,i,d,a,l,c),m=new KI(p,"avg",!1);return t.runWebGLProgram(m,[s],"float32")}const Fre={kernelName:S1,backendName:"webgl",kernelFunc:Ore};class Pre{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;const t=e.filterHeight,r=e.filterWidth,s=e.strideHeight,o=e.strideWidth,i=e.dilationHeight,a=e.dilationWidth,l=e.effectiveFilterHeight,c=e.effectiveFilterWidth,d=l-1-e.padInfo.top,p=c-1-e.padInfo.left,m=1/(t*r);this.userCode=` + const ivec2 pads = ivec2(${d}, ${p}); + const float avgMultiplier = float(${m}); + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + + ivec2 dyRCCorner = coords.yz - pads; + int dyRCorner = dyRCCorner.x; + int dyCCorner = dyRCCorner.y; + + // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + for (int wR = 0; wR < ${l}; + wR += ${i}) { + float dyR = float(dyRCorner + wR) / ${s}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + for (int wC = 0; wC < ${c}; + wC+= ${a}) { + float dyC = float(dyCCorner + wC) / ${o}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + float dyValue = getDy(b, idyR, idyC, d); + + dotProd += dyValue * avgMultiplier; + } + } + setOutput(dotProd); + } + `}}class Lre{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;const t=e.filterDepth,r=e.filterHeight,s=e.filterWidth,o=e.strideDepth,i=e.strideHeight,a=e.strideWidth,l=e.dilationDepth,c=e.dilationHeight,d=e.dilationWidth,p=e.effectiveFilterDepth,m=e.effectiveFilterHeight,y=e.effectiveFilterWidth,v=p-1-e.padInfo.front,b=m-1-e.padInfo.top,w=y-1-e.padInfo.left,k=1/(t*r*s);this.userCode=` + const ivec3 pads = ivec3(${v}, ${b}, ${w}); + const float avgMultiplier = float(${k}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int ch = coords.u; + + ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads; + int dyDCorner = dyCorner.x; + int dyRCorner = dyCorner.y; + int dyCCorner = dyCorner.z; + + // Convolve dy(?, ?, ?, d) with pos mask(:, :, :, ch) to get + // dx(xD, xR, xC, ch). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + + for (int wD = 0; wD < ${p}; + wD += ${l}) { + float dyD = float(dyDCorner + wD) / ${o}.0; + + if (dyD < 0.0 || dyD >= ${e.outDepth}.0 || fract(dyD) > 0.0) { + continue; + } + int idyD = int(dyD); + + for (int wR = 0; wR < ${m}; + wR += ${c}) { + float dyR = float(dyRCorner + wR) / ${i}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || + fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + for (int wC = 0; wC < ${y}; + wC += ${d}) { + float dyC = float(dyCCorner + wC) / ${a}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + float dyValue = getDy(batch, idyD, idyR, idyC, ch); + + dotProd += dyValue * avgMultiplier; + } + } + } + setOutput(dotProd); + } + `}}function Mre(n){const{inputs:e,backend:t,attrs:r}=n,{dy:s,input:o}=e,i=o,{filterSize:a,strides:l,pad:c,dimRoundingMode:d}=r,p=[1,1,1],m=ll(i.shape,a,l,p,c,d),y=new Lre(m);return t.runWebGLProgram(y,[s],i.dtype)}const zre={kernelName:CS,backendName:"webgl",kernelFunc:Mre};function Bre(n){const{inputs:e,backend:t,attrs:r}=n,{dy:s,input:o}=e,i=o;xx([s,o],"avgPoolGrad");const{filterSize:a,strides:l,pad:c}=r,d=Xo(i.shape,a,l,1,c),p=new Pre(d);return t.runWebGLProgram(p,[s],i.dtype)}const Ure={kernelName:bS,backendName:"webgl",kernelFunc:Bre};function Wre(n){const{inputs:e,backend:t,attrs:r}=n,{a:s,b:o}=e,{transposeA:i,transposeB:a}=r;return u1({a:s,b:o,transposeA:i,transposeB:a,backend:t})}const Vre={kernelName:k1,backendName:"webgl",kernelFunc:Wre};class Gre{constructor(e,t,r,s,o,i){this.outputShape=[],this.variableNames=["x","mean","variance"],gt(e,t),gt(e,r);let a="0.0";s!=null&&(gt(e,s),this.variableNames.push("offset"),a="getOffsetAtOutCoords()");let l="1.0";o!=null&&(gt(e,o),this.variableNames.push("scale"),l="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + void main() { + float x = getXAtOutCoords(); + float mean = getMeanAtOutCoords(); + float variance = getVarianceAtOutCoords(); + float offset = ${a}; + float scale = ${l}; + float inv = scale * inversesqrt(variance + float(${i})); + setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1))); + } + `}}class jre{constructor(e,t,r,s,o,i){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],gt(e,t),gt(e,r);let a="vec4(0.0)";s!=null&&(gt(e,s),this.variableNames.push("offset"),a="getOffsetAtOutCoords()");let l="vec4(1.0)";o!=null&&(gt(e,o),this.variableNames.push("scale"),l="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + void main() { + vec4 offset = ${a}; + vec4 scale = ${l}; + + vec4 x = getXAtOutCoords(); + vec4 mean = getMeanAtOutCoords(); + vec4 variance = getVarianceAtOutCoords(); + + vec4 inv = scale * inversesqrt(variance + vec4(${i})); + + setOutput((x - mean) * inv + offset); + } + `}}const Hre=({inputs:n,backend:e,attrs:t})=>{const{x:r,mean:s,variance:o,offset:i,scale:a}=n;U(s.shape.length===o.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),U(i==null||s.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),U(a==null||s.shape.length===a.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:l}=t;l==null&&(l=.001);const c=[r,s,o];let d=null;i!=null&&(d=i.shape,c.push(i));let p=null;a!=null&&(p=a.shape,c.push(a));const m=ye().getBool("WEBGL_PACK_NORMALIZATION")?new jre(r.shape,s.shape,o.shape,d,p,l):new Gre(r.shape,s.shape,o.shape,d,p,l);return e.runWebGLProgram(m,c,c[0].dtype)},qre={kernelName:P1,backendName:"webgl",kernelFunc:Hre};class Kre{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;const t=on(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];const r=Xre(this.rank);let s;const o=e.map((i,a)=>`sourceLoc.${MC[a]} = start[${a}] + coords.${MC[a]};`);s=` + ${t} sourceLoc; + ${t} coords = getOutputCoords(); + ${o.join(` +`)} + `,this.userCode=` + void main() { + ${s} + setOutput(getSource(${r})); + } + `}}const MC=["x","y","z","w","u","v"];function Xre(n){if(n===1)return"sourceLoc";if(n<=6)return MC.slice(0,n).map(e=>"sourceLoc."+e).join(",");throw Error(`Slicing for rank ${n} is not yet supported`)}class Yre{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length,this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];const t=on(this.rank),r=ls("coords",this.rank),s=ls("sourceLoc",this.rank),o=this.rank===1?"sourceLoc":`vec2(${s.slice(-2).join()})`,i=`getChannel(getSource(${s.join()}), ${o})`,a=` + result.x = ${i}; + if (++${r[this.rank-1]} < ${e[this.rank-1]}) { + ++${s[this.rank-1]}; + result.y = ${i}; + --${s[this.rank-1]}; + } + `,l=this.rank===1?"":` + --${r[this.rank-1]}; + if (++${r[this.rank-2]} < ${e[this.rank-2]}) { + ++${s[this.rank-2]}; + result.z = ${i}; + if (++${r[this.rank-1]} < ${e[this.rank-1]}) { + ++${s[this.rank-1]}; + result.w = ${i}; + } + } + `,c=this.rank<=4?`sourceLoc = coords + + ${t}(${e.map((d,p)=>`start[${p}]`).join()});`:e.map((d,p)=>`${s[p]} = ${r[p]} + start[${p}];`).join(` +`);this.userCode=` + void main() { + ${t} coords = getOutputCoords(); + ${t} sourceLoc; + ${c} + vec4 result = vec4(0.); + ${a} + ${l} + setOutput(result); + } + `}}function Qre(n,e,t,r){const s=r.texData.get(n.dataId),o=r.makeTensorInfo(t,n.dtype),i=r.texData.get(o.dataId);Object.assign(i,s),i.refCount=1,i.shape=t,i.dtype=n.dtype;let a=Vk(e,tt(n.shape));s.slice&&(a+=s.slice.flatOffset),i.slice={flatOffset:a,origDataId:s.slice&&s.slice.origDataId||n.dataId};const l=r.dataRefCount.get(i.slice.origDataId)||1;return r.dataRefCount.set(i.slice.origDataId,l+1),o}function Lf(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{begin:o,size:i}=r,[a,l]=$v(s,o,i);if(Bk(s,a,l),Se(l)===0)return t.makeTensorInfo(l,s.dtype,[]);if(t.shouldExecuteOnCPU([s])||s.dtype==="string"){const p=t.texData.get(s.dataId),m=Vte(p.values,a,l,s.shape,s.dtype);return t.makeTensorInfo(l,s.dtype,m)}const{isPacked:c}=t.texData.get(s.dataId),d=Wk(s.shape,a,l);if(c||!d){const p=ye().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Yre(l):new Kre(l),m=[a];return t.runWebGLProgram(p,[s],s.dtype,m)}return t.uploadToGPU(s.dataId),Qre(s,a,l,t)}const Jre={kernelName:hv,backendName:"webgl",kernelFunc:Lf};const Zre=n=>{const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{blockShape:o,crops:i}=r;U(s.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");const a=o.reduce((I,N)=>I*N),l=sx(s.shape,o,a),c=ox(l.length,o.length),d=ix(s.shape,o,a),p=Kk(i,o.length),m=Xk(d,i,o.length),y=[],v=Ue({inputs:{x:s},backend:t,attrs:{shape:l}}),b=cs({inputs:{x:v},backend:t,attrs:{perm:c}}),w=Ue({inputs:{x:b},backend:t,attrs:{shape:d}}),k=Lf({inputs:{x:w},backend:t,attrs:{begin:p,size:m}});return y.push(v),y.push(b),y.push(w),y.forEach(I=>t.disposeIntermediateTensorInfo(I)),k},ese={kernelName:I1,backendName:"webgl",kernelFunc:Zre};function tse(n){const{inputs:e,backend:t,attrs:r}=n,{x:s,weights:o}=e,{size:i}=r,a=t.readSync(s.dataId),l=t.readSync(o.dataId),c=vF(a,l,o.dtype,o.shape,i);return t.makeTensorInfo([i],o.dtype,c)}const nse={kernelName:SS,backendName:"webgl",kernelFunc:tse};const rse=` + int r = int(a.r) & int(b.r); + int g = int(a.g) & int(b.g); + int rb = int(a.b) & int(b.b); + int ra = int(a.a) & int(b.a); + return vec4(r, g, rb, ra); +`,sse=` + return float(int(a.r) & int(b.r)); +`;function ose(n){const{inputs:e,backend:t}=n,{a:r,b:s}=e,o=ye().getBool("WEBGL_PACK_BINARY_OPERATIONS"),i=ye().getNumber("WEBGL_VERSION");if(t.shouldExecuteOnCPU([r,s])||i===1){const l=t.texData.get(r.dataId).values,c=t.texData.get(s.dataId).values,[d,p]=fte(r.shape,s.shape,l,c,r.dtype),m=t.makeTensorInfo(p,r.dtype),y=t.texData.get(m.dataId);return y.values=d,m}let a;return o?a=new Ff(rse,r.shape,s.shape,!1):a=new sh(sse,r.shape,s.shape),t.runWebGLProgram(a,[r,s],r.dtype)}const ise={kernelName:kS,backendName:"webgl",kernelFunc:ose};function ase(n){const{inputs:e,backend:t}=n,{s0:r,s1:s}=e,o=t.readSync(r.dataId),i=t.readSync(s.dataId),a=gt(Array.from(o),Array.from(i));return t.makeTensorInfo([a.length],"int32",Int32Array.from(a))}const lse={kernelName:IE,backendName:"webgl",kernelFunc:ase};const use="return float(a != b);",DF=Or({opSnippet:use,cpuKernelImpl:Ote,dtype:"bool"}),cse={kernelName:Z1,backendName:"webgl",kernelFunc:DF};function vx(n){const{inputs:e,backend:t}=n,{input:r}=e,s=t.texData.get(r.dataId);return Js({inputs:{x:s.complexTensorInfos.real},backend:t})}const hse={kernelName:XS,backendName:"webgl",kernelFunc:vx};const dse="return float(int(x));";function fse(n,e){const t=new la(n.shape,dse),r=e.runWebGLProgram(t,[n],"int32");return{dataId:r.dataId,shape:r.shape,dtype:r.dtype}}function zC(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{dtype:o}=r;if(o==="complex64"){if(s.dtype==="complex64")return Js({inputs:{x:s},backend:t});const i=gr(s.shape),a=zC({inputs:{x:s},backend:t,attrs:{dtype:"float32"}}),l=ku({inputs:{real:a,imag:i},backend:t});return i.dispose(),t.disposeIntermediateTensorInfo(a),l}if(s.dtype==="complex64"){const i=vx({inputs:{input:s},backend:t}),a=zC({inputs:{x:i},backend:t,attrs:{dtype:o}});return t.disposeIntermediateTensorInfo(i),a}if(!wE(s.dtype,o)){const i=Js({inputs:{x:s},backend:t});return{dataId:i.dataId,shape:i.shape,dtype:o}}if(t.shouldExecuteOnCPU([s])){const i=t.texData.get(s.dataId).values,[a,l,c]=pte(i,s.shape,s.dtype,o);return t.makeTensorInfo(a,l,c)}if(o==="int32")return fse(s,t);if(o==="bool"){const i=t.makeTensorInfo([],"bool",Vr("bool",1)),l=DF({inputs:{a:s,b:i},backend:t});return t.disposeIntermediateTensorInfo(i),l}throw new Error(`Error in Cast: failed to cast ${s.dtype} to ${o}`)}const pse={kernelName:ug,backendName:"webgl",kernelFunc:zC};const eT="return ceil(x);",mse=zt({opSnippet:eT,packedOpSnippet:eT,cpuKernelImpl:mte}),gse={kernelName:cg,backendName:"webgl",kernelFunc:mse};class xse{constructor(e){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` + + void main() { + float value = getAAtOutCoords(); + if (isnan(value)) { + setOutput(value); + return; + } + + setOutput(clamp(value, minVal, maxVal)); + } + `}}class yse{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` + void main() { + vec4 value = getAAtOutCoords(); + + if (any(isnan(value))) { + setOutput(value); + return; + } + + setOutput(clamp(value, vec4(minVal), vec4(maxVal))); + } + `}}function vse(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{clipValueMin:o,clipValueMax:i}=r;let a;ye().getBool("WEBGL_PACK_CLIP")?a=new yse(s.shape):a=new xse(s.shape);const l=[[o],[i]];return t.runWebGLProgram(a,[s],s.dtype,l)}const wse={kernelName:hg,backendName:"webgl",kernelFunc:vse};class bse{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` + void main() { + float re = abs(getRealAtOutCoords()); + float im = abs(getImagAtOutCoords()); + float mx = max(re, im); + + // sadly the length function in glsl is not underflow-safe + // (at least not on Intel GPUs). So the safe solution is + // to ensure underflow-safety in all cases. + setOutput( + mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx)) + ); + } + `}}function tT(n,e){return{dataId:e.dataId,dtype:e.dtype,shape:n.shape}}function Cse(n){const{inputs:e,backend:t}=n,{x:r}=e,s=t.texData.get(r.dataId),o=new bse(r.shape),i=[tT(r,s.complexTensorInfos.real),tT(r,s.complexTensorInfos.imag)];return t.runWebGLProgram(o,i,i[0].dtype)}const Sse={kernelName:$1,backendName:"webgl",kernelFunc:Cse};class kse{constructor(e){this.outputShape=[],this.outputShape=da(e,1),this.variableNames=e.map((i,a)=>`T${a}`);const t=new Array(e.length-1);t[0]=e[0][1];for(let i=1;i`T${w}`);const l=new Array(e.length-1);l[0]=e[0][t];for(let b=1;b= ${l[b-1]}) { + return getChannel( + getT${b}(${my(a,c,w)}), + vec2(${my(d,c,w)})); + }`}const y=l.length,v=l[l.length-1];m+=` + return getChannel( + getT${y}(${my(a,c,v)}), + vec2(${my(d,c,v)}));`,this.userCode=` + float getValue(${a.map(b=>"int "+b)}) { + ${m} + } + + void main() { + ${o} coords = getOutputCoords(); + vec4 result = vec4(getValue(${i}), 0., 0., 0.); + + ${i[s-1]} = ${i[s-1]} + 1; + if (${i[s-1]} < ${r[s-1]}) { + result.g = getValue(${i}); + } + + ${i[s-2]} = ${i[s-2]} + 1; + if (${i[s-2]} < ${r[s-2]}) { + result.a = getValue(${i}); + } + + ${i[s-1]} = ${i[s-1]} - 1; + if (${i[s-2]} < ${r[s-2]} && + ${i[s-1]} < ${r[s-1]}) { + result.b = getValue(${i}); + } + setOutput(result); + } + `}}function my(n,e,t){const r=n.indexOf(e);return n.map((o,i)=>i===r?`${o} - ${t}`:o).join()}function Hv(n){const{inputs:e,backend:t}=n,{input:r}=e,s=t.texData.get(r.dataId);return Js({inputs:{x:s.complexTensorInfos.imag},backend:t})}const $se={kernelName:US,backendName:"webgl",kernelFunc:Hv};function km(n,e,t){const r=n[0].dtype;if(r==="complex64"){const y=n.map(I=>vx({inputs:{input:I},backend:t})),v=n.map(I=>Hv({inputs:{input:I},backend:t})),b=km(y,e,t),w=km(v,e,t),k=ku({inputs:{real:b,imag:w},backend:t});return y.forEach(I=>t.disposeIntermediateTensorInfo(I)),v.forEach(I=>t.disposeIntermediateTensorInfo(I)),t.disposeIntermediateTensorInfo(b),t.disposeIntermediateTensorInfo(w),k}let s=t.shouldExecuteOnCPU(n);if(r==="string"&&(s=!0),s){const y=n.map(T=>{const O=[-1,Se(T.shape.slice(e))];return Ue({inputs:{x:T},backend:t,attrs:{shape:O}})}),v=y.map(T=>({vals:t.readSync(T.dataId),shape:T.shape})),b=da(y.map(T=>T.shape),1),w=y[0].shape[0]===1,k=gte(v,b,r,w),I=da(n.map(T=>T.shape),e),N=t.makeTensorInfo(I,r,k);return y.forEach(T=>t.disposeIntermediateTensorInfo(T)),N}const o=n.filter(y=>Se(y.shape)>0),i=ye().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&o[0].shape.length>1;if(o.length===1){const y=i?new la(n[0].shape,Yl):new tu(n[0].shape,Yl);return t.runWebGLProgram(y,n,r)}const a=ye().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(o.length>a){const y=[];for(let b=0;bv.shape),e);return t.runWebGLProgram(y,o,r)}const{tensors2D:l,outShape:c}=Nse(o,e,t),d=new kse(l.map(y=>y.shape)),p=t.runWebGLProgram(d,l,r);l.forEach(y=>t.disposeIntermediateTensorInfo(y));const m=Ue({inputs:{x:p},attrs:{shape:c},backend:t});return t.disposeIntermediateTensorInfo(p),m}function Nse(n,e,t){const r=da(n.map(o=>o.shape),e);return{tensors2D:n.map(o=>Ue({inputs:{x:o},attrs:{shape:[-1,Se(o.shape.slice(e))]},backend:t})),outShape:r}}function OF(n){const{inputs:e,backend:t,attrs:r}=n,{axis:s}=r,o=Tt(s,e[0].shape)[0],i=e.map(c=>c.shape);jk(i,o);const a=da(e.map(c=>c.shape),o);if(Se(a)===0)return t.makeTensorInfo(a,e[0].dtype,[]);const l=e.filter(c=>Se(c.shape)>0);return l.length===1?Js({inputs:{x:l[0]},backend:t}):km(l,o,t)}const Tse={kernelName:N1,backendName:"webgl",kernelFunc:OF};class FF{constructor(e,t=!1,r=null,s=!1,o=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;const i=e.padInfo.top,a=e.padInfo.left,l=e.strideHeight,c=e.strideWidth,d=e.dilationHeight,p=e.dilationWidth,m=e.filterHeight,y=e.filterWidth,v=Math.floor(e.inChannels/4)*4,b=e.inChannels%4,w=e.dataFormat==="channelsLast",k=w?1:2,I=w?2:3,N=w?3:1;let T="",A="";r&&(s?T=`float activation(float a) { + float b = getPreluActivationWeightsAtOutCoords(); + ${r} + }`:o?T=`float activation(float a) { + float b = getLeakyreluAlphaAtOutCoords(); + ${r} + }`:T=` + float activation(float x) { + ${r} + } + `,A="result = activation(result);");const O=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),s&&this.variableNames.push("preluActivationWeights"),o&&this.variableNames.push("leakyreluAlpha"),this.userCode=` + ${T} + + const ivec2 strides = ivec2(${l}, ${c}); + const ivec2 pads = ivec2(${i}, ${a}); + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d2 = coords[${N}]; + + ivec2 xRCCorner = + ivec2(coords[${k}], coords[${I}]) * strides - pads; + int xRCorner = xRCCorner.x; + int xCCorner = xRCCorner.y; + + // Convolve x(?, ?, d1) with w(:, :, d1, d2) to get y(yR, yC, d2). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + for (int wR = 0; wR < ${m}; wR++) { + int xR = xRCorner + wR * ${d}; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${y}; wC++) { + int xC = xCCorner + wC * ${p}; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + for (int d1 = 0; d1 < ${v}; d1 += 4) { + vec4 wValues = vec4( + getW(wR, wC, d1, d2), + getW(wR, wC, d1 + 1, d2), + getW(wR, wC, d1 + 2, d2), + getW(wR, wC, d1 + 3, d2) + ); + + if (${w}) { + vec4 xValues = vec4( + getX(batch, xR, xC, d1), + getX(batch, xR, xC, d1 + 1), + getX(batch, xR, xC, d1 + 2), + getX(batch, xR, xC, d1 + 3) + ); + dotProd += dot(xValues, wValues); + } else { + vec4 xValues = vec4( + getX(batch, d1, xR, xC), + getX(batch, d1 + 1, xR, xC), + getX(batch, d1 + 2, xR, xC), + getX(batch, d1 + 3, xR, xC) + ); + dotProd += dot(xValues, wValues); + } + } + + if (${b===1}) { + + if (${w}) { + dotProd += + getX(batch, xR, xC, ${v}) * + getW(wR, wC, ${v}, d2); + } else { + dotProd += + getX(batch, ${v}, xR, xC) * + getW(wR, wC, ${v}, d2); + } + + } else if (${b===2}) { + vec2 wValues = vec2( + getW(wR, wC, ${v}, d2), + getW(wR, wC, ${v} + 1, d2) + ); + + if (${w}) { + vec2 xValues = vec2( + getX(batch, xR, xC, ${v}), + getX(batch, xR, xC, ${v} + 1) + ); + dotProd += dot(xValues, wValues); + } else { + vec2 xValues = vec2( + getX(batch, ${v}, xR, xC), + getX(batch, ${v} + 1, xR, xC) + ); + dotProd += dot(xValues, wValues); + } + + } else if (${b===3}) { + vec3 wValues = vec3( + getW(wR, wC, ${v}, d2), + getW(wR, wC, ${v} + 1, d2), + getW(wR, wC, ${v} + 2, d2) + ); + + if (${w}) { + vec3 xValues = vec3( + getX(batch, xR, xC, ${v}), + getX(batch, xR, xC, ${v} + 1), + getX(batch, xR, xC, ${v} + 2) + ); + dotProd += dot(xValues, wValues); + } else { + vec3 xValues = vec3( + getX(batch, ${v}, xR, xC), + getX(batch, ${v} + 1, xR, xC), + getX(batch, ${v} + 2, xR, xC) + ); + dotProd += dot(xValues, wValues); + } + + } + } + } + + float result = dotProd; + ${O} + ${A} + setOutput(result); + } + `}}class Ese{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;const t=e.padInfo.front,r=e.padInfo.top,s=e.padInfo.left,o=e.strideDepth,i=e.strideHeight,a=e.strideWidth,l=e.dilationDepth,c=e.dilationHeight,d=e.dilationWidth,p=e.filterDepth,m=e.filterHeight,y=e.filterWidth,v=Math.floor(e.inChannels/4)*4,b=e.inChannels%4;this.userCode=` + const ivec3 strides = ivec3(${o}, ${i}, ${a}); + const ivec3 pads = ivec3(${t}, ${r}, ${s}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int d2 = coords.u; + + ivec3 xFRCCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads; + int xFCorner = xFRCCorner.x; + int xRCorner = xFRCCorner.y; + int xCCorner = xFRCCorner.z; + + // Convolve x(?, ?, ?, d1) with w(:, :, :, d1, d2) to get + // y(yF, yR, yC, d2). ? = to be determined. : = across all + // values in that axis. + float dotProd = 0.0; + for (int wF = 0; wF < ${p}; wF++) { + int xF = xFCorner + wF * ${l}; + + if (xF < 0 || xF >= ${e.inDepth}) { + continue; + } + + for (int wR = 0; wR < ${m}; wR++) { + int xR = xRCorner + wR * ${c}; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${y}; wC++) { + int xC = xCCorner + wC * ${d}; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + for (int d1 = 0; d1 < ${v}; d1 += 4) { + vec4 xValues = vec4( + getX(batch, xF, xR, xC, d1), + getX(batch, xF, xR, xC, d1 + 1), + getX(batch, xF, xR, xC, d1 + 2), + getX(batch, xF, xR, xC, d1 + 3) + ); + vec4 wValues = vec4( + getW(wF, wR, wC, d1, d2), + getW(wF, wR, wC, d1 + 1, d2), + getW(wF, wR, wC, d1 + 2, d2), + getW(wF, wR, wC, d1 + 3, d2) + ); + + dotProd += dot(xValues, wValues); + } + + if (${b===1}) { + dotProd += + getX(batch, xF, xR, xC, ${v}) * + getW(wF, wR, wC, ${v}, d2); + } else if (${b===2}) { + vec2 xValues = vec2( + getX(batch, xF, xR, xC, ${v}), + getX(batch, xF, xR, xC, ${v} + 1) + ); + vec2 wValues = vec2( + getW(wF, wR, wC, ${v}, d2), + getW(wF, wR, wC, ${v} + 1, d2) + ); + dotProd += dot(xValues, wValues); + } else if (${b===3}) { + vec3 xValues = vec3( + getX(batch, xF, xR, xC, ${v}), + getX(batch, xF, xR, xC, ${v} + 1), + getX(batch, xF, xR, xC, ${v} + 2) + ); + vec3 wValues = vec3( + getW(wF, wR, wC, ${v}, d2), + getW(wF, wR, wC, ${v} + 1, d2), + getW(wF, wR, wC, ${v} + 2, d2) + ); + dotProd += dot(xValues, wValues); + } + } + } + } + setOutput(dotProd); + } + `}}class PF{constructor(e,t=!1,r=null,s=!1,o=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=Kr(this.outputShape.length);const i=e.padInfo.left,a=e.strideWidth,l=e.dilationWidth,c=e.filterHeight,d=e.filterWidth,p=d;let m=` + int xR; int xC; int xCOffset; + vec4 wTexel; vec4 previous; vec4 final;`;for(let w=0;w=0 && xR < inDims[0]) { + `;for(let w=0;w<(p+1)/2;w++){const k=w*2;if(m+=` + xC = xCCorner + ${k*l}; + `,a===1){if(k= 0 && xCOffset < inDims[1] && xTexelC${k}Ready == 0) { + xTexelC${k} = getX(batch, xR, xCOffset, d1); + + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xCOffset + 1 >= inDims[1]) { + xTexelC${k}.zw = vec2(0.0); + } + xTexelC${k}Ready = 1; + } + `,l===1&&k>0?m+=` + xC${k} = vec4(xTexelC${k-2}.zw, xTexelC${k}.xy); + `:m+=` + xCOffset = xC + 1 - 2; + + if (xCOffset >= 0 && xCOffset < inDims[1]) { + previous = getX(batch, xR, xCOffset, d1); + + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xCOffset + 1 >= inDims[1]) { + previous.zw = vec2(0.0); + } + + xC${k} = vec4(previous.zw, xTexelC${k}.xy); + } else { + xC${k} = vec4(0.0, 0.0, xTexelC${k}.xy); + } + `):m+=` + if (xC >= 0 && xC < inDims[1] && xTexelC${k}Ready == 0) { + xTexelC${k} = getX(batch, xR, xC, d1); + if (xC + 1 >= inDims[1]) { + xTexelC${k}.zw = vec2(0.0); + } + xTexelC${k}Ready = 1; + } + + xC${k} = xTexelC${k}; + `,k+1= 0 && xCOffset < inDims[1] && xTexelC${k+1}Ready == 0) { + xTexelC${k+1} = getX(batch, xR, xCOffset, d1); + + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xCOffset + 1 >= inDims[1]) { + xTexelC${k+1}.zw = vec2(0.0); + } + xTexelC${k+1}Ready = 1; + } + `,l>1?m+=` + xCOffset -= 2; + if (xCOffset >= 0 && xCOffset < inDims[1]) { + previous = getX(batch, xR, xCOffset, d1); + xC${k+1} = vec4(previous.zw, xTexelC${k+1}.xy); + } else { + xC${k+1} = vec4(0.0, 0.0, xTexelC${k+1}.xy); + } + `:m+=` + xC${k+1} = vec4(xTexelC${k}.zw, xTexelC${k+1}.xy); + `):I===1?m+=` + xC${k+1} = xTexelC${k}; + `:m+=` + xCOffset = xC + ${I}; + + if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${k+1}Ready == 0) { + xTexelC${k+1} = getX(batch, xR, xCOffset, d1); + if (xCOffset + 1 >= inDims[1]) { + xTexelC${k+1}.zw = vec2(0.0); + } + xTexelC${k+1}Ready = 1; + } + + xC${k+1} = xTexelC${k+1}; + `}}else k= 0 && xCOffset < inDims[1] && xTexelC${k}Ready == 0) { + xTexelC${k} = getX(batch, xR, xCOffset, d1); + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xCOffset + 1 >= inDims[1]) { + xTexelC${k}.zw = vec2(0.0); + } + xTexelC${k}Ready = 1; + } + + if(xC + 1 >= 0 && xC + 1 < inDims[1] && xTexelC${k+1}Ready == 0) { + xTexelC${k+1} = getX(batch, xR, xC + 1, d1); + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xC + 2 >= inDims[1]) { + xTexelC${k+1}.zw = vec2(0.0); + } + xTexelC${k+1}Ready = 1; + } + + xC${k} = vec4(xTexelC${k}.zw, xTexelC${k+1}.zw); + `,k+1= 0 && xCOffset < inDims[1]) { + final = getX(batch, xR, xCOffset, d1); + } + xC${k+1} = vec4(xTexelC${k+1}.xy, final.xy); + `)):(m+=` + if(xC >= 0 && xC < inDims[1] && xTexelC${k}Ready == 0) { + xTexelC${k} = getX(batch, xR, xC, d1); + if (xC + 1 >= inDims[1]) { + xTexelC${k}.zw = vec2(0.0); + } + xTexelC${k}Ready = 1; + } + + xCOffset = xC + strides[1]; + if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${k+1}Ready == 0) { + xTexelC${k+1} = getX(batch, xR, xCOffset, d1); + if (xCOffset + 1 >= inDims[1]) { + xTexelC${k+1}.zw = vec2(0.); + } + xTexelC${k+1}Ready = 1; + } + + xC${k} = vec4( + xTexelC${k}.xy, xTexelC${k+1}.xy); + `,k+1= 0) { + // Use custom imod instead mod. On Intel GPU, mod may generate + // unexpected value. + // https://github.com/tensorflow/tfjs/issues/5447 + offsetX = imod(blockIndex, outWidth) * stride[1] - pad[1]; + d1 = offsetX + dilation[1] * (imod(pos, itemsPerBlockRow) / + inChannels); + + if(d1 < inputShape[${a}] && d1 >= 0) { + + ch = imod(pos, inChannels); + + if (${o}) { + innerDims = vec2(d1, ch); + result[${d*2+p}] = getChannel( + getA(rc.x, d0, int(innerDims.x), + int(innerDims.y)), innerDims); + } else { + innerDims = vec2(d0, d1); + result[${d*2+p}] = getChannel( + getA(rc.x, ch, int(innerDims.x), + int(innerDims.y)), innerDims); + } + } + } + } + `;this.userCode=` + void main() { + ivec3 rc = getOutputCoords(); + + vec4 result = vec4(0); + + int blockIndex, pos, offsetY, d0, offsetX, d1, ch; + vec2 innerDims; + + ${c} + + ${s.output} = result; + } + `}}function c1(n,e){const t=n.length;return t>=3?e?[...n.slice(0,-3),n[t-3]*n[t-2],n[t-1]]:[...n.slice(0,-3),n[t-3],n[t-2]*n[t-1]]:!e&&t===1&&n[0]>1?[n[0],1]:null}function LF({x:n,filter:e,convInfo:t,backend:r,bias:s=null,preluActivationWeights:o=null,leakyreluAlpha:i=0,activation:a=null}){const l=n.shape,c=r.texData.get(n.dataId),d=t.inChannels,p=l[0]*l[1]*l[2],m=t.outChannels,y=t.dataFormat==="channelsLast",v=!1,b=!1;let w;const k=[];if(o!=null){const T=c1(o.shape,y);T!=null&&(o=Ue({inputs:{x:o},backend:r,attrs:{shape:T}}),k.push(o))}if(s!=null){const T=c1(s.shape,y);T!=null&&(s=Ue({inputs:{x:s},backend:r,attrs:{shape:T}}),k.push(s))}if(!((p===1||m===1)&&d>EF)&&c.isPacked&&y&&c.texture!=null&&l[2]%2!==0&&Xt(c.shape.slice(-3),l.slice(-3))){const T=l[0]*l[1]*(l[2]+1),A={dataId:n.dataId,shape:[1,T,t.inChannels],dtype:n.dtype},O=c.shape;c.shape=c.shape.slice(),c.shape[c.shape.length-2]++,U(l1(c.shape,A.shape),()=>`packed reshape ${c.shape} to ${A.shape} isn't free`);const P=Ue({inputs:{x:e},backend:r,attrs:{shape:[1,t.inChannels,t.outChannels]}});k.push(P);const B=u1({a:A,b:P,backend:r,transposeA:v,transposeB:b,bias:s,activation:a,preluActivationWeights:o,leakyreluAlpha:i}),z=r.texData.get(B.dataId);U(z.isPacked,()=>"batchMatMul result is expected to be packed"),c.shape=O,z.shape=t.outShape,w=Js({inputs:{x:B},backend:r}),w.shape=t.outShape,k.push(B)}else{const T=t.outHeight*t.outWidth,A=Ue({inputs:{x:n},backend:r,attrs:{shape:y?[t.batchSize,T,t.inChannels]:[t.batchSize,t.inChannels,T]}}),O=Ue({inputs:{x:e},backend:r,attrs:{shape:[1,t.inChannels,t.outChannels]}}),P=u1({a:y?A:O,b:y?O:A,transposeA:!y,transposeB:b,backend:r,bias:s,activation:a,preluActivationWeights:o,leakyreluAlpha:i});w=Ue({inputs:{x:P},backend:r,attrs:{shape:t.outShape}}),k.push(A),k.push(O),k.push(P)}for(const T of k)r.disposeIntermediateTensorInfo(T);return w}function MF({x:n,filter:e,convInfo:t,backend:r,bias:s=null,preluActivationWeights:o=null,leakyreluAlpha:i=0,activation:a=null}){const{filterWidth:l,filterHeight:c,inChannels:d,outWidth:p,outHeight:m,dataFormat:y}=t,v=y==="channelsLast",b=l*c*d,w=m*p,k=[t.batchSize,b,w],I=!0,N=!1,T=[];if(o!=null){const j=c1(o.shape,v);j!=null&&(o=Ue({inputs:{x:o},backend:r,attrs:{shape:j}}),T.push(o))}if(s!=null){const j=c1(s.shape,v);j!=null&&(s=Ue({inputs:{x:s},backend:r,attrs:{shape:j}}),T.push(s))}const A=Ue({inputs:{x:e},backend:r,attrs:{shape:[1,b,Se(e.shape)/b]}});T.push(A);const O=new Rse(k,t),P=[n.shape,[t.padInfo.top,t.padInfo.left],[t.strideHeight,t.strideWidth],[t.dilationHeight,t.dilationWidth],[t.inChannels],[t.filterWidth*t.inChannels],[t.outWidth]],B=r.runWebGLProgram(O,[n],"float32",P),z=Ue({inputs:{x:B},backend:r,attrs:{shape:k}});T.push(B),T.push(z);const L=s!=null,_=o!=null,H=a==="leakyrelu",Y=a?Hm(a,!0):null,re=new TF(v?z.shape:A.shape,v?A.shape:z.shape,v?[t.batchSize,w,t.outChannels]:[t.batchSize,t.outChannels,w],I,N,L,Y,_,H),te=v?[z,A]:[A,z];if(s&&te.push(s),_&&te.push(o),H){const j=r.makeTensorInfo([],"float32",mu(i,"float32"));te.push(j),T.push(j)}const le=r.runWebGLProgram(re,te,"float32"),de=Ue({inputs:{x:le},backend:r,attrs:{shape:t.outShape}});T.push(le);for(const j of T)r.disposeIntermediateTensorInfo(j);return de}function Ase(n){const{inputs:e,backend:t,attrs:r}=n,{x:s,filter:o}=e,{strides:i,pad:a,dataFormat:l,dilations:c,dimRoundingMode:d}=r,p=ul(l),m=_r(s.shape,o.shape,i,c,a,d,!1,p);let y;if(m.filterHeight===1&&m.filterWidth===1&&m.dilationHeight===1&&m.dilationWidth===1&&m.strideHeight===1&&m.strideWidth===1&&(m.padInfo.type==="SAME"||m.padInfo.type==="VALID"))y=LF({x:s,filter:o,convInfo:m,backend:t});else if(m.strideWidth<=2&&p==="channelsLast"&&ye().getBool("WEBGL_EXP_CONV")){const b=new PF(m),w=[[m.padInfo.top,m.padInfo.left],[m.strideHeight,m.strideWidth],[m.dilationHeight,m.dilationWidth],[m.inHeight,m.inWidth]];y=t.runWebGLProgram(b,[s,o],"float32",w)}else if(ye().getBool("WEBGL_CONV_IM2COL"))y=MF({x:s,filter:o,convInfo:m,backend:t});else{const b=new FF(m);y=t.runWebGLProgram(b,[s,o],"float32")}const v=Ue({inputs:{x:y},backend:t,attrs:{shape:m.outShape}});return t.disposeIntermediateTensorInfo(y),v}const _se={kernelName:T1,backendName:"webgl",kernelFunc:Ase};class Dse{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideHeight,r=e.strideWidth,s=e.padInfo.top,o=e.padInfo.left,i=e.dataFormat==="channelsLast";this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int wR = coords.x; + int wC = coords.y; + int d1 = coords.z; + int d2 = coords.w; + + // Convolve x(?, ?, d1) with dy(:, :, d2) to get dw(wR, wC, d1, d2). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + + for (int b = 0; b < ${e.batchSize}; b++) { + for (int yR = 0; yR < ${e.outHeight}; yR++) { + int xR = wR + yR * ${t} - ${s}; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int yC = 0; yC < ${e.outWidth}; yC++) { + int xC = wC + yC * ${r} - ${o}; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + ${i?`float dyValue = getDy(b, yR, yC, d2); + float xValue = getX(b, xR, xC, d1); + dotProd += (xValue * dyValue);`:`float dyValue = getDy(b, d2, yR, yC); + float xValue = getX(b, d1, xR, xC); + dotProd += (xValue * dyValue);`} + } + } + } + setOutput(dotProd); + } + `}}class Ose{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterHeight,r=e.filterWidth,s=e.strideHeight,o=e.strideWidth,i=e.dataFormat==="channelsLast",a=t-1-e.padInfo.top,l=r-1-e.padInfo.left,c=i?1:2,d=i?2:3,p=i?3:1;this.userCode=` + const ivec2 pads = ivec2(${a}, ${l}); + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d1 = coords[${p}]; + + ivec2 dyCorner = ivec2(coords[${c}], coords[${d}]) - pads; + int dyRCorner = dyCorner.x; + int dyCCorner = dyCorner.y; + + // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + for (int wR = 0; wR < ${t}; wR++) { + float dyR = float(dyRCorner + wR) / ${s}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + int wRPerm = ${t} - 1 - wR; + + for (int wC = 0; wC < ${r}; wC++) { + float dyC = float(dyCCorner + wC) / ${o}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + int wCPerm = ${r} - 1 - wC; + + for (int d2 = 0; d2 < ${e.outChannels}; d2++) { + + if (${i}) { + float xValue = getDy(batch, idyR, idyC, d2); + float wValue = getW(wRPerm, wCPerm, d1, d2); + dotProd += xValue * wValue; + } else { + float xValue = getDy(batch, d2, idyR, idyC); + float wValue = getW(wRPerm, wCPerm, d1, d2); + dotProd += xValue * wValue; + } + + } + } + } + setOutput(dotProd); + } + `}}class Fse{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideDepth,r=e.strideHeight,s=e.strideWidth,o=e.padInfo.front,i=e.padInfo.top,a=e.padInfo.left;this.userCode=` + void main() { + ivec5 coords = getOutputCoords(); + int wF = coords.x; + int wR = coords.y; + int wC = coords.z; + int d1 = coords.w; + int d2 = coords.u; + + float dotProd = 0.0; + + for (int b = 0; b < ${e.batchSize}; b++) { + for (int yF = 0; yF < ${e.outDepth}; yF++) { + int xF = wF + yF * ${t} - ${o}; + + if (xF < 0 || xF >= ${e.inDepth}) { + continue; + } + + for (int yR = 0; yR < ${e.outHeight}; yR++) { + int xR = wR + yR * ${r} - ${i}; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int yC = 0; yC < ${e.outWidth}; yC++) { + int xC = wC + yC * ${s} - ${a}; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + float dyValue = getDy(b, yF, yR, yC, d2); + float xValue = getX(b, xF, xR, xC, d1); + dotProd += (xValue * dyValue); + } + } + } + } + setOutput(dotProd); + } + `}}class Pse{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterDepth,r=e.filterHeight,s=e.filterWidth,o=e.strideDepth,i=e.strideHeight,a=e.strideWidth,l=t-1-e.padInfo.front,c=r-1-e.padInfo.top,d=s-1-e.padInfo.left;this.userCode=` + const ivec3 pads = ivec3(${l}, ${c}, ${d}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int d1 = coords.u; + + + ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads; + int dyFCorner = dyCorner.x; + int dyRCorner = dyCorner.y; + int dyCCorner = dyCorner.z; + + float dotProd = 0.0; + for (int wF = 0; wF < ${t}; wF++) { + float dyF = float(dyFCorner + wF) / ${o}.0; + + if (dyF < 0.0 || dyF >= ${e.outDepth}.0 || fract(dyF) > 0.0) { + continue; + } + int idyF = int(dyF); + + int wFPerm = ${t} - 1 - wF; + + for (int wR = 0; wR < ${r}; wR++) { + float dyR = float(dyRCorner + wR) / ${i}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || + fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + int wRPerm = ${r} - 1 - wR; + + for (int wC = 0; wC < ${s}; wC++) { + float dyC = float(dyCCorner + wC) / ${a}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + int wCPerm = ${s} - 1 - wC; + + for (int d2 = 0; d2 < ${e.outChannels}; d2++) { + float xValue = getDy(batch, idyF, idyR, idyC, d2); + float wValue = getW(wFPerm, wRPerm, wCPerm, d1, d2); + dotProd += xValue * wValue; + } + } + } + } + setOutput(dotProd); + } + `}}function Lse(n){const{inputs:e,backend:t,attrs:r}=n,{x:s,dy:o}=e,{strides:i,pad:a,dataFormat:l,dimRoundingMode:c,filterShape:d}=r,p=ul(l),m=_r(s.shape,d,i,1,a,c,!1,p),y=new Dse(m);return t.runWebGLProgram(y,[s,o],"float32")}const Mse={kernelName:$S,backendName:"webgl",kernelFunc:Lse};class zse{constructor(e){this.variableNames=["dy","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"strides",type:"vec2"}],this.outputShape=e.inShape,this.enableShapeUniforms=Kr(this.outputShape.length);const t=e.filterHeight,r=e.filterWidth,s=t-1-e.padInfo.top,o=r-1-e.padInfo.left;this.userCode=` + const ivec2 pads = ivec2(${s}, ${o}); + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d1 = coords[3]; + + ivec2 dyCorner = ivec2(coords[1], coords[2]) - pads; + int dyRCorner = dyCorner.x; + int dyCCorner = dyCorner.y; + + vec4 result = vec4(0.); + for (int wR = 0; wR < ${t}; wR++) { + float dyR = float(dyRCorner + wR) / strides[0]; + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + int wRPerm = ${t} - 1 - wR; + + for (int wC = 0; wC < ${r}; wC++) { + int wCPerm = ${r} - 1 - wC; + + float dyC = float(dyCCorner + wC) / strides[1]; + bool idyCVal = (dyC >= 0.0) && (dyC < ${e.outWidth}.0) + && (fract(dyC) == 0.0); + int idyC = int(dyC); + + float dyC2 = float(dyCCorner + wC + 1) / strides[1]; + bool idyCVal2 = (dyC2 >= 0.0) && (dyC2 < ${e.outWidth}.0) + && (fract(dyC2) == 0.0); + int idyC2 = int(dyC2); + + if (idyCVal && idyCVal2) { + for (int d2 = 0; d2 < ${e.outChannels}; d2 += 2) { + vec4 wValue = getW(wRPerm, wCPerm, d1, d2); + vec4 dySample = getDy(batch, idyR, idyC, d2); + vec4 dySample2 = (idyC / 2 == idyC2 / 2) ? + dySample : getDy(batch, idyR, idyC2, d2); + + vec2 dyValue = mod(float(idyC), 2.) == 0. ? + dySample.xy : dySample.zw; + result.xy += vec2(dot(dyValue, wValue.xy), + dot(dyValue, wValue.zw)); + + dyValue = mod(float(idyC2), 2.) == 0. ? + dySample2.xy : dySample2.zw; + result.zw += vec2(dot(dyValue, wValue.xy), + dot(dyValue, wValue.zw)); + } + } else if (idyCVal) { + for (int d2 = 0; d2 < ${e.outChannels}; d2 += 2) { + vec4 wValue = getW(wRPerm, wCPerm, d1, d2); + vec4 dySample = getDy(batch, idyR, idyC, d2); + vec2 dyValue = mod(float(idyC), 2.) == 0. ? + dySample.xy : dySample.zw; + result.xy += vec2(dot(dyValue, wValue.xy), + dot(dyValue, wValue.zw)); + } + } else if (idyCVal2) { + for (int d2 = 0; d2 < ${e.outChannels}; d2 += 2) { + vec4 wValue = getW(wRPerm, wCPerm, d1, d2); + vec4 dySample = getDy(batch, idyR, idyC2, d2); + vec2 dyValue = mod(float(idyC2), 2.) == 0. ? + dySample.xy : dySample.zw; + result.zw += vec2(dot(dyValue, wValue.xy), + dot(dyValue, wValue.zw)); + } + } + } + } + setOutput(result); + } + `}}function Bse(n){const{inputs:e,backend:t,attrs:r}=n,{dy:s,filter:o}=e,{inputShape:i,strides:a,pad:l,dataFormat:c,dimRoundingMode:d}=r,p=ul(c),m=_r(i,o.shape,a,1,l,d,!1,p);if(ye().getBool("WEBGL_PACK_CONV2DTRANSPOSE")&&p==="channelsLast"){const y=[[m.strideHeight,m.strideWidth]],v=new zse(m);return t.runWebGLProgram(v,[s,o],"float32",y)}else{const y=new Ose(m);return t.runWebGLProgram(y,[s,o],"float32")}}const Use={kernelName:E1,backendName:"webgl",kernelFunc:Bse};function Wse(n){const{inputs:e,backend:t,attrs:r}=n,{x:s,filter:o}=e,{strides:i,pad:a,dilations:l}=r,c=xu(s.shape,o.shape,i,l,a),d=new Ese(c);return t.runWebGLProgram(d,[s,o],"float32")}const Vse={kernelName:R1,backendName:"webgl",kernelFunc:Wse};function Gse(n){const{inputs:e,backend:t,attrs:r}=n,{x:s,dy:o}=e,{strides:i,pad:a,filterShape:l}=r,c=xu(s.shape,l,i,1,a),d=new Fse(c);return t.runWebGLProgram(d,[s,o],"float32")}const jse={kernelName:NS,backendName:"webgl",kernelFunc:Gse};function Hse(n){const{inputs:e,backend:t,attrs:r}=n,{dy:s,filter:o}=e,{pad:i,strides:a,inputShape:l}=r,c=xu(l,o.shape,a,1,i),d=new Pse(c);return t.runWebGLProgram(d,[s,o],"float32")}const qse={kernelName:TS,backendName:"webgl",kernelFunc:Hse};const Kse=Pf+` + return cos(x); +`,Xse=` + vec4 result = cos(x); + bvec4 isNaN = isnan(x); + ${mh} + return result; +`,Yse=zt({opSnippet:Kse,packedOpSnippet:Xse}),Qse={kernelName:dg,backendName:"webgl",kernelFunc:Yse};const Jse=` + float e2x = exp(-x); + return (e2x + 1.0 / e2x) / 2.0; +`,Zse=zt({opSnippet:Jse}),eoe={kernelName:fg,backendName:"webgl",kernelFunc:Zse};class toe{constructor(e,t,r,s,o){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];const[i,a,l,c]=e,[d]=t,[p,m]=r;this.outputShape=[d,p,m,c];const y=s==="bilinear"?1:0,[v,b]=[`${a-1}.0`,`${l-1}.0`],[w,k,I]=p>1?[`${(a-1)/(p-1)}`,"(y2-y1) * height_ratio",`y1*${v} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${v}`],[N,T,A]=m>1?[`${(l-1)/(m-1)}`,"(x2-x1) * width_ratio",`x1*${b} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${b}`];this.userCode=` + const float height_ratio = float(${w}); + const float width_ratio = float(${N}); + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int y = coords[1]; + int x = coords[2]; + int d = coords[3]; + + // get box vals + float y1 = getBoxes(b,0); + float x1 = getBoxes(b,1); + float y2 = getBoxes(b,2); + float x2 = getBoxes(b,3); + + // get image in batch index + int bInd = round(getBoxInd(b)); + if(bInd < 0 || bInd >= ${i}) { + return; + } + + float height_scale = ${k}; + float width_scale = ${T}; + + float in_y = ${I}; + if( in_y < 0.0 || in_y > ${v} ) { + setOutput(float(${o})); + return; + } + float in_x = ${A}; + if( in_x < 0.0 || in_x > ${b} ) { + setOutput(float(${o})); + return; + } + + vec2 sourceFracIndexCR = vec2(in_x,in_y); + if(${y} == 1) { + // Compute the four integer indices. + ivec2 sourceFloorCR = ivec2(sourceFracIndexCR); + ivec2 sourceCeilCR = ivec2(ceil(sourceFracIndexCR)); + + float topLeft = getImage(b, sourceFloorCR.y, sourceFloorCR.x, d); + float bottomLeft = getImage(b, sourceCeilCR.y, sourceFloorCR.x, d); + float topRight = getImage(b, sourceFloorCR.y, sourceCeilCR.x, d); + float bottomRight = getImage(b, sourceCeilCR.y, sourceCeilCR.x, d); + + vec2 fracCR = sourceFracIndexCR - vec2(sourceFloorCR); + + float top = topLeft + (topRight - topLeft) * fracCR.x; + float bottom = bottomLeft + (bottomRight - bottomLeft) * fracCR.x; + float newValue = top + (bottom - top) * fracCR.y; + setOutput(newValue); + } else { + // Compute the coordinators of nearest neighbor point. + ivec2 sourceNearestCR = ivec2(floor( + sourceFracIndexCR + vec2(0.5,0.5))); + float newValue = getImage(b, sourceNearestCR.y, sourceNearestCR.x, d); + setOutput(newValue); + } + } + `}}const noe=n=>{const{inputs:e,backend:t,attrs:r}=n,{image:s,boxes:o,boxInd:i}=e,{cropSize:a,method:l,extrapolationValue:c}=r,d=new toe(s.shape,o.shape,a,l,c);return t.runWebGLProgram(d,[s,o,i],"float32")},roe={kernelName:RS,backendName:"webgl",kernelFunc:noe};var Km;(function(n){n.Prod="*",n.Sum="+"})(Km||(Km={}));class nT{constructor(e,t,r,s){this.op=e,this.outputShape=t,this.variableNames=["x"],this.customUniforms=[{name:"index",type:"float"}];const o=this.outputShape.length,i=this.op===Km.Prod?"1.0":"0.0",a=r?i:`getX(${rT(o,"coords",this.op)})`,l=this.outputShape[this.outputShape.length-1];let c="",d="";r?(c=s?`end != ${l-1}`:"end != 0",d=s?"end + 1":"end - 1"):(c=s?`end + pow2 < ${l}`:"end >= pow2",d=s?"end + pow2":"end - pow2"),this.userCode=` + void main() { + ${on(o)} coords = getOutputCoords(); + int end = ${sT(o,"coords",this.op)}; + float val = ${a}; + int pow2 = int(pow(2.0, index)); + if (${c}) { + int idx = ${d}; + ${sT(o,"coords",this.op)} = idx; + val ${this.op}= getX(${rT(o,"coords",this.op)}); + } + setOutput(val); + } + `}}function rT(n,e,t){if(n===1)return`${e}`;if(n===2)return`${e}.x, ${e}.y`;if(n===3)return`${e}.x, ${e}.y, ${e}.z`;if(n===4)return`${e}.x, ${e}.y, ${e}.z, ${e}.w`;throw new Error(`Cumulative ${t} for rank ${n} is not yet supported`)}function sT(n,e,t){if(n===1)return`${e}`;if(n===2)return`${e}.y`;if(n===3)return`${e}.z`;if(n===4)return`${e}.w`;throw new Error(`Cumulative ${t} for rank ${n} is not yet supported`)}function zF(n,e,t,r,s,o){const i=e.shape.length,a=En([r],i);let l=e;a!=null&&(l=cs({inputs:{x:e},backend:t,attrs:{perm:a}}));const c=Wn(1,i)[0];if(c!==i-1)throw new Error(`WebGL cumprod shader expects an inner-most axis=${e.shape.length-1} but got axis=${r}`);const d=l.shape[c];let p=Js({inputs:{x:l},backend:t});for(let m=0;m<=Math.ceil(Math.log2(d))-1;m++){const y=new nT(n,l.shape,!1,o),v=[[m]],b=p;p=t.runWebGLProgram(y,[p],p.dtype,v),t.disposeIntermediateTensorInfo(b)}if(s){const m=new nT(n,l.shape,s,o),y=p;p=t.runWebGLProgram(m,[p],p.dtype),t.disposeIntermediateTensorInfo(y)}if(a!=null){const m=yu(a),y=cs({inputs:{x:p},backend:t,attrs:{perm:m}});return t.disposeIntermediateTensorInfo(p),t.disposeIntermediateTensorInfo(l),y}return p}function soe(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{axis:o,exclusive:i,reverse:a}=r;return zF(Km.Prod,s,t,o,i,a)}const ooe={kernelName:ES,backendName:"webgl",kernelFunc:soe};function ioe(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{axis:o,exclusive:i,reverse:a}=r;return zF(Km.Sum,s,t,o,i,a)}const aoe={kernelName:A1,backendName:"webgl",kernelFunc:ioe};function loe(n){const{inputs:e,backend:t,attrs:r}=n,{x:s,weights:o}=e,{size:i,binaryOutput:a}=r;if(s.shape.length===1){const l=t.readSync(s.dataId),c=t.readSync(o.dataId),d=vF(l,c,o.dtype,o.shape,i);return t.makeTensorInfo([i],o.dtype,d)}else if(s.shape.length===2){const l=t.bufferSync(s),c=t.bufferSync(o),d=dte(l,c,i,a);return t.makeTensorInfo(d.shape,o.dtype,d.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${s.shape.length}.`)}const uoe={kernelName:AS,backendName:"webgl",kernelFunc:loe};class coe{constructor(e,t,r){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=r,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int h = ${this.getHeightCoordString()}; + int w = ${this.getWidthCoordString()}; + int d = ${this.getDepthCoordString()}; + + int in_h = h / ${t}; + int offset_h = imod(h, ${t}); + int in_w = w / ${t}; + int offset_w = imod(w, ${t}); + int offset_d = (offset_h * ${t} + offset_w) * + ${this.getOutputDepthSize()}; + int in_d = d + offset_d; + + float result = ${this.getInputSamplingString()}; + setOutput(result); + } + `}getHeightCoordString(){return this.dataFormat==="NHWC"?"coords[1]":"coords[2]"}getWidthCoordString(){return this.dataFormat==="NHWC"?"coords[2]":"coords[3]"}getDepthCoordString(){return this.dataFormat==="NHWC"?"coords[3]":"coords[1]"}getOutputDepthSize(){return this.dataFormat==="NHWC"?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return this.dataFormat==="NHWC"?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}}function hoe(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{blockSize:o,dataFormat:i}=r,a=s.shape[0],l=i==="NHWC"?s.shape[1]:s.shape[2],c=i==="NHWC"?s.shape[2]:s.shape[3],d=i==="NHWC"?s.shape[3]:s.shape[1],p=l*o,m=c*o,y=d/(o*o),v=i==="NHWC"?[a,p,m,y]:[a,y,p,m],b=new coe(v,o,i);return t.runWebGLProgram(b,[s],s.dtype)}const doe={kernelName:_S,backendName:"webgl",kernelFunc:hoe};class BF{constructor(e,t=!1,r=null,s=!1,o=!1){this.variableNames=["x","W"],this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=Kr(this.outputShape.length);const i=e.filterHeight,a=e.filterWidth,l=e.outChannels/e.inChannels;let c="",d="";r&&(s?c=`float activation(float a) { + float b = getPreluActivationWeightsAtOutCoords(); + ${r} + }`:o?c=`float activation(float a) { + float b = getLeakyreluAlphaAtOutCoords(); + ${r} + }`:c=` + float activation(float x) { + ${r} + } + `,d="result = activation(result);");const p=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),s&&this.variableNames.push("preluActivationWeights"),o&&this.variableNames.push("leakyreluAlpha"),this.userCode=` + ${c} + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords.x; + ivec2 xRCCorner = coords.yz * strides - pads; + int d2 = coords.w; + int d1 = d2 / ${l}; + int q = d2 - d1 * ${l}; + + int xRCorner = xRCCorner.x; + int xCCorner = xRCCorner.y; + + // Convolve x(?, ?, d1) with w(:, :, d1, q) to get y(yR, yC, d2). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + // TO DO(dsmilkov): Flatten the two for loops and vec4 the operations. + for (int wR = 0; wR < ${i}; wR++) { + int xR = xRCorner + wR * dilations[0]; + + if (xR < 0 || xR >= inDims[0]) { + continue; + } + + for (int wC = 0; wC < ${a}; wC++) { + int xC = xCCorner + wC * dilations[1]; + + if (xC < 0 || xC >= inDims[1]) { + continue; + } + + float xVal = getX(batch, xR, xC, d1); + float wVal = getW(wR, wC, d1, q); + dotProd += xVal * wVal; + } + } + + float result = dotProd; + ${p} + ${d} + setOutput(result); + } + `}}class UF{constructor(e,t=!1,r=null,s=!1,o=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=Kr(this.outputShape.length);const i=e.outChannels/e.inChannels,a=e.padInfo.left,l=e.strideWidth,c=e.dilationWidth,d=e.filterHeight,p=e.filterWidth,m=p;let y=` + int xR; int xC; int xCOffset; + vec4 wTexel; vec4 previous; vec4 final;`;for(let k=0;k=0 && xR < inDims[0]) { + `;for(let k=0;k<(m+1)/2;k++){const I=k*2;if(y+=` + xC = xCCorner + ${I*c}; + `,l===1){if(I= 0 && xCOffset < inDims[1] && xTexelC${I}Ready == 0) { + xTexelC${I} = getX(batch, xR, xCOffset, d1); + + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xCOffset + 1 >= inDims[1]) { + xTexelC${I}.zw = vec2(0.0); + } + xTexelC${I}Ready = 1; + } + `,c===1&&I>0?y+=` + xC${I} = vec4(xTexelC${I-2}.zw, xTexelC${I}.xy); + `:y+=` + xCOffset = xC + 1 - 2; + + if (xCOffset >= 0 && xCOffset < inDims[1]) { + previous = getX(batch, xR, xCOffset, d1); + + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xCOffset + 1 >= inDims[1]) { + previous.zw = vec2(0.0); + } + + xC${I} = vec4(previous.zw, xTexelC${I}.xy); + } else { + xC${I} = vec4(0.0, 0.0, xTexelC${I}.xy); + } + `):y+=` + if (xC >= 0 && xC < inDims[1] && xTexelC${I}Ready == 0) { + xTexelC${I} = getX(batch, xR, xC, d1); + if (xC + 1 >= inDims[1]) { + xTexelC${I}.zw = vec2(0.0); + } + xTexelC${I}Ready = 1; + } + + xC${I} = xTexelC${I}; + `,I+1= 0 && xCOffset < inDims[1] && xTexelC${I+1}Ready == 0) { + xTexelC${I+1} = getX(batch, xR, xCOffset, d1); + + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xCOffset + 1 >= inDims[1]) { + xTexelC${I+1}.zw = vec2(0.0); + } + xTexelC${I+1}Ready = 1; + } + `,c>1?y+=` + xCOffset -= 2; + if (xCOffset >= 0 && xCOffset < inDims[1]) { + previous = getX(batch, xR, xCOffset, d1); + xC${I+1} = vec4(previous.zw, xTexelC${I+1}.xy); + } else { + xC${I+1} = vec4(0.0, 0.0, xTexelC${I+1}.xy); + } + `:y+=` + xC${I+1} = vec4(xTexelC${I}.zw, xTexelC${I+1}.xy); + `):N===1?y+=` + xC${I+1} = xTexelC${I}; + `:y+=` + xCOffset = xC + ${N}; + + if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${I+1}Ready == 0) { + xTexelC${I+1} = getX(batch, xR, xCOffset, d1); + if (xCOffset + 1 >= inDims[1]) { + xTexelC${I+1}.zw = vec2(0.0); + } + xTexelC${I+1}Ready = 1; + } + + xC${I+1} = xTexelC${I+1}; + `}}else I= 0 && xCOffset < inDims[1] && xTexelC${I}Ready == 0) { + xTexelC${I} = getX(batch, xR, xCOffset, d1); + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xCOffset + 1 >= inDims[1]) { + xTexelC${I}.zw = vec2(0.0); + } + xTexelC${I}Ready = 1; + } + + if(xC + 1 >= 0 && xC + 1 < inDims[1] && xTexelC${I+1}Ready == 0) { + xTexelC${I+1} = getX(batch, xR, xC + 1, d1); + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if (xC + 2 >= inDims[1]) { + xTexelC${I+1}.zw = vec2(0.0); + } + xTexelC${I+1}Ready = 1; + } + + xC${I} = vec4(xTexelC${I}.zw, xTexelC${I+1}.zw); + `,I+1= 0 && xCOffset < inDims[1]) { + final = getX(batch, xR, xCOffset, d1); + } + xC${I+1} = vec4(xTexelC${I+1}.xy, final.xy); + `)):(y+=` + if(xC >= 0 && xC < inDims[1] && xTexelC${I}Ready == 0) { + xTexelC${I} = getX(batch, xR, xC, d1); + if (xC + 1 >= inDims[1]) { + xTexelC${I}.zw = vec2(0.0); + } + xTexelC${I}Ready = 1; + } + + xCOffset = xC + strides[1]; + if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${I+1}Ready == 0) { + xTexelC${I+1} = getX(batch, xR, xCOffset, d1); + if (xCOffset + 1 >= inDims[1]) { + xTexelC${I+1}.zw = vec2(0.); + } + xTexelC${I+1}Ready = 1; + } + + xC${I} = vec4( + xTexelC${I}.xy, xTexelC${I+1}.xy); + `,I+1`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${d}'`);const p=_r(s.shape,o.shape,i,d,a,c,!0);let m;ye().getBool("WEBGL_PACK_DEPTHWISECONV")&&p.strideWidth<=2&&p.outChannels/p.inChannels===1?m=new UF(p):m=new BF(p);const y=[[p.padInfo.top,p.padInfo.left],[p.strideHeight,p.strideWidth],[p.dilationHeight,p.dilationWidth],[p.inHeight,p.inWidth]];return t.runWebGLProgram(m,[s,o],"float32",y)}const poe={kernelName:_1,backendName:"webgl",kernelFunc:foe};class moe{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideHeight,r=e.strideWidth,s=e.padInfo.top,o=e.padInfo.left,i=e.outChannels/e.inChannels;this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int wR = coords.x; + int wC = coords.y; + int d1 = coords.z; + int dm = coords.w; + int d2 = d1 * ${i} + dm; + + float dotProd = 0.0; + + // TO DO: Vec4 over the batch size + for (int b = 0; b < ${e.batchSize}; b++) { + for (int yR = 0; yR < ${e.outHeight}; yR++) { + int xR = wR + yR * ${t} - ${s}; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int yC = 0; yC < ${e.outWidth}; yC++) { + int xC = wC + yC * ${r} - ${o}; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + float dyValue = getDy(b, yR, yC, d2); + float xValue = getX(b, xR, xC, d1); + dotProd += (xValue * dyValue); + } + } + } + setOutput(dotProd); + } + `}}class goe{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterHeight,r=e.filterWidth,s=e.strideHeight,o=e.strideWidth,i=t-1-e.padInfo.top,a=r-1-e.padInfo.left,l=e.outChannels/e.inChannels;this.userCode=` + const ivec2 pads = ivec2(${i}, ${a}); + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d1 = coords[3]; + ivec2 dyCorner = coords.yz - pads; + int dyRCorner = dyCorner.x; + int dyCCorner = dyCorner.y; + + float dotProd = 0.0; + + for (int wR = 0; wR < ${t}; wR++) { + float dyR = float(dyRCorner + wR) / ${s}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + int wRPerm = ${t} - 1 - wR; + + for (int wC = 0; wC < ${r}; wC++) { + float dyC = float(dyCCorner + wC) / ${o}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + int wCPerm = ${r} - 1 - wC; + + // TO DO: Vec4 over the channelMul + for (int dm = 0; dm < ${l}; dm++) { + int d2 = d1 * ${l} + dm; + float xValue = getDy(batch, idyR, idyC, d2); + float wValue = getW(wRPerm, wCPerm, d1, dm); + dotProd += xValue * wValue; + } + } + } + setOutput(dotProd); + } + `}}function xoe(n){const{inputs:e,backend:t,attrs:r}=n,{x:s,dy:o}=e,{strides:i,dilations:a,pad:l,dimRoundingMode:c,filterShape:d}=r,p=_r(s.shape,d,i,a,l,c,!0),m=new moe(p);return t.runWebGLProgram(m,[s,o],"float32")}const yoe={kernelName:DS,backendName:"webgl",kernelFunc:xoe};function voe(n){const{inputs:e,backend:t,attrs:r}=n,{dy:s,filter:o}=e,{strides:i,dilations:a,pad:l,dimRoundingMode:c,inputShape:d}=r,p=_r(d,o.shape,i,a,l,c,!0),m=new goe(p);return t.runWebGLProgram(m,[s,o],"float32")}const woe={kernelName:OS,backendName:"webgl",kernelFunc:voe};class boe{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` + void main() { + ivec2 coords = getOutputCoords(); + float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0; + setOutput(val); + } + `}}function Coe(n){const{inputs:e,backend:t}=n,{x:r}=e,s=[...r.shape,...r.shape],o=Se(r.shape),i=Ue({inputs:{x:r},backend:t,attrs:{shape:[o]}}),a=new boe(o),l=t.runWebGLProgram(a,[i],i.dtype),c=Ue({inputs:{x:l},backend:t,attrs:{shape:s}});return t.disposeIntermediateTensorInfo(i),t.disposeIntermediateTensorInfo(l),c}const Soe={kernelName:$E,backendName:"webgl",kernelFunc:Coe};class koe{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;const{inHeight:t,inWidth:r,padInfo:s,strideHeight:o,strideWidth:i,filterHeight:a,filterWidth:l,dilationHeight:c,dilationWidth:d}=e,{top:p,left:m}=s;this.userCode=` + const ivec2 strides = ivec2(${o}, ${i}); + const ivec2 pads = ivec2(${p}, ${m}); + const float neg_infinity = -3.4e38; + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords.x; + int d1 = coords.w; + ivec2 outTopLeftCorner = + coords.yz * strides - pads; + int hBeg = outTopLeftCorner.x; + int wBeg = outTopLeftCorner.y; + + float curVal = neg_infinity; + for (int h = 0; h < ${a}; h++) { + int hIn = hBeg + h * ${c}; + + if (hIn >= 0 && hIn < ${t}) { + for (int w = 0; w < ${l}; w++) { + int wIn = wBeg + w * ${d}; + + if (wIn >= 0 && wIn < ${r}) { + float xVal = getX(batch, hIn, wIn, d1); + float wVal = getW(h, w, d1); + + float val = xVal + wVal; + if (val > curVal) { + curVal = val; + } + } + } + } + } + + float result = curVal; + setOutput(result); + } + `}}function Ioe(n){const{inputs:e,backend:t,attrs:r}=n,{x:s,filter:o}=e,{strides:i,pad:a,dilations:l}=r,c=Zg(s.shape,o.shape,i,a,"NHWC",l);let d;const p=new koe(c);d=t.runWebGLProgram(p,[s,o],"float32");const m=Ue({inputs:{x:d},backend:t,attrs:{shape:c.outShape}});return t.disposeIntermediateTensorInfo(d),m}const $oe={kernelName:D1,backendName:"webgl",kernelFunc:Ioe};function Noe(n){const{inputs:e,backend:t,attrs:r}=n,{equation:s}=r,o=e,{allDims:i,summedDims:a,idDims:l}=rI(s,o.length);oI(i.length,l,o);const{path:c,steps:d}=iI(a,l),p=d.length;let m=null,y=i.length;const v=[];for(let b=0;b=0&&(m=jv({inputs:{x:m},backend:t,attrs:{axis:c[b]-(i.length-y),keepDims:!1}}),v.push(m)),y--)}for(const b of v)b!==m&&t.disposeIntermediateTensorInfo(b);return m}const Toe={kernelName:FS,backendName:"webgl",kernelFunc:Noe};const Eoe="return (x >= 0.0) ? x : (exp(x) - 1.0);",Roe=` + vec4 result; + + result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); + result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0); + result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0); + result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); + + return result; +`,Aoe=zt({opSnippet:Eoe,packedOpSnippet:Roe}),_oe={kernelName:mg,backendName:"webgl",kernelFunc:Aoe};const Doe="return (b >= 0.0) ? a : a * (b + 1.0);",Ooe=` + vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); + return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); +`,Foe=n=>{const{inputs:e,backend:t}=n,{dy:r,y:s}=e,o=ye().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Ff(Ooe,r.shape,s.shape):new sh(Doe,r.shape,s.shape);return t.runWebGLProgram(o,[r,s],r.dtype)},Poe={kernelName:PS,backendName:"webgl",kernelFunc:Foe};const Loe=` + return vec4(equal(a, b)); +`,Moe="return float(a == b);",zoe=Or({opSnippet:Moe,packedOpSnippet:Loe,dtype:"bool",cpuKernelImpl:xte}),Boe={kernelName:O1,backendName:"webgl",kernelFunc:zoe};const Uoe=` + // Error function is calculated approximately with elementary function. + // See "Handbook of Mathematical Functions with Formulas, + // Graphs, and Mathematical Tables", Abramowitz and Stegun. + float p = ${Yk}; + float a1 = ${Qk}; + float a2 = ${Jk}; + float a3 = ${Zk}; + float a4 = ${eI}; + float a5 = ${tI}; + + float sign = sign(x); + x = abs(x); + float t = 1.0 / (1.0 + p * x); + return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x)); +`,Woe=zt({opSnippet:Uoe}),Voe={kernelName:gg,backendName:"webgl",kernelFunc:Woe};const Goe=Pf+` + return exp(x); +`,joe=` + vec4 result = exp(x); + bvec4 isNaN = isnan(x); + result.r = isNaN.r ? x.r : result.r; + result.g = isNaN.g ? x.g : result.g; + result.b = isNaN.b ? x.b : result.b; + result.a = isNaN.a ? x.a : result.a; + + return result; +`,WF=zt({opSnippet:Goe,packedOpSnippet:joe,cpuKernelImpl:yte,dtype:"float32"}),Hoe={kernelName:xg,backendName:"webgl",kernelFunc:WF};function BC(n){const{inputs:e,attrs:t,backend:r}=n,{dim:s}=t,{input:o}=e,i=o.shape.length,a=o.shape.slice();let l=s;return s<0&&(U(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),a.splice(l,0,1),Ue({inputs:{x:o},backend:r,attrs:{shape:a}})}const qoe={kernelName:F1,backendName:"webgl",kernelFunc:BC};const oT="return exp(x) - 1.0;",Koe=zt({opSnippet:oT,packedOpSnippet:oT,cpuKernelImpl:vte}),Xoe={kernelName:yg,backendName:"webgl",kernelFunc:Koe};class iT{constructor(e,t,r){this.variableNames=["real","imag"];const s=t[1];this.outputShape=t;const o=r?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,i=r?`${s}.0`:"1.0";let a;if(e==="real")a="return real * expR - imag * expI;";else if(e==="imag")a="return real * expI + imag * expR;";else throw new Error(`FFT component must be either "real" or "imag", got ${e}.`);this.userCode=` + const float exponentMultiplier = ${o}; + + float unaryOpComplex(float real, float expR, float imag, float expI) { + ${a} + } + + float mulMatDFT(int batch, int index) { + float indexRatio = float(index) / float(${s}); + float exponentMultiplierTimesIndexRatio = + exponentMultiplier * indexRatio; + + float result = 0.0; + + for (int i = 0; i < ${s}; i++) { + // x = (-2|2 * PI / N) * index * i; + float x = exponentMultiplierTimesIndexRatio * float(i); + float expR = cos(x); + float expI = sin(x); + float real = getReal(batch, i); + float imag = getImag(batch, i); + + result += + unaryOpComplex(real, expR, imag, expI) / ${i}; + } + + return result; + } + + void main() { + ivec2 coords = getOutputCoords(); + setOutput(mulMatDFT(coords[0], coords[1])); + } + `}}function VF(n,e,t){const r=t.texData.get(n.dataId),s=Se(n.shape),o=n.shape[n.shape.length-1],i=s/o,a=Ue({inputs:{x:n},backend:t,attrs:{shape:[i,o]}}),l=a.shape,c=new iT("real",l,e),d=new iT("imag",l,e),p=[{dataId:r.complexTensorInfos.real.dataId,dtype:r.complexTensorInfos.real.dtype,shape:l},{dataId:r.complexTensorInfos.imag.dataId,dtype:r.complexTensorInfos.imag.dtype,shape:l}],m=t.runWebGLProgram(c,p,"float32"),y=t.runWebGLProgram(d,p,"float32"),v=ku({inputs:{real:m,imag:y},backend:t});t.disposeIntermediateTensorInfo(m),t.disposeIntermediateTensorInfo(y);const b=Ue({inputs:{x:v},backend:t,attrs:{shape:n.shape}});return t.disposeIntermediateTensorInfo(a),t.disposeIntermediateTensorInfo(v),b}function Yoe(n){const{inputs:e,backend:t}=n,{input:r}=e;return VF(r,!1,t)}const Qoe={kernelName:LS,backendName:"webgl",kernelFunc:Yoe};class Joe{constructor(e,t){this.outputShape=[],this.customUniforms=[{name:"value",type:"float"}],this.variableNames=["x"],this.outputShape=e,this.userCode=` + void main() { + // Input can be obtained from uniform value. + setOutput(value); + } + `}}function wx(n){const{backend:e,attrs:t}=n,{shape:r,value:s}=t;let{dtype:o}=t;if(o=o||Cf(s),o==="string"){const i=Mn(o,Se(r));return i.fill(s),e.makeTensorInfo(r,o,i)}else{const i=new Joe(r,s),a=[[s]];return e.runWebGLProgram(i,[],o,a)}}const Zoe={kernelName:MS,backendName:"webgl",kernelFunc:wx};class eie{constructor(e){this.variableNames=["Image"],this.outputShape=[];const t=e[2];this.outputShape=e,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int x = coords[2]; + + int coordX = ${t} - x - 1; + float outputValue; + if(coordX >= 0 && coordX < ${t}) { + outputValue = getImage(coords[0], coords[1], coordX, coords[3]); + } else { + outputValue = getImage(coords[0], coords[1], coords[2], coords[3]); + } + setOutput(outputValue); + } + `}}const tie={kernelName:zS,backendName:"webgl",kernelFunc:({inputs:n,backend:e})=>{const{image:t}=n,r=e,s=new eie(t.shape);return r.runWebGLProgram(s,[t],t.dtype)}};const aT="return floor(x);",nie=zt({opSnippet:aT,packedOpSnippet:aT,cpuKernelImpl:wte}),rie={kernelName:vg,backendName:"webgl",kernelFunc:nie};const sie=` + float s = sign(a) * sign(b); + int ia = round(a); + int ib = round(b); + if (ib != 0) { + // Windows (D3D) wants guaranteed non-zero int division at compile-time. + return float(idiv(ia, ib, s)); + } else { + return NAN; + } +`,oie=` + ivec4 ia = round(a); + ivec4 ib = round(b); + bvec4 cond = notEqual(ib, ivec4(0)); + ivec4 result = ivec4(0); + vec4 s = sign(a) * sign(b); + + // Windows (D3D) wants guaranteed non-zero int division at compile-time. + if (cond[0]) { + result[0] = idiv(ia[0], ib[0], s[0]); + } + if (cond[1]) { + result[1] = idiv(ia[1], ib[1], s[1]); + } + if (cond[2]) { + result[2] = idiv(ia[2], ib[2], s[2]); + } + if (cond[3]) { + result[3] = idiv(ia[3], ib[3], s[3]); + } + return vec4(result); +`,iie=Or({opSnippet:sie,packedOpSnippet:oie,dtype:"int32"}),aie={kernelName:wg,backendName:"webgl",kernelFunc:iie};class lie{constructor(e){this.variableNames=["A"];const t=hs(),[r,s]=e;this.outputShape=e,this.userCode=` + void main() { + ivec3 coords = getOutputCoords(); + int texR = coords[0]; + int texC = coords[1]; + int depth = coords[2]; + vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${s}.0, ${r}.0); + + vec4 values = ${t.texture2D}(A, uv); + float value; + if (depth == 0) { + value = values.r; + } else if (depth == 1) { + value = values.g; + } else if (depth == 2) { + value = values.b; + } else if (depth == 3) { + value = values.a; + } + + setOutput(floor(value * 255.0 + 0.5)); + } + `}}class uie{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;const t=hs(),[r,s]=e;this.outputShape=e,this.userCode=` + void main() { + ivec3 coords = getOutputCoords(); + int texR = coords[0]; + int texC = coords[1]; + int depth = coords[2]; + + vec4 result = vec4(0.); + + for(int row=0; row<=1; row++) { + for(int col=0; col<=1; col++) { + texC = coords[1] + row; + depth = coords[2] + col; + + vec2 uv = (vec2(texC, texR) + halfCR) / + vec2(${s}.0, ${r}.0); + vec4 values = ${t.texture2D}(A, uv); + float value; + if (depth == 0) { + value = values.r; + } else if (depth == 1) { + value = values.g; + } else if (depth == 2) { + value = values.b; + } else if (depth == 3) { + value = values.a; + } + + result[row * 2 + col] = floor(value * 255.0 + 0.5); + } + } + + ${t.output} = result; + } + `}}const cie={kernelName:uC,backendName:"webgl",kernelFunc:hie};let Gd,Bb=ye().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function hie(n){const{inputs:e,backend:t,attrs:r}=n;let{pixels:s}=e;const{numChannels:o}=r,i=typeof HTMLVideoElement<"u"&&s instanceof HTMLVideoElement,a=typeof HTMLImageElement<"u"&&s instanceof HTMLImageElement,[l,c]=i?[s.videoWidth,s.videoHeight]:[s.width,s.height],d=[c,l],p=[c,l,o];if(a||i){const b=ye().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(Gd==null||b!==Bb)&&(Bb=b,Gd=document.createElement("canvas").getContext("2d",{willReadFrequently:Bb})),Gd.canvas.width=l,Gd.canvas.height=c,Gd.drawImage(s,0,0,l,c),s=Gd.canvas}const m=t.makeTensorInfo(d,"int32");t.texData.get(m.dataId).usage=xo.PIXELS,t.gpgpu.uploadPixelDataToTexture(t.getTexture(m.dataId),s);const y=ye().getBool("WEBGL_PACK")?new uie(p):new lie(p),v=t.runWebGLProgram(y,[m],"int32");return t.disposeData(m.dataId),v}function die(n){const{inputs:e,backend:t,attrs:r}=n,{x:s,filter:o,bias:i,preluActivationWeights:a}=e,{strides:l,pad:c,dataFormat:d,dilations:p,dimRoundingMode:m,activation:y,leakyreluAlpha:v}=r,b=ul(d),w=_r(s.shape,o.shape,l,p,c,m,!1,b);let k;const I=[],N=i!=null,T=a!=null,A=y==="leakyrelu",O=()=>{const B=[s,o],z=(L,_)=>{if(_==="NCHW"&&L.shape.length===1&&L.shape[0]!==1){const H=Ue({inputs:{x:L},backend:t,attrs:{shape:[L.shape[0],1,1]}});return I.push(H),H}return L};if(N&&B.push(z(i,d)),T&&B.push(z(a,d)),A){const L=t.makeTensorInfo([],"float32",mu(v,"float32"));B.push(L),I.push(L)}return B};if(w.filterHeight===1&&w.filterWidth===1&&w.dilationHeight===1&&w.dilationWidth===1&&w.strideHeight===1&&w.strideWidth===1&&(w.padInfo.type==="SAME"||w.padInfo.type==="VALID"))k=LF({x:s,filter:o,convInfo:w,backend:t,bias:i,activation:y,preluActivationWeights:a,leakyreluAlpha:v});else if(w.strideWidth<=2&&b==="channelsLast"&&ye().getBool("WEBGL_EXP_CONV")){const B=y?Hm(y,!0):null,z=new PF(w,N,B,T,A),L=[[w.padInfo.top,w.padInfo.left],[w.strideHeight,w.strideWidth],[w.dilationHeight,w.dilationWidth],[w.inHeight,w.inWidth]],_=O();k=t.runWebGLProgram(z,_,"float32",L)}else if(ye().getBool("WEBGL_CONV_IM2COL"))k=MF({x:s,filter:o,convInfo:w,backend:t,bias:i,activation:y,preluActivationWeights:a,leakyreluAlpha:v});else{const B=y?Hm(y,!1):null,z=new FF(w,N,B,T,A),L=O();k=t.runWebGLProgram(z,L,"float32")}const P=Ue({inputs:{x:k},backend:t,attrs:{shape:w.outShape}});return I.push(k),I.forEach(B=>t.disposeIntermediateTensorInfo(B)),P}const fie={kernelName:My,backendName:"webgl",kernelFunc:die};function pie(n){const{inputs:e,backend:t,attrs:r}=n,{x:s,filter:o,bias:i,preluActivationWeights:a}=e,{strides:l,pad:c,dilations:d,dimRoundingMode:p,activation:m,leakyreluAlpha:y}=r,v=[];let b=d;b==null&&(b=[1,1]),U(Hr(l,b),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${b}'`);const w=_r(s.shape,o.shape,l,b,c,p,!0),k=ye().getBool("WEBGL_PACK_DEPTHWISECONV")&&w.strideWidth<=2&&w.outChannels/w.inChannels===1,I=m?Hm(m,k):null,N=[s,o],T=i!=null,A=a!=null,O=m==="leakyrelu";if(T&&N.push(i),A&&N.push(a),O){const L=t.makeTensorInfo([],"float32",mu(y,"float32"));N.push(L),v.push(L)}let P;k?P=new UF(w,T,I,A,O):P=new BF(w,T,I,A,O);const B=[[w.padInfo.top,w.padInfo.left],[w.strideHeight,w.strideWidth],[w.dilationHeight,w.dilationWidth],[w.inHeight,w.inWidth]],z=t.runWebGLProgram(P,N,"float32",B);return v.forEach(L=>t.disposeIntermediateTensorInfo(L)),z}const mie={kernelName:jE,backendName:"webgl",kernelFunc:pie};class gie{constructor(e,t,r,s){this.sliceDim=e,this.strides=t,this.paramsShape=s,this.variableNames=["x","indices"],this.outputShape=r;const o=on(r.length);let i=` + int index;`;for(let a=0;a= ${this.paramsShape[a]}; + flattenIndex += index * ${this.strides[a]};`;this.userCode=` + void main() { + ${o} coords = getOutputCoords(); + int flattenIndex = 0; + bool out_of_bounds = false; + + ${i} + + setOutput(out_of_bounds ? 0.0 : getX(flattenIndex, coords[1])); + } + `}}function xie(n){const{inputs:e,backend:t}=n,{params:r,indices:s}=e,o=s.shape,i=o[o.length-1],a=Se(r.shape),[l,c,d,p]=zk(r,s),m=Ue({inputs:{x:s},backend:t,attrs:{shape:[c,i]}}),y=Ue({inputs:{x:r},backend:t,attrs:{shape:[Se(r.shape)/d,d]}});if(t.shouldExecuteOnCPU([r,s])||r.dtype==="string"){const k=t.readSync(s.dataId),I=t.bufferSync(r),N=bte(k,I,r.dtype,c,i,d,p,r.shape,a);return t.makeTensorInfo(l,r.dtype,N.values)}const v=new gie(i,p,[c,d],r.shape),b=t.runWebGLProgram(v,[y,m],y.dtype),w=Ue({inputs:{x:b},backend:t,attrs:{shape:l}});return t.disposeIntermediateTensorInfo(m),t.disposeIntermediateTensorInfo(y),t.disposeIntermediateTensorInfo(b),w}const yie={kernelName:NE,backendName:"webgl",kernelFunc:xie};class vie{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;const r=on(this.rank),s=wie(e);this.userCode=` + void main() { + ${r} resRC = getOutputCoords(); + int index = int(getIndices(resRC.x, resRC.z)); + float inBounds = (index >= 0) && (index < ${e[2]}) ? 1.0 : 0.0; + setOutput(inBounds * getA(${s})); + } + `}}function wie(n,e){const t=["resRC.x","resRC.y","resRC.z","resRC.w"],r=[];for(let s=0;s=0,()=>`GatherV2: the index value ${A} is not in [0, ${N-1}]`)}}const c=uI(s,o,l,a),d=Se(o.shape),p=[],m=Ue({inputs:{x:s},backend:t,attrs:{shape:[c.batchSize,c.outerSize,c.dimSize,c.sliceSize]}}),y=Ue({inputs:{x:o},backend:t,attrs:{shape:[c.batchSize,d/c.batchSize]}});p.push(m),p.push(y);const v=[c.batchSize,c.outerSize,d/c.batchSize,c.sliceSize];if(t.shouldExecuteOnCPU([s,o])||s.dtype==="string"){const I=t.bufferSync(y),N=t.bufferSync(m),T=Cte(N,I,v);return p.forEach(A=>t.disposeIntermediateTensorInfo(A)),t.makeTensorInfo(c.outputShape,T.dtype,T.values)}const b=new vie(m.shape,v),w=t.runWebGLProgram(b,[m,y],m.dtype);p.push(w);const k=Ue({inputs:{x:w},backend:t,attrs:{shape:c.outputShape}});return p.forEach(I=>t.disposeIntermediateTensorInfo(I)),k}const bie={kernelName:L1,backendName:"webgl",kernelFunc:GF};const Cie="return float(a > b);",Sie=` + return vec4(greaterThan(a, b)); +`,kie=Or({opSnippet:Cie,packedOpSnippet:Sie,cpuKernelImpl:Ste,dtype:"bool"}),Iie={kernelName:M1,backendName:"webgl",kernelFunc:kie};const $ie="return float(a >= b);",Nie=` + return vec4(greaterThanEqual(a, b)); +`,Tie=Or({opSnippet:$ie,packedOpSnippet:Nie,dtype:"bool",cpuKernelImpl:kte}),Eie={kernelName:bg,backendName:"webgl",kernelFunc:Tie};function Rie(n){const{inputs:e,backend:t}=n,{input:r}=e;return VF(r,!0,t)}const Aie={kernelName:BS,backendName:"webgl",kernelFunc:Rie};const _ie="return float(!isnan(x) && !isinf(x));",Die=zt({opSnippet:_ie,dtype:"bool"}),Oie={kernelName:Sg,backendName:"webgl",kernelFunc:Die};const Fie="return float(isinf(x));",Pie=zt({opSnippet:Fie,dtype:"bool"}),Lie={kernelName:kg,backendName:"webgl",kernelFunc:Pie};const Mie="return float(isnan(x));",zie=zt({opSnippet:Mie,dtype:"bool"}),Bie={kernelName:Ig,backendName:"webgl",kernelFunc:zie};const Uie="return float(a < b);",Wie=` + return vec4(lessThan(a, b)); +`,Vie=Or({opSnippet:Uie,packedOpSnippet:Wie,cpuKernelImpl:Ite,dtype:"bool"}),Gie={kernelName:B1,backendName:"webgl",kernelFunc:Vie};const jie="return float(a <= b);",Hie=` + return vec4(lessThanEqual(a, b)); +`,qie=Or({opSnippet:jie,packedOpSnippet:Hie,cpuKernelImpl:$te,dtype:"bool"}),Kie={kernelName:U1,backendName:"webgl",kernelFunc:qie};function Xie(n){const{backend:e,attrs:t}=n,{start:r,stop:s,num:o}=t,i=Nte(r,s,o);return e.makeTensorInfo([i.length],"float32",i)}const Yie={kernelName:TE,backendName:"webgl",kernelFunc:Xie};const Qie=Pf+` + return x < 0.0 ? 0./0. : log(x); +`,Jie=` + vec4 result = log(x); + bvec4 isNaN = isnan(x); + result.r = isNaN.r ? x.r : (x.r < 0.0 ? 0./0. : result.r); + result.g = isNaN.g ? x.g : (x.g < 0.0 ? 0./0. : result.g); + result.b = isNaN.b ? x.b : (x.b < 0.0 ? 0./0. : result.b); + result.a = isNaN.a ? x.a : (x.a < 0.0 ? 0./0. : result.a); + return result; +`,Zie=zt({opSnippet:Qie,packedOpSnippet:Jie,cpuKernelImpl:Tte}),eae={kernelName:$g,backendName:"webgl",kernelFunc:Zie};const tae=Pf+` + return log(1.0 + x); +`,nae=zt({opSnippet:tae}),rae={kernelName:Ng,backendName:"webgl",kernelFunc:nae};const sae="return float(a >= 1.0 && b >= 1.0);",oae=` + return vec4( + vec4(greaterThanEqual(a, vec4(1.0))) * + vec4(greaterThanEqual(b, vec4(1.0)))); +`,iae=Or({opSnippet:sae,packedOpSnippet:oae,dtype:"bool"}),aae={kernelName:W1,backendName:"webgl",kernelFunc:iae};const lae="return float(!(x >= 1.0));",uae=zt({opSnippet:lae}),cae={kernelName:V1,backendName:"webgl",kernelFunc:uae};const hae="return float(a >= 1.0 || b >= 1.0);",dae=` + return min( + vec4(greaterThanEqual(a, vec4(1.0))) + + vec4(greaterThanEqual(b, vec4(1.0))), + vec4(1.0)); +`,fae=Or({opSnippet:hae,packedOpSnippet:dae,dtype:"bool"}),pae={kernelName:G1,backendName:"webgl",kernelFunc:fae};class mae{constructor(e,t,r,s,o){this.variableNames=["x"],this.outputShape=[];const i=t,a=e[3]-1;this.outputShape=e;let l;const c=`float(${r}) + float(${s}) * sum`;o===.5?l=`inversesqrt(${c})`:o===1?l=`1.0/(${c})`:l=`exp(log(${c}) * float(-${o}));`,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int r = coords[1]; + int c = coords[2]; + int d = coords[3]; + float x = getX(b, r, c, d); + float sum = 0.0; + for (int j = -${i}; j <= ${i}; j++) { + int idx = d + j; + if (idx >= 0 && idx <= ${a}) { + float z = getX(b, r, c, idx); + sum += z * z; + } + } + float val = x * ${l}; + setOutput(val); + } + `}}class gae{constructor(e,t,r,s,o){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;const i=t,a=e[3]-1;this.outputShape=e;let l;const c=`float(${r}) + float(${s}) * sum`;o===.5?l=`inversesqrt(${c})`:o===1?l=`1.0/(${c})`:l=`exp(log(${c}) * float(-${o}));`,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords.x; + int r = coords.y; + int c = coords.z; + int d = coords.w; + + bool hasNextCol = d < ${this.outputShape[3]}; + bool hasNextRow = c < ${this.outputShape[2]}; + + vec4 sum = vec4(0.); + vec4 xFragAtOutputCoords = getX(b, r, c, d); + + vec4 xAtOutputCoords = vec4( + getChannel(xFragAtOutputCoords, vec2(c, d)), + hasNextCol ? + getChannel(xFragAtOutputCoords, vec2(c, d + 1)) : 0.0, + hasNextRow ? + getChannel(xFragAtOutputCoords , vec2(c + 1, d)) : 0.0, + (hasNextRow && hasNextCol) ? + getChannel(xFragAtOutputCoords, vec2(c + 1, d + 1)) : 0.0 + ); + + int firstChannel = d - ${i}; + vec2 cache = vec2(0.); + if(firstChannel >= 0){ + vec4 firstChannelFrag = getX(b, r, c, firstChannel); + cache.x = getChannel(firstChannelFrag, vec2(c, firstChannel)); + if(hasNextRow){ + cache.y = getChannel(firstChannelFrag, vec2(c + 1, firstChannel)); + } + } + + ivec2 depth = ivec2(d, d + 1); + for (int j = - ${i}; j <= ${i}; j++) { + ivec2 idx = depth + j; + bvec2 aboveLowerBound = greaterThanEqual(idx, ivec2(0)); + bvec2 belowUpperBound = lessThanEqual(idx, ivec2(${a})); + + bool depthInRange = aboveLowerBound.x && belowUpperBound.x; + bool depthPlusOneInRange = aboveLowerBound.y && belowUpperBound.y; + + if(depthInRange || depthPlusOneInRange){ + vec4 z = vec4(0.); + vec4 xFragAtCurrentDepth; + z.xz = cache.xy; + if(depthPlusOneInRange && hasNextCol){ + xFragAtCurrentDepth = idx.y != d ? + getX(b, r, c, idx.y) : xFragAtOutputCoords; + z.y = getChannel(xFragAtCurrentDepth, vec2(c, idx.y)); + if(hasNextRow){ + z.w = getChannel(xFragAtCurrentDepth, vec2(c + 1, idx.y)); + } + } + cache.xy = z.yw; + sum += z * z; + } + } + vec4 result = xAtOutputCoords * ${l}; + setOutput(result); + } + `}}const xae=n=>{const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{depthRadius:o,bias:i,alpha:a,beta:l}=r,c=ye().getBool("WEBGL_PACK_NORMALIZATION")?new gae(s.shape,o,i,a,l):new mae(s.shape,o,i,a,l);return t.runWebGLProgram(c,[s],s.dtype)},yae={kernelName:j1,backendName:"webgl",kernelFunc:xae};class vae{constructor(e,t,r,s,o){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=r,this.alpha=s,this.beta=o,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int r = coords[1]; + int c = coords[2]; + + float result = 0.0; + for (int d = 0; d < ${this.depth}; ++d) { + int depthBegin = int(max(0.0, float(d - ${t}))); + int depthEnd = int(min(float(${this.depth}), + float(d + ${t} + 1))); + + const int MIN_DEPTH_BEGIN = 0; + const int MAX_DEPTH_END = ${this.depth}; + + float norm = 0.0; + for (int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k) { + if (k < depthBegin){ + continue; + } + else if (k >= depthBegin && k < depthEnd) { + norm += getInputImage(b, r, c, k) * getInputImage(b, r, c, k); + } + else { + break; + } + } + + norm = float(${s}) * norm + float(${r}); + + for(int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k){ + if (k < depthBegin){ + continue; + } + else if (k >= depthBegin && k < depthEnd){ + float dyi = -2.0 * float(${s}) + * float(${o}) + * getInputImage(b, r, c, k) * getOutputImage(b, r, c, d) + / norm; + if (k == d) { + dyi += pow(norm, -1.0 * ${o}); + } + if (k == coords[3]) { + dyi *= getDy(b, r, c, d); + result += dyi; + } + } + else { + break; + } + } + } + setOutput(result); + } + `}}const wae=n=>{const{inputs:e,backend:t,attrs:r}=n,{x:s,y:o,dy:i}=e,{depthRadius:a,bias:l,alpha:c,beta:d}=r,p=new vae(s.shape,a,l,c,d);return t.runWebGLProgram(p,[s,o,i],s.dtype)},bae={kernelName:WS,backendName:"webgl",kernelFunc:wae};function Cae(n,e,t,r){const s=Se(e),i=Se(n.shape)/s,a=Ue({inputs:{x:n},attrs:{shape:[i,s]},backend:r}),l=gh(a,n.dtype,"max",r),c=Ue({inputs:{x:l},attrs:{shape:t},backend:r});return r.disposeIntermediateTensorInfo(a),r.disposeIntermediateTensorInfo(l),c}function jF(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{reductionIndices:o,keepDims:i}=r,a=s.shape.length,l=Tt(o,s.shape);let c=l;const d=En(c,a),p=d!=null,m=t.shouldExecuteOnCPU([s]);let y=s;if(p){if(m){const N=t.texData.get(y.dataId).values,T=new Array(a);for(let P=0;P`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);const d=Xo(s.shape,o,i,c,a,l);if(d.filterWidth===1&&d.filterHeight===1&&Xt(d.inShape,d.outShape))return Js({inputs:{x:s},backend:t});const p=new qm(d,"max",!1);return t.runWebGLProgram(p,[s],s.dtype)}const Eae={kernelName:q1,backendName:"webgl",kernelFunc:Tae};function Rae(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{filterSize:o,strides:i,pad:a,dataFormat:l,dimRoundingMode:c}=r,d=[1,1,1],p=ll(s.shape,o,i,d,a,c,l),m=new KI(p,"max",!1);return t.runWebGLProgram(m,[s],s.dtype)}const Aae={kernelName:K1,backendName:"webgl",kernelFunc:Rae};class _ae{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;const t=e.strideHeight,r=e.strideWidth,s=e.dilationHeight,o=e.effectiveFilterHeight,i=e.effectiveFilterWidth,a=o-1-e.padInfo.top,l=i-1-e.padInfo.left,c=o*i-1;this.userCode=` + const ivec2 pads = ivec2(${a}, ${l}); + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + + ivec2 dyRCCorner = coords.yz - pads; + int dyRCorner = dyRCCorner.x; + int dyCCorner = dyRCCorner.y; + + // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + for (int wR = 0; wR < ${o}; + wR += ${s}) { + float dyR = float(dyRCorner + wR) / ${t}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + for (int wC = 0; wC < ${i}; wC++) { + float dyC = float(dyCCorner + wC) / ${r}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + float dyValue = getDy(b, idyR, idyC, d); + int maxPosValue = ${c} - int(getMaxPos(b, idyR, idyC, d)); + + // Get the current value, check it against the value from the + // position matrix. + int curPosValue = wR * ${i} + wC; + float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0); + + dotProd += dyValue * mask; + } + } + setOutput(dotProd); + } + `}}class Dae{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;const t=e.strideDepth,r=e.strideHeight,s=e.strideWidth,o=e.dilationDepth,i=e.dilationHeight,a=e.dilationWidth,l=e.effectiveFilterDepth,c=e.effectiveFilterHeight,d=e.effectiveFilterWidth,p=l-1-e.padInfo.front,m=c-1-e.padInfo.top,y=d-1-e.padInfo.left,v=l*c*d-1;this.userCode=` + const ivec3 pads = ivec3(${p}, ${m}, ${y}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int ch = coords.u; + + ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads; + int dyDCorner = dyCorner.x; + int dyRCorner = dyCorner.y; + int dyCCorner = dyCorner.z; + + // Convolve dy(?, ?, ?, ch) with pos mask(:, :, :, d) to get + // dx(xD, xR, xC, ch). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + + for (int wD = 0; wD < ${l}; + wD += ${o}) { + float dyD = float(dyDCorner + wD) / ${t}.0; + + if (dyD < 0.0 || dyD >= ${e.outDepth}.0 || fract(dyD) > 0.0) { + continue; + } + int idyD = int(dyD); + + for (int wR = 0; wR < ${c}; + wR += ${i}) { + float dyR = float(dyRCorner + wR) / ${r}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || + fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + for (int wC = 0; wC < ${d}; + wC += ${a}) { + float dyC = float(dyCCorner + wC) / ${s}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + float dyValue = getDy(batch, idyD, idyR, idyC, ch); + int maxPosValue = ${v} - + int(getMaxPos(batch, idyD, idyR, idyC, ch)); + + // Get the current value, check it against the value from the + // position matrix. + int curPosValue = + wD * ${c} * ${d} + + wR * ${d} + wC; + float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0); + + dotProd += dyValue * mask; + } + } + } + setOutput(dotProd); + } + `}}function Oae(n){const{inputs:e,backend:t,attrs:r}=n,{dy:s,input:o}=e,i=o,{filterSize:a,strides:l,pad:c,dimRoundingMode:d}=r,p=[1,1,1],m=ll(i.shape,a,l,p,c,d),y=new KI(m,"max",!0),v=t.runWebGLProgram(y,[i],i.dtype),b=new Dae(m),w=t.runWebGLProgram(b,[s,v],i.dtype);return t.disposeIntermediateTensorInfo(v),w}const Fae={kernelName:GS,backendName:"webgl",kernelFunc:Oae};function Pae(n){const{inputs:e,backend:t,attrs:r}=n,{dy:s,input:o,output:i}=e,a=o;xx([o,i],"maxPoolGrad");const{filterSize:l,strides:c,pad:d,dimRoundingMode:p}=r,m=Xo(a.shape,l,c,1,d,p),y=!0,v=new qm(m,"max",y),b=t.runWebGLProgram(v,[a],a.dtype),w=new _ae(m),k=t.runWebGLProgram(w,[s,b],a.dtype);return t.disposeIntermediateTensorInfo(b),k}const Lae={kernelName:VS,backendName:"webgl",kernelFunc:Pae};function Mae(n,e,t,r){let s=new qm(t,"max",!1);const o=r.runWebGLProgram(s,[n],"float32");s=new qm(t,"max",!0,!0,e);const i=r.runWebGLProgram(s,[n],"float32");return[o,i]}const zae={kernelName:EE,backendName:"webgl",kernelFunc:({inputs:n,attrs:e,backend:t})=>{const{x:r}=n,{filterSize:s,strides:o,pad:i,includeBatchInIndex:a}=e,l=t;U(r.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${r.shape.length}.`);const c=[1,1];U(Hr(o,c),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${o} and dilations '${c}'`);const d=Xo(r.shape,s,o,c,i),[p,m]=Mae(r,a,d,l);return[p,m]}};function Bae(n,e,t,r){const s=Se(e),i=Se(n.shape)/s,a=Ue({inputs:{x:n},attrs:{shape:[i,s]},backend:r}),l=gh(a,"float32","mean",r),c=Ue({inputs:{x:l},attrs:{shape:t},backend:r});return r.disposeIntermediateTensorInfo(a),r.disposeIntermediateTensorInfo(l),c}const Uae={kernelName:X1,backendName:"webgl",kernelFunc:({inputs:n,attrs:e,backend:t})=>{const{x:r}=n,{keepDims:s,axis:o}=e,i=t,a=r.shape.length,l=Tt(o,r.shape);let c=l;const d=En(c,a),p=d!=null,m=i.shouldExecuteOnCPU([r]),y=[];let v=r;if(p){if(m){const T=i.texData.get(v.dataId).values,A=new Array(a);for(let B=0;Bd[0]+e[p]+d[1]);const s=e.length,o=on(s),i=t.map(d=>d[0]).join(","),a=t.map((d,p)=>d[0]+e[p]).join(","),l=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,s),c=r==="reflect"?0:1;if(s===1){this.userCode=` + int start = ${i}; + int end = ${a}; + + void main() { + int outC = getOutputCoords(); + if (outC < start) { + outC = start * 2 - outC - ${c}; + } else if(outC >= end) { + outC = (end - 1) * 2 - outC + ${c}; + } + setOutput(getX(outC - start)); + } + `;return}this.userCode=` + ${o} start = ${o}(${i}); + ${o} end = ${o}(${a}); + + void main() { + ${o} outC = getOutputCoords(); + for (int i = 0; i < ${s}; i++) { + if (outC[i] < start[i]) { + outC[i] = start[i] * 2 - outC[i] - ${c}; + } else if(outC[i] >= end[i]) { + outC[i] = (end[i] - 1) * 2 - outC[i] + ${c}; + } + } + ${o} coords = outC - start; + setOutput(getX(${l})); + } + `}}class Xae{constructor(e,t,r){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((v,b)=>v[0]+e[b]+v[1]);const s=e.length,o=on(s),i=t.map(v=>v[0]).join(","),a=t.map((v,b)=>v[0]+e[b]).join(","),l=ls("rc",s),c=ls("source",s),d=`${l[s-1]} < ${this.outputShape[s-1]}`,p=s===1?"source":`vec2(${c.slice(-2).join()})`,m=r==="reflect"?0:1;let y="";if(s===1){const v=` + ${o} source = rc; + if (source < start) { + source = start * 2 - source - ${m}; + } else if (source >= end) { + source = (end - 1) * 2 - source + ${m}; + } + source -= start; + `;y=` + ${o} rc = outputLoc; + ${v} + result[0] = getChannel(getX(${c.join()}), ${p}); + ${l[s-1]} += 1; + if(${d}) { + ${v} + result[1] = getChannel(getX(${c.join()}), ${p}); + } + `}else{const v=` + ${o} source = rc; + ${o} lt = ${o}(lessThan(source, start)); + ${o} gte = ${o}(greaterThanEqual(source, end)); + ${o} orig = 1 - (lt + gte); + source = orig * source + + lt * (start * 2 - source - ${m}) + + gte * ((end - 1) * 2 - source + ${m}); + source -= start; + `;y=` + ${o} rc = outputLoc; + ${v} + result[0] = getChannel(getX(${c.join()}), ${p}); + ${l[s-1]} += 1; + if(${d}) { + ${v} + result[1] = getChannel(getX(${c.join()}), ${p}); + } + rc = outputLoc; + ${l[s-2]} += 1; + if(${l[s-2]} < ${this.outputShape[s-2]}) { + ${v} + result[2] = getChannel(getX(${c.join()}), ${p}); + ${l[s-1]} += 1; + if(${d}) { + ${v} + result[3] = getChannel(getX(${c.join()}), ${p}); + } + } + `}this.userCode=` + const ${o} start = ${o}(${i}); + const ${o} end = ${o}(${a}); + + void main() { + ${o} outputLoc = getOutputCoords(); + vec4 result = vec4(0.); + ${y} + setOutput(result); + } + `}}const Yae=({inputs:n,backend:e,attrs:t})=>{const{x:r}=n,{paddings:s,mode:o}=t,i=ye().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Xae(r.shape,s,o):new Kae(r.shape,s,o);return e.runWebGLProgram(i,[r],r.dtype)},Qae={kernelName:Q1,backendName:"webgl",kernelFunc:Yae};const Jae=`if (b == 0.0) return NAN; + return mod(a, b);`,Zae=` + vec4 result = mod(a, b); + bvec4 isNaN = equal(b, vec4(0.0)); + `+mh+` + return result; +`,ele=Or({opSnippet:Jae,packedOpSnippet:Zae}),tle={kernelName:Rg,backendName:"webgl",kernelFunc:ele};class nle{constructor(e,t,r){this.variableNames=["probs"],this.customUniforms=[{name:"seed",type:"float"}],this.outputShape=[e,r],this.userCode=` + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + + float r = random(seed); + float cdf = 0.0; + + for (int i = 0; i < ${t-1}; i++) { + cdf += getProbs(batch, i); + + if (r < cdf) { + setOutput(float(i)); + return; + } + } + + // If no other event happened, last event happened. + setOutput(float(${t-1})); + } + `}}const rle=` +if (a == b) { + return 1.0; +}; +return a / b;`,sle=` + // vec4 one = vec4(equal(a, b)); + // return one + (vec4(1.0) - one) * a / b; + vec4 result = a / b; + if(a.x == b.x) { + result.x = 1.; + } + if(a.y == b.y) { + result.y = 1.; + } + if(a.z == b.z) { + result.z = 1.; + } + if(a.w == b.w) { + result.w = 1.; + } + + return result; +`,HF=Or({opSnippet:rle,packedOpSnippet:sle,checkOutOfBounds:!0}),ole={kernelName:pg,backendName:"webgl",kernelFunc:HF};const lT="return a - b;",qF=Or({opSnippet:lT,packedOpSnippet:lT,supportsComplex:!0,cpuKernelImpl:Jte}),ile={kernelName:Hg,backendName:"webgl",kernelFunc:qF};function KF(n){const{inputs:e,backend:t,attrs:r}=n,{logits:s}=e,{dim:o}=r,i=Tt([o],s.shape),a=jF({inputs:{x:s},backend:t,attrs:{reductionIndices:i,keepDims:!1}}),l=Yn(a.shape,i),c=Ue({inputs:{x:a},backend:t,attrs:{shape:l}}),d=qF({inputs:{a:s,b:c},backend:t}),p=WF({inputs:{x:d},backend:t}),m=jv({inputs:{x:p},backend:t,attrs:{axis:i,keepDims:!1}}),y=Ue({inputs:{x:m},backend:t,attrs:{shape:l}}),v=HF({inputs:{a:p,b:y},backend:t});return t.disposeIntermediateTensorInfo(a),t.disposeIntermediateTensorInfo(c),t.disposeIntermediateTensorInfo(d),t.disposeIntermediateTensorInfo(p),t.disposeIntermediateTensorInfo(m),t.disposeIntermediateTensorInfo(y),v}const ale={kernelName:mv,backendName:"webgl",kernelFunc:KF};function lle(n){const{inputs:e,backend:t,attrs:r}=n,{logits:s}=e,{numSamples:o,seed:i,normalized:a}=r,l=a?s:KF({inputs:{logits:s},backend:t,attrs:{dim:s.shape.length-1}}),c=l.shape[0],d=l.shape[1],p=new nle(c,d,o),m=[[i]],y=t.runWebGLProgram(p,[l],"int32",m);return a||t.disposeIntermediateTensorInfo(l),y}const ule={kernelName:RE,backendName:"webgl",kernelFunc:lle};const cle=Qo+` + return -x; +`,hle=` + vec4 result = -x; + bvec4 isNaN = isnan(x); + + result.r = isNaN.r ? x.r : result.r; + result.g = isNaN.g ? x.g : result.g; + result.b = isNaN.b ? x.b : result.b; + result.a = isNaN.a ? x.a : result.a; + + return result; +`;function dle(n){const{inputs:e,backend:t}=n,{x:r}=e;if(t.shouldExecuteOnCPU([r])){const o=t.texData.get(r.dataId),[i,a]=Dte(o.values,r.shape,r.dtype);return t.makeTensorInfo(a,r.dtype,i)}let s;return ye().getBool("WEBGL_PACK_UNARY_OPERATIONS")?s=new tu(r.shape,hle):s=new la(r.shape,cle),t.runWebGLProgram(s,[r],r.dtype)}const fle={kernelName:J1,backendName:"webgl",kernelFunc:dle};const ple=Dk;function mle(n){go("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");const{inputs:e,backend:t,attrs:r}=n,{boxes:s,scores:o}=e,{maxOutputSize:i,iouThreshold:a,scoreThreshold:l}=r,c=t.readSync(s.dataId),d=t.readSync(o.dataId),{selectedIndices:p}=ple(c,d,i,a,l);return t.makeTensorInfo([p.length],"int32",new Int32Array(p))}const gle={kernelName:jS,backendName:"webgl",kernelFunc:mle};const xle=Ok;function yle(n){go("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");const{inputs:e,backend:t,attrs:r}=n,{boxes:s,scores:o}=e,{maxOutputSize:i,iouThreshold:a,scoreThreshold:l,padToMaxOutputSize:c}=r,d=t.readSync(s.dataId),p=t.readSync(o.dataId),{selectedIndices:m,validOutputs:y}=xle(d,p,i,a,l,c);return[t.makeTensorInfo([m.length],"int32",new Int32Array(m)),t.makeTensorInfo([],"int32",new Int32Array([y]))]}const vle={kernelName:HS,backendName:"webgl",kernelFunc:yle};const wle=Fk;function ble(n){go("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");const{inputs:e,backend:t,attrs:r}=n,{boxes:s,scores:o}=e,{maxOutputSize:i,iouThreshold:a,scoreThreshold:l,softNmsSigma:c}=r,d=t.readSync(s.dataId),p=t.readSync(o.dataId),m=i,y=a,v=l,b=c,{selectedIndices:w,selectedScores:k}=wle(d,p,m,y,v,b);return[t.makeTensorInfo([w.length],"int32",new Int32Array(w)),t.makeTensorInfo([k.length],"float32",new Float32Array(k))]}const Cle={kernelName:qS,backendName:"webgl",kernelFunc:ble};class Sle{constructor(e,t,r,s){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` + void main() { + ivec2 coords = getOutputCoords(); + int index = round(getIndices(coords.x)); + setOutput(mix(float(${s}), float(${r}), + float(index == coords.y))); + } + `}}const kle=n=>{const{inputs:e,backend:t,attrs:r}=n,{indices:s}=e,{dtype:o,depth:i,onValue:a,offValue:l}=r,c=Se(s.shape),d=new Sle(c,i,a,l),p=Ue({inputs:{x:s},backend:t,attrs:{shape:[c]}}),m=t.runWebGLProgram(d,[p],o);t.disposeIntermediateTensorInfo(p);const y=[...s.shape,i],v=Ue({inputs:{x:m},backend:t,attrs:{shape:y}});return t.disposeIntermediateTensorInfo(m),v},Ile={kernelName:tv,backendName:"webgl",kernelFunc:kle};function h1(n){const{inputs:e,backend:t}=n,{x:r}=e;if(r.dtype==="complex64"){const s=vx({inputs:{input:r},backend:t}),o=h1({inputs:{x:s},backend:t}),i=Hv({inputs:{input:r},backend:t}),a=h1({inputs:{x:i},backend:t}),l=ku({inputs:{real:o,imag:a},backend:t});return t.disposeIntermediateTensorInfo(s),t.disposeIntermediateTensorInfo(o),t.disposeIntermediateTensorInfo(i),t.disposeIntermediateTensorInfo(a),l}else return wx({attrs:{shape:r.shape,dtype:r.dtype,value:r.dtype==="string"?"":0},backend:t})}const $le={kernelName:yv,backendName:"webgl",kernelFunc:h1};function XF(n){const{inputs:e,backend:t}=n,{x:r}=e;if(r.dtype==="string")throw new Error("onesLike is not supported under string dtype");if(r.dtype==="complex64"){const s=vx({inputs:{input:r},backend:t}),o=XF({inputs:{x:s},backend:t}),i=Hv({inputs:{input:r},backend:t}),a=h1({inputs:{x:i},backend:t}),l=ku({inputs:{real:o,imag:a},backend:t});return t.disposeIntermediateTensorInfo(s),t.disposeIntermediateTensorInfo(o),t.disposeIntermediateTensorInfo(i),t.disposeIntermediateTensorInfo(a),l}else return wx({attrs:{shape:r.shape,dtype:r.dtype,value:1},backend:t})}const Nle={kernelName:ev,backendName:"webgl",kernelFunc:XF};function Tle(n){const{inputs:e,backend:t,attrs:r}=n,{axis:s}=r;if(e.length===1)return BC({inputs:{input:e[0]},backend:t,attrs:{dim:s}});const o=e[0].shape,i=e[0].dtype;e.forEach(d=>{fS(o,d.shape,"All tensors passed to stack must have matching shapes"),U(i===d.dtype,()=>"All tensors passed to stack must have matching dtypes")});const a=[],l=e.map(d=>{const p=BC({inputs:{input:d},backend:t,attrs:{dim:s}});return a.push(p),p}),c=OF({inputs:l,backend:t,attrs:{axis:s}});return a.forEach(d=>t.disposeIntermediateTensorInfo(d)),c}const Ele={kernelName:nv,backendName:"webgl",kernelFunc:Tle};class Rle{constructor(e,t,r){this.variableNames=["x"],this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((c,d)=>c[0]+e[d]+c[1]);const s=e.length,o=on(s),i=t.map(c=>c[0]).join(","),a=t.map((c,d)=>c[0]+e[d]).join(","),l=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,s);if(s===1){this.userCode=` + int start = ${i}; + int end = ${a}; + + void main() { + int outC = getOutputCoords(); + if (outC < start || outC >= end) { + setOutput(value); + } else { + setOutput(getX(outC - start)); + } + } + `;return}this.userCode=` + ${o} start = ${o}(${i}); + ${o} end = ${o}(${a}); + + void main() { + ${o} outC = getOutputCoords(); + if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) { + setOutput(value); + } else { + ${o} coords = outC - start; + setOutput(getX(${l})); + } + } + `}}class Ale{constructor(e,t,r){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((b,w)=>b[0]+e[w]+b[1]);const s=e.length,o=on(s),i=t.map(b=>b[0]).join(","),a=t.map((b,w)=>b[0]+e[w]).join(","),l=ls("rc",s),c=ls("source",s),d=`${l[s-1]} < ${this.outputShape[s-1]}`,p=s===1?"source":`vec2(${c.slice(-2).join()})`,m=[`${o} rc = outputLoc;`,`${l[s-1]} += 1; + if(${d}) { + `,s===1?"":`} + rc = outputLoc; + ${l[s-2]} += 1; + if(${l[s-2]} < ${this.outputShape[s-2]}) {`,s===1?"":` ${l[s-1]} += 1; + if(${d}) {`],y=s===1?"rc < start || rc >= end":"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))";let v="";for(let b=0,w=s===1?2:4;b{const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{paddings:o,constantValue:i}=r;if(Se(s.shape)===0){const c=o.map((d,p)=>d[0]+s.shape[p]+d[1]);return wx({backend:t,attrs:{shape:c,value:i,dtype:s.dtype}})}const a=ye().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Ale(s.shape,o,i):new Rle(s.shape,o,i),l=[[i]];return t.runWebGLProgram(a,[s],s.dtype,l)},_le={kernelName:rv,backendName:"webgl",kernelFunc:YF};const Dle=` + if(a < 0.0 && floor(b) < b){ + return NAN; + } + if (b == 0.0) { + return 1.0; + } + return (round(mod(b, 2.0)) != 1) ? + pow(abs(a), b) : sign(a) * pow(abs(a), b); +`,Ole=` + // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise. + vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1))); + vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1); + vec4 result = multiplier * pow(abs(a), b); + + // Ensure that a^0 = 1, including 0^0 = 1 as this correspond to TF and JS + bvec4 isExpZero = equal(b, vec4(0.0)); + result.r = isExpZero.r ? 1.0 : result.r; + result.g = isExpZero.g ? 1.0 : result.g; + result.b = isExpZero.b ? 1.0 : result.b; + result.a = isExpZero.a ? 1.0 : result.a; + + bvec4 isNaN1 = lessThan(a, vec4(0.0)); + bvec4 isNaN2 = lessThan(floor(b), b); + bvec4 isNaN = bvec4(isNaN1.x && isNaN2.x, isNaN1.y && isNaN2.y, isNaN1.z && isNaN2.z, isNaN1.w && isNaN2.w); + `+mh+` + return result; +`,Fle=Or({opSnippet:Dle,packedOpSnippet:Ole}),Ple={kernelName:_g,backendName:"webgl",kernelFunc:Fle};function Lle(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{axis:o,keepDims:i}=r,a=s.shape.length,l=[],c=Tt(o,s.shape);let d=c;const p=En(d,a);let m=s;p!=null&&(m=cs({inputs:{x:s},backend:t,attrs:{perm:p}}),d=Wn(d.length,a),l.push(m)),Dr("prod",d,a);let y;if(t.shouldExecuteOnCPU([m])){const v=t.texData.get(m.dataId).values,{outVals:b,outShape:w,outDtype:k}=Fte(m.shape,m.dtype,v,d);y=t.makeTensorInfo(w,k,b)}else{const[v,b]=yr(m.shape,d),w=Se(b),k=Ue({inputs:{x:m},backend:t,attrs:{shape:[-1,w]}}),I=ok(s.dtype),N=gh(k,I,"prod",t);y=Ue({inputs:{x:N},backend:t,attrs:{shape:v}}),l.push(k),l.push(N)}if(i){l.push(y);const v=Yn(y.shape,c);y=Ue({inputs:{x:y},backend:t,attrs:{shape:v}})}return l.forEach(v=>t.disposeIntermediateTensorInfo(v)),y}const Mle={kernelName:ov,backendName:"webgl",kernelFunc:Lle};function zle(n){const{inputs:e,backend:t,attrs:r}=n,{paramsNestedSplits:s,paramsDenseValues:o,indices:i}=e,{outputRaggedRank:a}=r,l=s.map(k=>t.readSync(k.dataId)),c=s.map(k=>k.shape),d=t.readSync(o.dataId),p=t.readSync(i.dataId),[m,y,v]=Pte(l,c,d,o.shape,o.dtype,p,i.shape,a),b=m.map(k=>t.makeTensorInfo([k.length],"int32",k)),w=t.makeTensorInfo(v,o.dtype,y);return b.concat([w])}const Ble={kernelName:AE,backendName:"webgl",kernelFunc:zle};function Ule(n){const{inputs:e,backend:t}=n,{starts:r,limits:s,deltas:o}=e,i=t.readSync(r.dataId),a=t.readSync(s.dataId),l=t.readSync(o.dataId),[c,d]=Lte(i,r.shape,r.dtype,a,s.shape,l,o.shape),p=t.makeTensorInfo([c.length],"int32",c),m=t.makeTensorInfo([d.length],r.dtype,d);return[p,m]}const Wle={kernelName:_E,backendName:"webgl",kernelFunc:Ule};function Vle(n){const{inputs:e,backend:t,attrs:r}=n,{shape:s,values:o,defaultValue:i,rowPartitionTensors:a}=e,{rowPartitionTypes:l}=r,c=t.readSync(s.dataId),d=t.readSync(o.dataId),p=t.readSync(i.dataId),m=a.map(w=>t.readSync(w.dataId)),y=a.map(w=>w.shape),[v,b]=Mte(c,s.shape,d,o.shape,o.dtype,p,i.shape,m,y,l);return t.makeTensorInfo(v,o.dtype,b)}const Gle={kernelName:DE,backendName:"webgl",kernelFunc:Vle};const QF=n=>{const{backend:e,attrs:t}=n,{start:r,stop:s,step:o,dtype:i}=t,a=zte(r,s,o,i);return e.makeTensorInfo([a.length],i,a)},jle={kernelName:KS,backendName:"webgl",kernelFunc:QF};const Hle="return 1.0 / x;",qle=zt({opSnippet:Hle}),Kle={kernelName:Dg,backendName:"webgl",kernelFunc:qle};const Xle=Qo+` + return (x < 0.0) ? 0.0 : x; +`,Yle=` + vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); + bvec4 isNaN = isnan(x); + + result.r = isNaN.r ? x.r : result.r; + result.g = isNaN.g ? x.g : result.g; + result.b = isNaN.b ? x.b : result.b; + result.a = isNaN.a ? x.a : result.a; + + return result; +`,Qle=zt({opSnippet:Xle,packedOpSnippet:Yle}),Jle={kernelName:Og,backendName:"webgl",kernelFunc:Qle};const Zle=Qo+` + return (x < 0.0) ? 0.0 : min(6.0, x); +`,eue=` + vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); + bvec4 isNaN = isnan(x); + + result.r = isNaN.r ? x.r : result.r; + result.g = isNaN.g ? x.g : result.g; + result.b = isNaN.b ? x.b : result.b; + result.a = isNaN.a ? x.a : result.a; + + return result; +`,tue=zt({opSnippet:Zle,packedOpSnippet:eue}),nue={kernelName:Fg,backendName:"webgl",kernelFunc:tue};class rue{constructor(e,t,r,s,o){this.variableNames=["A"],this.outputShape=[];const[i,a,l,c]=e;this.outputShape=[i,t,r,c];const d=[s&&t>1?a-1:a,s&&r>1?l-1:l],p=[s&&t>1?t-1:t,s&&r>1?r-1:r];let m;o?m="(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":m="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + const vec2 effectiveInputOverOutputRatioRC = vec2( + ${d[0]/p[0]}, + ${d[1]/p[1]}); + const vec2 inputShapeRC = vec2(${a}.0, ${l}.0); + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + ivec2 yRC = coords.yz; + + // Fractional source index. + vec2 sourceFracIndexRC = ${m}; + + // Compute the four integer indices. + ivec2 sourceFloorRC = ivec2(max(sourceFracIndexRC, vec2(0.0))); + ivec2 sourceCeilRC = ivec2( + min(inputShapeRC - 1.0, ceil(sourceFracIndexRC))); + + float topLeft = getA(b, sourceFloorRC.x, sourceFloorRC.y, d); + float bottomLeft = getA(b, sourceCeilRC.x, sourceFloorRC.y, d); + float topRight = getA(b, sourceFloorRC.x, sourceCeilRC.y, d); + float bottomRight = getA(b, sourceCeilRC.x, sourceCeilRC.y, d); + + vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC); + + float top = topLeft + (topRight - topLeft) * fracRC.y; + float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y; + float newValue = top + (bottom - top) * fracRC.x; + + setOutput(newValue); + } + `}}class sue{constructor(e,t,r,s,o){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];const[i,a,l,c]=e;this.outputShape=[i,t,r,c];const d=[s&&t>1?a-1:a,s&&r>1?l-1:l],p=[s&&t>1?t-1:t,s&&r>1?r-1:r];let m;o?m="(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":m="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + const vec3 effectiveInputOverOutputRatioRC = vec3( + ${d[0]/p[0]}, + ${d[1]/p[1]}, + ${d[1]/p[1]}); + const vec3 inputShapeRC = vec3(${a}.0, ${l}.0, + ${l}.0); + + float getAValue(int b, int r, int c, int d) { + return getChannel(getA(b, r, c, d), vec2(c, d)); + } + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + // Calculate values for next column in yRC.z. + ivec3 yRC = coords.yzz + ivec3(0, 0, 1); + + // Fractional source index. + vec3 sourceFracIndexRC = ${m}; + + // Compute the four integer indices. + ivec3 sourceFloorRC = ivec3(max(sourceFracIndexRC, vec3(0.0))); + ivec3 sourceCeilRC = ivec3( + min(inputShapeRC - 1.0, ceil(sourceFracIndexRC))); + + // Should we calculate next column and row elements in 2x2 packed cell. + bool hasNextCol = d < ${c-1}; + bool hasNextRow = coords.z < ${r-1}; + + // In parallel, construct four corners for all four components in + // packed 2x2 cell. + vec4 topLeft = vec4( + getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d), + hasNextCol ? getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d + 1) + : 0.0, + hasNextRow ? getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d) + : 0.0, + (hasNextRow && hasNextCol) ? + getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d + 1) : 0.0); + + vec4 bottomLeft = vec4( + getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d), + hasNextCol ? getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d + 1) + : 0.0, + hasNextRow ? getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d) + : 0.0, + (hasNextRow && hasNextCol) ? + getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d + 1) : 0.0); + + vec4 topRight = vec4( + getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d), + hasNextCol ? getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d + 1) + : 0.0, + hasNextRow ? getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d) + : 0.0, + (hasNextRow && hasNextCol) ? + getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d + 1) : 0.0); + + vec4 bottomRight = vec4( + getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d), + hasNextCol ? getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d + 1) + : 0.0, + hasNextRow ? getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d) + : 0.0, + (hasNextRow && hasNextCol) ? + getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d + 1) : 0.0); + + vec3 fracRC = sourceFracIndexRC - vec3(sourceFloorRC); + + vec4 top = mix(topLeft, topRight, fracRC.yyzz); + vec4 bottom = mix(bottomLeft, bottomRight, fracRC.yyzz); + vec4 newValue = mix(top, bottom, fracRC.x); + + setOutput(newValue); + } + `}}function oue(n){const{inputs:e,backend:t,attrs:r}=n,{images:s}=e,{alignCorners:o,halfPixelCenters:i,size:a}=r,[l,c]=a,d=ye().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new sue(s.shape,l,c,o,i):new rue(s.shape,l,c,o,i);return t.runWebGLProgram(d,[s],"float32")}const iue={kernelName:lv,backendName:"webgl",kernelFunc:oue};class aue{constructor(e,t,r){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;const[,s,o]=t,[,i,a]=e,l=[r&&i>1?s-1:s,r&&a>1?o-1:o],c=[r&&i>1?i-1:i,r&&a>1?a-1:a],d=l[0]/c[0],p=l[1]/c[1],m=1/d,y=1/p,v=Math.ceil(m)*2+2,b=Math.ceil(y)*2+2;this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + int r = coords[1]; + int c = coords[2]; + + float accumulator = 0.0; + + const float heightScale = float(${d}); + const float widthScale = float(${p}); + + const float invHeightScale = float(${m}); + const float invWidthScale = float(${y}); + + const int winHeight = int(${v}); + const int winWidth = int(${b}); + + // Compute bounds for where in dy we will look + float startRLerp = floor(float(r) * invHeightScale); + int startDyR = int(startRLerp - float(winHeight / 2)); + + float startCLerp = floor(float(c) * invWidthScale); + int startDyC = int(startCLerp - float(winWidth / 2)); + + // Loop over dy + for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) { + int dyR = dyROffset + startDyR; + + // Guard against the window exceeding the bounds of dy + if (dyR < 0 || dyR >= ${i}) { + continue; + } + + for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) { + int dyC = dyCOffset + startDyC; + + // Guard against the window exceeding the bounds of dy + if (dyC < 0 || dyC >= ${a}) { + continue; + } + + float dxR = float(dyR) * heightScale; + int topDxRIndex = int(floor(dxR)); + int bottomDxRIndex = int(min(ceil(dxR), ${s-1}.0)); + float dxRLerp = dxR - float(topDxRIndex); + float inverseDxRLerp = 1.0 - dxRLerp; + + float dxC = float(dyC) * widthScale; + int leftDxCIndex = int(floor(dxC)); + int rightDxCIndex = int(min(ceil(dxC), ${o-1}.0)); + float dxCLerp = dxC - float(leftDxCIndex); + float inverseDxCLerp = 1.0 - dxCLerp; + + if (r == topDxRIndex && c == leftDxCIndex) { + // topLeft + accumulator += + getDy(b, dyR, dyC, d) * inverseDxRLerp * inverseDxCLerp; + } + + if (r == topDxRIndex && c == rightDxCIndex) { + // topRight + accumulator += getDy(b, dyR, dyC, d) * inverseDxRLerp * dxCLerp; + } + + if (r == bottomDxRIndex && c == leftDxCIndex) { + // bottomLeft + accumulator += getDy(b, dyR, dyC, d) * dxRLerp * inverseDxCLerp; + } + + if (r == bottomDxRIndex && c == rightDxCIndex) { + // bottomRight + accumulator += getDy(b, dyR, dyC, d) * dxRLerp * dxCLerp; + } + } + } + // End loop over dy + + setOutput(accumulator); + } + `}}function lue(n){const{inputs:e,backend:t,attrs:r}=n,{images:s,dy:o}=e,{alignCorners:i}=r,a=new aue(o.shape,s.shape,i);return t.runWebGLProgram(a,[o],o.dtype)}const uue={kernelName:QS,backendName:"webgl",kernelFunc:lue};class cue{constructor(e,t,r,s,o){this.variableNames=["A"],this.outputShape=[];const[i,a,l,c]=e;this.outputShape=[i,t,r,c];const d=[s&&t>1?a-1:a,s&&r>1?l-1:l],p=[s&&t>1?t-1:t,s&&r>1?r-1:r],m=s?"0.5":"0.0";let y;o?y="max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":y="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + const vec2 effectiveInputOverOutputRatioRC = vec2( + ${d[0]/p[0]}, + ${d[1]/p[1]}); + const vec2 inputShapeRC = vec2(${a}.0, ${l}.0); + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + ivec2 yRC = coords.yz; + + // Fractional source index. + vec2 sourceFracIndexRC = ${y}; + + // Compute the coordinators of nearest neighbor point. + ivec2 sourceNearestRC = ivec2( + min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${m}))); + float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d); + + setOutput(newValue); + } + `}}class hue{constructor(e,t,r,s,o){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];const[i,a,l,c]=e;this.outputShape=[i,t,r,c];const d=[s&&t>1?a-1:a,s&&r>1?l-1:l],p=[s&&t>1?t-1:t,s&&r>1?r-1:r],m=s?"0.5":"0.0";let y;o?y="max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))":y="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + const vec3 effectiveInputOverOutputRatioRC = vec3( + ${d[0]/p[0]}, + ${d[1]/p[1]}, + ${d[1]/p[1]}); + const vec3 inputShapeRC = vec3(${a}.0, ${l}.0, + ${l}.0); + + float getAValue(int b, int r, int c, int d) { + return getChannel(getA(b, r, c, d), vec2(c, d)); + } + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + // Calculate values for next column in yRC.z. + ivec3 yRC = coords.yzz + ivec3(0, 0, 1); + + // Fractional source index. + vec3 sourceFracIndexRC = ${y}; + + // Compute the coordinators of nearest neighbor point. + ivec3 sourceNearestRC = ivec3( + min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${m}))); + + // Should we calculate next column and row elements in 2x2 packed cell. + bool hasNextCol = d < ${c-1}; + bool hasNextRow = coords.z < ${r-1}; + + vec4 newValue = vec4( + getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d), + hasNextCol ? getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d + 1) + : 0.0, + hasNextRow ? getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d) + : 0.0, + (hasNextRow && hasNextCol) ? + getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d + 1) : 0.0); + + setOutput(newValue); + } + `}}function due(n){const{inputs:e,backend:t,attrs:r}=n,{images:s}=e,{alignCorners:o,halfPixelCenters:i,size:a}=r,[l,c]=a,d=ye().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new hue(s.shape,l,c,o,i):new cue(s.shape,l,c,o,i);return t.runWebGLProgram(d,[s],s.dtype)}const fue={kernelName:av,backendName:"webgl",kernelFunc:due};class pue{constructor(e,t,r){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;const[,s,o]=t,[,i,a]=e,l=[r&&i>1?s-1:s,r&&a>1?o-1:o],c=[r&&i>1?i-1:i,r&&a>1?a-1:a],d=l[0]/c[0],p=l[1]/c[1],m=1/d,y=1/p,v=Math.ceil(m)*2+2,b=Math.ceil(y)*2+2;this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + int r = coords[1]; + int c = coords[2]; + + float accumulator = 0.0; + + const float heightScale = float(${d}); + const float widthScale = float(${p}); + + const float invHeightScale = float(${m}); + const float invWidthScale = float(${y}); + + const int winHeight = int(${v}); + const int winWidth = int(${b}); + + // Compute bounds for where in dy we will look + float startRLerp = floor(float(r) * invHeightScale); + int startDyR = int(floor(startRLerp - float(winHeight / 2))); + + float startCLerp = floor(float(c) * invWidthScale); + int startDyC = int(floor(startCLerp - float(winWidth / 2))); + + // Loop over dy + for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) { + int dyR = dyROffset + startDyR; + + // Guard against the window exceeding the bounds of dy + if (dyR < 0 || dyR >= ${i}) { + continue; + } + + for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) { + int dyC = dyCOffset + startDyC; + + // Guard against the window exceeding the bounds of dy + if (dyC < 0 || dyC >= ${a}) { + continue; + } + + float sourceFracRow = + float(${l[0]}) * + (float(dyR) / float(${c[0]})); + + float sourceFracCol = + float(${l[1]}) * + (float(dyC) / float(${c[1]})); + + int sourceNearestRow = int(min( + float(int(${s}) - 1), + ${r} ? float(round(sourceFracRow)) : + float(floor(sourceFracRow)))); + + int sourceNearestCol = int(min( + float(int(${o}) - 1), + ${r} ? float(round(sourceFracCol)) : + float(floor(sourceFracCol)))); + + if (r == sourceNearestRow && c == sourceNearestCol) { + accumulator += getDy(b, dyR, dyC, d); + } + } + } + // End loop over dy + + setOutput(accumulator); + } + `}}function mue(n){const{inputs:e,backend:t,attrs:r}=n,{images:s,dy:o}=e,{alignCorners:i}=r,a=new pue(o.shape,s.shape,i);return t.runWebGLProgram(a,[o],o.dtype)}const gue={kernelName:YS,backendName:"webgl",kernelFunc:mue};class xue{constructor(e,t){this.variableNames=["x"];const r=e.length;if(r>4)throw new Error(`WebGL backend: Reverse of rank-${r} tensor is not yet supported`);if(this.outputShape=e,r===1){this.userCode=` + void main() { + int coord = getOutputCoords(); + setOutput(getX(${e[0]} - coord - 1)); + } + `;return}const s=a=>t.indexOf(a)!==-1&&e[a]!==1?`${e[a]} - coords[${a}] - 1`:`coords[${a}]`,o=e.map((a,l)=>s(l)).join(","),i=on(r);this.userCode=` + void main() { + ${i} coords = getOutputCoords(); + setOutput(getX(${o})); + } + `}}class yue{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;const r=e.length;if(r>4)throw new Error(`WebGL backend: Reverse of rank-${r} tensor is not yet supported`);this.outputShape=e;const s=ls("rc",r),o=`${s[r-1]} + 1 < ${this.outputShape[r-1]}`,i=`${s[r-2]} + 1 < ${this.outputShape[r-2]}`,a=on(r);r===1?this.userCode=` + void main(){ + int rc = getOutputCoords(); + vec4 result = vec4(0.); + result.r = getChannel(getX(${e[0]} - rc - 1), + ${e[0]} - rc - 1); + if(${o}){ + result.g = getChannel(getX(${e[0]} - (rc + 1) - 1), + ${e[0]} - (rc + 1) - 1); + } + setOutput(result); + } + `:this.userCode=` + void main() { + ${a} rc = getOutputCoords(); + vec4 result = vec4(0.); + result.r = ${l(s.slice())}; + if(${o}){ + result.g = ${c(s.slice())}; + } + if(${i}) { + result.b = ${d(s.slice())}; + if(${o}) { + result.a = ${p(s.slice())}; + } + } + setOutput(result); + } + `;function l(v){return m(v)}function c(v){return v[r-1]="("+v[r-1]+" + 1)",m(v)}function d(v){return v[r-2]="("+v[r-2]+" + 1)",m(v)}function p(v){return v[r-1]="("+v[r-1]+" + 1)",v[r-2]="("+v[r-2]+" + 1)",m(v)}function m(v){const b=e.map((I,N)=>y(N,v)),w=b.join(","),k=b.slice(-2).join(",");return`getChannel(getX(${w}), vec2(${k}))`}function y(v,b){return t.indexOf(v)!==-1&&e[v]!==1?`${e[v]} - ${b[v]} - 1`:`${b[v]}`}}}function vue(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{dims:o}=r,i=s.shape.length,a=Tt(o,s.shape);if(i===0)return Js({inputs:{x:s},backend:t});const l=ye().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new yue(s.shape,a):new xue(s.shape,a);return t.runWebGLProgram(l,[s],s.dtype)}const wue={kernelName:uv,backendName:"webgl",kernelFunc:vue};class bue{constructor(e,t){this.variableNames=["Image"],this.outputShape=[],this.customUniforms=[{name:"params",type:"vec4"}];const r=e[1],s=e[2];this.outputShape=e;let o="";typeof t=="number"?o=`float outputValue = ${t.toFixed(2)};`:o=` + vec3 fill = vec3(${t.join(",")}); + float outputValue = fill[coords[3]];`,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int x = coords[2]; + int y = coords[1]; + float coordXFloat = (float(x) - params[0]) * params[3] - + (float(y) - params[1]) * params[2]; + float coordYFloat = (float(x) - params[0]) * params[2] + + (float(y) - params[1]) * params[3]; + int coordX = int(round(coordXFloat + params[0])); + int coordY = int(round(coordYFloat + params[1])); + ${o} + if(coordX >= 0 && coordX < ${s} && coordY >= 0 && coordY < ${r}) { + outputValue = getImage(coords[0], coordY, coordX, coords[3]); + } + setOutput(outputValue); + } + `}}const Cue={kernelName:sk,backendName:"webgl",kernelFunc:({inputs:n,attrs:e,backend:t})=>{const{image:r}=n,{radians:s,fillValue:o,center:i}=e,a=t,l=new bue(r.shape,o),[c,d]=qk(i,r.shape[1],r.shape[2]),p=[[c,d,Math.sin(s),Math.cos(s)]];return a.runWebGLProgram(l,[r],r.dtype,p)}};const Sue=` + // OpenGL ES does not support round function. + // The algorithm is based on banker's rounding. + float base = floor(x); + if ((x - base) < 0.5) { + return floor(x); + } else if ((x - base) > 0.5) { + return ceil(x); + } else { + if (mod(base, 2.0) == 0.0) { + return base; + } else { + return base + 1.0; + } + } +`,kue=zt({opSnippet:Sue}),Iue={kernelName:Pg,backendName:"webgl",kernelFunc:kue};const $ue="return inversesqrt(x);",Nue=zt({opSnippet:$ue,cpuKernelImpl:Bte}),Tue={kernelName:Lg,backendName:"webgl",kernelFunc:Nue};class XI{constructor(e,t,r,s,o,i,a=!0,l=!1){this.variableNames=["updates","indices","defaultValue"],this.outputShape=i;const c=on(o.length),d=on(i.length);let p="";r===1?p="i":r===2&&(p="i, j");const m=`getIndices(${p})`;let y="";s===1?y="i":s===2&&(y="i, coords[1]");const v=`getUpdates(${y})`;let b="";l&&(b="coords[0], coords[1]");const w=`getDefaultValue(${b})`,k=t>1?"strides[j]":"strides";this.userCode=` + ${c} strides = ${c}(${o}); + + void main() { + ${d} coords = getOutputCoords(); + float sum = 0.0; + bool found = false; + for (int i = 0; i < ${e}; i++) { + int flattenedIndex = 0; + for (int j = 0; j < ${t}; j++) { + int index = round(${m}); + flattenedIndex += index * ${k}; + } + if (flattenedIndex == coords[0]) { + sum += ${v}; + found = true; + } + } + setOutput(mix(${w}, sum, float(found))); + } + `}}class Eue{constructor(e,t,r,s,o,i,a=!0,l=!1){this.variableNames=["updates","indices","defaultValue"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=i;const c=on(o.length),d=on(i.length);let p="";r===1?p="i":r===2&&(p="i, j");const m=`getIndices(${p})`;let y="";s===1?y="i":s===2&&(y="i, coords[1]");const v=`getUpdates(${y})`;let b="";l&&(b="coords[0], coords[1]");const w=`getDefaultValue(${b})`,k=t>1?"strides[j]":"strides",I=t>1?"strides[j + 1]":"strides";this.userCode=` + ${c} strides = ${c}(${o}); + + void main() { + ${d} coords = getOutputCoords(); + vec4 sum = vec4(0.); + vec4 found = vec4(0.); + for (int i = 0; i < ${e}; i+=2) { + ivec2 flattenedIndex = ivec2(0); + for (int j = 0; j < ${t}; j+=2) { + ivec4 index = round(${m}); + flattenedIndex += index.xz * ${k}; + if (j + 1 < ${t}) { + flattenedIndex += index.yw * ${I}; + } + } + if (flattenedIndex[0] == coords[0] || flattenedIndex[1] == coords[0] || + flattenedIndex[0] == coords[0] + 1 || flattenedIndex[1] == coords[0] + 1) { + vec4 updVals = ${v}; + if (flattenedIndex[0] == coords[0]) { + sum.xy += updVals.xy; + found.xy = vec2(1.); + } else if (flattenedIndex[0] == coords[0] + 1) { + sum.zw += updVals.xy; + found.zw = vec2(1.); + } + if (flattenedIndex[1] == coords[0]) { + sum.xy += updVals.zw; + found.xy = vec2(1.); + } else if (flattenedIndex[1] == coords[0] + 1) { + sum.zw += updVals.zw; + found.zw = vec2(1.); + } + } + } + setOutput(mix(${w}, sum, found)); + } + `}}function Rue(n){const{inputs:e,backend:t,attrs:r}=n,{indices:s,updates:o}=e,{shape:i}=r,{sliceRank:a,numUpdates:l,sliceSize:c,strides:d,outputSize:p}=ch(o,s,i),m=[p/c,c];if(p===0)return t.makeTensorInfo(i,s.dtype);const y=Ue({inputs:{x:s},backend:t,attrs:{shape:[l,a]}}),v=Ue({inputs:{x:o},backend:t,attrs:{shape:[l,c]}}),b=t.makeTensorInfo([],"float32",new Float32Array([0]));let w;ye().getBool("WEBGL_PACK")?w=new Eue(l,a,y.shape.length,v.shape.length,d,m):w=new XI(l,a,y.shape.length,v.shape.length,d,m);const k=t.runWebGLProgram(w,[v,y,b],v.dtype),I=Ue({inputs:{x:k},backend:t,attrs:{shape:i}});return t.disposeIntermediateTensorInfo(y),t.disposeIntermediateTensorInfo(v),t.disposeIntermediateTensorInfo(k),t.disposeIntermediateTensorInfo(b),I}const Aue={kernelName:OE,backendName:"webgl",kernelFunc:Rue};class _ue{constructor(e,t,r,s){this.variableNames=["sortedSequence","values"],this.customUniforms=[{name:"numInputs",type:"int"}],this.outputShape=[e,r];const o="while (left < right) {",i=`for (int i = 0; i < ${Math.ceil(Math.log2(t+1))}; ++i) { if (left >= right) break;`,a=ye().getNumber("WEBGL_VERSION")===2?o:i,l=s==="left"?"<":"<=";this.userCode=` + int findBound(int batch, float value) { + int left = 0; + int right = numInputs; + int mid; + ${a} + mid = (left + right) / 2; + if (getSortedSequence(batch, mid) ${l} value) { + left = mid + 1; + } else { + right = mid; + } + } + return right; + } + + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int valueIndex = coords[1]; + + float value = getValues(batch, valueIndex); + + setOutput(float(findBound(batch, value))); + } + `}}function Due(n){const{inputs:e,backend:t,attrs:r}=n,{sortedSequence:s,values:o}=e,{side:i}=r,a=new _ue(s.shape[0],s.shape[1],o.shape[1],i),l=[[s.shape[1]]];return t.runWebGLProgram(a,[s,o],"int32",l)}const Oue={kernelName:PE,backendName:"webgl",kernelFunc:Due};class Fue{constructor(e,t,r){this.variableNames=["c","a","b"],this.outputShape=t;let s,o;if(r>4)throw Error(`Where for rank ${r} is not yet supported`);if(r===1)o="resRC",s="resRC";else{const a=["resRC.x","resRC.y","resRC.z","resRC.w"],l=[],c=[];for(let d=0;d= 1.0) { + setOutput(getA(${o})); + } else { + setOutput(getB(${o})); + } + } + `}}function Pue(n){const{inputs:e,backend:t}=n,{condition:r,t:s,e:o}=e,i=new Fue(r.shape.length,s.shape,s.shape.length);return t.runWebGLProgram(i,[r,s,o],Ys(s.dtype,o.dtype))}const Lue={kernelName:cv,backendName:"webgl",kernelFunc:Pue};const Mue=` + // Stable and Attracting Fixed Point (0, 1) for Normalized Weights. + // see: https://arxiv.org/abs/1706.02515 + float scaleAlpha = ${Tv}; + float scale = ${Ev}; + return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0); +`,zue=zt({opSnippet:Mue}),Bue={kernelName:Mg,backendName:"webgl",kernelFunc:zue};const Uue=Pf+` + return 1.0 / (1.0 + exp(-1.0 * x)); +`,Wue=` + vec4 result = 1.0 / (1.0 + exp(-1.0 * x)); + bvec4 isNaN = isnan(x); + + result.r = isNaN.r ? x.r : result.r; + result.g = isNaN.g ? x.g : result.g; + result.b = isNaN.b ? x.b : result.b; + result.a = isNaN.a ? x.a : result.a; + + return result; +`,Vue=zt({opSnippet:Uue,packedOpSnippet:Wue,cpuKernelImpl:Wte}),Gue={kernelName:Wg,backendName:"webgl",kernelFunc:Vue};const jue=` + if (isnan(x)) { return 0.0; } + return sign(x); +`,Hue=zt({opSnippet:jue}),que={kernelName:Ug,backendName:"webgl",kernelFunc:Hue};const Kue=Pf+` + return sin(x); +`,Xue=` + vec4 result = sin(x); + bvec4 isNaN = isnan(x); + ${mh} + return result; +`,Yue=zt({opSnippet:Kue,packedOpSnippet:Xue}),Que={kernelName:zg,backendName:"webgl",kernelFunc:Yue};const Jue=` + float e2x = exp(x); + return (e2x - 1.0 / e2x) / 2.0; +`,Zue=zt({opSnippet:Jue}),ece={kernelName:Bg,backendName:"webgl",kernelFunc:Zue};const tce=` + float epsilon = 1.1920928955078125e-7; + float threshold = log(epsilon) + 2.0; + + bool too_large = x > -threshold; + bool too_small = x < threshold; + + float result; + float exp_x = exp(x); + + if (too_large){ + result = x; + } + else if (too_small){ + result = exp_x; + } + else{ + result = log(exp_x + 1.0); + } + return result; +`,nce=zt({opSnippet:tce}),rce={kernelName:Vg,backendName:"webgl",kernelFunc:nce};const sce=n=>{const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{blockShape:o,paddings:i}=r;U(s.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");const a=o.reduce((k,I)=>k*I),l=[[0,0]];l.push(...i);for(let k=1+o.length;kt.disposeIntermediateTensorInfo(k)),w},oce={kernelName:fv,backendName:"webgl",kernelFunc:sce};function ice(n){const{inputs:e,backend:t}=n,{indices:r,values:s,denseShape:o,defaultValue:i}=e;if(o.shape.length!==1)throw new Error(`Dense shape must be a vector, saw: + ${o.shape}`);if(r.shape.length!==2)throw new Error(`Indices must be a matrix, saw: + ${r.shape}`);if(s.shape.length!==1)throw new Error(`Values must be a vector, saw: + ${s.shape}`);if(i.shape.length!==0)throw new Error(`Default value must be a scalar, saw: + ${i.shape}`);const a=t.readSync(r.dataId),l=t.readSync(s.dataId),c=t.readSync(o.dataId),d=t.readSync(i.dataId)[0],[p,m,y,v,b]=Gte(a,r.shape,r.dtype,l,s.dtype,c,d);return[t.makeTensorInfo(m,r.dtype,p),t.makeTensorInfo([m[0]],s.dtype,y),t.makeTensorInfo([v.length],"bool",new Uint8Array(v.map(w=>Number(w)))),t.makeTensorInfo([b.length],r.dtype,new Int32Array(b))]}const ace={kernelName:LE,backendName:"webgl",kernelFunc:ice};function lce(n){const{inputs:e,backend:t}=n,{inputIndices:r,inputShape:s,newShape:o}=e;if(r.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Input shape should be a vector but received shape ${s.shape}`);if(o.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${o.shape}`);const i=Array.from(t.readSync(s.dataId)),a=t.readSync(r.dataId),l=Array.from(t.readSync(o.dataId)),[c,d,p]=jte(a,r.shape,r.dtype,i,l);return[t.makeTensorInfo(d,r.dtype,c),t.makeTensorInfo([p.length],o.dtype,new Int32Array(p))]}const uce={kernelName:ME,backendName:"webgl",kernelFunc:lce};function cce(n){const{inputs:e,backend:t}=n,{data:r,indices:s,segmentIds:o}=e;if(r.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(s.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${s.shape}`);if(o.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape + ${o.shape}`);const i=t.readSync(r.dataId),a=t.readSync(s.dataId),l=t.readSync(o.dataId),[c,d]=bF(i,r.shape,r.dtype,a,l,!0);return t.makeTensorInfo(d,r.dtype,c)}const hce={kernelName:zE,backendName:"webgl",kernelFunc:cce};function dce(n){const{inputs:e,backend:t}=n,{data:r,indices:s,segmentIds:o}=e;if(r.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(s.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${s.shape}`);if(o.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape + ${o.shape}`);const i=t.readSync(r.dataId),a=t.readSync(s.dataId),l=t.readSync(o.dataId),[c,d]=bF(i,r.shape,r.dtype,a,l);return t.makeTensorInfo(d,r.dtype,c)}const fce={kernelName:BE,backendName:"webgl",kernelFunc:dce};function pce(n){const{inputs:e,backend:t,attrs:r}=n,{sparseIndices:s,sparseValues:o,defaultValue:i}=e,{outputShape:a}=r,{sliceRank:l,numUpdates:c,sliceSize:d,strides:p,outputSize:m}=ch(o,s,a),y=!1;if(o.dtype==="string"){const k=t.bufferSync(s),I=t.bufferSync(o),N=au(t.readSync(i.dataId)[0]),T=Ute(k,I,a,m,d,c,l,p,N,y);return t.makeTensorInfo(a,T.dtype,T.values)}const v=new XI(c,l,s.shape.length,o.shape.length,p,[m,1],y),b=t.runWebGLProgram(v,[o,s,i],o.dtype),w=Ue({inputs:{x:b},backend:t,attrs:{shape:a}});return t.disposeIntermediateTensorInfo(b),w}const mce={kernelName:UE,backendName:"webgl",kernelFunc:pce};function gce(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{numOrSizeSplits:o,axis:i}=r,a=Tt(i,s.shape)[0],l=lI(s,o,a),c=s.shape.length,d=new Array(c).fill(0),p=s.shape.slice();return l.map(m=>{const y=[...p];y[a]=m;const v=Lf({inputs:{x:s},backend:t,attrs:{begin:d,size:y}});return d[a]+=m,v})}const xce={kernelName:pv,backendName:"webgl",kernelFunc:gce};const uT="return sqrt(x);",yce=zt({opSnippet:uT,packedOpSnippet:uT,cpuKernelImpl:Hte}),vce={kernelName:Gg,backendName:"webgl",kernelFunc:yce};const wce="return x * x;",bce=zt({opSnippet:wce}),Cce={kernelName:JS,backendName:"webgl",kernelFunc:bce};const cT="return (a - b) * (a - b);",Sce=Or({opSnippet:cT,packedOpSnippet:cT}),kce={kernelName:jg,backendName:"webgl",kernelFunc:Sce};function Ice(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e;if(s.dtype!=="string")throw new Error("Input must be of datatype string");const o=t.readSync(s.dataId),i=il(o),a=qte(i,"string",r);return t.makeTensorInfo(s.shape,"string",a)}const $ce={kernelName:ZS,backendName:"webgl",kernelFunc:Ice};function Nce({inputs:n,attrs:e,backend:t}){const{x:r}=n,s=Qo+` + return x > 0.0 ? 1.0 : float(${e.alpha}); + `,o=new la(r.shape,s);return t.runWebGLProgram(o,[r],r.dtype)}const Tce={kernelName:Yg,backendName:"webgl",kernelFunc:Nce};class Ece{constructor(e,t,r){this.variableNames=["x"],this.outputShape=r;const s=r.length,o=on(r.length),i=on(r.length);let a="";if(s===1)a="coords * strides + begin";else{let l=0;a=r.map((c,d)=>(l++,r.length===1?`coords * strides[${d}] + begin[${d}]`:`coords[${l-1}] * strides[${d}] + begin[${d}]`)).join(",")}this.userCode=` + ${o} begin = ${o}(${e}); + ${o} strides = ${o}(${t}); + + void main() { + ${i} coords = getOutputCoords(); + setOutput(getX(${a})); + } + `}}function Rce(n){const{inputs:e,backend:t,attrs:r}=n,{x:s}=e,{begin:o,end:i,strides:a,beginMask:l,endMask:c,ellipsisMask:d,newAxisMask:p,shrinkAxisMask:m}=r,{finalShapeSparse:y,finalShape:v,isIdentity:b,sliceDim0:w,isSimpleSlice:k,begin:I,end:N,strides:T}=Gk(s.shape,o,i,a,l,c,d,p,m);let A;if(b)A=Ue({inputs:{x:s},backend:t,attrs:{shape:v}});else if(w||k){U(s.shape.length>=1,()=>`Input must have rank at least 1, got: ${s.shape.length}`);const P=Uk(I,N,T),B=Lf({inputs:{x:s},backend:t,attrs:{begin:I,size:P}});A=Ue({inputs:{x:B},backend:t,attrs:{shape:v}}),t.disposeIntermediateTensorInfo(B)}else if(t.shouldExecuteOnCPU([s])){const B=t.readSync(s.dataId),z=Nt(s.shape,s.dtype,B),L=Kte(y,z,T,I);A=t.makeTensorInfo(v,s.dtype,L.values)}else{const B=new Ece(I,T,y);A=t.runWebGLProgram(B,[s],s.dtype)}const O=Ue({inputs:{x:A},backend:t,attrs:{shape:v}});return t.disposeIntermediateTensorInfo(A),O}const Ace={kernelName:ek,backendName:"webgl",kernelFunc:Rce};function _ce(n){const{inputs:e,backend:t,attrs:r}=n,{separator:s,nGramWidths:o,leftPad:i,rightPad:a,padWidth:l,preserveShortSequences:c}=r,{data:d,dataSplits:p}=e,m=t.readSync(d.dataId),y=t.readSync(p.dataId),[v,b]=Xte(m,y,s,o,i,a,l,c);return[t.makeTensorInfo([v.length],"string",v),t.makeTensorInfo(p.shape,"int32",b)]}const Dce={kernelName:WE,backendName:"webgl",kernelFunc:_ce};function Oce(n){const{inputs:e,backend:t,attrs:r}=n,{skipEmpty:s}=r,{input:o,delimiter:i}=e;if(o.dtype!=="string")throw new Error("Input must be of datatype string");if(o.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${o.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);const a=t.readSync(o.dataId),l=t.readSync(i.dataId)[0],[c,d,p]=Yte(a,l,s),m=d.length;return[t.makeTensorInfo([m,2],"int32",c),t.makeTensorInfo([m],"string",d),t.makeTensorInfo([2],"int32",new Int32Array(p))]}const Fce={kernelName:VE,backendName:"webgl",kernelFunc:Oce};function Pce(n){const{inputs:e,backend:t,attrs:r}=n,{numBuckets:s}=r,{input:o}=e;if(o.dtype!=="string")throw new Error("Input must be of datatype string");if(s<=0)throw new Error("Number of buckets must be at least 1");const i=t.readSync(o.dataId),a=Qte(i,s);return t.makeTensorInfo(o.shape,"int32",a)}const Lce={kernelName:GE,backendName:"webgl",kernelFunc:Pce};const Mce="return tan(x);",zce=zt({opSnippet:Mce}),Bce={kernelName:qg,backendName:"webgl",kernelFunc:zce};const Uce=` + float e2x = exp(-2.0 * abs(x)); + return sign(x) * (1.0 - e2x) / (1.0 + e2x); +`,Wce=zt({opSnippet:Uce}),Vce={kernelName:Kg,backendName:"webgl",kernelFunc:Wce};function Gce(n){const{inputs:e,backend:t,attrs:r}=n,{tensor:s,indices:o,updates:i}=e,{sliceRank:a,numUpdates:l,sliceSize:c,strides:d,outputSize:p}=ch(i,o,s.shape),m=[p/c,c];if(p===0)return t.makeTensorInfo(s.shape,o.dtype);const y=Ue({inputs:{x:o},backend:t,attrs:{shape:[l,a]}}),v=Ue({inputs:{x:i},backend:t,attrs:{shape:[l,c]}}),b=Ue({inputs:{x:s},backend:t,attrs:{shape:m}}),w=new XI(l,a,y.shape.length,v.shape.length,d,m,!1,!0),k=t.runWebGLProgram(w,[v,y,b],b.dtype),I=Ue({inputs:{x:k},backend:t,attrs:{shape:s.shape}});return t.disposeIntermediateTensorInfo(y),t.disposeIntermediateTensorInfo(v),t.disposeIntermediateTensorInfo(b),t.disposeIntermediateTensorInfo(k),I}const jce={kernelName:FE,backendName:"webgl",kernelFunc:Gce};class Hce{constructor(e,t){this.variableNames=["A"];const r=new Array(e.length);for(let i=0;i5)throw Error(`Tile for rank ${e} is not yet supported`);if(e===1)return`imod(resRC, ${n[0]})`;const t=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],r=[];for(let s=0;s5){const l=t.readSync(s.dataId),c=s.dtype==="string"?l.map(m=>au(m)):l,d=Nt(s.shape,s.dtype,c),p=Zte(d,o);return t.makeTensorInfo(p.shape,p.dtype,p.values)}const i=new Hce(s.shape,o);return t.runWebGLProgram(i,[s],s.dtype)}const Kce={kernelName:Xg,backendName:"webgl",kernelFunc:JF};class Xce{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"negativeInf",type:"float"},{name:"dir",type:"int"},{name:"inc",type:"int"}],this.outputShape=e,this.userCode=` + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int elemIdx = coords[1]; + + // We compare elements pair-wise within a group of size 2 * inc. + // The comparing rule for each group alternates between ascending + // and descending. Within each group, we compare each pair at + // positions i and i+inc. To decide whether an element at position i + // is x0 or x1, we mod it by 2 * inc, if the result is smaller than + // inc, it is in the first half of the group, we denote it as x0, + // otherwise we denote it as x1. + // For example, as shown in the Bitonic top K paper referenced above, + // Figure5(a) shows that element[1] is in the + // second half of the group when group size is 2, but it is in the + // first half of the group when group size is 4. + + bool isFirstInPair = imod(elemIdx, 2 * inc) < inc; + int i = isFirstInPair ? elemIdx : elemIdx - inc; + + int i0 = firstPass == 1 ? i : int(getIndices(batch, i)); + int i1 = firstPass == 1 ? i + inc : int(getIndices(batch, i + inc)); + float x0 = i0 < n ? getX(batch, i0) : negativeInf; + float x1 = i1 < n ? getX(batch, i1) : negativeInf; + + // Denotes which direction indices are in (ascending or descending). + bool reverse = imod(elemIdx, 2 * dir) >= dir; + bool isGreater = x0 > x1 || (x0 == x1 && i1 > i0); + if (reverse == isGreater) { // Elements in opposite order of direction + int iTemp = i0; + i0 = i1; + i1 = iTemp; + } + if (isFirstInPair) { + setOutput(float(i0)); + } else { + setOutput(float(i1)); + } + } + `}}class Yce{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"k",type:"int"}],this.outputShape=e,this.userCode=` + void main() { + // Takes max of indices (0, k), (1, k + 1), (2, k + 2) ... + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int elemIdx = coords[1]; + + // The output size is half of the previous size. + // If the previous sequence is | | | | _ _ _ _ | | | | _ _ _ _ (k=4), + // we only need to output the indices at positions |, the indices at + // positions _ can be thrown away, see Figure5(b) After Phase 2 + // (Merge phase) in the Bitonic Top K paper referenced above. + // For example, the paper shows we only need to output the orange bars. + // The output sequence should look like this | | | | | | | |. + // Because the sequence is halved, to map the output index back + // to the previous sequence to find the corresponding value, + // we need to double the index. When we double the index, + // we basically interpolate a position, so 2i looks like + // | _ | _ | _ | _ | _ | _ | _. We move the | to the first k position + // of each 2k positions by - elemIdx % k. E.g. for output at + // index 4,5,6,7, we want to get the corresponding element at + // original index 8,9,10,11, for output at index 8,9,10,11, + // we want to get the corresponding element at original index + // 16,17,18,19, so on and so forth. + + int i = elemIdx < k ? elemIdx : (elemIdx * 2 - imod(elemIdx, k)); + int i0 = firstPass == 1 ? i : int(getIndices(batch, i)); + int i1 = firstPass == 1 ? i + k : int(getIndices(batch, i + k)); + + float x0 = getX(batch, i0); + float x1 = i1 < n ? getX(batch, i1) : x0; + + setOutput(x0 >= x1 ? float(i0) : float(i1)); + } + `}}function Nc(n,e){e!==null&&n.disposeIntermediateTensorInfo(e)}function hT(n){let e=1;for(;el){const L=t.readSync(s.dataId),[_,H]=ene(L,c,s.dtype,o,i);return[t.makeTensorInfo(_.shape,_.dtype,_.values),t.makeTensorInfo(H.shape,H.dtype,H.values)]}if(o===0)return c[c.length-1]=0,[t.makeTensorInfo(c,s.dtype,[]),t.makeTensorInfo(c,"int32",[])];if(d===1)return[s,wx({attrs:{shape:c,dtype:"int32",value:0},backend:t})];const p=t.texData.get(s.dataId),m=p!==null&&p.isPacked,y=m?t.unpackTensor(s):s,b=Se(c)/d,w=Ue({inputs:{x:y},attrs:{shape:[b,d]},backend:t});m&&Nc(t,y);const k=hT(o),I=hT(d);let N=null;const T=()=>N===null?[w,w]:[w,N],A=(L,_,H)=>{const Y=T(),re=new Xce(H),le=[[d],[N===null?1:0],[Number.NEGATIVE_INFINITY],[L],[_]],de=N;N=t.runWebGLProgram(re,Y,"int32",le),Nc(t,de)};for(let L=1;L=1;H/=2)A(_,H,[b,I])}for(let L=I;L>k;L/=2){const _=T(),H=new Yce([b,L/2]),re=[[d],[N===null?1:0],[k]],te=N;N=t.runWebGLProgram(H,_,"int32",re),Nc(t,te);const le=k/2,de=le*2;for(let j=le;j>=1;j/=2)A(de,j,N.shape)}let O=N;N=Lf({inputs:{x:N},backend:t,attrs:{begin:0,size:[b,o]}}),Nc(t,O);let P=GF({inputs:{x:w,indices:N},backend:t,attrs:{axis:1,batchDims:1}});Nc(t,w);const B=c.slice(0,-1);B.push(o),O=N,N=Ue({inputs:{x:N},attrs:{shape:B},backend:t}),Nc(t,O);const z=P;return P=Ue({inputs:{x:P},attrs:{shape:B},backend:t}),Nc(t,z),[P,N]}const Jce={kernelName:tk,backendName:"webgl",kernelFunc:Qce};class Zce{constructor(e,t,r,s,o,i){this.variableNames=["Image","Transforms"],this.outputShape=i;const a=r==="nearest"?1:2;let l;switch(s){case"constant":l=1;break;case"reflect":l=2;break;case"wrap":l=3;break;case"nearest":l=4;break;default:l=1;break}this.userCode=` + float mapCoord(float outCoord, float len) { + float inCoord = outCoord; + if(${l} == 2) { + if (inCoord < 0.0) { + if (len <= 1.0) { + inCoord = 0.0; + } else { + float sz2 = 2.0 * len; + if (inCoord < sz2) { + inCoord = sz2 * float(int(float(-inCoord / sz2))) + + inCoord; + } + inCoord = inCoord < -len ? inCoord + sz2 : -inCoord - 1.0; + } + } else if (inCoord > len - 1.0) { + if (len <= 1.0) { + inCoord = 0.0; + } else { + float sz2 = 2.0 * len; + inCoord -= sz2 * float(int(float(inCoord / sz2))); + if (inCoord >= len) { + inCoord = sz2 - inCoord - 1.0; + } + } + } + return clamp(inCoord, 0.0, len - 1.0); + } else if (${l} == 3) { + if (inCoord < 0.0) { + if (len <= 1.0) { + inCoord = 0.0; + } else { + float sz = len - 1.0; + inCoord += len * (float(int(float(-inCoord / sz))) + 1.0); + } + } else if (inCoord > len - 1.0) { + if (len <= 1.0) { + inCoord = 0.0; + } else { + float sz = len - 1.0; + inCoord -= len * float(int(float(inCoord / sz))); + } + } + return clamp(inCoord, 0.0, len - 1.0); + } else if (${l} == 4) { + return clamp(outCoord, 0.0, len - 1.0); + } else { + return outCoord; + } + } + + float readWithFillValue(int batch, int coordY, int coordX, + int channel) { + float outputValue; + if (0 <= coordY && coordY < ${e} && 0 <= coordX && coordX < ${t}) { + outputValue = getImage(batch, coordY, coordX, channel); + } else { + outputValue = float(${o}); + } + return outputValue; + } + + void main() { + ivec4 coords = getOutputCoords(); + float outputValue; + int batch = coords[0]; + int x = coords[2]; + int y = coords[1]; + int channel = coords[3]; + float xf = float(x); + float yf = float(y); + float a1 = getTransforms(batch, 0); + float a2 = getTransforms(batch, 1); + float a3 = getTransforms(batch, 2); + float b1 = getTransforms(batch, 3); + float b2 = getTransforms(batch, 4); + float b3 = getTransforms(batch, 5); + float c1 = getTransforms(batch, 6); + float c2 = getTransforms(batch, 7); + float projection = c1 * xf + c2 * yf + 1.0; + if (projection == 0.0) { + outputValue = float(${o}); + } else { + float inX = (a1 * xf + a2 * yf + a3) / projection; + float inY = (b1 * xf + b2 * yf + b3) / projection; + float mapX = mapCoord(inX, float(${t})); + float mapY = mapCoord(inY, float(${e})); + + if (${a} == 1) { + int coordY = int(round(mapY)); + int coordX = int(round(mapX)); + outputValue = readWithFillValue(batch, coordY, coordX, + channel); + } else { + float yFloor = floor(mapY); + float xFloor = floor(mapX); + float yCeil = yFloor + 1.0; + float xCeil = xFloor + 1.0; + float valueYFloor = (xCeil - mapX) * + readWithFillValue(batch, int(yFloor), int(xFloor), channel) + + (mapX - xFloor) * + readWithFillValue(batch, int(yFloor), int(xCeil), channel); + float valueYCeil = (xCeil - mapX) * + readWithFillValue(batch, int(yCeil), int(xFloor), channel) + + (mapX - xFloor) * + readWithFillValue(batch, int(yCeil), int(xCeil), channel); + outputValue = (yCeil - mapY) * valueYFloor + + (mapY - yFloor) * valueYCeil; + } + } + setOutput(outputValue); + } + `}}function ehe(n){const{inputs:e,backend:t,attrs:r}=n,{image:s,transforms:o}=e,{interpolation:i,fillMode:a,fillValue:l,outputShape:c}=r,[d,p,m,y]=s.shape,[v,b]=c??[p,m],w=[d,v,b,y],k=new Zce(p,m,i,a,l,w);return t.runWebGLProgram(k,[s,o],"float32")}const the={kernelName:nk,backendName:"webgl",kernelFunc:ehe};function nhe(n){const{inputs:e,attrs:t,backend:r}=n,{axis:s}=t,{x:o}=e;xx(o,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");const i=r.readSync(o.dataId),{outputValues:a,outputShape:l,indices:c}=tne(i,s,o.shape,o.dtype);return[r.makeTensorInfo(l,o.dtype,a),r.makeTensorInfo([c.length],"int32",c)]}const rhe={kernelName:rk,backendName:"webgl",kernelFunc:nhe};function she(n){const{inputs:e,backend:t,attrs:r}=n,{value:s}=e;let{axis:o}=r;o<0&&(o+=s.shape.length);const i=s,a=i.shape.length,l=s.shape[o],c=new Array(a-1);let d=0;for(let b=0;bt.disposeIntermediateTensorInfo(b)),v}const ohe={kernelName:gv,backendName:"webgl",kernelFunc:she};class ihe{constructor(e,t){this.variableNames=["x","segmentIds"];const r=e.windowSize,s=e.batchSize,o=e.inSize,i=e.numSegments,a=i*Math.ceil(o/r);this.outputShape=[s,a];const l="0.0",c="sumValue",d=Math.floor(r/4)*4,p=r%4,m=` + sumValue += dot(values, segFilter); + `;let y="";o%r>0&&(y=` + if (inIdx < 0 || inIdx >= ${o}) { + return initializationValue; + } + `);let v="";o%r>0&&(v=` + if (inIdx < 0 || inIdx >= ${o}) { + return -1.0; + } + `),this.userCode=` + const float initializationValue = ${l}; + + float getValue(int batch, int inIdx) { + ${y} + return getX(batch, inIdx); + } + + float getSegmentIdAtIndex(int inIdx) { + ${v} + return getSegmentIds(inIdx); + } + + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int outIdx = coords[1]; + int inOffset = int(floor(float(outIdx) / float( + ${i})) * float(${r})); + int currentSeg = int(mod(float(outIdx), float(${i}))); + + float sumValue = 0.0; + + for (int i = 0; i < ${d}; i += 4) { + int inIdx = inOffset + i; + vec4 values = vec4( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), + getValue(batch, inIdx + 3) + ); + + vec4 segFilter = vec4( + int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 3)) == currentSeg ? 1 : 0 + ); + + ${m} + } + + int inIdx = inOffset + ${d}; + if (${p===1}) { + vec4 values = vec4( + getValue(batch, inIdx), + initializationValue, + initializationValue, + initializationValue + ); + + int inIdxSeg = int(getSegmentIdAtIndex(inIdx)); + + vec4 segFilter = vec4( + int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, + 0, + 0, + 0 + ); + + ${m} + } else if (${p===2}) { + vec4 values = vec4( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + initializationValue, + initializationValue + ); + + vec4 segFilter = vec4( + int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0, + 0, + 0 + ); + + ${m} + } else if (${p===3}) { + vec4 values = vec4( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), + initializationValue + ); + + vec4 segFilter = vec4( + int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0, + 0 + ); + + ${m} + } + setOutput(${c}); + } + `}}function ahe(n){const{inputs:e,backend:t,attrs:r}=n,{x:s,segmentIds:o}=e,{numSegments:i}=r,a=s.shape.length,l=[];let c=0;const d=En([c],a);let p=s;d!=null&&(p=cs({inputs:{x:s},backend:t,attrs:{perm:d}}),l.push(p),c=Wn(1,a)[0]);const m=DA(p.shape,c,i),y=Se([p.shape[c]]),v=Ue({inputs:{x:p},backend:t,attrs:{shape:[-1,y]}});l.push(v);const b=ok(s.dtype),w=(T,A,O,P,B)=>{const z=T.shape[0],L=T.shape[1],_=_A(L,B),H={windowSize:_,inSize:L,batchSize:z,numSegments:B},Y=new ihe(H,A),re=t.compileAndRun(Y,[T,O],P);if(l.push(re),re.shape[1]===B)return re;const te=QF({backend:t,attrs:{start:0,stop:B,step:1,dtype:"float32"}}),le=JF({inputs:{x:te},backend:t,attrs:{reps:[L/_]}});return l.push(te),l.push(le),w(re,A,le,P,B)},k=w(v,"unsortedSegmentSum",o,b,i),I=Ue({inputs:{x:k},backend:t,attrs:{shape:m}});let N=I;if(d!=null){l.push(I);const T=yu(d);N=cs({inputs:{x:N},backend:t,attrs:{perm:T}})}return l.forEach(T=>t.disposeIntermediateTensorInfo(T)),N}const lhe={kernelName:xv,backendName:"webgl",kernelFunc:ahe};const uhe=[Hne,Kne,Qne,ere,nre,ore,are,ure,fre,mre,yre,bre,kre,Tre,Are,Dre,Fre,zre,Ure,Vre,qre,ese,nse,ise,lse,pse,gse,wse,Ene,Sse,Tse,_se,Mse,Use,Vse,jse,qse,Qse,eoe,roe,ooe,aoe,uoe,doe,poe,yoe,woe,Soe,$oe,Toe,_oe,Poe,Boe,Voe,Hoe,qoe,Xoe,Qoe,Zoe,tie,rie,aie,cie,fie,mie,yie,bie,Iie,Eie,Tne,Aie,$se,Oie,Lie,Bie,Ane,Gie,Kie,Yie,eae,rae,aae,cae,pae,yae,bae,Sae,Nae,Eae,Aae,Fae,Lae,zae,Uae,Vae,qae,Qae,tle,ule,One,fle,gle,vle,Cle,cse,Ile,Nle,Ele,_le,Ple,Dne,Mle,Ble,Wle,Gle,jle,hse,ole,Kle,Jle,nue,Pne,iue,uue,fue,gue,wue,Cue,Iue,Tue,Aue,Oue,Lue,Bue,Gue,que,Que,ece,Jre,ale,rce,oce,ace,uce,hce,fce,mce,xce,vce,Cce,kce,$ce,Tce,Ace,Dce,Fce,Lce,ile,Vne,Bce,Vce,jce,Kce,Jce,the,Gne,rhe,ohe,lhe,$le];for(const n of uhe)HE(n);var Im={exports:{}};var che=Im.exports,dT;function hhe(){return dT||(dT=1,(function(n,e){(function(){var t,r="4.17.21",s=200,o="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",i="Expected a function",a="Invalid `variable` option passed into `_.template`",l="__lodash_hash_undefined__",c=500,d="__lodash_placeholder__",p=1,m=2,y=4,v=1,b=2,w=1,k=2,I=4,N=8,T=16,A=32,O=64,P=128,B=256,z=512,L=30,_="...",H=800,Y=16,re=1,te=2,le=3,de=1/0,j=9007199254740991,ie=17976931348623157e292,se=NaN,V=4294967295,X=V-1,xe=V>>>1,Ie=[["ary",P],["bind",w],["bindKey",k],["curry",N],["curryRight",T],["flip",z],["partial",A],["partialRight",O],["rearg",B]],ke="[object Arguments]",Ee="[object Array]",Me="[object AsyncFunction]",ze="[object Boolean]",Be="[object Date]",Je="[object DOMException]",lt="[object Error]",pt="[object Function]",bt="[object GeneratorFunction]",Rt="[object Map]",Ot="[object Number]",Bt="[object Null]",At="[object Object]",Yt="[object Promise]",ds="[object Proxy]",Jt="[object RegExp]",cn="[object Set]",Rn="[object String]",fs="[object Symbol]",Xr="[object Undefined]",vr="[object WeakMap]",Zs="[object WeakSet]",wr="[object ArrayBuffer]",Qn="[object DataView]",So="[object Float32Array]",eo="[object Float64Array]",to="[object Int8Array]",Iu="[object Int16Array]",Jo="[object Int32Array]",hl="[object Uint8Array]",$u="[object Uint8ClampedArray]",Nu="[object Uint16Array]",Tu="[object Uint32Array]",Mf=/\b__p \+= '';/g,zf=/\b(__p \+=) '' \+/g,Bf=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ca=/&(?:amp|lt|gt|quot|#39);/g,Sa=/[&<>"']/g,bx=RegExp(Ca.source),Cx=RegExp(Sa.source),Sx=/<%-([\s\S]+?)%>/g,kx=/<%([\s\S]+?)%>/g,Uf=/<%=([\s\S]+?)%>/g,Wf=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ix=/^\w*$/,Eu=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ru=/[\\^$.*+?()[\]{}|]/g,Au=RegExp(Ru.source),Vf=/^\s+/,_u=/\s/,xh=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,yh=/\{\n\/\* \[wrapped with (.+)\] \*/,Gf=/,? & /,qv=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Kv=/[()=,{}\[\]\/\s]/,Xv=/\\(\\)?/g,ka=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,jf=/\w*$/,$x=/^[-+]0x[0-9a-f]+$/i,Yv=/^0b[01]+$/i,Nx=/^\[object .+?Constructor\]$/,Tx=/^0o[0-7]+$/i,Ex=/^(?:0|[1-9]\d*)$/,Rx=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,vh=/($^)/,Qv=/['\n\r\u2028\u2029\\]/g,xn="\\ud800-\\udfff",Jv="\\u0300-\\u036f",Hf="\\ufe20-\\ufe2f",Ax="\\u20d0-\\u20ff",Du=Jv+Hf+Ax,_x="\\u2700-\\u27bf",qf="a-z\\xdf-\\xf6\\xf8-\\xff",wh="\\xac\\xb1\\xd7\\xf7",ko="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Zv="\\u2000-\\u206f",no=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Dx="A-Z\\xc0-\\xd6\\xd8-\\xde",Ox="\\ufe0e\\ufe0f",Fx=wh+ko+Zv+no,dl="['’]",bh="["+xn+"]",fl="["+Fx+"]",Ia="["+Du+"]",Px="\\d+",ew="["+_x+"]",Ch="["+qf+"]",Kf="[^"+xn+Fx+Px+_x+qf+Dx+"]",Ou="\\ud83c[\\udffb-\\udfff]",Fu="(?:"+Ia+"|"+Ou+")",Lx="[^"+xn+"]",Pu="(?:\\ud83c[\\udde6-\\uddff]){2}",jt="[\\ud800-\\udbff][\\udc00-\\udfff]",$a="["+Dx+"]",Xf="\\u200d",Sh="(?:"+Ch+"|"+Kf+")",Mx="(?:"+$a+"|"+Kf+")",Yf="(?:"+dl+"(?:d|ll|m|re|s|t|ve))?",Qf="(?:"+dl+"(?:D|LL|M|RE|S|T|VE))?",kh=Fu+"?",Lu="["+Ox+"]?",Ri="(?:"+Xf+"(?:"+[Lx,Pu,jt].join("|")+")"+Lu+kh+")*",Ai="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",_i="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",pl=Lu+kh+Ri,Mu="(?:"+[ew,Pu,jt].join("|")+")"+pl,Di="(?:"+[Lx+Ia+"?",Ia,Pu,jt,bh].join("|")+")",tw=RegExp(dl,"g"),zx=RegExp(Ia,"g"),Na=RegExp(Ou+"(?="+Ou+")|"+Di+pl,"g"),nw=RegExp([$a+"?"+Ch+"+"+Yf+"(?="+[fl,$a,"$"].join("|")+")",Mx+"+"+Qf+"(?="+[fl,$a+Sh,"$"].join("|")+")",$a+"?"+Sh+"+"+Yf,$a+"+"+Qf,_i,Ai,Px,Mu].join("|"),"g"),Bx=RegExp("["+Xf+xn+Du+Ox+"]"),Ih=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Ux=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],rw=-1,Qt={};Qt[So]=Qt[eo]=Qt[to]=Qt[Iu]=Qt[Jo]=Qt[hl]=Qt[$u]=Qt[Nu]=Qt[Tu]=!0,Qt[ke]=Qt[Ee]=Qt[wr]=Qt[ze]=Qt[Qn]=Qt[Be]=Qt[lt]=Qt[pt]=Qt[Rt]=Qt[Ot]=Qt[At]=Qt[Jt]=Qt[cn]=Qt[Rn]=Qt[vr]=!1;var Ht={};Ht[ke]=Ht[Ee]=Ht[wr]=Ht[Qn]=Ht[ze]=Ht[Be]=Ht[So]=Ht[eo]=Ht[to]=Ht[Iu]=Ht[Jo]=Ht[Rt]=Ht[Ot]=Ht[At]=Ht[Jt]=Ht[cn]=Ht[Rn]=Ht[fs]=Ht[hl]=Ht[$u]=Ht[Nu]=Ht[Tu]=!0,Ht[lt]=Ht[pt]=Ht[vr]=!1;var ml={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},$h={"&":"&","<":"<",">":">",'"':""","'":"'"},sw={"&":"&","<":"<",">":">",""":'"',"'":"'"},ow={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Jf=parseFloat,Nh=parseInt,Th=typeof ey=="object"&&ey&&ey.Object===Object&&ey,Wx=typeof self=="object"&&self&&self.Object===Object&&self,yn=Th||Wx||Function("return this")(),zu=e&&!e.nodeType&&e,Io=zu&&!0&&n&&!n.nodeType&&n,Zf=Io&&Io.exports===zu,gl=Zf&&Th.process,Fr=(function(){try{var ue=Io&&Io.require&&Io.require("util").types;return ue||gl&&gl.binding&&gl.binding("util")}catch{}})(),ep=Fr&&Fr.isArrayBuffer,Yr=Fr&&Fr.isDate,Ta=Fr&&Fr.isMap,Eh=Fr&&Fr.isRegExp,xl=Fr&&Fr.isSet,Vx=Fr&&Fr.isTypedArray;function Pr(ue,$e,ve){switch(ve.length){case 0:return ue.call($e);case 1:return ue.call($e,ve[0]);case 2:return ue.call($e,ve[0],ve[1]);case 3:return ue.call($e,ve[0],ve[1],ve[2])}return ue.apply($e,ve)}function tp(ue,$e,ve,je){for(var mt=-1,Ut=ue==null?0:ue.length;++mt-1}function rp(ue,$e,ve){for(var je=-1,mt=ue==null?0:ue.length;++je-1;);return ve}function cp(ue,$e){for(var ve=ue.length;ve--&&yl($e,ue[ve],0)>-1;);return ve}function Qx(ue,$e){for(var ve=ue.length,je=0;ve--;)ue[ve]===$e&&++je;return je}var Jx=Dh(ml),Zx=Dh($h);function e0(ue){return"\\"+ow[ue]}function vl(ue,$e){return ue==null?t:ue[$e]}function wl(ue){return Bx.test(ue)}function hw(ue){return Ih.test(ue)}function dw(ue){for(var $e,ve=[];!($e=ue.next()).done;)ve.push($e.value);return ve}function Oh(ue){var $e=-1,ve=Array(ue.size);return ue.forEach(function(je,mt){ve[++$e]=[mt,je]}),ve}function hp(ue,$e){return function(ve){return ue($e(ve))}}function Es(ue,$e){for(var ve=-1,je=ue.length,mt=0,Ut=[];++ve-1}function h0(f,g){var S=this.__data__,R=$r(S,f);return R<0?(++this.size,S.push([f,g])):S[R][1]=g,this}Lr.prototype.clear=Al,Lr.prototype.delete=Zr,Lr.prototype.get=Kh,Lr.prototype.has=c0,Lr.prototype.set=h0;function As(f){var g=-1,S=f==null?0:f.length;for(this.clear();++g=g?f:g)),f}function es(f,g,S,R,D,W){var q,J=g&p,fe=g&m,Ne=g&y;if(S&&(q=D?S(f,R,D,W):S(f)),q!==t)return q;if(!Dn(f))return f;var Te=yt(f);if(Te){if(q=pc(f),!J)return Mr(f,q)}else{var Oe=hr(f),We=Oe==pt||Oe==bt;if(Kl(f))return Dp(f,J);if(Oe==At||Oe==ke||We&&!D){if(q=fe||We?{}:dr(f),!J)return fe?ww(f,so(q,f)):hd(f,fn(q,f))}else{if(!Ht[Oe])return D?f:{};q=bw(f,Oe,J)}}W||(W=new Ir);var et=W.get(f);if(et)return et;W.set(f,q),e$(f)?f.forEach(function(dt){q.add(es(dt,g,S,dt,f,W))}):JI(f)&&f.forEach(function(dt,Dt){q.set(Dt,es(dt,g,S,Dt,f,W))});var ht=Ne?fe?hc:cc:fe?Ws:Er,It=Te?t:ht(f);return br(It||f,function(dt,Dt){It&&(Dt=dt,dt=f[Dt]),Pa(q,Dt,es(dt,g,S,Dt,f,W))}),q}function m0(f){var g=Er(f);return function(S){return Ju(S,f,g)}}function Ju(f,g,S){var R=S.length;if(f==null)return!R;for(f=Zt(f);R--;){var D=S[R],W=g[D],q=f[D];if(q===t&&!(D in f)||!W(q))return!1}return!0}function vp(f,g,S){if(typeof f!="function")throw new Rs(i);return jl(function(){f.apply(t,S)},g)}function _o(f,g,S,R){var D=-1,W=Ah,q=!0,J=f.length,fe=[],Ne=g.length;if(!J)return fe;S&&(g=an(g,ps(S))),R?(W=rp,q=!1):g.length>=s&&(W=Zo,q=!1,g=new Da(g));e:for(;++DD?0:D+S),R=R===t||R>D?D:St(R),R<0&&(R+=D),R=S>R?0:n$(R);S0&&S(J)?g>1?$n(J,g-1,S,R,D):Fi(D,J):R||(D[D.length]=J)}return D}var Zh=fd(),ec=fd(!0);function ys(f,g){return f&&Zh(f,g,Er)}function Vi(f,g){return f&&ec(f,g,Er)}function Dl(f,g){return Oi(g,function(S){return Ya(f[S])})}function oi(f,g){g=Po(g,f);for(var S=0,R=g.length;f!=null&&Sg}function Os(f,g){return f!=null&&Wt.call(f,g)}function Ma(f,g){return f!=null&&g in Zt(f)}function bp(f,g,S){return f>=Cr(g,S)&&f=120&&Te.length>=120)?new Da(q&&Te):t}Te=f[0];var Oe=-1,We=J[0];e:for(;++Oe-1;)J!==f&&Uh.call(J,fe,1),Uh.call(f,fe,1);return f}function jn(f,g){for(var S=f?g.length:0,R=S-1;S--;){var D=g[S];if(S==R||D!==W){var W=D;wn(D)?Uh.call(f,D,1):ld(f,D)}}return f}function Pl(f,g){return f+Li(qu()*(g-f+1))}function sc(f,g,S,R){for(var D=-1,W=Fn(Aa((g-f)/(S||1)),0),q=ve(W);W--;)q[R?W:++D]=f,f+=S;return q}function Ba(f,g){var S="";if(!f||g<1||g>j)return S;do g%2&&(S+=f),g=Li(g/2),g&&(f+=f);while(g);return S}function Ct(f,g){return vs(Cd(f,g,Vs),f+"")}function Nr(f){return Ro(Ud(f))}function Np(f,g){var S=Ud(f);return Sd(S,si(g,0,S.length))}function Ua(f,g,S,R){if(!Dn(f))return f;g=Po(g,f);for(var D=-1,W=g.length,q=W-1,J=f;J!=null&&++DD?0:D+g),S=S>D?D:S,S<0&&(S+=D),D=g>S?0:S-g>>>0,g>>>=0;for(var W=ve(D);++R>>1,q=f[W];q!==null&&!fo(q)&&(S?q<=g:q=s){var Ne=g?null:T0(f);if(Ne)return Pi(Ne);q=!1,D=Zo,fe=new Da}else fe=g?[]:J;e:for(;++R=R?f:Tr(f,g,S)}var _p=a0||function(f){return yn.clearTimeout(f)};function Dp(f,g){if(g)return f.slice();var S=f.length,R=fp?fp(S):new f.constructor(S);return f.copy(R),R}function ac(f){var g=new f.constructor(f.byteLength);return new ju(g).set(new ju(f)),g}function b0(f,g){var S=g?ac(f.buffer):f.buffer;return new f.constructor(S,f.byteOffset,f.byteLength)}function C0(f){var g=new f.constructor(f.source,jf.exec(f));return g.lastIndex=f.lastIndex,g}function S0(f){return gs?Zt(gs.call(f)):{}}function k0(f,g){var S=g?ac(f.buffer):f.buffer;return new f.constructor(S,f.byteOffset,f.length)}function Op(f,g){if(f!==g){var S=f!==t,R=f===null,D=f===f,W=fo(f),q=g!==t,J=g===null,fe=g===g,Ne=fo(g);if(!J&&!Ne&&!W&&f>g||W&&q&&fe&&!J&&!Ne||R&&q&&fe||!S&&fe||!D)return 1;if(!R&&!W&&!Ne&&f=J)return fe;var Ne=S[R];return fe*(Ne=="desc"?-1:1)}}return f.index-g.index}function I0(f,g,S,R){for(var D=-1,W=f.length,q=S.length,J=-1,fe=g.length,Ne=Fn(W-q,0),Te=ve(fe+Ne),Oe=!R;++J1?S[D-1]:t,q=D>2?S[2]:t;for(W=f.length>3&&typeof W=="function"?(D--,W):t,q&&Br(S[0],S[1],q)&&(W=D<3?t:W,D=1),g=Zt(g);++R-1?D[W?g[q]:q]:t}}function md(f){return Mo(function(g){var S=g.length,R=S,D=Sr.prototype.thru;for(f&&g.reverse();R--;){var W=g[R];if(typeof W!="function")throw new Rs(i);if(D&&!q&&Vl(W)=="wrapper")var q=new Sr([],!0)}for(R=q?R:S;++R1&&Pt.reverse(),Te&&feJ))return!1;var Ne=W.get(f),Te=W.get(g);if(Ne&&Te)return Ne==g&&Te==f;var Oe=-1,We=!0,et=S&b?new Da:t;for(W.set(f,g),W.set(g,f);++Oe1?"& ":"")+g[R],g=g.join(S>2?", ":" "),f.replace(xh,`{ +/* [wrapped with `+g+`] */ +`)}function wd(f){return yt(f)||kc(f)||!!(i0&&f&&f[i0])}function wn(f,g){var S=typeof f;return g=g??j,!!g&&(S=="number"||S!="symbol"&&Ex.test(f))&&f>-1&&f%1==0&&f0){if(++g>=H)return arguments[0]}else g=0;return f.apply(t,arguments)}}function Sd(f,g){var S=-1,R=f.length,D=R-1;for(g=g===t?R:g;++S1?f[g-1]:t;return S=typeof S=="function"?(f.pop(),S):t,Sn(f,S)});function _d(f){var g=M(f);return g.__chain__=!0,g}function _w(f,g){return g(f),f}function ho(f,g){return g(f)}var Dd=Mo(function(f){var g=f.length,S=g?f[0]:0,R=this.__wrapped__,D=function(W){return Jh(W,f)};return g>1||this.__actions__.length||!(R instanceof xt)||!wn(S)?this.thru(D):(R=R.slice(S,+S+(g?1:0)),R.__actions__.push({func:ho,args:[D],thisArg:t}),new Sr(R,this.__chain__).thru(function(W){return g&&!W.length&&W.push(t),W}))});function Ka(){return _d(this)}function Od(){return new Sr(this.value(),this.__chain__)}function im(){this.__values__===t&&(this.__values__=t$(this.value()));var f=this.__index__>=this.__values__.length,g=f?t:this.__values__[this.__index__++];return{done:f,value:g}}function am(){return this}function Dw(f){for(var g,S=this;S instanceof To;){var R=L0(S);R.__index__=0,R.__values__=t,g?D.__wrapped__=R:g=R;var D=R;S=S.__wrapped__}return D.__wrapped__=f,g}function lm(){var f=this.__wrapped__;if(f instanceof xt){var g=f;return this.__actions__.length&&(g=new xt(this)),g=g.reverse(),g.__actions__.push({func:ho,args:[Ed],thisArg:t}),new Sr(g,this.__chain__)}return this.thru(Ed)}function Ow(){return Ml(this.__wrapped__,this.__actions__)}var H0=dd(function(f,g,S){Wt.call(f,S)?++f[S]:Ao(f,S,1)});function q0(f,g,S){var R=yt(f)?np:Zu;return S&&Br(f,g,S)&&(g=t),R(f,at(g,3))}function Fd(f,g){var S=yt(f)?Oi:wp;return S(f,at(g,3))}var Pd=Va(Xi),K0=Va(yc);function um(f,g){return $n(Xa(f,g),1)}function Fw(f,g){return $n(Xa(f,g),de)}function X0(f,g,S){return S=S===t?1:St(S),$n(Xa(f,g),S)}function Ld(f,g){var S=yt(f)?br:Do;return S(f,at(g,3))}function Cc(f,g){var S=yt(f)?Rh:g0;return S(f,at(g,3))}var cm=dd(function(f,g,S){Wt.call(f,S)?f[S].push(g):Ao(f,S,[g])});function Md(f,g,S,R){f=Us(f)?f:Ud(f),S=S&&!R?St(S):0;var D=f.length;return S<0&&(S=Fn(D+S,0)),J0(f)?S<=D&&f.indexOf(g,S)>-1:!!D&&yl(f,g,S)>-1}var Y0=Ct(function(f,g,S){var R=-1,D=typeof g=="function",W=Us(f)?ve(f.length):[];return Do(f,function(q){W[++R]=D?Pr(g,q,S):Fs(q,g,S)}),W}),Pw=dd(function(f,g,S){Ao(f,S,g)});function Xa(f,g){var S=yt(f)?an:kp;return S(f,at(g,3))}function Lw(f,g,S,R){return f==null?[]:(yt(g)||(g=g==null?[]:[g]),S=R?t:S,yt(S)||(S=S==null?[]:[S]),rc(f,g,S))}var Sc=dd(function(f,g,S){f[S?0:1].push(g)},function(){return[[],[]]});function Mw(f,g,S){var R=yt(f)?sp:Kx,D=arguments.length<3;return R(f,at(g,4),S,D,Do)}function zd(f,g,S){var R=yt(f)?iw:Kx,D=arguments.length<3;return R(f,at(g,4),S,D,g0)}function u(f,g){var S=yt(f)?Oi:wp;return S(f,Le(at(g,3)))}function h(f){var g=yt(f)?Ro:Nr;return g(f)}function x(f,g,S){(S?Br(f,g,S):g===t)?g=1:g=St(g);var R=yt(f)?Fa:Np;return R(f,g)}function C(f){var g=yt(f)?p0:Ls;return g(f)}function $(f){if(f==null)return 0;if(Us(f))return J0(f)?Ea(f):f.length;var g=hr(f);return g==Rt||g==cn?f.size:li(f).length}function E(f,g,S){var R=yt(f)?op:Tp;return S&&Br(f,g,S)&&(g=t),R(f,at(g,3))}var F=Ct(function(f,g){if(f==null)return[];var S=g.length;return S>1&&Br(f,g[0],g[1])?g=[]:S>2&&Br(g[0],g[1],g[2])&&(g=[g[0]]),rc(f,$n(g,1),[])}),G=hn||function(){return yn.Date.now()};function Q(f,g){if(typeof g!="function")throw new Rs(i);return f=St(f),function(){if(--f<1)return g.apply(this,arguments)}}function we(f,g,S){return g=S?t:g,g=f&&g==null?f.length:g,Lo(f,P,t,t,t,t,g)}function De(f,g){var S;if(typeof g!="function")throw new Rs(i);return f=St(f),function(){return--f>0&&(S=g.apply(this,arguments)),f<=1&&(g=t),S}}var Fe=Ct(function(f,g,S){var R=w;if(S.length){var D=Es(S,hi(Fe));R|=A}return Lo(f,R,g,S,D)}),Ae=Ct(function(f,g,S){var R=w|k;if(S.length){var D=Es(S,hi(Ae));R|=A}return Lo(g,R,f,S,D)});function He(f,g,S){g=S?t:g;var R=Lo(f,N,t,t,t,t,t,g);return R.placeholder=He.placeholder,R}function Ke(f,g,S){g=S?t:g;var R=Lo(f,T,t,t,t,t,t,g);return R.placeholder=Ke.placeholder,R}function Xe(f,g,S){var R,D,W,q,J,fe,Ne=0,Te=!1,Oe=!1,We=!0;if(typeof f!="function")throw new Rs(i);g=Bo(g)||0,Dn(S)&&(Te=!!S.leading,Oe="maxWait"in S,W=Oe?Fn(Bo(S.maxWait)||0,g):W,We="trailing"in S?!!S.trailing:We);function et(Kn){var mi=R,Ja=D;return R=D=t,Ne=Kn,q=f.apply(Ja,mi),q}function ht(Kn){return Ne=Kn,J=jl(Dt,g),Te?et(Kn):q}function It(Kn){var mi=Kn-fe,Ja=Kn-Ne,p$=g-mi;return Oe?Cr(p$,W-Ja):p$}function dt(Kn){var mi=Kn-fe,Ja=Kn-Ne;return fe===t||mi>=g||mi<0||Oe&&Ja>=W}function Dt(){var Kn=G();if(dt(Kn))return Pt(Kn);J=jl(Dt,It(Kn))}function Pt(Kn){return J=t,We&&R?et(Kn):(R=D=t,q)}function po(){J!==t&&_p(J),Ne=0,R=fe=D=J=t}function bs(){return J===t?q:Pt(G())}function mo(){var Kn=G(),mi=dt(Kn);if(R=arguments,D=this,fe=Kn,mi){if(J===t)return ht(fe);if(Oe)return _p(J),J=jl(Dt,g),et(fe)}return J===t&&(J=jl(Dt,g)),q}return mo.cancel=po,mo.flush=bs,mo}var _n=Ct(function(f,g){return vp(f,1,g)}),pe=Ct(function(f,g,S){return vp(f,Bo(g)||0,S)});function oe(f){return Lo(f,z)}function ge(f,g){if(typeof f!="function"||g!=null&&typeof g!="function")throw new Rs(i);var S=function(){var R=arguments,D=g?g.apply(this,R):R[0],W=S.cache;if(W.has(D))return W.get(D);var q=f.apply(this,R);return S.cache=W.set(D,q)||W,q};return S.cache=new(ge.Cache||As),S}ge.Cache=As;function Le(f){if(typeof f!="function")throw new Rs(i);return function(){var g=arguments;switch(g.length){case 0:return!f.call(this);case 1:return!f.call(this,g[0]);case 2:return!f.call(this,g[0],g[1]);case 3:return!f.call(this,g[0],g[1],g[2])}return!f.apply(this,g)}}function Ze(f){return De(2,f)}var ot=w0(function(f,g){g=g.length==1&&yt(g[0])?an(g[0],ps(at())):an($n(g,1),ps(at()));var S=g.length;return Ct(function(R){for(var D=-1,W=Cr(R.length,S);++D=g}),kc=nd((function(){return arguments})())?nd:function(f){return Ln(f)&&Wt.call(f,"callee")&&!Bh.call(f,"callee")},yt=ve.isArray,wP=ep?ps(ep):y0;function Us(f){return f!=null&&Q0(f.length)&&!Ya(f)}function qn(f){return Ln(f)&&Us(f)}function bP(f){return f===!0||f===!1||Ln(f)&&ur(f)==ze}var Kl=mp||Yw,CP=Yr?ps(Yr):ai;function SP(f){return Ln(f)&&f.nodeType===1&&!hm(f)}function kP(f){if(f==null)return!0;if(Us(f)&&(yt(f)||typeof f=="string"||typeof f.splice=="function"||Kl(f)||Bd(f)||kc(f)))return!f.length;var g=hr(f);if(g==Rt||g==cn)return!f.size;if(di(f))return!li(f).length;for(var S in f)if(Wt.call(f,S))return!1;return!0}function IP(f,g){return Ps(f,g)}function $P(f,g,S){S=typeof S=="function"?S:t;var R=S?S(f,g):t;return R===t?Ps(f,g,t,S):!!R}function Bw(f){if(!Ln(f))return!1;var g=ur(f);return g==lt||g==Je||typeof f.message=="string"&&typeof f.name=="string"&&!hm(f)}function NP(f){return typeof f=="number"&&kl(f)}function Ya(f){if(!Dn(f))return!1;var g=ur(f);return g==pt||g==bt||g==Me||g==ds}function QI(f){return typeof f=="number"&&f==St(f)}function Q0(f){return typeof f=="number"&&f>-1&&f%1==0&&f<=j}function Dn(f){var g=typeof f;return f!=null&&(g=="object"||g=="function")}function Ln(f){return f!=null&&typeof f=="object"}var JI=Ta?ps(Ta):v0;function TP(f,g){return f===g||Ol(f,g,fc(g))}function EP(f,g,S){return S=typeof S=="function"?S:t,Ol(f,g,fc(g),S)}function RP(f){return ZI(f)&&f!=+f}function AP(f){if(Sw(f))throw new mt(o);return Cp(f)}function _P(f){return f===null}function DP(f){return f==null}function ZI(f){return typeof f=="number"||Ln(f)&&ur(f)==Ot}function hm(f){if(!Ln(f)||ur(f)!=At)return!1;var g=ro(f);if(g===null)return!0;var S=Wt.call(g,"constructor")&&g.constructor;return typeof S=="function"&&S instanceof S&&Wu.call(S)==Mh}var Uw=Eh?ps(Eh):tc;function OP(f){return QI(f)&&f>=-j&&f<=j}var e$=xl?ps(xl):Oo;function J0(f){return typeof f=="string"||!yt(f)&&Ln(f)&&ur(f)==Rn}function fo(f){return typeof f=="symbol"||Ln(f)&&ur(f)==fs}var Bd=Vx?ps(Vx):nc;function FP(f){return f===t}function PP(f){return Ln(f)&&hr(f)==vr}function LP(f){return Ln(f)&&ur(f)==Zs}var MP=xd(ji),zP=xd(function(f,g){return f<=g});function t$(f){if(!f)return[];if(Us(f))return J0(f)?ms(f):Mr(f);if(ni&&f[ni])return dw(f[ni]());var g=hr(f),S=g==Rt?Oh:g==cn?Pi:Ud;return S(f)}function Qa(f){if(!f)return f===0?f:0;if(f=Bo(f),f===de||f===-de){var g=f<0?-1:1;return g*ie}return f===f?f:0}function St(f){var g=Qa(f),S=g%1;return g===g?S?g-S:g:0}function n$(f){return f?si(St(f),0,V):0}function Bo(f){if(typeof f=="number")return f;if(fo(f))return se;if(Dn(f)){var g=typeof f.valueOf=="function"?f.valueOf():f;f=Dn(g)?g+"":g}if(typeof f!="string")return f===0?f:+f;f=Xx(f);var S=Yv.test(f);return S||Tx.test(f)?Nh(f.slice(2),S?2:8):$x.test(f)?se:+f}function r$(f){return oo(f,Ws(f))}function BP(f){return f?si(St(f),-j,j):f===0?f:0}function en(f){return f==null?"":ts(f)}var UP=Bl(function(f,g){if(di(g)||Us(g)){oo(g,Er(g),f);return}for(var S in g)Wt.call(g,S)&&Pa(f,S,g[S])}),s$=Bl(function(f,g){oo(g,Ws(g),f)}),Z0=Bl(function(f,g,S,R){oo(g,Ws(g),f,R)}),WP=Bl(function(f,g,S,R){oo(g,Er(g),f,R)}),VP=Mo(Jh);function GP(f,g){var S=El(f);return g==null?S:fn(S,g)}var jP=Ct(function(f,g){f=Zt(f);var S=-1,R=g.length,D=R>2?g[2]:t;for(D&&Br(g[0],g[1],D)&&(R=1);++S1),W}),oo(f,hc(f),S),R&&(S=es(S,p|m|y,Wp));for(var D=g.length;D--;)ld(S,g[D]);return S});function uL(f,g){return i$(f,Le(at(g)))}var cL=Mo(function(f,g){return f==null?{}:$p(f,g)});function i$(f,g){if(f==null)return{};var S=an(hc(f),function(R){return[R]});return g=at(g),Hi(f,S,function(R,D){return g(R,D[0])})}function hL(f,g,S){g=Po(g,f);var R=-1,D=g.length;for(D||(D=1,f=t);++Rg){var R=f;f=g,g=R}if(S||f%1||g%1){var D=qu();return Cr(f+D*(g-f+Jf("1e-"+((D+"").length-1))),g)}return Pl(f,g)}var CL=Wa(function(f,g,S){return g=g.toLowerCase(),f+(S?u$(g):g)});function u$(f){return Gw(en(f).toLowerCase())}function c$(f){return f=en(f),f&&f.replace(Rx,Jx).replace(zx,"")}function SL(f,g,S){f=en(f),g=ts(g);var R=f.length;S=S===t?R:si(St(S),0,R);var D=S;return S-=g.length,S>=0&&f.slice(S,D)==g}function kL(f){return f=en(f),f&&Cx.test(f)?f.replace(Sa,Zx):f}function IL(f){return f=en(f),f&&Au.test(f)?f.replace(Ru,"\\$&"):f}var $L=Wa(function(f,g,S){return f+(S?"-":"")+g.toLowerCase()}),NL=Wa(function(f,g,S){return f+(S?" ":"")+g.toLowerCase()}),TL=Pp("toLowerCase");function EL(f,g,S){f=en(f),g=St(g);var R=g?Ea(f):0;if(!g||R>=g)return f;var D=(g-R)/2;return uc(Li(D),S)+f+uc(Aa(D),S)}function RL(f,g,S){f=en(f),g=St(g);var R=g?Ea(f):0;return g&&R>>0,S?(f=en(f),f&&(typeof g=="string"||g!=null&&!Uw(g))&&(g=ts(g),!g&&wl(f))?ci(ms(f),0,S):f.split(g,S)):[]}var LL=Wa(function(f,g,S){return f+(S?" ":"")+Gw(g)});function ML(f,g,S){return f=en(f),S=S==null?0:si(St(S),0,f.length),g=ts(g),f.slice(S,S+g.length)==g}function zL(f,g,S){var R=M.templateSettings;S&&Br(f,g,S)&&(g=t),f=en(f),g=Z0({},g,R,Bp);var D=Z0({},g.imports,R.imports,Bp),W=Er(D),q=Bu(D,W),J,fe,Ne=0,Te=g.interpolate||vh,Oe="__p += '",We=Uu((g.escape||vh).source+"|"+Te.source+"|"+(Te===Uf?ka:vh).source+"|"+(g.evaluate||vh).source+"|$","g"),et="//# sourceURL="+(Wt.call(g,"sourceURL")?(g.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++rw+"]")+` +`;f.replace(We,function(dt,Dt,Pt,po,bs,mo){return Pt||(Pt=po),Oe+=f.slice(Ne,mo).replace(Qv,e0),Dt&&(J=!0,Oe+=`' + +__e(`+Dt+`) + +'`),bs&&(fe=!0,Oe+=`'; +`+bs+`; +__p += '`),Pt&&(Oe+=`' + +((__t = (`+Pt+`)) == null ? '' : __t) + +'`),Ne=mo+dt.length,dt}),Oe+=`'; +`;var ht=Wt.call(g,"variable")&&g.variable;if(!ht)Oe=`with (obj) { +`+Oe+` +} +`;else if(Kv.test(ht))throw new mt(a);Oe=(fe?Oe.replace(Mf,""):Oe).replace(zf,"$1").replace(Bf,"$1;"),Oe="function("+(ht||"obj")+`) { +`+(ht?"":`obj || (obj = {}); +`)+"var __t, __p = ''"+(J?", __e = _.escape":"")+(fe?`, __j = Array.prototype.join; +function print() { __p += __j.call(arguments, '') } +`:`; +`)+Oe+`return __p +}`;var It=d$(function(){return Ut(W,et+"return "+Oe).apply(t,q)});if(It.source=Oe,Bw(It))throw It;return It}function BL(f){return en(f).toLowerCase()}function UL(f){return en(f).toUpperCase()}function WL(f,g,S){if(f=en(f),f&&(S||g===t))return Xx(f);if(!f||!(g=ts(g)))return f;var R=ms(f),D=ms(g),W=Yx(R,D),q=cp(R,D)+1;return ci(R,W,q).join("")}function VL(f,g,S){if(f=en(f),f&&(S||g===t))return f.slice(0,Ph(f)+1);if(!f||!(g=ts(g)))return f;var R=ms(f),D=cp(R,ms(g))+1;return ci(R,0,D).join("")}function GL(f,g,S){if(f=en(f),f&&(S||g===t))return f.replace(Vf,"");if(!f||!(g=ts(g)))return f;var R=ms(f),D=Yx(R,ms(g));return ci(R,D).join("")}function jL(f,g){var S=L,R=_;if(Dn(g)){var D="separator"in g?g.separator:D;S="length"in g?St(g.length):S,R="omission"in g?ts(g.omission):R}f=en(f);var W=f.length;if(wl(f)){var q=ms(f);W=q.length}if(S>=W)return f;var J=S-Ea(R);if(J<1)return R;var fe=q?ci(q,0,J).join(""):f.slice(0,J);if(D===t)return fe+R;if(q&&(J+=fe.length-J),Uw(D)){if(f.slice(J).search(D)){var Ne,Te=fe;for(D.global||(D=Uu(D.source,en(jf.exec(D))+"g")),D.lastIndex=0;Ne=D.exec(Te);)var Oe=Ne.index;fe=fe.slice(0,Oe===t?J:Oe)}}else if(f.indexOf(ts(D),J)!=J){var We=fe.lastIndexOf(D);We>-1&&(fe=fe.slice(0,We))}return fe+R}function HL(f){return f=en(f),f&&bx.test(f)?f.replace(Ca,t0):f}var qL=Wa(function(f,g,S){return f+(S?" ":"")+g.toUpperCase()}),Gw=Pp("toUpperCase");function h$(f,g,S){return f=en(f),g=S?t:g,g===t?hw(f)?mw(f):lw(f):f.match(g)||[]}var d$=Ct(function(f,g){try{return Pr(f,t,g)}catch(S){return Bw(S)?S:new mt(S)}}),KL=Mo(function(f,g){return br(g,function(S){S=uo(S),Ao(f,S,Fe(f[S],f))}),f});function XL(f){var g=f==null?0:f.length,S=at();return f=g?an(f,function(R){if(typeof R[1]!="function")throw new Rs(i);return[S(R[0]),R[1]]}):[],Ct(function(R){for(var D=-1;++Dj)return[];var S=V,R=Cr(f,V);g=at(g),f-=V;for(var D=up(R,g);++S0||g<0)?new xt(S):(f<0?S=S.takeRight(-f):f&&(S=S.drop(f)),g!==t&&(g=St(g),S=g<0?S.dropRight(-g):S.take(g-f)),S)},xt.prototype.takeRightWhile=function(f){return this.reverse().takeWhile(f).reverse()},xt.prototype.toArray=function(){return this.take(V)},ys(xt.prototype,function(f,g){var S=/^(?:filter|find|map|reject)|While$/.test(g),R=/^(?:head|last)$/.test(g),D=M[R?"take"+(g=="last"?"Right":""):g],W=R||/^find/.test(g);D&&(M.prototype[g]=function(){var q=this.__wrapped__,J=R?[1]:arguments,fe=q instanceof xt,Ne=J[0],Te=fe||yt(q),Oe=function(Dt){var Pt=D.apply(M,Fi([Dt],J));return R&&We?Pt[0]:Pt};Te&&S&&typeof Ne=="function"&&Ne.length!=1&&(fe=Te=!1);var We=this.__chain__,et=!!this.__actions__.length,ht=W&&!We,It=fe&&!et;if(!W&&Te){q=It?q:new xt(this);var dt=f.apply(q,J);return dt.__actions__.push({func:ho,args:[Oe],thisArg:t}),new Sr(dt,We)}return ht&&It?f.apply(this,J):(dt=this.thru(Oe),ht?R?dt.value()[0]:dt.value():dt)})}),br(["pop","push","shift","sort","splice","unshift"],function(f){var g=ei[f],S=/^(?:push|sort|unshift)$/.test(f)?"tap":"thru",R=/^(?:pop|shift)$/.test(f);M.prototype[f]=function(){var D=arguments;if(R&&!this.__chain__){var W=this.value();return g.apply(yt(W)?W:[],D)}return this[S](function(q){return g.apply(yt(q)?q:[],D)})}}),ys(xt.prototype,function(f,g){var S=M[g];if(S){var R=S.name+"";Wt.call(Nl,R)||(Nl[R]=[]),Nl[R].push({name:g,func:S})}}),Nl[Wl(t,k).name]=[{name:"wrapper",func:t}],xt.prototype.clone=qh,xt.prototype.reverse=xp,xt.prototype.value=Rl,M.prototype.at=Dd,M.prototype.chain=Ka,M.prototype.commit=Od,M.prototype.next=im,M.prototype.plant=Dw,M.prototype.reverse=lm,M.prototype.toJSON=M.prototype.valueOf=M.prototype.value=Ow,M.prototype.first=M.prototype.head,ni&&(M.prototype[ni]=am),M}),bl=gw();Io?((Io.exports=bl)._=bl,zu._=bl):yn._=bl}).call(che)})(Im,Im.exports)),Im.exports}var dhe=hhe();const fhe=xf(dhe),phe=n=>async(e,t)=>{const r=await cS.get(`/users/${n}`);e({type:"GET_USER",payload:r.data})},mhe=n=>async(e,t)=>{const r=await cS.get(`/users/${n}/repos`,{params:{sort:"updated"}});e({type:"GET_REPOS",payload:r.data})},ghe=()=>async(n,e)=>{const{articles:t}=e();if(!t.articles||t.articles.length<=0){const r=await z4.get("/articles.json");n({type:"GET_ARTICLES",payload:r.data.articles})}},xhe=n=>async(e,t)=>{e({type:"UPDATE_EMAIL_BODY",payload:n.target.value})},ZF=()=>async(n,e)=>{n({type:"TOGGLE_CONTACT_MODAL"})},yhe=(n,e)=>async(t,r)=>{if((await r()).github.repoLanguages[e]===void 0){const o=await cS.get(`/repos/${n}/${e}/languages`);let i={};i[e]=o.data,t({type:"GET_LANGUAGES",payload:i})}},vhe=n=>async(e,t)=>{e({type:"SET_SORT_VALUE",payload:n})},whe=()=>async(n,e)=>{const r=await IK("/bai_model/model.json",{onProgress:s=>{n({type:"SET_PROGRESS",payload:fhe.round(s*100)})}});n({type:"SET_MODEL",payload:r})},bhe=()=>async(n,e)=>{n({type:"SET_LOADING",payload:"Loading Model. Please be Patient"})},Che=n=>async(e,t)=>{let r=await t().model.model,s=await _5(n).resizeNearestNeighbor([550,425]).toFloat().expandDims(),o=await r.predict(s).data();return console.log(o),e({type:"SET_LAST_PRED",payload:o}),o},She=n=>async(e,t)=>{console.log(n),e({type:"SET_ERROR",payload:n})},khe=()=>async(n,e)=>{let t=e().github.page;t++,n({type:"SET_PAGE",payload:t})};var Ub={exports:{}},Wb,fT;function Ihe(){if(fT)return Wb;fT=1;var n="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return Wb=n,Wb}var Vb,pT;function $he(){if(pT)return Vb;pT=1;var n=Ihe();function e(){}function t(){}return t.resetWarningCache=e,Vb=function(){function r(i,a,l,c,d,p){if(p!==n){var m=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw m.name="Invariant Violation",m}}r.isRequired=r;function s(){return r}var o={array:r,bigint:r,bool:r,func:r,number:r,object:r,string:r,symbol:r,any:r,arrayOf:s,element:r,elementType:r,instanceOf:s,node:r,objectOf:s,oneOf:s,oneOfType:s,shape:s,exact:s,checkPropTypes:t,resetWarningCache:e};return o.PropTypes=o,o},Vb}var mT;function Nhe(){return mT||(mT=1,Ub.exports=$he()()),Ub.exports}var The=Nhe();const it=xf(The);var Ehe=["color","size","title","className"];function UC(){return UC=Object.assign?Object.assign.bind():function(n){for(var e=1;eq3.createPortal(ee.jsx("div",{onClick:n.onDismiss,className:`modal ${n.show?"show":"hide"}`,children:ee.jsxs("div",{onClick:e=>e.stopPropagation(),className:"box",children:[ee.jsx("div",{className:"title",children:n.title}),ee.jsx("div",{className:"content",children:n.content}),ee.jsx("div",{className:"actions",children:n.actions})]})}),document.querySelector("#modal")),rde=n=>{const e=r=>{r.preventDefault(),window.open(`mailto:cam@camscode.com?body=${n.body}`),n.toggleContactModal()},t=()=>ee.jsxs("form",{onSubmit:r=>e(r),children:[ee.jsx("textarea",{className:"large",onKeyUp:r=>{n.updateEmailBody(r)}}),ee.jsx("button",{children:"Open In Email Editor"})]});return ee.jsx(nde,{title:"Contact Me",content:t(),onDismiss:n.toggleContactModal,show:n.show})},sde=n=>({body:n.contactModal.emailBody}),ode=oh(sde,{toggleContactModal:ZF,updateEmailBody:xhe})(rde),ide=n=>ee.jsxs("div",{className:"Navigation",children:[ee.jsxs(aa,{to:"/",children:["Home",ee.jsx(aP,{})]}),ee.jsxs(aa,{to:"/bai",children:["Blank AI",ee.jsx(lP,{})]}),ee.jsxs(aa,{to:"/articles",children:["Articles",ee.jsx(nP,{})]}),ee.jsxs(aa,{to:"/about",children:["About",ee.jsx(iP,{})]}),ee.jsxs("button",{className:"end",onClick:()=>n.toggleContactModal(),children:["Contact Me",ee.jsx(oP,{})]}),ee.jsx(ode,{show:n.modal})]}),ade=n=>({modal:n.contactModal.contactModal}),lde=oh(ade,{toggleContactModal:ZF})(ide),YI=n=>ee.jsxs("div",{className:`theater ${n.extraClasses?n.extraClasses:""}`,children:[ee.jsx("div",{className:"theater-bg",style:n.background?{backgroundImage:`url(${n.background})`}:{}}),ee.jsxs("div",{className:"theater-content",children:[ee.jsx("h1",{children:n.title}),ee.jsx("div",{className:"description",children:n.description})]})]}),ude=({defVal:n=!0,icons:e=[ee.jsx(tP,{}),ee.jsx(eP,{})],text:t="",clickAction:r=()=>{}})=>{const[s,o]=Re.useState(n);return ee.jsxs("div",{className:"btn toggle",onClick:()=>{o(!s),r(s)},children:[ee.jsxs("div",{className:s?"on":"off",children:[" ",e[0]," "]}),ee.jsxs("div",{className:s?"off":"on",children:[" ",e[1]," "]}),t]})},cde=({children:n,onClick:e=()=>{},href:t=null,className:r=""})=>t===null?ee.jsx("button",{onClick:e,className:"btn "+r,children:n}):ee.jsx("a",{onClick:e,href:t,className:"btn "+r,children:n});class hde extends $t.Component{perPage=5;sortOptions=[{text:"Created Date",value:"created_at"},{text:"Last Pushed",value:"pushed_at"},{text:"Name",value:"name"},{text:"Number of Forks",value:"forks"},{text:"Size",value:"size"},{text:"Last Updated",value:"updated_at"}];componentDidMount(){document.title="Github Repos",this.props.repos||(this.props.getUser(this.props.username),this.props.getRepos(this.props.username))}renderLanguages(e){if(this.props.getRepoLanguages(this.props.username,e),this.props.repoLanguages&&this.props.repoLanguages[e])return Object.keys(this.props.repoLanguages[e]).map(t=>ee.jsx("div",{className:"language",children:t},t))}roundUp(e){return e%1===0?e:e-e%1+1}objArrayBubbleSort(e,t){let r,s;do{r=!1;for(let o=0;oe[o+1][t.value]||!t.asc&&e[o][t.value]0){let e=this.props.single?[this.props.repos[0]]:this.props.repos,t=this.roundUp(e.length/this.perPage);const s=this.objArrayBubbleSort([...e],this.props.sortedValue).slice(0,this.props.page*this.perPage).map(o=>{let i=new Date(o.updated_at).toLocaleString(),a=new Date(o.created_at).toLocaleString();return ee.jsxs("div",{className:"repo",children:[ee.jsx("a",{href:o.html_url,target:"_blank",rel:"noreferrer",className:"title",children:o.name}),ee.jsxs("div",{className:"content",children:[ee.jsx("p",{className:"description",children:o.description?o.description:"No Description"}),o.homepage?ee.jsx("a",{href:o.homepage,target:"_blank",rel:"noreferrer",className:"website",children:" Project Website "}):""]}),ee.jsxs("div",{className:"languages",children:["Languages:",this.renderLanguages(o.name)]}),ee.jsxs("div",{className:"time",children:["Last Updated: ",i]}),ee.jsxs("div",{className:"time",children:["Created: ",a]})]},o.id)});return ee.jsxs("div",{className:"repo-list",children:[ee.jsxs("div",{className:"sort-menu",children:[ee.jsxs("div",{className:"select-menu",children:[ee.jsx("p",{children:"Sort By: "}),ee.jsx("select",{className:"dropdown-list",onChange:o=>{this.props.setSortValue({...this.props.sortedValue,value:o.target.value})},children:this.sortOptions.map(o=>ee.jsx("option",{value:o.value,selected:o.value===this.props.sortedValue.value,children:o.text},o.value))})]})," ",ee.jsx(ude,{defVal:!1,clickAction:o=>{console.warn(o),this.props.setSortValue({...this.props.sortedValue,asc:o})}})]}),s,this.props.pagethis.props.nextPage(),children:["Load More (",this.props.page,"/",t,")"]}):""]})}else return ee.jsx("div",{className:"loading",children:"User doesn't have any repositories"});return ee.jsx("div",{className:"loading",children:" Loading Repositories... "})}render=()=>ee.jsx("div",{children:this.renderRepos()})}const dde=n=>({repos:n.github.repos,repoLanguages:n.github.repoLanguages,page:n.github.page,sortedValue:n.github.sortedValue}),fde=oh(dde,{getRepos:mhe,getRepoLanguages:yhe,getUser:phe,nextPage:khe,setSortValue:vhe})(hde);class pde extends $t.Component{username="RaspberryProgramming";render(){return ee.jsxs("div",{className:"Github",children:[ee.jsx(YI,{title:this.username,description:ee.jsxs("div",{children:[ee.jsx("img",{alt:"avatar_pic",className:"avatar",src:this.props.user?this.props.user.avatar_url:""}),this.props.user?this.props.user.bio:""]}),background:"/img/space.webp",extraClasses:"peak"}),ee.jsx("div",{className:"content",children:ee.jsx(fde,{username:this.username})})]})}}const mde=n=>({user:n.github.user}),gde=oh(mde,{})(pde),uP=({article:n})=>{const[e,t]=Re.useState(""),[r,s]=Re.useState("");Re.useEffect(()=>{r===""?e===""&&(s(n),t("open"),setTimeout(()=>{t("show")},1024)):r!==n&&(s(n),t("close"),setTimeout(()=>{t(""),setTimeout(()=>{t("open"),setTimeout(()=>{t("show")},1024)},1024)},24))},[r,n,e]);let o=l=>{let c=[""],d=0,p,m=0;for(;m{let c,d=[""],p=0;for(let m=0;m{let c=[""],d=[],p=0,m=!1,y=["","`","*","~"],v;for(let b=0;b=0?m?(c[++p]="",m=!1,v=""):(d.push(y.indexOf(l[b])),c.lengthd.length?d.push(0):c.length{let w=o(c[b]);return w=i(w),d[b]===0?ee.jsx("div",{children:w},b):d[b]===1?ee.jsx("div",{className:"code",children:w},b):d[b]===2?ee.jsx("div",{className:"section-title",children:w},b):d[b]===3?ee.jsx("li",{children:w},b):ee.jsx("div",{},b)})};return ee.jsxs("div",{className:"article "+e,children:[ee.jsx(YI,{title:n.title,description:n.desc,extraClasses:"h-50v"}),ee.jsx("div",{className:"content",children:a(n.contents)})]})},xde=n=>ee.jsx("div",{className:"listing",children:ee.jsxs(aa,{to:n.link,children:[ee.jsx("div",{className:"title",children:n.title}),ee.jsx("div",{className:"content",children:n.children})]})}),yde=n=>()=>ee.jsx(n,{params:Lz()});class vde extends $t.Component{componentDidMount(){document.title="Articles",this.props.getArticles()}renderArticles(){const e=this.props.articles.map(t=>ee.jsx(xde,{title:t.title,link:"/articles/"+t.id,children:ee.jsx("div",{className:"description",children:t.desc})},t.id));return ee.jsx("div",{className:"listings",children:e})}article(e){return this.props.articles.length>0?ee.jsx(uP,{article:this.props.articles[e]}):ee.jsx("div",{})}render(){return ee.jsxs("div",{className:"Articles",children:[this.props.params.id?this.article(this.props.params.id):"",ee.jsx("h1",{children:"Articles"}),this.renderArticles()]})}}const wde=n=>({articles:n.articles.articles}),gT=yde(oh(wde,{getArticles:ghe})(vde)),bde=n=>{const[e,t]=Re.useState("Hello World");let r={id:"0",title:"Article Editor",desc:"This is a place to edit articles",contents:e},s=()=>{navigator.clipboard.writeText(e).then(function(){console.log("Async: Copying to clipboard was successful!")},function(o){console.error("Async: Could not copy text: ",o)})};return ee.jsxs("div",{className:"ArticleEditor",children:[ee.jsx("div",{id:"toolbar",className:"toolbar",children:ee.jsx("div",{className:"btn",onClick:s(),children:"Copy to Clipboard"})}),ee.jsx(uP,{article:r}),ee.jsx("textarea",{onInput:o=>{t(o.target.value)}})]})},Za=n=>{let e=()=>{window.scrollTo(0,0)};return ee.jsxs("div",{className:"card",children:[ee.jsxs("div",{children:[n.link?ee.jsx(aa,{to:n.link,className:"title",onClick:()=>e(),children:n.title}):ee.jsx("div",{className:"title",children:n.title}),ee.jsx("div",{className:"content-box",children:n.children}),n.skills&&ee.jsxs("div",{className:"skill-row",children:[ee.jsx("div",{className:"skills-label",children:"Skills:"}),ee.jsx("div",{className:"skills",children:n.skills?n.skills.map(t=>ee.jsx("div",{className:"skill",children:t},t)):""})]})]}),ee.jsx("img",{className:n.image?"show printHide":"",src:n.image,alt:n.title})]})};class Cde extends $t.Component{printRef=null;constructor(e){super(e),this.printRef=$t.createRef()}componentDidMount(){document.title="About"}printDiv(e){let t=this.printRef.current.innerHTML,r=document.body.innerHTML;document.body.classList=["Print",...document.body.classList],document.body.innerHTML=t,window.print(),document.body.classList.remove("Print"),document.body.innerHTML=r}render(){return ee.jsxs("div",{ref:this.printRef,className:"About",children:[ee.jsxs("div",{className:"printShow center",children:[ee.jsx("h1",{children:"Camerin Figueroa Portfolio"}),ee.jsxs("div",{children:["Contact Me: ",ee.jsx("a",{href:"mailto:cam@camscode.com",children:"cam@camscode.com"})]})]}),ee.jsx(YI,{title:"About",description:"This page has information about me and about this site.",extraClasses:"h-50v printHide",background:"/img/sunset.webp"}),ee.jsxs(Za,{title:"Build with React",image:"/img/react.webp",children:["This website is created with ",ee.jsx("a",{href:"https://reactjs.org/",children:"React"}),", a javascript library for creating user interfaces and webapps. React uses a component based design to help developers create easily re-usable code, and to help streamline the development process. JSX is a part of react which makes it easy to design websites directly in javascript code."]}),ee.jsxs(Za,{title:"Camerin Figueroa",image:"/img/profile.webp",children:["You can find a few of my projects on my",ee.jsx("a",{href:"https://github.com/RaspberryProgramming",target:"_blank",rel:"noreferrer",children:" Github"})," or look through a list of projects on this website at the ",ee.jsx(aa,{to:"/github",children:" Github Page"}),". You can email me at ",ee.jsx("a",{href:"mailto:cam@camscode.com",children:"cam@camscode.com"}),". You can also find more social media below, just click the image and it'll bring you to the selected website."]}),ee.jsxs(Za,{title:"CTECH - Networking",image:"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxQUExYUFBQWFhQXGRcbGhYWGhghIRwiHRgeHRoZGxofICojISAoIRwaJjQlJisuMDAwHCI2OjUvOSkuMS8BCgoKDg0OHBAQHDkfICAuLjksLC4uLi4uLiwuLi4uLi4uLi4uLi4uLi4uLi4uMC4uLi4uLi4uLi4uLi4uLi4uLv/AABEIALQAtAMBIgACEQEDEQH/xAAcAAACAgMBAQAAAAAAAAAAAAAABwUGAwQIAQL/xABHEAACAQMCAwUFBQUFBQgDAAABAgMABBESIQUGMQcTQVFhIjJxgZEUQlJioSNykrHBM4KistEVg7PC0hYlNUNUdOHwFyRT/8QAGgEAAgMBAQAAAAAAAAAAAAAAAAQCAwUBBv/EAC4RAAICAQQBBAECBQUAAAAAAAECAAMRBBIhMUEFEyJRFBVhMjNCUnEjgZGx8P/aAAwDAQACEQMRAD8AeNFFFEIUUUUQnlFFV/mTmu3s1zNJ7R3WNd3b4L5epwK6qljgThYAZMsFRPF+P21sMzzJH6E7n4KNz9KTPMfahdT5WH9hH+U5c/F/D+7iqPLIzEsxLMdySck/E1pU+mO3LnEVfVAcLHTxTtftkyIYpJT5nCKf5n9Krd72wXTf2cMKD82pj9cgfpS3orQT06lfGYs2oc+Zc5e07iJ6TKvwjj/qDWNe0riX/qAf93D/ANFVCirvw6f7RI+6/wBy92/avfr1ML/vJ/0kVOcO7ZW6TWwP5o3/AOVh/WlRRUG9PpbxOi9x5nQvCO0mwnwO97pj92Yaf8W6/rVsjlDAFSCDuCNwfnXJ1S3BOYrm1bMMrIPFM5U/FDtSNvpXmsy9NV/cJ1DRSx5W7V45SI7pRC5/8xclD8fFf1HqKZEEqsoZSCCMgg5B9Qay7aXrOGEbSxWHEz0UUVXJwoooohCiiiiEKKKKITygmgmkz2l9oBcta2rYTcSSqfe80Q/h8z4/DrbTQ1rbVldlgQZMlueu0xYi0FoQ8m4aXqq+i/ib16fGk9dXLyOXkZndjksxyT86w17Xo9PpEpHHczbLS55nlFFFNSqFFFFEIUUVscPs3mkSKNdTuwVR6n+nrXGYKMmdAzNeir9xPsovY94zHMPJW0n6NgfrVU4jwG5gP7a3lQeZU4+TdKoTVVP/AAmTNbDsSMqW4Jy3c3R/YxO48XxhR8XO1Mnsz4Bw6dGkWKWR4yoZrgLpyRnCKp0n577impFEFAAAAHQCs/UepFSVUc/vGKtNkZJnL3HeCy2kpilXDgAgjcMD0ZT4j/Q1Kco86z2TAKe8hJ9qNjt8VP3TTo565VS+h0nCypkxv5HxU/lPj8j4Vzze2rxSNFIpWRCQynwNW6e5NUm1xzI2IamyJ0ty5zDBeRCSFs9NSn3lPkwqZrlvgHG5bSUSxNhh1B6MPFWHiK6F5S5livYRJGcMNnQ9VPl8PI+NZmr0ZpOR1Gqbg/B7lgooopOXwoooohPK8oqB5z5gWztnmOC3uop+8x90fDxPoDXVUsQBOMQBkym9rPORiBtIGxI4/auD7in7o/Mw/T40mazXVy0jtI7FnclmJ8Sdyaw16fSacUpjzMq2wucwqU4DwGe7k7uBCxG7E7BR5s3hWlZ2rSyJGgy7sqqPMscCulOVuAx2cCwxjcbu+N3bxY//AHYVTrdX7AwOzJU07zz1FhF2O3JA1Twg+IAc/rgVgvuymSFC8t3CqjxKt9B5n0FNPm/mKOygaZ/aPuon4mPQeg8SfIUkL/jlxcyxzyTuj94dGFOiPAyNGPHw9fGs+vU3sNxbAjXsITtA5kxZdlNzKciRFi+60iurN6931A/ewfSsPGey28hUumicDqI86v4SN/lvTB5A56S7HdSkLcr5bCQD7yevmvz+F6qLa69G5gNOhHE5KZcbHbFN7sX5bwrXsi7tlYs+A6O/zPs/JvOtntN5B70NdWy/thvJEP8AzPzKPx+n3vj1wdkfM8000kEpGhYlMaKoAQIQulcfvDr5UxqNUb6cr/vK669lnMappW9q/N6LGILedhNr9vu+gXBBVn8DnGw+dWDtLZ1tXf7U0EaghlRAWkJ91A2oEZ9PXO1c91T6fpRYdxPUnqLSPiJO8tc0z2civE5KZJaIk6WzjOR57D2uu1P/AJY5hhvIRLE3oyHqh/C3+vjXMdNPkDl9rWAcSluGgTGopgEPHtgMD1Lfdx5rjrTPqNFZG7pv+5Vp7GBx4ly7TeZPslqQjYnmykeDuPxv/dB6+ZWkLxHiUszBppGkYDGptzjyJ8akObuYHvbhpm2X3Y0/Co6D4+J9TUJTGh0oqTJ7kLrd5/aFTPK3MEllMs0ZyOjpnZ18VP8AQ+BqGopyysWKQepSrEHInU/B+JR3ESTRHUjjIP8AMH1B2qQpGdkPM/cT/ZpD+ymPsZ+6/h/F0+OKedeX1NBpcrNSqzeuZ7RRRVEtnlIPtd5g7+67lT+zgyvxc++flsvyNObmXigtraWc49hCRnxPRB82IHzrmGWQsSzHLMSST4k9TWn6XTucufEU1T4G2fNeVt8O4fJPII4kLu2cKPTqfSpW55NvUkjiaBg8uQg1IQdK6iNQbSNt9zW01yKcExEKT1M3Zs6DiNvr2GpgP3ijBP8AFiujxXM3E+WLy10NLC8ZZgEZSD7XVQChPtbbfCmlw/mviUUcS3FgXdyEVhKiFzpJ9pd9JwpPh0rG9QQWMHQgx3TvtGCJG9u0EhFs4B7od4CR0DHTjPxAOPgao/Br5AkCttpkffP5dj/i/SmVc8/T6W18NcqJRCQZVP7TYhNOjJ6jGPOtHiXEbuMBpba4VZHCKO9szu59lMdwSPnVHJrFbDr9xL0s2OXEW8XDJ3cywRyadQaNxt1lCJpPnrIUY3yD5GnRyjzS5K292U74lljmUjRPobS+np7QbI6YODiqTxaSS0jjeW3u4YxhEK3Nvse7ZQBpiJB0F8H8zHqc1WL2C4u2WeOIrEHjt4VDjCYx3cSljknfOfMk1eU95QG4A8xf3NrEjzOksVRILOC34tcXClEjW1UzHIAV3kyM+RKpnHrnxqlnnXi1vbnvFQqsjQd84BYOucrs2CRg7kHp41D3/BuKSxoZI5GjlkDDLJ7bv0ZxnOcADLdAMbVTXpSM5YAGSe4Hocz57QOb2vpsLlYIyRGvn5u3qf0HzzU6sk/I1+hQNbkF20r7Ue50lse9tspr5fki+EqxGA94ysyjVHuFIDHOrH3h9a2aXprUKrCKsHY5ImLlrhkbN39y2i1jI1nxkPURRjqzHxx7o3JG1bXOXN8l6wXHdwJ/ZxD6am8zj5Dw8cx3HOB3NtoW4jZM50ZII9cEEjxFbl5yTfRRNK9uwjVSzEMhwAMkkBs1HFRcWMwP1OjcBgCV2irAOTL4xd/9nfutOrOUzjGc6M6unpWv/wBmLruPtHcsITpw5KjOpgqkAnOCSN8Vd+RWf6hK9jfUh6KsF/yZew6O8gYd44jTDIcs2cDAY+RrS4zwKe1KrPGYywyuSpz5+6TXVvrY4BgVI7EjlYggg4I3BFdI8icd+12kcpP7QexJ+8vX67N/eFc2UyuxLjGieS3Y+zKupR+ZPL4rn+EUn6lTur3DsS7TPhsR3UUUV5+aUWfbfxLRbRQg7yyZP7qDJ/xMn0pJ0x+3C61XcUfgkQPzZ2z+irS4r0fpybaR+8y9Q2XMs/Z7xaO3usytpjljeJnH3dWMN9QKtfCuI29t9itGuIpQk0s0sobMa/s3VF1Hz1dPA0raKldolsbcTIraVGI5uEX0DtZPG0awJcTiSItk98Vfu5NTbsDnI8tQ8tsScxWjG3bMcLreSNKpl1n+zlBkLn7pOMeG4xSeoqj9OXPcn+QfqNa851jaESO0bywXwOF06pY1yFkxt91sA/lFfVxf2fds63EMhe6hlQsMSopnVpFYnfC7/IUp6Kn+nKOjD3z5jI55ubV5u+Y20sRkOVt3bvnyhwZGwVAB8vStngfELSWK0VJ47dba4aVop23YayVIfozYOPnSuorv4C7Au4yPvHOcRlcUa3ubWeP7XDEwvp5hrb3l9rTpA65ztWtzDdQy8OjaW4iku4wgiMTNqZDjKSjwK77/AJfU5oCrkgDcnoBW3d8IniXVLBLGvTU8bqPqRUPw0XALTvuk84jC/wBtw/7T4fJ3yd1Haqrvq2Vgkmzeu4+tfVrdW8d6ZGksgjwzgdwzYySpUyFvvnPh5GldRUv08fcPeMu/Ps6y21nJAyi27sqsIPtRv9/Vn2m/e/6t7XxbiVr3Vzi5twk1uqDuie91qPdIGxQ5OR6mk7RXToAVCk9Q94g5xGwOP25lHEjcIG+zaDbBjr73GNIT/wDn6/OoLjHEYbqK2n78Ry26RRyW7ZGrS49uPw3zn4AeVUSihfT1BzmBuP1GnzjfxvcpPBPZI3exaZlZjL7mn9r93ux4+gWq92jtbtLFLDJG80ikziEkoH29pSfxb7eg86ptFSq0QrYEHqca3IIhUny5xHuLmCbOAkiE/DOGH8OajKKatUMpBkFOCDOthXlRXK90ZbS3kJ3aKMn46Bn9c0V5MrgzU3xJdrkueJSj8KxD/Ap/rVMq39q6/wDec/r3X/BSqhXp9H/JX/Ezbf4zCiiimZVCiiiiEKKKKIST4DwOa7k7uFNTdSTsqjzY+Fe8e4HNaSd3Mmk+BG4Yeat41dexjjqxzvbvgd9go35lHu/Mfy9ab3FeEQ3K6J41kUEEBh0PpWRfrnpu2kcRuugOmQeYg+zPh5l4hB7JKIxcnGw0qSM/PFO7nSw76yuIwMkxsQPVfaX9QKlrW0SNQsaKijoqgAfQVnrO1GqNtgfGMRqunauJyW6EHBBBHgasfDOR7yeAzxxewBlQThn9UXx/r4U/eJcAt5ypmhjkKkEFlGdvXy9OlZ+IXkcETSOQqIpJ+A8BTbepuQAo5lH4oHJM5YdCCQQQQcEHw9K+a3+OcRM88sxAXvHLYHhnoK0K2qySoJiZ4PEKKKKnIwoooohCiiigwnRfZo+rhtsfysPo7D+lFY+ysf8Adlv/AL3/AIz0V5S3+Y3+TNFRxFl2zQaeIE/jijb+a/8ALVFpr9u1j7VvMB1DoT8MMv8ANqVFb3p7bqRFLxhzAV9BTjODjpmvmnl2YG2uuH9yYl9glZUI94ncPnzI+mPhU9VqPZXdjM5VXvOIqOTuCC7uo4GYqraizDqAqk7fTFSXaHyothLGsbu6SISC+M5Bww2A9PrTRC8K4T+BJcdd3kIP1IH0FYzzfwm+xHKUPgvfJjr+FiPZ+orPOttNgdQdsY9lQuCeYjYbOR1Z1jdkT32VSQv7x8K2eH8EuJwWhglkUHBZFYj4ZroG+hhsLGUwQjRGjMI1GcnzbxI8yfCq52Vcw2otUgMiJMGcsjYXJZyRp8Dtj6VL9QcqWVepH8cAgEyC7MuT3ile6u4zEsIyglGnfxc58FH6n0q7nn22J/ZpPMoODJFC7L/FWHmuP7Td21mx/YsHmlUffCEaEPpq61bYYlVQqgKoGAAMAegFZt1psO5+zGUTaMLI3hfMMFwjSRSagmda4OpceDIRqB61FHtCsshdUuo7gdzNn6aamxwiETfaAgEpXQXGRkZz7QGx6dTUJxH/AMWtv/bz/wCZaqUKSZMlhNy95utoo4pHZws2e7HduSdPX2cZFaE/M1ldKbZhKwm9jBhmA9rpuV238fCsHPV4Ibvh8hV2CvPlY1LMcxY2UdetSNlzhG7pGILpSzBQWgcAZ8WPgKntwAQJzOTgxK8T5GvYpZI1glkVWIV1UkMM7N9KgbmykjfunjdZAQNDKQd+m1dTXd3HEpeR1RR1ZiAPqaTnHuZoG4xbzwDvlUJG2FzkksuU8yAwx6itLT661uCOhFrKFHmLu7tHiYpIjI46q4IP0NX3kfs7jvLUzSSSIxZggXTj2dsnI39rP0pqcxcHs5As10kZEWTrkOAB5N5j0NQUfaNwyHEUbEIuw7uNgo+Ax/SovrrbUwgOZ0UKp+RiHlQqxU9QSD8q8ZSOoI8d66As+XuF3jrcxJFIQxJ0bAk/jTz8dxVL7a72EyxQKg72MZZ8Ywp91PUePp9aZp1xdwm3nzK3o2qWzFjRRWSCEuyooyzEKB6k4FaTnAzFh3Oj+QbfRw+2HnErfx+1/WipmztljjSMdEVVHyGK8rybHJJmmFlZ7VeF9/w+XAy0WJR/d97/AAFq57rrGaMMCpGQQQQfEHqK5j5p4ObW5lhPRG9k+andD9CK0/S7e0Mo1Sf1Sf5A5HF+kjtKY1RgoAUEk4yfHbwpnTwR8I4ZJ3XtFASGYbs7tgFvqPkKRXCuMT27aoJXjPjpOx+I6H507eaonvOD6wCZDFFLjGCSuGfb+Kua1X90bz8SYUkbTgcxFXVy8jtJIxZ2JLMTuTWGiithVAGB1FCTnMcvY5x95o5LWU6+7AKat/YOxU+gOPrRzf2fWEFtNKpMbqrMmqTbI3CgHrnpio3sN4exlnuMYQKIwfMkhj9AB9aOMcCe9408U7PHDjUgJ99VVQQnhucnb1rBsAW9tpwBzHl5rGRzNvl0ytZ2V7Apllte9jkiHV4y3tBfzAaSBV0s+dbGRdX2mND4rIwRh5gq2+ameH2McMaxRIqRqMBV8K8n4XC7anhjZvNkUn6kUk7BjyJcqkCRfBuZVuZWWGN2hUb3HRC2fcXO7fEVp8R/8Wtv/bz/AOZatKIAMAAAeAo0DOSBnzqORniTxxKbztexw3fD5ZXCRq9xqY9BmLH8zUrac4WUjrGlxGzsQqqM7k9B0qblhVveUH4jNfK2qA5CKD54FG4EAeROYIOYne1qVJuI28DPpQLGHYnAXW+5/hwavPAuQrKCRJ4lYsuSpLEjcYzWXnnlSG8iLPhJUUlZfw4GcN5rVR7DjLicMHMJ0aWOdOoE6gvruOnlTe7dT8TjHY+5RjFnIzmVztZ5hee6eEMRFCdIXwLfeY/y+XrVFqzdo/Dmhv5ww2kYyKfMPv8AzyPlVZrb0iqKl2xS0kscya5T4/JZ3CSqTpyBIvgy53B/mPWnZzjyVDxDu3LmNlBAdQDkHcA/D+ppBcPsnmlSKMZeRgoHxNPLtO4tLaWSCB2RyyJrA6AKc7+HQUhrlxcvtnDGXUn4Hd1FDzlwD7FcNBr1jSrBsY2PmPrW/wBmHCu/4hDtlYsyt/d93/GUqs3V08jF5HZ3PVmJJPzNObsV4J3Vu9yww0xwv7i/6tn6CmNVYatPhjz1IVKGs46jLxRXtFeemlPKWPbLy4ZYlu0GXhGHx4oT1/uk/Rj5UzqwzQh1KsAVYEEHoQeoNWU2mtwwkLF3DE5l5VuoYrqF7hNcQb2gd8eTEeIBwcelOb/8n2HerEHYqdjLpwi+Wc749cUqefeV2sbgqATC+Wib08UPqv8AoamOR+RI720lmLuJQzrGBjTkIpGrbfJNa2qFNqi1jE6i6kqBLXzL2XRXDGa2lERf2tOMoc/eXHu5+YqL4Z2OPqBuLhdA6rEDk/Nun0NW204m720dtbLJFcCNE/axuvdAKFZzlcHHhjOTj1qm2XON3Y35gv5u9jGFYqBhdQDK4wAfiPWla7bypVW6/wCZay1ggkS0cf5oteExx28UYZhjESnGF8XZsHc/rVe5z5vkmtYLqCF41SbImfRlWAI0qAckHfORjbFWS8uI3ee6nhxZm2QFpFXVJ7bFdAzkDDeONytUY9pMeO5+wQ/ZM/2XjjPXpjPj0+dRpr3chckdzjtjjMgeMc8X1wMPMyqfux+wPnjc/OmH2Wc6y3DfZZlLuiFll8SFIGH9dxvUfzpwc3S29xbxBrJYTkR6FeMdScE+1jHu/lbzzWnyAYuHXLNcOBFPEO4uADocagev3T0yD0xvTFppek7VwfqRXcr98R00aqXfPHH2uDHY2MqvLMcvIjbIg33Zemf5D1qC4zyhf2cYuY7t5zCQ7IS+wXckAsdQ8xttWetII+RwTGDZ9CN6V8KTjOATgeNc9818+3F1KGRmhjQ+wiMQf3mYdTTdtufLNrdJnmRNQ3QnLA43XSN6T55dORK6kGeQi2t+jSam2ZvwoMj4+nWm9EiKxNglN7EgbTMN7z1fSwNBJNqRhgnSuoj8OoUwU57NjZ2yS2rCRogVAKBCABhsgkjOxIx41qRKvDeGqt/bxSyGVjFDhT82bcefyIFaXDe0GC5mijvbSLuwwCOBnu9xjIP3emf5VZYBZyqfEfXmRUlezzLjJb2fG7ZX3Drtke/ExG6nzH6GqhL2Nz6sLcRlPMqwP03/AJ1cP9rrYG5e4iKI8xZJI1GlxoUIu24f2d9QxnO9VHlTjXFb+aWSG4RI42DGNwMbklYx7OcbYzVNT2qpKHCj7k3CEgMOZaOA8rWnCY2uJpQ0gGDK4xj8sa+Z+ZNas/aRw6eCVZQ2NLfspE9/yCkZGenlitvmkx8RSO1VJgxlQyHu2Ai0g6wzkadWMgYzkkUr+0PlmOyuFiiZ2V0DDXgkZZlxsN+ldoCWt/qk7pywlR8RxIvlrgzXdzHAmQGOWP4VHvN8h+uK6Xs7VYo1jQYRFCqB4ADAFU7sw5T+yQ95KP8A9iUAt+Rfup8fE+vwq9VXrNR7r4HQk6K9oye57RRRScYhRRRRCRvF+FQ3EZjmjWRCc4bwPmD1B9R51Qubue/9nSC1gtQoUAgsNKEH8Cr1HrnqDTOqA5s5ZhvYu7lGGGSjjqh8x5jzHjVtLqGG8ZErsUkfHuUnlrtaWSRY7mNYwxwJEJ0g/mU7geuawc39mc89288MqFJfaJlJyp/CMA5HTFL3mXlyeyl7uZdjnRIPdceYP9Oops3PELleBxSwl++7qPdRk6c4Lfw75rQsVa2V6D/FxF1JYFX8SP4LwW4l4bPaTzIZGcpCrPkgxN7m/hlengN6XH/ZK973uvs02vOPdOPjr93Hrms3LPCrmedJo0aQLMmuQk7HOos7dQMA5arzzDzjxC1uVlliVbYsyLDqQ69K7uHxqxvkHp4VMNZS5VCCTIfFhk+J8818Pa24VHbpcoskG88YfBbvDnTgHpluh6iojs3vI7hH4bcjVHJloT4ow6hT4Hx+R86+uJXbokM0Fosv2vvWkMkZYnXLnuNj0GAQ3UjHSoHmlBa35aHKMjLIBhQFJ9rSunYqM4+VFSFkKee5xmwQfEtXKXCjwziojnI0So6RSnYNkgj4HbGPM0zeauJRw2s0khAXQwwfEkEBR6k1gmtIOJWiGRdUcqBgQd0JHVT4EbioHhfZsiyK9xcS3KIcxxSZ0r5ahk5+GwpB3Dtuc4IjCqQML0ZU+QOTEWM396NMSKXSNvEDfW48vIeP86bzFx6S6uWnLFSSBGM40KD7IB8Mdc+eaZnbXxvu4Y7VDgye0+PwqfZHzb/LVF5StgILmdYRNLEECo6BlGpwdY31Fl0nYbY61oUZKm5/PAi9nB2iXPnHl+W6srdY5Uubi2X9oEcEsHA365J9kdeu9Ubl/ky6nmVDDJGgI1ySKVCjx69T6VZrXj5tY4r97YLPL38ZVV0K+Srd8x6g5GNOMH2iMVvcK4jxO6tJklQSpNC7RS6kXBGQYwEG7HGyn51Wj21oVGMf+zOkKxye5n554Jc31zHFBPG0DRFlXWdI0EAswXOSSwAPx8q3OR+WzwqOe5upVG2CEOV0g7HpksTsB/rStto7uznQIJYpyAVQDJIboCnjn8Jpmds8sn2OAb4aQa9vHQcDH129Ki6MNtW4bTJqQctjkSL4j2xS6z3Nugj8DIWJPr7JAH61feXJvt0Ec9xaojhtUerDHb3ZFyMrn/5qjdnnZuSVuLxcAYKQN4+TSD/l+vlTgAqjVGpTtrHXmWVBzy0+qKKKTjEKKKKIQoooohCiiiiEj+K8LiuIzFNGJEPUH+YPUH1FRnHb6e2RTBa9/Gi4Ko+GUDppTSdQx5b+lWGva6Gx/iRIzEazSXdnMII44riS4LSQo4Dyouo40E59ksNh1xmtR7WS24bLFcd0srsGhhmGXVfddox9xiceXutTh4py1BM3eFTHNggTRnS4ypU+147E9c1ROI9mb4VS73EaAhMSaJEBOdID5jbf1Snqr0PfAzmLPU3iLzli5vdfc2bSamIcqhAzpB3Ynw36Havb/gEiwGYoVeGQxToRupI1I/wOcfIedMblnkae0mE9tKrHBVorhGQ4OMjUurO4HtDarbZcBZxdG5CE3OAyRklVVU0KNRAJbqc48qvfWqr5TqQWgkcyvdifE+8tHhJ3hfb91/aH+LXTHpOdl9u9pxO4tH8UOPXQwKN81Yn501+K3QiikkP3EZv4VJpHUqDaSvmMVH4c+IhebTJxDiskcXtEv3SeQCbFvhszVrz2U8TNNZJIILfUgnVfe2KySZ9cnp7oxV27K+XWNvPdH+2nEiRMfAb5b5v/AJa3uDpf/YPsQs+7cI0RlkdAmDnLYGWJwfL1pw6nZ8B0OJR7WeT5ifuOJSyyrJK/eONAzJvkLgDV57D51debOC3F08MtoFmgCKiiDZI3X3wF20jVvnyIqRs+yTH9pI7t4iNQqj+++5/uoat/AeQIoDGxkmPdkskYkYKpI3O2M/p8KlfqquCniCVN5kJw6WZLyEw28dzJ3CpPcJIN3GFOt9wpXRj8TCmIYNYTvEQspDAYyFPmpI6jPXasttapGoSNFRR0VQAB8hWesx33GNIm2Fe0UVCThRRRRCFFFFEIUUUUQhRRRRCFFFFEIUUUUQhRRRRCRB4NAZxcmMd+o0h8tnG4wd8HYnrW7d2iTRtHIMo4wwyRkEbjavKK6e5ATywtUiQRxqFRAAoHgK26KKDJCe0UUVydhRRRRCFFFFEIUUUUQhRRRRCf/9k=",skills:["CCNA1/2","Cisco IOS","Linux","Python","Cyber Security","IPv4","IPv6","Subnetting","Make Cat5e Cable","Configure Static Routing","Configure Dynamic Routing","Configure DHCP"],children:["During highschool, I had the ability to take classes at CTECH. I took the networking class that not only allowed me to learn about the in class material, but also enabled me to learn outside of what I would normally have. We took the CCNA1 and CCNA2 courses which taught me a lot about cisco networking devices, as well as the Cisco IOS Operating System. I was also able to take part in a few different competitions such as the ",ee.jsx("a",{href:"/pdf/Results_2017_NetRiders_USCAN_CCENT_R2.pdf",children:"Cisco Netriders (Discontinued) competition"}),", AFA run ",ee.jsx("a",{href:"https://www.chroniclenewspaper.com/news/local-news/they-really-get-it-EACN20160330160339989",children:"Cyber Patriot competition"}),", and the ",ee.jsx("a",{href:"https://www.facebook.com/photo.php?fbid=1665025620193621&id=115443158485216&set=a.387319137964282&refid=13",children:"Skills USA compeition"}),". After highschool I had also ",ee.jsx("a",{href:"https://www.recordonline.com/story/news/local/2018/02/15/local-students-finish-strong-in/14794857007/",children:"mentored "}),"for a few separate competitions at CTECH."]}),ee.jsx(Za,{title:"Orange County Community College - Computer Science",image:"https://upload.wikimedia.org/wikipedia/en/3/36/Orange_County_Community_College_seal.jpg",skills:["C++","Java","React","Javascript","Assembly","Data Structors & Algorithms"],children:"Taking classes at OCCC helped shape my career. While at OCCC, I took classes where I learned C++, Java, Data Structors, Assembly and more. I also took part in the Computer Science Club, Outdoors Club, and various other activities."}),ee.jsxs(Za,{title:"Marist College Experience - Computer Science",image:"https://upload.wikimedia.org/wikipedia/en/thumb/4/4b/Marist_College_Seal_-_Vector.svg/1200px-Marist_College_Seal_-_Vector.svg.png",skills:["PHP","Haskell","Git","Data Structors & Algorithms","Arduino","Robotics","Docker","Typescript","6502 Assembly"],children:["Throughout my college experience I've been able to improve my understanding of how computers work and how to design different software. I have completed my A.S. degree from Orange County Community College in Computer Science. I had finished my Bachelors degree in computer science at Marist College in Poughkeepsie in May of 2022. While at Marist I was able to work with others in teams on a few projects. A few notable projects I worked in ",ee.jsx("a",{href:"https://github.com/McDaPick/SpicyArduino-412",children:"CMPT412"}),",",ee.jsx("a",{href:"https://github.com/RaspberryProgramming/gchs-codebase",children:" Capstone Project"}),",",ee.jsx("a",{href:"https://github.com/RaspberryProgramming/422-tsiraM",children:" CMPT422"}),", and ",ee.jsx("a",{href:"https://github.com/RaspberryProgramming/T3-Project",children:"CMPT221L"}),"."]}),ee.jsx(Za,{title:"Tutoring - Computer Science",image:"/img/profile.webp",skills:["C++","Java","Web (HTML/CSS)","Javascript","Data Structors & Algorithms"],children:"While taking classes at OCCC and Marist College, I took the opportunity to tutor fellow students through each schools tutoring centers. While at OCCC, I tutored in basic level courses and had some classes that I had familiarity with. I also took part in seminars for teaching to tutors necessary skills. At Marist College, I had also tutored in relevant classes. Tutoring helped me better understand the topics I was tasked with and better understand how to teach others skills that I have."}),ee.jsx(Za,{title:"TRMI",image:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOAAAADgCAMAAAAt85rTAAAAkFBMVEX///+foaQAbLYAYrGex+Nyq9aanJ8AZLK3uLqhoqX29/amqKsAZrMAarX5/P3HyMqvsbTt7e4xhMLT1dZMlsvo8fgZd7zk5OWUv+DO4/FCjcdens8AWKxrpdPa29yztLeZxeKw0Oi/wcO71+uOu96Ctdrd6/URdLrv9vs2iMV4sNfR5fIAXq/B2+0Ydruy0ug2notqAAAEvElEQVR4nO2baXeyOhRGGRQcCIpTiyNqa21r2///7y5TQiYVffVq1nr2N8kBsw1mIAfLAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKA2nWWrYrXMDkWrYV7S6uURm1UV0Ht5YFWvIhy22hVebhZ5uVmn3cpD+nYV0O9FD6zsFUQrz7Mr9IJchOd1lw+s7sVEXV6vhmCmaJBhR/KrI5gGGWMY9aSq1xTshw+s9CUM5QasJ2hOE7ZsmZqCmwdW+hJW1wquHljpS7hW0O52HljrC4AgBJ8cCNYTDBtJ4zRJnMXFJ8KSdTyurvjDRyZ/mqrvhIitxV8/Wd9YcOwc/NPMF1ncYn48wg2cySymV5zNhaLYUhjxEfOpxV//MKEzrVsJTohzGreZxTXdEyGEBG7wVl5RjHRnit824L/SHQlnBYNnFMwl3bVOkBC5CcNPX7i8KYJOMNlrBFMBaXbfkMtNEXT8tU7Qcdf891nhwBeLzRF037WC/lRowoYvnXVvQcdlHVoQsK8NAqkXZdUmfsD1gdkH+gv5YlWra/FNOJ4EYum9BcM1NybNyl+XfLxyR2O+AmQiDYKvI1pjWZCKB4N99X3vcum9BQUSZqEs+2kF/E/lLGooCZIP5vDGYse/hJY+QvCVCY7lIrUC1c/iawX9xWdpTvtXi79/30t/AwRj/S3qvrMRnTVhTOiR2bdjjOC69JAFm9aU3a27InRGGzCId08rqJz1Re9JRXBL+59iqLG+WQM203Z/VsFQZN+gHaI0DmZSM6EJwxH96OyeVpB8TEUm9I9GZ528IPefS0v+6JDpfllPK5hWIZ0QVLBhnhyaYmR+W7LTgh8rnJbdbd6rPq+gHhI0Q43g+LcaJP/KtiZ+YhknSAZrObLoWOggSUiDDot+vsQ1TdAZvGoF2eKBsMlZseowTDCt2eFNJ6isHuga/2kFiSvAOhkn+B3rBK2RaEg72ysE7XyDennvYWImwoYJx020gj/i+shfWFcKekXNh6Lg5saCympi36Qt5H9pBav5WS7wMb5aML9DrVYp2C0aNGrLhreei+4H+uUSE9yx7sVh053LBb3CK9vYLgVL4aUtZCrQhr6dIPuTHROsFrn84ve8oMdhd1flxu3QY4L9wiTadNt87P8vuK8eU7gNevCsYPTCEbGjbZvdomUTpmOREHsiG+hOguy6/AOos4JawrTTZIK2fWlm070E6bNeks5I/0mw00r/bpWgd6nhG90gcBRBde+AMZ0Luwx0b2K+qELWh/zZ3XxUHYpd9/TehIaXfNDjWtCzh8ejNXzTLZ6G+lxC2f1hbGlRsU9Ed5cS7pl9WD6C4363/bndJVWvZ+fdJSeYpcUsTcmLkRH6jeVm07fL0UAQzPLTNpueEGyIcd+TYAOdIJgpirSN3eE9InjBVO2pgOCxYlMyndRctZqCpuSqqdmGNQVNyTZU80VrCZqTL6pm/NYTNKUBLTVnu4agUTnbStb9WUHTsu7l9ybo6xNUUCkx7r0J6c0X+gJM8ebLRi0x780XAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEbzH2yahtDw6DjLAAAAAElFTkSuQmCC",skills:["C#",".Net Framework","Windows Forms","Windows Services","Microsoft IIS","ASP.NET MVC","Entity Framework","MSSQL","Microsoft Message Queuing","Angular","Typescript","Oracle Database","Credit Payment API's","Documentation","Deployments"],children:"Working as a Full Stack Software Developer at a toll collection systems company. Here I work as a Full Stack Software Developer on the company's management software, as well as their payment software. In addition, I help support some of the older systems that are under maintenence. This has exposed me to all sorts of current and legacy software designs. I've worked on a variety of components of the software including our web front end, ASP.NET APIs, Windows Services Written in C#, create and debug Oracle Database Procedures & Packages. I've had to opportunity to train new employees and get them up to speed so they can develop software."}),ee.jsx(Za,{title:"HVCU (Current Employer)",image:"/img/hvcu.webp",skills:["Agile","Python","Pandas","Numpy","PowerOn","JavaScript","Jira"],children:"Working at HVCU, I've taken courses and gained experience with agile methodologies. I've learned to write specfiles in PowerOn and create programs with state of the art technologies provided by Jack Henry. I've been able to work with Python in processing data from the core system and from third party vendors."}),ee.jsxs(Za,{title:"Github",link:"/github",skills:["Tensorflow","Redis","React","Python","Raspberry Pi","Linux"],children:[ee.jsx("p",{children:"You can access a list of github repositories that I've created directly on this site."}),ee.jsx(aa,{className:"btn",to:"/github",children:"Learn More"}),ee.jsx("br",{})]}),ee.jsxs("div",{className:"social",children:[ee.jsx("div",{className:"title",children:"Social Media:"}),ee.jsxs("div",{className:"links",children:[ee.jsx("a",{href:"https://github.com/RaspberryProgramming",target:"_blank",rel:"noreferrer",className:"link bg-white",children:ee.jsx("img",{src:"/img/github.webp",alt:"Github"})}),ee.jsx("a",{href:"https://www.linkedin.com/in/camerin-figueroa-2662bb157/",target:"_blank",rel:"noreferrer",className:"link bg-white",children:ee.jsx("img",{className:"printHide",src:"/img/linkedin.webp",alt:"LinkedIn"})}),ee.jsx("a",{href:"https://www.hackerrank.com/figueroa0609",target:"_blank",rel:"noreferrer",className:"link bg-hackerrank",children:ee.jsx("img",{className:"printHide",src:"/img/hackerrank.webp",alt:"Hacker Rank"})}),ee.jsx("a",{href:"https://app.hackthebox.eu/profile/734741",target:"_blank",rel:"noreferrer",className:"link bg-white",children:ee.jsx("img",{className:"printHide",src:"/img/hackthebox.webp",alt:"Hack The Box"})}),ee.jsx("a",{href:"https://www.udemy.com/user/camerin-figueroa/",target:"_blank",rel:"noreferrer",className:"link bg-white",children:ee.jsx("img",{className:"printHide",src:"/img/udemy.webp",alt:"Udemy"})}),ee.jsx("a",{href:"https://leetcode.com/RaspberryProgramming/",target:"_blank",rel:"noreferrer",className:"link bg-black",children:ee.jsx("img",{className:"printHide",src:"/img/leetcode_logo.webp",alt:"leet code"})})]})]})]})}}const Gb=n=>ee.jsx("div",{className:"topic",style:{backgroundImage:n.background?`url(${n.background})`:""},children:ee.jsxs("div",{className:"content",children:[ee.jsx(aa,{to:n.link,children:ee.jsx("h1",{className:"title",children:n.title})}),ee.jsx("div",{className:"children",children:n.children}),ee.jsx(aa,{className:"btn",to:n.link,children:"Learn More"})]})});class Sde extends $t.Component{constructor(){super(),this.state={start:!1,prev:"previous",curr:"current",next:"next",prevLoc:-1,currLoc:0,nextLoc:1,moving:!1}}topics=[ee.jsx(Gb,{link:"/about",title:"Welcome to My Portfolio",background:"/img/background.webp",children:ee.jsxs("div",{children:["This website helps you access the projects that I've worked on. You can navigate at the top to different locations in the site. Within you can find information about me, my github repositories, and articles I've posted. This website is coded with React/Redux and hosted over Vercel. You can email me at ",ee.jsx("a",{href:"mailto:cam@camscode.com",children:"cam@camscode.com"}),"."]})}),ee.jsx(Gb,{link:"/github",title:"Github",background:"img/space.webp",children:"View a list of projects I've done right on this website. You can easily direct to github where you can see the project code itself."}),ee.jsx(Gb,{link:"/articles",title:"Articles",background:"/img/sunset.webp",children:"Read through some homemade articles that go over interesting topics and may teach you some skills in tech."})];handleKey=e=>{switch(e.key){case"ArrowUp":this.handleInput("up");break;case"ArrowDown":this.handleInput("down");break}};handleInput=e=>{e==="up"&&!this.state.moving&&this.state.currLoc>0?(this.setState({prev:"current top",moving:!0}),setTimeout(()=>{let t=this.state.prevLoc-1,r=this.state.currLoc-1,s=this.state.nextLoc-1;this.setState({prev:"previous notrans",currLoc:r,nextLoc:s}),setTimeout(()=>{this.setState({prev:"previous",prevLoc:t,moving:!1})},75)},900)):e==="down"&&!this.state.moving&&this.state.nextLoc{let t=this.state.prevLoc+1,r=this.state.currLoc+1,s=this.state.nextLoc+1;this.setState({next:"next notrans",prevLoc:t,currLoc:r}),setTimeout(()=>{this.setState({next:"next",nextLoc:s,moving:!1})},75)},900)):e==="down"&&this.state.nextLoc>=this.topics.length};onWheel(e){e.deltaY<0&&this.handleInput("up"),e.deltaY>0&&this.handleInput("down")}componentDidMount(){setTimeout(()=>{this.setState({start:!0})},100),document.title="HomePage"}render(){return ee.jsxs("div",{onKeyDown:this.handleKey,tabIndex:"0",className:this.state.start?"intro start":"intro",onWheel:e=>{this.onWheel(e)},children:[ee.jsx("div",{className:"navbutton top"+(this.state.currLoc>0?"":" hidden"),onClick:()=>{this.handleInput("up")},children:ee.jsx(sP,{})}),ee.jsx("div",{id:"previous",className:this.state.prev,children:this.topics[this.state.prevLoc]}),ee.jsx("div",{id:"current",className:this.state.curr,children:this.topics[this.state.currLoc]}),ee.jsx("div",{id:"next",className:this.state.next,children:this.topics[this.state.nextLoc]}),ee.jsx("div",{className:"navbutton bottom"+(this.state.currLoc{this.handleInput("down")},children:ee.jsx(rP,{})})]})}}const kde=n=>({}),Ide=oh(kde,{})(Sde);class $de extends $t.Component{render(){let e=document.getElementById("ProgressBar"),t=0;return e!==null&&(t=e.offsetWidth*(this.props.progress/100)),ee.jsx("div",{className:"ProgressBar",id:"ProgressBar",children:ee.jsx("div",{style:{width:t+"px"},className:"Bar"})})}}class Nde extends $t.Component{classes={0:"Blank",1:"Not Blank"};componentDidMount(){document.title="Blank AI"}extExtractor(e){let t=e.split(".");return t[t.length-1]}async fileUpload(e,t){const[r]=e.files;let s=document.getElementById("preview"),o=["jpg","png"],i=await this.extExtractor(r.name);if(r&&o.includes(i)){let a=await createImageBitmap(r),l=await t(a);console.log(this.declassify(l[0])),s.src=await URL.createObjectURL(r),s.classList.add("show")}else this.props.error_msg("Please pass JPG or PNG file Only")}declassify(e){return e>.5?this.classes[1]:this.classes[0]}render(){let e=this.props.model===null?ee.jsxs("div",{className:"content",children:[ee.jsx("h1",{children:"Would you like to download the model?"}),ee.jsx("p",{children:"By clicking Accept below, you will download the model which may be between 100 mb in size to 1 gb."}),ee.jsx("button",{className:`btn ${this.props.loading?"hide":""}`,onClick:()=>{this.props.loadingModel(),this.props.downloadModel()},children:"Accept Download"}),ee.jsx("h2",{children:this.props.loading}),ee.jsx($de,{progress:this.props.downloadProgress}),ee.jsx("h2",{children:this.props.loading?this.props.downloadProgress+"%":""})]}):ee.jsxs("div",{className:"content",children:[ee.jsx("h1",{children:"BAI Model Prediction"}),ee.jsx("p",{className:"prediction",children:this.props.last_prediction?this.declassify(this.props.last_prediction[0]):"Waiting for Prediction"}),ee.jsx("div",{className:"error "+(this.props.error?"enable":""),children:this.props.error}),ee.jsx("img",{id:"preview",alt:"preview of predicted file"}),ee.jsx("input",{type:"file",id:"fileSubmit",onChange:({target:t})=>this.fileUpload(t,this.props.predict)}),ee.jsx("button",{className:"btn",onClick:()=>{document.getElementById("fileSubmit").click()},children:"Upload Image"})]});return ee.jsxs("div",{className:"Bai",children:[e,ee.jsxs("div",{className:"about",children:[ee.jsx("h1",{children:"About"}),ee.jsx("p",{children:"You can find the source, dataset and model created for BAI on github at"}),ee.jsx("a",{href:"https://www.github.com/RaspberryProgramming/BAI",children:" https://www.github.com/RaspberryProgramming/BAI"})]})]})}}const Tde=n=>({model:n.model.model,loading:n.model.loading,last_prediction:n.model.last_prediction,downloadProgress:n.model.progress,error:n.model.error}),Ede=oh(Tde,{downloadModel:whe,loadingModel:bhe,predict:Che,error_msg:She})(Nde),Rde=n=>ee.jsx(iB,{children:ee.jsxs("div",{className:"App",children:[ee.jsx(lde,{}),ee.jsx("div",{className:"app-content",children:ee.jsxs(Zz,{children:[ee.jsx(Xl,{path:"/",exact:!0,element:ee.jsx(Ide,{})}),ee.jsx(Xl,{path:"/github",element:ee.jsx(gde,{})}),ee.jsx(Xl,{path:"/about",element:ee.jsx(Cde,{})}),ee.jsx(Xl,{path:"/articles",element:ee.jsx(gT,{})}),ee.jsx(Xl,{path:"/articles/:id",element:ee.jsx(gT,{})}),ee.jsx(Xl,{path:"/bai",element:ee.jsx(Ede,{})}),ee.jsx(Xl,{path:"/articleEditor",element:ee.jsx(bde,{})})]})})]})});let Ade=(n={repoLanguages:{},page:1,sortedValue:{value:"pushed_at",asc:!1}},e)=>{switch(e.type){case"GET_REPOS":return{...n,repos:e.payload};case"GET_LANGUAGES":return{...n,repoLanguages:{...n.repoLanguages,...e.payload}};case"GET_USER":return{...n,user:e.payload};case"SET_PAGE":return{...n,page:e.payload};case"SET_SORT_VALUE":return{...n,sortedValue:e.payload};default:return n}},_de=(n={contactModal:!1,emailBody:""},e)=>{switch(e.type){case"TOGGLE_CONTACT_MODAL":return{...n,contactModal:!n.contactModal};case"UPDATE_EMAIL_BODY":return{...n,emailBody:e.payload};default:return n}},Dde=(n={start:!1},e)=>{switch(e.type){case"SET_INTRO":return{...n,start:e.payload};default:return n}},Ode=(n={articles:[]},e)=>{switch(e.type){case"GET_ARTICLES":return{...n,articles:e.payload};default:return n}},Fde=(n={model:null,loading:"",progress:0},e)=>{switch(e.type){case"SET_MODEL":return{...n,model:e.payload};case"SET_LOADING":return{...n,loading:e.payload};case"SET_LAST_PRED":return{...n,last_prediction:e.payload};case"SET_ERROR":return{...n,error:e.payload};case"SET_PROGRESS":return{...n,progress:e.payload};default:return n}};const Pde=ET({github:Ade,contactModal:_de,intro:Dde,articles:Ode,model:Fde}),Lde=window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__||Rm,Mde=ZM({reducer:Pde},Lde(RT(Dy))),zde=document.getElementById("root");W3.createRoot(zde).render(ee.jsx(SM,{store:Mde,children:ee.jsx(Rde,{})})); diff --git a/dist/bai_model/group1-shard10of27.bin b/dist/bai_model/group1-shard10of27.bin new file mode 100644 index 0000000..27d6265 Binary files /dev/null and b/dist/bai_model/group1-shard10of27.bin differ diff --git a/dist/bai_model/group1-shard11of27.bin b/dist/bai_model/group1-shard11of27.bin new file mode 100644 index 0000000..c4cdad9 Binary files /dev/null and b/dist/bai_model/group1-shard11of27.bin differ diff --git a/dist/bai_model/group1-shard12of27.bin b/dist/bai_model/group1-shard12of27.bin new file mode 100644 index 0000000..99ab2cc Binary files /dev/null and b/dist/bai_model/group1-shard12of27.bin differ diff --git a/dist/bai_model/group1-shard13of27.bin b/dist/bai_model/group1-shard13of27.bin new file mode 100644 index 0000000..deddc00 Binary files /dev/null and b/dist/bai_model/group1-shard13of27.bin differ diff --git a/dist/bai_model/group1-shard14of27.bin b/dist/bai_model/group1-shard14of27.bin new file mode 100644 index 0000000..60295e5 Binary files /dev/null and b/dist/bai_model/group1-shard14of27.bin differ diff --git a/dist/bai_model/group1-shard15of27.bin b/dist/bai_model/group1-shard15of27.bin new file mode 100644 index 0000000..0d6a345 Binary files /dev/null and b/dist/bai_model/group1-shard15of27.bin differ diff --git a/dist/bai_model/group1-shard16of27.bin b/dist/bai_model/group1-shard16of27.bin new file mode 100644 index 0000000..87c6481 Binary files /dev/null and b/dist/bai_model/group1-shard16of27.bin differ diff --git a/dist/bai_model/group1-shard17of27.bin b/dist/bai_model/group1-shard17of27.bin new file mode 100644 index 0000000..421b591 Binary files /dev/null and b/dist/bai_model/group1-shard17of27.bin differ diff --git a/dist/bai_model/group1-shard18of27.bin b/dist/bai_model/group1-shard18of27.bin new file mode 100644 index 0000000..b67ad76 Binary files /dev/null and b/dist/bai_model/group1-shard18of27.bin differ diff --git a/dist/bai_model/group1-shard19of27.bin b/dist/bai_model/group1-shard19of27.bin new file mode 100644 index 0000000..d18202d Binary files /dev/null and b/dist/bai_model/group1-shard19of27.bin differ diff --git a/dist/bai_model/group1-shard1of27.bin b/dist/bai_model/group1-shard1of27.bin new file mode 100644 index 0000000..75caf55 Binary files /dev/null and b/dist/bai_model/group1-shard1of27.bin differ diff --git a/dist/bai_model/group1-shard20of27.bin b/dist/bai_model/group1-shard20of27.bin new file mode 100644 index 0000000..b6717e4 Binary files /dev/null and b/dist/bai_model/group1-shard20of27.bin differ diff --git a/dist/bai_model/group1-shard21of27.bin b/dist/bai_model/group1-shard21of27.bin new file mode 100644 index 0000000..f4604ed Binary files /dev/null and b/dist/bai_model/group1-shard21of27.bin differ diff --git a/dist/bai_model/group1-shard22of27.bin b/dist/bai_model/group1-shard22of27.bin new file mode 100644 index 0000000..6798a63 Binary files /dev/null and b/dist/bai_model/group1-shard22of27.bin differ diff --git a/dist/bai_model/group1-shard23of27.bin b/dist/bai_model/group1-shard23of27.bin new file mode 100644 index 0000000..9342445 Binary files /dev/null and b/dist/bai_model/group1-shard23of27.bin differ diff --git a/dist/bai_model/group1-shard24of27.bin b/dist/bai_model/group1-shard24of27.bin new file mode 100644 index 0000000..ba93bb0 Binary files /dev/null and b/dist/bai_model/group1-shard24of27.bin differ diff --git a/dist/bai_model/group1-shard25of27.bin b/dist/bai_model/group1-shard25of27.bin new file mode 100644 index 0000000..f23a4d2 Binary files /dev/null and b/dist/bai_model/group1-shard25of27.bin differ diff --git a/dist/bai_model/group1-shard26of27.bin b/dist/bai_model/group1-shard26of27.bin new file mode 100644 index 0000000..a4d8f75 Binary files /dev/null and b/dist/bai_model/group1-shard26of27.bin differ diff --git a/dist/bai_model/group1-shard27of27.bin b/dist/bai_model/group1-shard27of27.bin new file mode 100644 index 0000000..27e2658 Binary files /dev/null and b/dist/bai_model/group1-shard27of27.bin differ diff --git a/dist/bai_model/group1-shard2of27.bin b/dist/bai_model/group1-shard2of27.bin new file mode 100644 index 0000000..6dfbea6 Binary files /dev/null and b/dist/bai_model/group1-shard2of27.bin differ diff --git a/dist/bai_model/group1-shard3of27.bin b/dist/bai_model/group1-shard3of27.bin new file mode 100644 index 0000000..1b7078a Binary files /dev/null and b/dist/bai_model/group1-shard3of27.bin differ diff --git a/dist/bai_model/group1-shard4of27.bin b/dist/bai_model/group1-shard4of27.bin new file mode 100644 index 0000000..eb98808 Binary files /dev/null and b/dist/bai_model/group1-shard4of27.bin differ diff --git a/dist/bai_model/group1-shard5of27.bin b/dist/bai_model/group1-shard5of27.bin new file mode 100644 index 0000000..f6cb5c9 Binary files /dev/null and b/dist/bai_model/group1-shard5of27.bin differ diff --git a/dist/bai_model/group1-shard6of27.bin b/dist/bai_model/group1-shard6of27.bin new file mode 100644 index 0000000..befe564 Binary files /dev/null and b/dist/bai_model/group1-shard6of27.bin differ diff --git a/dist/bai_model/group1-shard7of27.bin b/dist/bai_model/group1-shard7of27.bin new file mode 100644 index 0000000..ef7292e Binary files /dev/null and b/dist/bai_model/group1-shard7of27.bin differ diff --git a/dist/bai_model/group1-shard8of27.bin b/dist/bai_model/group1-shard8of27.bin new file mode 100644 index 0000000..5f20546 Binary files /dev/null and b/dist/bai_model/group1-shard8of27.bin differ diff --git a/dist/bai_model/group1-shard9of27.bin b/dist/bai_model/group1-shard9of27.bin new file mode 100644 index 0000000..0d1820c Binary files /dev/null and b/dist/bai_model/group1-shard9of27.bin differ diff --git a/dist/bai_model/model.json b/dist/bai_model/model.json new file mode 100644 index 0000000..bb3d899 --- /dev/null +++ b/dist/bai_model/model.json @@ -0,0 +1 @@ +{"format": "layers-model", "generatedBy": "keras v2.7.0", "convertedBy": "TensorFlow.js Converter v3.12.0", "modelTopology": {"keras_version": "2.7.0", "backend": "tensorflow", "model_config": {"class_name": "Sequential", "config": {"name": "sequential", "layers": [{"class_name": "InputLayer", "config": {"batch_input_shape": [null, 550, 425, 3], "dtype": "float32", "sparse": false, "ragged": false, "name": "conv2d_input"}}, {"class_name": "Conv2D", "config": {"name": "conv2d", "trainable": true, "batch_input_shape": [null, 550, 425, 3], "dtype": "float32", "filters": 32, "kernel_size": [3, 3], "strides": [1, 1], "padding": "valid", "data_format": "channels_last", "dilation_rate": [1, 1], "groups": 1, "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}}, {"class_name": "MaxPooling2D", "config": {"name": "max_pooling2d", "trainable": true, "dtype": "float32", "pool_size": [2, 2], "padding": "valid", "strides": [2, 2], "data_format": "channels_last"}}, {"class_name": "Conv2D", "config": {"name": "conv2d_1", "trainable": true, "batch_input_shape": [null, 550, 425, 3], "dtype": "float32", "filters": 64, "kernel_size": [3, 3], "strides": [1, 1], "padding": "valid", "data_format": "channels_last", "dilation_rate": [1, 1], "groups": 1, "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}}, {"class_name": "MaxPooling2D", "config": {"name": "max_pooling2d_1", "trainable": true, "dtype": "float32", "pool_size": [2, 2], "padding": "valid", "strides": [2, 2], "data_format": "channels_last"}}, {"class_name": "Conv2D", "config": {"name": "conv2d_2", "trainable": true, "batch_input_shape": [null, 550, 425, 3], "dtype": "float32", "filters": 64, "kernel_size": [3, 3], "strides": [1, 1], "padding": "valid", "data_format": "channels_last", "dilation_rate": [1, 1], "groups": 1, "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}}, {"class_name": "MaxPooling2D", "config": {"name": "max_pooling2d_2", "trainable": true, "dtype": "float32", "pool_size": [2, 2], "padding": "valid", "strides": [2, 2], "data_format": "channels_last"}}, {"class_name": "Flatten", "config": {"name": "flatten", "trainable": true, "dtype": "float32", "data_format": "channels_last"}}, {"class_name": "Dense", "config": {"name": "dense", "trainable": true, "dtype": "float32", "units": 128, "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}}, {"class_name": "Activation", "config": {"name": "activation", "trainable": true, "dtype": "float32", "activation": "relu"}}, {"class_name": "Dropout", "config": {"name": "dropout", "trainable": true, "dtype": "float32", "rate": 0.5, "noise_shape": null, "seed": null}}, {"class_name": "Dense", "config": {"name": "dense_1", "trainable": true, "dtype": "float32", "units": 1, "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}}, {"class_name": "Activation", "config": {"name": "activation_1", "trainable": true, "dtype": "float32", "activation": "sigmoid"}}]}}, "training_config": {"loss": "binary_crossentropy", "metrics": [[{"class_name": "MeanMetricWrapper", "config": {"name": "accuracy", "dtype": "float32", "fn": "binary_accuracy"}}]], "weighted_metrics": null, "loss_weights": null, "optimizer_config": {"class_name": "Adam", "config": {"name": "Adam", "learning_rate": 0.0010000000474974513, "decay": 0.0, "beta_1": 0.8999999761581421, "beta_2": 0.9990000128746033, "epsilon": 1e-07, "amsgrad": false}}}}, "weightsManifest": [{"paths": ["group1-shard1of27.bin", "group1-shard2of27.bin", "group1-shard3of27.bin", "group1-shard4of27.bin", "group1-shard5of27.bin", "group1-shard6of27.bin", "group1-shard7of27.bin", "group1-shard8of27.bin", "group1-shard9of27.bin", "group1-shard10of27.bin", "group1-shard11of27.bin", "group1-shard12of27.bin", "group1-shard13of27.bin", "group1-shard14of27.bin", "group1-shard15of27.bin", "group1-shard16of27.bin", "group1-shard17of27.bin", "group1-shard18of27.bin", "group1-shard19of27.bin", "group1-shard20of27.bin", "group1-shard21of27.bin", "group1-shard22of27.bin", "group1-shard23of27.bin", "group1-shard24of27.bin", "group1-shard25of27.bin", "group1-shard26of27.bin", "group1-shard27of27.bin"], "weights": [{"name": "conv2d/kernel", "shape": [3, 3, 3, 32], "dtype": "float32"}, {"name": "conv2d/bias", "shape": [32], "dtype": "float32"}, {"name": "conv2d_1/kernel", "shape": [3, 3, 32, 64], "dtype": "float32"}, {"name": "conv2d_1/bias", "shape": [64], "dtype": "float32"}, {"name": "conv2d_2/kernel", "shape": [3, 3, 64, 64], "dtype": "float32"}, {"name": "conv2d_2/bias", "shape": [64], "dtype": "float32"}, {"name": "dense/kernel", "shape": [218688, 128], "dtype": "float32"}, {"name": "dense/bias", "shape": [128], "dtype": "float32"}, {"name": "dense_1/kernel", "shape": [128, 1], "dtype": "float32"}, {"name": "dense_1/bias", "shape": [1], "dtype": "float32"}]}]} \ No newline at end of file diff --git a/dist/favicon.ico b/dist/favicon.ico new file mode 100644 index 0000000..5b4c31f Binary files /dev/null and b/dist/favicon.ico differ diff --git a/dist/img/background.webp b/dist/img/background.webp new file mode 100644 index 0000000..3482321 Binary files /dev/null and b/dist/img/background.webp differ diff --git a/dist/img/github.webp b/dist/img/github.webp new file mode 100644 index 0000000..e6bd992 Binary files /dev/null and b/dist/img/github.webp differ diff --git a/dist/img/hackerrank.webp b/dist/img/hackerrank.webp new file mode 100644 index 0000000..cfacec2 Binary files /dev/null and b/dist/img/hackerrank.webp differ diff --git a/dist/img/hackthebox.webp b/dist/img/hackthebox.webp new file mode 100644 index 0000000..8c1b8ae Binary files /dev/null and b/dist/img/hackthebox.webp differ diff --git a/dist/img/hvcu.webp b/dist/img/hvcu.webp new file mode 100644 index 0000000..20bc6b7 Binary files /dev/null and b/dist/img/hvcu.webp differ diff --git a/dist/img/leetcode_logo.webp b/dist/img/leetcode_logo.webp new file mode 100644 index 0000000..991b55d Binary files /dev/null and b/dist/img/leetcode_logo.webp differ diff --git a/dist/img/linkedin.webp b/dist/img/linkedin.webp new file mode 100644 index 0000000..2b643bd Binary files /dev/null and b/dist/img/linkedin.webp differ diff --git a/dist/img/marist.webp b/dist/img/marist.webp new file mode 100644 index 0000000..f444434 Binary files /dev/null and b/dist/img/marist.webp differ diff --git a/dist/img/profile.webp b/dist/img/profile.webp new file mode 100644 index 0000000..26e12bc Binary files /dev/null and b/dist/img/profile.webp differ diff --git a/dist/img/react.webp b/dist/img/react.webp new file mode 100644 index 0000000..d1d18c2 Binary files /dev/null and b/dist/img/react.webp differ diff --git a/dist/img/social.webp b/dist/img/social.webp new file mode 100644 index 0000000..198c4c1 Binary files /dev/null and b/dist/img/social.webp differ diff --git a/dist/img/space.webp b/dist/img/space.webp new file mode 100644 index 0000000..f9c574c Binary files /dev/null and b/dist/img/space.webp differ diff --git a/dist/img/sunset.webp b/dist/img/sunset.webp new file mode 100644 index 0000000..84bef7e Binary files /dev/null and b/dist/img/sunset.webp differ diff --git a/dist/img/udemy.webp b/dist/img/udemy.webp new file mode 100644 index 0000000..1d320cd Binary files /dev/null and b/dist/img/udemy.webp differ diff --git a/dist/index.html b/dist/index.html new file mode 100644 index 0000000..f20e031 --- /dev/null +++ b/dist/index.html @@ -0,0 +1,23 @@ + + + + + + + + + + + Cam's Portfolio + + + + + +
+ + + diff --git a/dist/logo-192.webp b/dist/logo-192.webp new file mode 100644 index 0000000..ed38ad7 Binary files /dev/null and b/dist/logo-192.webp differ diff --git a/dist/logo-512.webp b/dist/logo-512.webp new file mode 100644 index 0000000..c451281 Binary files /dev/null and b/dist/logo-512.webp differ diff --git a/dist/manifest.json b/dist/manifest.json new file mode 100644 index 0000000..1ebbfa7 --- /dev/null +++ b/dist/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "Cams Projects", + "name": "Camerin's Projects", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo-192.webp", + "type": "image/webp", + "sizes": "192x192" + }, + { + "src": "logo-512.webp", + "type": "image/webp", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#3F3F4A", + "background_color": "#3F3F4A" +} diff --git a/dist/pdf/Results_2017_NetRiders_USCAN_CCENT_R2.pdf b/dist/pdf/Results_2017_NetRiders_USCAN_CCENT_R2.pdf new file mode 100644 index 0000000..4331b8e Binary files /dev/null and b/dist/pdf/Results_2017_NetRiders_USCAN_CCENT_R2.pdf differ diff --git a/dist/robots.txt b/dist/robots.txt new file mode 100644 index 0000000..e9e57dc --- /dev/null +++ b/dist/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/public/index.html b/index.html similarity index 92% rename from public/index.html rename to index.html index af3e3a0..840ad2d 100644 --- a/public/index.html +++ b/index.html @@ -17,5 +17,6 @@
+ diff --git a/package-lock.json b/package-lock.json index 855715d..324c9d1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "@reduxjs/toolkit": "^1.9.3", "@tensorflow/tfjs": "^4.2.0", "@tensorflow/tfjs-converter": "^4.0.0", + "@vitejs/plugin-react-swc": "^4.2.2", "axios": "^1.3.4", "history": "^5.3.0", "memoize": "^0.1.1", @@ -20,25 +21,15 @@ "react-redux": "^8.0.5", "react-router": "^6.4.3", "react-router-dom": "^6.8.2", - "react-scripts": "^5.0.1", "redux": "^4.2.1", "redux-thunk": "^2.4.2", "tfjs": "^0.6.0", + "vite": "^7.2.2", + "vite-plugin-svgr": "^4.5.0", + "vite-tsconfig-paths": "^5.1.4", "web-vitals": "^3.1.1" } }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@babel/code-frame": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", @@ -93,51 +84,6 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/eslint-parser": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.28.5.tgz", - "integrity": "sha512-fcdRcWahONYo+JRnJg1/AekOacGvKx12Gu0qXJXFi2WBqQA1i7+O5PaxRB7kxE/Op94dExnCiiar6T09pvdHpA==", - "license": "MIT", - "dependencies": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.11.0", - "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" - } - }, - "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "license": "Apache-2.0", - "engines": { - "node": ">=10" - } - }, - "node_modules/@babel/eslint-parser/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/generator": { "version": "7.28.5", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", @@ -154,18 +100,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", - "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.27.3" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-compilation-targets": { "version": "7.27.2", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", @@ -182,87 +116,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz", - "integrity": "sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-member-expression-to-functions": "^7.28.5", - "@babel/helper-optimise-call-expression": "^7.27.1", - "@babel/helper-replace-supers": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/traverse": "^7.28.5", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", - "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.3", - "regexpu-core": "^6.3.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", - "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", - "debug": "^4.4.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.22.10" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, "node_modules/@babel/helper-globals": { "version": "7.28.0", "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", @@ -272,19 +125,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", - "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.28.5", - "@babel/types": "^7.28.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-module-imports": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", @@ -315,74 +155,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", - "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", - "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", - "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-wrap-function": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", - "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", - "license": "MIT", - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.27.1", - "@babel/helper-optimise-call-expression": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", - "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-string-parser": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", @@ -410,20 +182,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz", - "integrity": "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.3", - "@babel/types": "^7.28.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helpers": { "version": "7.28.4", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", @@ -452,1580 +210,6 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz", - "integrity": "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.28.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", - "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", - "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", - "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/plugin-transform-optional-chaining": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.3.tgz", - "integrity": "sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.28.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.28.0.tgz", - "integrity": "sha512-zOiZqvANjWDUaUS9xMxbMcK/Zccztbe/6ikvUXaG9nsPH3w6qh5UaPGAnirI/WhIbZ8m3OHU0ReyPrknG+ZKeg==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-syntax-decorators": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", - "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.27.1.tgz", - "integrity": "sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-flow": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.27.1.tgz", - "integrity": "sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA==", - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", - "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", - "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", - "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", - "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", - "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", - "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-remap-async-to-generator": "^7.27.1", - "@babel/traverse": "^7.28.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", - "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-remap-async-to-generator": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", - "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.5.tgz", - "integrity": "sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", - "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz", - "integrity": "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.28.3", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz", - "integrity": "sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-globals": "^7.28.0", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-replace-supers": "^7.27.1", - "@babel/traverse": "^7.28.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", - "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/template": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", - "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.28.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", - "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", - "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", - "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", - "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-explicit-resource-management": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.0.tgz", - "integrity": "sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.28.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.5.tgz", - "integrity": "sha512-D4WIMaFtwa2NizOp+dnoFjRez/ClKiC2BqqImwKd1X28nqBtZEyCYJ2ozQrrzlxAFrcrjxo39S6khe9RNDlGzw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", - "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.27.1.tgz", - "integrity": "sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-syntax-flow": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", - "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", - "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", - "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", - "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.5.tgz", - "integrity": "sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", - "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", - "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", - "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.28.5.tgz", - "integrity": "sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.28.3", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5", - "@babel/traverse": "^7.28.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", - "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", - "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", - "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", - "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", - "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.4.tgz", - "integrity": "sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.28.0", - "@babel/plugin-transform-parameters": "^7.27.7", - "@babel/traverse": "^7.28.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", - "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-replace-supers": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", - "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.5.tgz", - "integrity": "sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.27.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", - "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", - "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", - "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", - "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.27.1.tgz", - "integrity": "sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", - "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", - "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-syntax-jsx": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", - "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", - "license": "MIT", - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", - "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.4.tgz", - "integrity": "sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regexp-modifiers": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", - "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", - "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.5.tgz", - "integrity": "sha512-20NUVgOrinudkIBzQ2bNxP08YpKprUkRTiRSd2/Z5GOdPImJGkoN4Z7IQe1T5AdyKI1i5L6RBmluqdSzvaq9/w==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "babel-plugin-polyfill-corejs2": "^0.4.14", - "babel-plugin-polyfill-corejs3": "^0.13.0", - "babel-plugin-polyfill-regenerator": "^0.6.5", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", - "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", - "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", - "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", - "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", - "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.5.tgz", - "integrity": "sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-create-class-features-plugin": "^7.28.5", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/plugin-syntax-typescript": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", - "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", - "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", - "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", - "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.5.tgz", - "integrity": "sha512-S36mOoi1Sb6Fz98fBfE+UZSpYw5mJm0NUHtIKrOuNcqeFauy1J6dIvXm2KRVKobOSaGq4t/hBXdN4HGU3wL9Wg==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.28.5", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.3", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-import-assertions": "^7.27.1", - "@babel/plugin-syntax-import-attributes": "^7.27.1", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.27.1", - "@babel/plugin-transform-async-generator-functions": "^7.28.0", - "@babel/plugin-transform-async-to-generator": "^7.27.1", - "@babel/plugin-transform-block-scoped-functions": "^7.27.1", - "@babel/plugin-transform-block-scoping": "^7.28.5", - "@babel/plugin-transform-class-properties": "^7.27.1", - "@babel/plugin-transform-class-static-block": "^7.28.3", - "@babel/plugin-transform-classes": "^7.28.4", - "@babel/plugin-transform-computed-properties": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.28.5", - "@babel/plugin-transform-dotall-regex": "^7.27.1", - "@babel/plugin-transform-duplicate-keys": "^7.27.1", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", - "@babel/plugin-transform-dynamic-import": "^7.27.1", - "@babel/plugin-transform-explicit-resource-management": "^7.28.0", - "@babel/plugin-transform-exponentiation-operator": "^7.28.5", - "@babel/plugin-transform-export-namespace-from": "^7.27.1", - "@babel/plugin-transform-for-of": "^7.27.1", - "@babel/plugin-transform-function-name": "^7.27.1", - "@babel/plugin-transform-json-strings": "^7.27.1", - "@babel/plugin-transform-literals": "^7.27.1", - "@babel/plugin-transform-logical-assignment-operators": "^7.28.5", - "@babel/plugin-transform-member-expression-literals": "^7.27.1", - "@babel/plugin-transform-modules-amd": "^7.27.1", - "@babel/plugin-transform-modules-commonjs": "^7.27.1", - "@babel/plugin-transform-modules-systemjs": "^7.28.5", - "@babel/plugin-transform-modules-umd": "^7.27.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", - "@babel/plugin-transform-new-target": "^7.27.1", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", - "@babel/plugin-transform-numeric-separator": "^7.27.1", - "@babel/plugin-transform-object-rest-spread": "^7.28.4", - "@babel/plugin-transform-object-super": "^7.27.1", - "@babel/plugin-transform-optional-catch-binding": "^7.27.1", - "@babel/plugin-transform-optional-chaining": "^7.28.5", - "@babel/plugin-transform-parameters": "^7.27.7", - "@babel/plugin-transform-private-methods": "^7.27.1", - "@babel/plugin-transform-private-property-in-object": "^7.27.1", - "@babel/plugin-transform-property-literals": "^7.27.1", - "@babel/plugin-transform-regenerator": "^7.28.4", - "@babel/plugin-transform-regexp-modifiers": "^7.27.1", - "@babel/plugin-transform-reserved-words": "^7.27.1", - "@babel/plugin-transform-shorthand-properties": "^7.27.1", - "@babel/plugin-transform-spread": "^7.27.1", - "@babel/plugin-transform-sticky-regex": "^7.27.1", - "@babel/plugin-transform-template-literals": "^7.27.1", - "@babel/plugin-transform-typeof-symbol": "^7.27.1", - "@babel/plugin-transform-unicode-escapes": "^7.27.1", - "@babel/plugin-transform-unicode-property-regex": "^7.27.1", - "@babel/plugin-transform-unicode-regex": "^7.27.1", - "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.14", - "babel-plugin-polyfill-corejs3": "^0.13.0", - "babel-plugin-polyfill-regenerator": "^0.6.5", - "core-js-compat": "^3.43.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.28.5.tgz", - "integrity": "sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-transform-react-display-name": "^7.28.0", - "@babel/plugin-transform-react-jsx": "^7.27.1", - "@babel/plugin-transform-react-jsx-development": "^7.27.1", - "@babel/plugin-transform-react-pure-annotations": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.28.5.tgz", - "integrity": "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-syntax-jsx": "^7.27.1", - "@babel/plugin-transform-modules-commonjs": "^7.27.1", - "@babel/plugin-transform-typescript": "^7.28.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/runtime": { "version": "7.28.4", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", @@ -2080,817 +264,420 @@ "node": ">=6.9.0" } }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "license": "MIT" - }, - "node_modules/@csstools/normalize.css": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.1.1.tgz", - "integrity": "sha512-YAYeJ+Xqh7fUou1d1j9XHl44BmsuThiTr4iNrgCQ3J27IbhXsxXDGZ1cXv8Qvs99d4rBbLiSKy3+WZiet32PcQ==", - "license": "CC0-1.0" - }, - "node_modules/@csstools/postcss-cascade-layers": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", - "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/selector-specificity": "^2.0.2", - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-color-function": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz", - "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-font-format-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz", - "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-hwb-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz", - "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-ic-unit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz", - "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-is-pseudo-class": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz", - "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/selector-specificity": "^2.0.0", - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-nested-calc": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz", - "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-normalize-display-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", - "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-oklab-function": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz", - "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-progressive-custom-properties": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", - "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/@csstools/postcss-stepped-value-functions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz", - "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-text-decoration-shorthand": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz", - "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-trigonometric-functions": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", - "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-unset-value": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", - "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", - "license": "CC0-1.0", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/selector-specificity": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", - "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", - "license": "CC0-1.0", - "engines": { - "node": "^14 || ^16 || >=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss-selector-parser": "^6.0.10" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", - "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "cpu": [ + "ppc64" + ], "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, + "optional": true, + "os": [ + "aix" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "node": ">=18" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", - "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "node_modules/@esbuild/android-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "cpu": [ + "arm" + ], "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node": ">=18" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "node_modules/@esbuild/android-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "cpu": [ + "arm64" + ], "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=18" } }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "node_modules/@esbuild/android-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "cpu": [ + "x64" + ], "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "cpu": [ + "arm64" + ], "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=18" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", - "license": "Apache-2.0", - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "license": "BSD-3-Clause" - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "cpu": [ + "x64" + ], "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "node": ">=18" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "cpu": [ + "arm64" + ], "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=18" } }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "cpu": [ + "x64" + ], "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "node_modules/@esbuild/linux-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "cpu": [ + "arm" + ], "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">=18" } }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "cpu": [ + "arm64" + ], "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">=18" } }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "cpu": [ + "ia32" + ], "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6" + "node": ">=18" } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "cpu": [ + "loong64" + ], "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/@jest/console": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "cpu": [ + "mips64el" + ], "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=18" } }, - "node_modules/@jest/core": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", - "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "cpu": [ + "ppc64" + ], "license": "MIT", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "node": ">=18" } }, - "node_modules/@jest/environment": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", - "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "cpu": [ + "riscv64" + ], "license": "MIT", - "dependencies": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=18" } }, - "node_modules/@jest/fake-timers": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", - "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "cpu": [ + "s390x" + ], "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=18" } }, - "node_modules/@jest/globals": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "node_modules/@esbuild/linux-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "cpu": [ + "x64" + ], "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=18" } }, - "node_modules/@jest/reporters": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "cpu": [ + "arm64" + ], "license": "MIT", - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "node": ">=18" } }, - "node_modules/@jest/reporters/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/schemas": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", - "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "cpu": [ + "x64" + ], "license": "MIT", - "dependencies": { - "@sinclair/typebox": "^0.24.1" - }, + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": ">=18" } }, - "node_modules/@jest/source-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "cpu": [ + "arm64" + ], "license": "MIT", - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" - }, + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=18" } }, - "node_modules/@jest/source-map/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/test-result": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "cpu": [ + "x64" + ], "license": "MIT", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=18" } }, - "node_modules/@jest/test-sequencer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "cpu": [ + "arm64" + ], "license": "MIT", - "dependencies": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" - }, + "optional": true, + "os": [ + "openharmony" + ], "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=18" } }, - "node_modules/@jest/transform": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "cpu": [ + "x64" + ], "license": "MIT", - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, + "optional": true, + "os": [ + "sunos" + ], "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=18" } }, - "node_modules/@jest/transform/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "license": "MIT" - }, - "node_modules/@jest/transform/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "cpu": [ + "arm64" + ], "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" } }, "node_modules/@jridgewell/gen-mapping": { @@ -2922,16 +709,6 @@ "node": ">=6.0.0" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.11", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", - "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", @@ -2948,136 +725,6 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", - "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", - "license": "MIT" - }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", - "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", - "license": "MIT", - "dependencies": { - "eslint-scope": "5.1.1" - } - }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.5.17", - "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.17.tgz", - "integrity": "sha512-tXDyE1/jzFsHXjhRZQ3hMl0IVhYe5qula43LDWIhVfjp9G/nT5OQY5AORVOrkEGAUltBJOfOWeETbmhm6kHhuQ==", - "license": "MIT", - "dependencies": { - "ansi-html": "^0.0.9", - "core-js-pure": "^3.23.3", - "error-stack-parser": "^2.0.6", - "html-entities": "^2.1.0", - "loader-utils": "^2.0.4", - "schema-utils": "^4.2.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">= 10.13" - }, - "peerDependencies": { - "@types/webpack": "4.x || 5.x", - "react-refresh": ">=0.10.0 <1.0.0", - "sockjs-client": "^1.4.0", - "type-fest": ">=0.17.0 <5.0.0", - "webpack": ">=4.43.0 <6.0.0", - "webpack-dev-server": "3.x || 4.x || 5.x", - "webpack-hot-middleware": "2.x", - "webpack-plugin-serve": "0.x || 1.x" - }, - "peerDependenciesMeta": { - "@types/webpack": { - "optional": true - }, - "sockjs-client": { - "optional": true - }, - "type-fest": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - }, - "webpack-hot-middleware": { - "optional": true - }, - "webpack-plugin-serve": { - "optional": true - } - } - }, "node_modules/@reduxjs/toolkit": { "version": "1.9.7", "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.7.tgz", @@ -3111,272 +758,489 @@ "node": ">=14.0.0" } }, - "node_modules/@rollup/plugin-babel": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", - "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.47", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.47.tgz", + "integrity": "sha512-8QagwMH3kNCuzD8EWL8R2YPW5e4OrHNSAHRFDdmFqEwEaD/KcNKjVoumo+gP2vW5eKB2UPbM6vTYiGZX0ixLnw==", + "license": "MIT" + }, + "node_modules/@rollup/pluginutils": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", + "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.10.4", - "@rollup/pluginutils": "^3.1.0" + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" }, "engines": { - "node": ">= 10.0.0" + "node": ">=14.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0", - "@types/babel__core": "^7.1.9", - "rollup": "^1.20.0||^2.0.0" + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { - "@types/babel__core": { + "rollup": { "optional": true } } }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", - "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.2.tgz", + "integrity": "sha512-yDPzwsgiFO26RJA4nZo8I+xqzh7sJTZIWQOxn+/XOdPE31lAvLIYCKqjV+lNH/vxE2L2iH3plKxDCRK6i+CwhA==", + "cpu": [ + "arm" + ], "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } + "optional": true, + "os": [ + "android" + ] }, - "node_modules/@rollup/plugin-replace": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", - "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.2.tgz", + "integrity": "sha512-k8FontTxIE7b0/OGKeSN5B6j25EuppBcWM33Z19JoVT7UTXFSo3D9CdU39wGTeb29NO3XxpMNauh09B+Ibw+9g==", + "cpu": [ + "arm64" + ], "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "magic-string": "^0.25.7" - }, - "peerDependencies": { - "rollup": "^1.20.0 || ^2.0.0" - } + "optional": true, + "os": [ + "android" + ] }, - "node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.2.tgz", + "integrity": "sha512-A6s4gJpomNBtJ2yioj8bflM2oogDwzUiMl2yNJ2v9E7++sHrSrsQ29fOfn5DM/iCzpWcebNYEdXpaK4tr2RhfQ==", + "cpu": [ + "arm64" + ], "license": "MIT", - "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@rollup/pluginutils/node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "license": "MIT" + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.2.tgz", + "integrity": "sha512-e6XqVmXlHrBlG56obu9gDRPW3O3hLxpwHpLsBJvuI8qqnsrtSZ9ERoWUXtPOkY8c78WghyPHZdmPhHLWNdAGEw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@rtsao/scc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", - "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", - "license": "MIT" + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.2.tgz", + "integrity": "sha512-v0E9lJW8VsrwPux5Qe5CwmH/CF/2mQs6xU1MF3nmUxmZUCHazCjLgYvToOk+YuuUqLQBio1qkkREhxhc656ViA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] }, - "node_modules/@rushstack/eslint-patch": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.15.0.tgz", - "integrity": "sha512-ojSshQPKwVvSMR8yT2L/QtUkV5SXi/IfDiJ4/8d6UbTPjiHVmxZzUAzGD8Tzks1b9+qQkZa0isUOvYObedITaw==", - "license": "MIT" + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.2.tgz", + "integrity": "sha512-ClAmAPx3ZCHtp6ysl4XEhWU69GUB1D+s7G9YjHGhIGCSrsg00nEGRRZHmINYxkdoJehde8VIsDC5t9C0gb6yqA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] }, - "node_modules/@sinclair/typebox": { - "version": "0.24.51", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", - "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", - "license": "MIT" + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.2.tgz", + "integrity": "sha512-EPlb95nUsz6Dd9Qy13fI5kUPXNSljaG9FiJ4YUGU1O/Q77i5DYFW5KR8g1OzTcdZUqQQ1KdDqsTohdFVwCwjqg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@sinonjs/commons": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.2.tgz", + "integrity": "sha512-BOmnVW+khAUX+YZvNfa0tGTEMVVEerOxN0pDk2E6N6DsEIa2Ctj48FOMfNDdrwinocKaC7YXUZ1pHlKpnkja/Q==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.2.tgz", + "integrity": "sha512-Xt2byDZ+6OVNuREgBXr4+CZDJtrVso5woFtpKdGPhpTPHcNG7D8YXeQzpNbFRxzTVqJf7kvPMCub/pcGUWgBjA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@surma/rollup-plugin-off-main-thread": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", - "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", - "license": "Apache-2.0", - "dependencies": { - "ejs": "^3.1.6", - "json5": "^2.2.0", - "magic-string": "^0.25.0", - "string.prototype.matchall": "^4.0.6" - } + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.2.tgz", + "integrity": "sha512-+LdZSldy/I9N8+klim/Y1HsKbJ3BbInHav5qE9Iy77dtHC/pibw1SR/fXlWyAk0ThnpRKoODwnAuSjqxFRDHUQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.2.tgz", + "integrity": "sha512-8ms8sjmyc1jWJS6WdNSA23rEfdjWB30LH8Wqj0Cqvv7qSHnvw6kgMMXRdop6hkmGPlyYBdRPkjJnj3KCUHV/uQ==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.2.tgz", + "integrity": "sha512-3HRQLUQbpBDMmzoxPJYd3W6vrVHOo2cVW8RUo87Xz0JPJcBLBr5kZ1pGcQAhdZgX9VV7NbGNipah1omKKe23/g==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.2.tgz", + "integrity": "sha512-fMjKi+ojnmIvhk34gZP94vjogXNNUKMEYs+EDaB/5TG/wUkoeua7p7VCHnE6T2Tx+iaghAqQX8teQzcvrYpaQA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.2.tgz", + "integrity": "sha512-XuGFGU+VwUUV5kLvoAdi0Wz5Xbh2SrjIxCtZj6Wq8MDp4bflb/+ThZsVxokM7n0pcbkEr2h5/pzqzDYI7cCgLQ==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.2.tgz", + "integrity": "sha512-w6yjZF0P+NGzWR3AXWX9zc0DNEGdtvykB03uhonSHMRa+oWA6novflo2WaJr6JZakG2ucsyb+rvhrKac6NIy+w==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.2.tgz", + "integrity": "sha512-yo8d6tdfdeBArzC7T/PnHd7OypfI9cbuZzPnzLJIyKYFhAQ8SvlkKtKBMbXDxe1h03Rcr7u++nFS7tqXz87Gtw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.2.tgz", + "integrity": "sha512-ah59c1YkCxKExPP8O9PwOvs+XRLKwh/mV+3YdKqQ5AMQ0r4M4ZDuOrpWkUaqO7fzAHdINzV9tEVu8vNw48z0lA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.2.tgz", + "integrity": "sha512-4VEd19Wmhr+Zy7hbUsFZ6YXEiP48hE//KPLCSVNY5RMGX2/7HZ+QkN55a3atM1C/BZCGIgqN+xrVgtdak2S9+A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.2.tgz", + "integrity": "sha512-IlbHFYc/pQCgew/d5fslcy1KEaYVCJ44G8pajugd8VoOEI8ODhtb/j8XMhLpwHCMB3yk2J07ctup10gpw2nyMA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.2.tgz", + "integrity": "sha512-lNlPEGgdUfSzdCWU176ku/dQRnA7W+Gp8d+cWv73jYrb8uT7HTVVxq62DUYxjbaByuf1Yk0RIIAbDzp+CnOTFg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.2.tgz", + "integrity": "sha512-S6YojNVrHybQis2lYov1sd+uj7K0Q05NxHcGktuMMdIQ2VixGwAfbJ23NnlvvVV1bdpR2m5MsNBViHJKcA4ADw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.2.tgz", + "integrity": "sha512-k+/Rkcyx//P6fetPoLMb8pBeqJBNGx81uuf7iljX9++yNBVRDQgD04L+SVXmXmh5ZP4/WOp4mWF0kmi06PW2tA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, "node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", - "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", "license": "MIT", "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", - "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", "license": "MIT", "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", - "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", "license": "MIT", "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", - "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", "license": "MIT", "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, "node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", - "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", "license": "MIT", "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, "node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", - "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", "license": "MIT", "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, "node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", - "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", + "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", "license": "MIT", "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, "node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", - "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", "license": "MIT", "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, "node_modules/@svgr/babel-preset": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", - "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", + "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", "license": "MIT", "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", - "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", - "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", - "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", - "@svgr/babel-plugin-transform-svg-component": "^5.5.0" + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, "node_modules/@svgr/core": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", - "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", + "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", "license": "MIT", + "peer": true, "dependencies": { - "@svgr/plugin-jsx": "^5.5.0", + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.0" + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3384,15 +1248,16 @@ } }, "node_modules/@svgr/hast-util-to-babel-ast": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", - "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", "license": "MIT", "dependencies": { - "@babel/types": "^7.12.6" + "@babel/types": "^7.21.3", + "entities": "^4.4.0" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3400,63 +1265,238 @@ } }, "node_modules/@svgr/plugin-jsx": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", - "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", "license": "MIT", "dependencies": { - "@babel/core": "^7.12.3", - "@svgr/babel-preset": "^5.5.0", - "@svgr/hast-util-to-babel-ast": "^5.5.0", - "svg-parser": "^2.0.2" + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", + "svg-parser": "^2.0.4" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" } }, - "node_modules/@svgr/plugin-svgo": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", - "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", - "license": "MIT", + "node_modules/@swc/core": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.15.2.tgz", + "integrity": "sha512-OQm+yJdXxvSjqGeaWhP6Ia264ogifwAO7Q12uTDVYj/Ks4jBTI4JknlcjDRAXtRhqbWsfbZyK/5RtuIPyptk3w==", + "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { - "cosmiconfig": "^7.0.0", - "deepmerge": "^4.2.2", - "svgo": "^1.2.2" + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.25" }, "engines": { "node": ">=10" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.15.2", + "@swc/core-darwin-x64": "1.15.2", + "@swc/core-linux-arm-gnueabihf": "1.15.2", + "@swc/core-linux-arm64-gnu": "1.15.2", + "@swc/core-linux-arm64-musl": "1.15.2", + "@swc/core-linux-x64-gnu": "1.15.2", + "@swc/core-linux-x64-musl": "1.15.2", + "@swc/core-win32-arm64-msvc": "1.15.2", + "@swc/core-win32-ia32-msvc": "1.15.2", + "@swc/core-win32-x64-msvc": "1.15.2" + }, + "peerDependencies": { + "@swc/helpers": ">=0.5.17" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } } }, - "node_modules/@svgr/webpack": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", - "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/plugin-transform-react-constant-elements": "^7.12.1", - "@babel/preset-env": "^7.12.1", - "@babel/preset-react": "^7.12.5", - "@svgr/core": "^5.5.0", - "@svgr/plugin-jsx": "^5.5.0", - "@svgr/plugin-svgo": "^5.5.0", - "loader-utils": "^2.0.0" - }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.15.2.tgz", + "integrity": "sha512-Ghyz4RJv4zyXzrUC1B2MLQBbppIB5c4jMZJybX2ebdEQAvryEKp3gq1kBksCNsatKGmEgXul88SETU19sMWcrw==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.15.2.tgz", + "integrity": "sha512-7n/PGJOcL2QoptzL42L5xFFfXY5rFxLHnuz1foU+4ruUTG8x2IebGhtwVTpaDN8ShEv2UZObBlT1rrXTba15Zw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.2.tgz", + "integrity": "sha512-ZUQVCfRJ9wimuxkStRSlLwqX4TEDmv6/J+E6FicGkQ6ssLMWoKDy0cAo93HiWt/TWEee5vFhFaSQYzCuBEGO6A==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.2.tgz", + "integrity": "sha512-GZh3pYBmfnpQ+JIg+TqLuz+pM+Mjsk5VOzi8nwKn/m+GvQBsxD5ectRtxuWUxMGNG8h0lMy4SnHRqdK3/iJl7A==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.2.tgz", + "integrity": "sha512-5av6VYZZeneiYIodwzGMlnyVakpuYZryGzFIbgu1XP8wVylZxduEzup4eP8atiMDFmIm+s4wn8GySJmYqeJC0A==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.2.tgz", + "integrity": "sha512-1nO/UfdCLuT/uE/7oB3EZgTeZDCIa6nL72cFEpdegnqpJVNDI6Qb8U4g/4lfVPkmHq2lvxQ0L+n+JdgaZLhrRA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.2.tgz", + "integrity": "sha512-Ksfrb0Tx310kr+TLiUOvB/I80lyZ3lSOp6cM18zmNRT/92NB4mW8oX2Jo7K4eVEI2JWyaQUAFubDSha2Q+439A==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.2.tgz", + "integrity": "sha512-IzUb5RlMUY0r1A9IuJrQ7Tbts1wWb73/zXVXT8VhewbHGoNlBKE0qUhKMED6Tv4wDF+pmbtUJmKXDthytAvLmg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.2.tgz", + "integrity": "sha512-kCATEzuY2LP9AlbU2uScjcVhgnCAkRdu62vbce17Ro5kxEHxYWcugkveyBRS3AqZGtwAKYbMAuNloer9LS/hpw==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.2.tgz", + "integrity": "sha512-iJaHeYCF4jTn7OEKSa3KRiuVFIVYts8jYjNmCdyz1u5g8HRyTDISD76r8+ljEOgm36oviRQvcXaw6LFp1m0yyA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "license": "Apache-2.0" + }, + "node_modules/@swc/types": { + "version": "0.1.25", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.25.tgz", + "integrity": "sha512-iAoY/qRhNH8a/hBvm3zKj9qQ4oc2+3w1unPJa2XvTK3XjeLXtzcCingVPw/9e5mn1+0yPqxcBGp9Jf0pkfMb1g==", + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3" } }, "node_modules/@tensorflow/tfjs": { @@ -3573,174 +1613,12 @@ "@tensorflow/tfjs-core": "4.22.0" } }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "license": "ISC", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", - "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", - "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.28.2" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.6", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", - "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", - "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", - "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", - "license": "MIT", - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/eslint": { - "version": "8.56.12", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.12.tgz", - "integrity": "sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==", - "license": "MIT", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "license": "MIT", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, "node_modules/@types/estree": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "license": "MIT" }, - "node_modules/@types/express": { - "version": "4.17.25", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", - "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", - "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "^1" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.1.0.tgz", - "integrity": "sha512-jnHMsrd0Mwa9Cf4IdOzbz543y4XJepXrbia2T4b6+spXC2We3t1y6K44D3mR8XMFSXMCf3/l7rCgddfx7UNVBA==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/express/node_modules/@types/express-serve-static-core": { - "version": "4.19.7", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.7.tgz", - "integrity": "sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/hoist-non-react-statics": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.7.tgz", @@ -3753,75 +1631,12 @@ "@types/react": "*" } }, - "node_modules/@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", - "license": "MIT" - }, - "node_modules/@types/http-errors": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", - "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", - "license": "MIT" - }, - "node_modules/@types/http-proxy": { - "version": "1.17.17", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz", - "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "license": "MIT" - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "license": "MIT" - }, "node_modules/@types/long": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==", "license": "MIT" }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "license": "MIT" - }, "node_modules/@types/node": { "version": "24.10.1", "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz", @@ -3841,57 +1656,18 @@ "form-data": "^4.0.4" } }, - "node_modules/@types/node-forge": { - "version": "1.3.14", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.14.tgz", - "integrity": "sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/offscreencanvas": { "version": "2019.3.0", "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.3.0.tgz", "integrity": "sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q==", "license": "MIT" }, - "node_modules/@types/parse-json": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", - "license": "MIT" - }, - "node_modules/@types/prettier": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", - "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", - "license": "MIT" - }, "node_modules/@types/prop-types": { "version": "15.7.15", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", "license": "MIT" }, - "node_modules/@types/q": { - "version": "1.5.8", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz", - "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==", - "license": "MIT" - }, - "node_modules/@types/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", - "license": "MIT" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "license": "MIT" - }, "node_modules/@types/react": { "version": "18.3.27", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.27.tgz", @@ -3903,504 +1679,32 @@ "csstype": "^3.2.2" } }, - "node_modules/@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", - "license": "MIT" - }, "node_modules/@types/seedrandom": { "version": "2.4.34", "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.34.tgz", "integrity": "sha512-ytDiArvrn/3Xk6/vtylys5tlY6eo7Ane0hvcx++TKo6RxQXuVfW0AF/oeWqAj9dN29SyhtawuXstgmPlwNcv/A==", "license": "MIT" }, - "node_modules/@types/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==", - "license": "MIT" - }, - "node_modules/@types/send": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", - "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/serve-index": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", - "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", - "license": "MIT", - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz", - "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==", - "license": "MIT", - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "<1" - } - }, - "node_modules/@types/serve-static/node_modules/@types/send": { - "version": "0.17.6", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz", - "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==", - "license": "MIT", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.36", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", - "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "license": "MIT" - }, - "node_modules/@types/trusted-types": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", - "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", - "license": "MIT" - }, "node_modules/@types/use-sync-external-store": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==", "license": "MIT" }, - "node_modules/@types/ws": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", - "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "node_modules/@vitejs/plugin-react-swc": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-4.2.2.tgz", + "integrity": "sha512-x+rE6tsxq/gxrEJN3Nv3dIV60lFflPj94c90b+NNo6n1QV1QQUTLoL0MpaOVasUZ0zqVBn7ead1B5ecx1JAGfA==", "license": "MIT", "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yargs": { - "version": "16.0.11", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.11.tgz", - "integrity": "sha512-sbtvk8wDN+JvEdabmZExoW/HNr1cB7D/j4LT08rMiuikfA7m/JNJg7ATQcgzs34zHnoScDkY0ZRSl29Fkmk36g==", - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "license": "MIT" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", - "license": "MIT", - "peer": true, - "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "@rolldown/pluginutils": "1.0.0-beta.47", + "@swc/core": "^1.13.5" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": "^20.19.0 || >=22.12.0" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz", - "integrity": "sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/utils": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", - "license": "ISC" - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", - "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/helper-numbers": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", - "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", - "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", - "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", - "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.13.2", - "@webassemblyjs/helper-api-error": "1.13.2", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", - "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", - "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/wasm-gen": "1.14.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", - "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", - "license": "MIT", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", - "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", - "license": "Apache-2.0", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", - "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", - "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/helper-wasm-section": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-opt": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1", - "@webassemblyjs/wast-printer": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", - "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", - "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", - "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-api-error": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", - "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@xtuc/long": "4.2.2" + "vite": "^4 || ^5 || ^6 || ^7" } }, "node_modules/@webgpu/types": { @@ -4409,262 +1713,6 @@ "integrity": "sha512-7LrhVKz2PRh+DD7+S+PVaFd5HxaWQvoMqBbsV9fNJO1pjUs1P8bM2vQVNfk+3URTqbuTI7gkXi0rfsN0IadoBA==", "license": "BSD-3-Clause" }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "license": "BSD-3-Clause" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "license": "Apache-2.0" - }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "deprecated": "Use your platform's native atob() and btoa() methods instead", - "license": "BSD-3-Clause" - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", - "license": "MIT", - "peer": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "license": "MIT", - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-phases": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", - "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", - "license": "MIT", - "engines": { - "node": ">=10.13.0" - }, - "peerDependencies": { - "acorn": "^8.14.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/address": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", - "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/adjust-sourcemap-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", - "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", - "license": "MIT", - "dependencies": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "license": "MIT", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT" - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-html": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.9.tgz", - "integrity": "sha512-ozbS3LuenHVxNRh/wdnN16QapUHzauqSomAl1jwwJRRsGwFwtj644lIhxfWu0Fy0acCij2+AEgHvjscq3dlVXg==", - "engines": [ - "node >= 0.8.0" - ], - "license": "Apache-2.0", - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "engines": [ - "node >= 0.8.0" - ], - "license": "Apache-2.0", - "bin": { - "ansi-html": "bin/ansi-html" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -4689,31 +1737,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "license": "MIT" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "license": "MIT" - }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -4723,307 +1746,12 @@ "sprintf-js": "~1.0.2" } }, - "node_modules/aria-query": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", - "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", - "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "is-array-buffer": "^3.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "license": "MIT" - }, - "node_modules/array-includes": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", - "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.24.0", - "es-object-atoms": "^1.1.1", - "get-intrinsic": "^1.3.0", - "is-string": "^1.1.1", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/array.prototype.findlast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", - "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "es-shim-unscopables": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", - "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", - "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.reduce": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.8.tgz", - "integrity": "sha512-DwuEqgXFBwbmZSRqt3BpQigWNUoqw9Ml2dTWdF3B2zQlQX4OeUE0zyuzX0fX0IbTvjdkZbcBTU3idgpO78qkTw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-array-method-boxes-properly": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "is-string": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", - "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", - "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "license": "MIT" - }, - "node_modules/ast-types-flow": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", - "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", - "license": "MIT" - }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "license": "MIT" - }, - "node_modules/async-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", - "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "license": "MIT" }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "license": "ISC", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.22", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.22.tgz", - "integrity": "sha512-ARe0v/t9gO28Bznv6GgqARmVqcWOV3mfgUPn9becPHMiD3o9BwlRgaeccZnwTpZ7Zwqrm+c1sUSsMxIzQzc8Xg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "browserslist": "^4.27.0", - "caniuse-lite": "^1.0.30001754", - "fraction.js": "^5.3.4", - "normalize-range": "^0.1.2", - "picocolors": "^1.1.1", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "license": "MIT", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/axe-core": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.11.0.tgz", - "integrity": "sha512-ilYanEU8vxxBexpJd8cWM4ElSQq4QctCLKih0TSfjIfCQTeyH/6zVrmIJfLPrKTKJRbiG+cfnZbQIjAlJmF1jQ==", - "license": "MPL-2.0", - "engines": { - "node": ">=4" - } - }, "node_modules/axios": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz", @@ -5035,275 +1763,6 @@ "proxy-from-env": "^1.1.0" } }, - "node_modules/axobject-query": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", - "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/babel-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", - "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", - "license": "MIT", - "dependencies": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-loader": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.4.1.tgz", - "integrity": "sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA==", - "license": "MIT", - "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.4", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 8.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - } - }, - "node_modules/babel-loader/node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "license": "BSD-3-Clause", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", - "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/babel-plugin-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - } - }, - "node_modules/babel-plugin-named-asset-import": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", - "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", - "license": "MIT", - "peerDependencies": { - "@babel/core": "^7.1.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", - "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.27.7", - "@babel/helper-define-polyfill-provider": "^0.6.5", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", - "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.5", - "core-js-compat": "^3.43.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", - "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.5" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", - "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==", - "license": "MIT" - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", - "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", - "license": "MIT", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-import-attributes": "^7.24.7", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5" - }, - "peerDependencies": { - "@babel/core": "^7.0.0 || ^8.0.0-0" - } - }, - "node_modules/babel-preset-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", - "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", - "license": "MIT", - "dependencies": { - "babel-plugin-jest-hoist": "^27.5.1", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-react-app": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.1.0.tgz", - "integrity": "sha512-f9B1xMdnkCIqe+2dHrJsoQFRz7reChaAHE/65SdaykPklQqhme2WaC08oD3is77x9ff98/9EazAKFDZv5rFEQg==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.16.0", - "@babel/plugin-proposal-class-properties": "^7.16.0", - "@babel/plugin-proposal-decorators": "^7.16.4", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", - "@babel/plugin-proposal-numeric-separator": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.0", - "@babel/plugin-proposal-private-methods": "^7.16.0", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-transform-flow-strip-types": "^7.16.0", - "@babel/plugin-transform-react-display-name": "^7.16.0", - "@babel/plugin-transform-runtime": "^7.16.4", - "@babel/preset-env": "^7.16.4", - "@babel/preset-react": "^7.16.0", - "@babel/preset-typescript": "^7.16.0", - "@babel/runtime": "^7.16.3", - "babel-plugin-macros": "^3.1.0", - "babel-plugin-transform-react-remove-prop-types": "^0.4.24" - } - }, - "node_modules/babel-preset-react-app/node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", - "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "license": "MIT" - }, "node_modules/baseline-browser-mapping": { "version": "2.8.29", "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.29.tgz", @@ -5313,150 +1772,6 @@ "baseline-browser-mapping": "dist/cli.js" } }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", - "license": "MIT" - }, - "node_modules/bfj": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.1.0.tgz", - "integrity": "sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw==", - "license": "MIT", - "dependencies": { - "bluebird": "^3.7.2", - "check-types": "^11.2.3", - "hoopy": "^0.1.4", - "jsonpath": "^1.1.1", - "tryer": "^1.0.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "license": "MIT" - }, - "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/bonjour-service": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", - "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "license": "ISC" - }, - "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "license": "BSD-2-Clause" - }, "node_modules/browserslist": { "version": "4.28.0", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.0.tgz", @@ -5491,60 +1806,6 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "license": "Apache-2.0", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "license": "MIT" - }, - "node_modules/builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/call-bind-apply-helpers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", @@ -5558,22 +1819,6 @@ "node": ">= 0.4" } }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -5583,16 +1828,6 @@ "node": ">=6" } }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "license": "MIT", - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, "node_modules/camelcase": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", @@ -5605,27 +1840,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, "node_modules/caniuse-lite": { "version": "1.0.30001755", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001755.tgz", @@ -5646,15 +1860,6 @@ ], "license": "CC-BY-4.0" }, - "node_modules/case-sensitive-paths-webpack-plugin": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", - "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -5671,108 +1876,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/check-types": { - "version": "11.2.3", - "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz", - "integrity": "sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg==", - "license": "MIT" - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", - "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", - "license": "MIT", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", - "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", - "license": "MIT" - }, - "node_modules/clean-css": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", - "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", - "license": "MIT", - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 10.0" - } - }, - "node_modules/clean-css/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -5784,107 +1887,6 @@ "wrap-ansi": "^7.0.0" } }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "license": "MIT", - "dependencies": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/coa/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/coa/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/coa/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/coa/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "license": "MIT" - }, - "node_modules/coa/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/coa/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/coa/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", - "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==", - "license": "MIT" - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -5903,18 +1905,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, - "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "license": "MIT" - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "license": "MIT" - }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -5927,138 +1917,12 @@ "node": ">= 0.8" } }, - "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/common-tags": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", - "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", - "license": "MIT", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "license": "MIT" - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "license": "MIT", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", - "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "compressible": "~2.0.18", - "debug": "2.6.9", - "negotiator": "~0.6.4", - "on-headers": "~1.1.0", - "safe-buffer": "5.2.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "license": "MIT" - }, - "node_modules/confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", - "license": "MIT" - }, - "node_modules/connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "license": "MIT" }, - "node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "license": "MIT" - }, "node_modules/core-js": { "version": "3.29.1", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.29.1.tgz", @@ -6070,547 +1934,38 @@ "url": "https://opencollective.com/core-js" } }, - "node_modules/core-js-compat": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.47.0.tgz", - "integrity": "sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.28.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-pure": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.47.0.tgz", - "integrity": "sha512-BcxeDbzUrRnXGYIVAGFtcGQVNpFcUhVjr6W7F8XktvQW2iJP9e66GP6xdKotCRFlrxBvNIBrhwKteRXqMV86Nw==", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "license": "MIT" - }, "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "license": "MIT", "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" }, "engines": { - "node": ">=10" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/css-blank-pseudo": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", - "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", - "license": "CC0-1.0", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "bin": { - "css-blank-pseudo": "dist/cli.cjs" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-declaration-sorter": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", - "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/css-has-pseudo": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", - "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", - "license": "CC0-1.0", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "bin": { - "css-has-pseudo": "dist/cli.cjs" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-loader": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", - "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", - "license": "MIT", - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.33", - "postcss-modules-extract-imports": "^3.1.0", - "postcss-modules-local-by-default": "^4.0.5", - "postcss-modules-scope": "^3.2.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">= 12.13.0" + "node": ">=14" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://github.com/sponsors/d-fischer" }, "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.0.0" + "typescript": ">=4.9.5" }, "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { + "typescript": { "optional": true } } }, - "node_modules/css-minimizer-webpack-plugin": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", - "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", - "license": "MIT", - "dependencies": { - "cssnano": "^5.0.6", - "jest-worker": "^27.0.2", - "postcss": "^8.3.5", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@parcel/css": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - } - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-prefers-color-scheme": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", - "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", - "license": "CC0-1.0", - "bin": { - "css-prefers-color-scheme": "dist/cli.cjs" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", - "license": "MIT" - }, - "node_modules/css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-tree/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-what": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", - "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cssdb": { - "version": "7.11.2", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.11.2.tgz", - "integrity": "sha512-lhQ32TFkc1X4eTefGfYPvgovRSzIMofHkigfH8nWtyRL4XJLsRhJFreRvEgKzept7x1rjBuy3J/MurXLaFxW/A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - } - ], - "license": "CC0-1.0" - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "5.1.15", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", - "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", - "license": "MIT", - "dependencies": { - "cssnano-preset-default": "^5.2.14", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-preset-default": { - "version": "5.2.14", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", - "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", - "license": "MIT", - "dependencies": { - "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.1", - "postcss-convert-values": "^5.1.3", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.7", - "postcss-merge-rules": "^5.1.4", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.4", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.1", - "postcss-normalize-repeat-style": "^5.1.1", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.1", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.2", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "license": "MIT", - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "license": "CC0-1.0" - }, - "node_modules/csso/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "license": "MIT" - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "license": "MIT", - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "license": "MIT" - }, "node_modules/csstype": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", "license": "MIT" }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "license": "BSD-2-Clause" - }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "license": "MIT", - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/data-urls/node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "license": "MIT", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/data-urls/node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "license": "MIT", - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/data-view-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", - "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", - "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/inspect-js" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", - "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", @@ -6628,88 +1983,6 @@ } } }, - "node_modules/decimal.js": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", - "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", - "license": "MIT" - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "license": "MIT" - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "license": "MIT" - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "license": "BSD-2-Clause", - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -6719,215 +1992,6 @@ "node": ">=0.4.0" } }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "license": "MIT" - }, - "node_modules/detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "license": "MIT", - "dependencies": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "bin": { - "detect": "bin/detect-port", - "detect-port": "bin/detect-port" - }, - "engines": { - "node": ">= 4.2.1" - } - }, - "node_modules/detect-port-alt/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/detect-port-alt/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "license": "Apache-2.0" - }, - "node_modules/diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", - "license": "MIT", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "license": "MIT" - }, - "node_modules/dns-packet": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", - "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", - "license": "MIT", - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "license": "MIT", - "dependencies": { - "utila": "~0.4" - } - }, - "node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "deprecated": "Use your platform's native DOMException instead", - "license": "MIT", - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, "node_modules/dot-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", @@ -6938,21 +2002,6 @@ "tslib": "^2.0.3" } }, - "node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=10" - } - }, - "node_modules/dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", - "license": "BSD-2-Clause" - }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -6967,99 +2016,20 @@ "node": ">= 0.4" } }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "license": "MIT" - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "license": "MIT" - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "license": "MIT" - }, - "node_modules/ejs": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", - "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", - "license": "Apache-2.0", - "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/electron-to-chromium": { "version": "1.5.255", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.255.tgz", "integrity": "sha512-Z9oIp4HrFF/cZkDPMpz2XSuVpc1THDpT4dlmATFlJUIBVCy9Vap5/rIXsASP1CscBacBqhabwh8vLctqBwEerQ==", "license": "ISC" }, - "node_modules/emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "license": "MIT" - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.18.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", - "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } @@ -7073,89 +2043,6 @@ "is-arrayish": "^0.2.1" } }, - "node_modules/error-stack-parser": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", - "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", - "license": "MIT", - "dependencies": { - "stackframe": "^1.3.4" - } - }, - "node_modules/es-abstract": { - "version": "1.24.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz", - "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==", - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.2", - "arraybuffer.prototype.slice": "^1.0.4", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "data-view-buffer": "^1.0.2", - "data-view-byte-length": "^1.0.2", - "data-view-byte-offset": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "es-set-tostringtag": "^2.1.0", - "es-to-primitive": "^1.3.0", - "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.3.0", - "get-proto": "^1.0.1", - "get-symbol-description": "^1.1.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "internal-slot": "^1.1.0", - "is-array-buffer": "^3.0.5", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.2", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.2.1", - "is-set": "^2.0.3", - "is-shared-array-buffer": "^1.0.4", - "is-string": "^1.1.1", - "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.1", - "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.4", - "object-keys": "^1.1.1", - "object.assign": "^4.1.7", - "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.4", - "safe-array-concat": "^1.1.3", - "safe-push-apply": "^1.0.0", - "safe-regex-test": "^1.1.0", - "set-proto": "^1.0.0", - "stop-iteration-iterator": "^1.1.0", - "string.prototype.trim": "^1.2.10", - "string.prototype.trimend": "^1.0.9", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.3", - "typed-array-byte-length": "^1.0.3", - "typed-array-byte-offset": "^1.0.4", - "typed-array-length": "^1.0.7", - "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.19" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "license": "MIT" - }, "node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", @@ -7174,39 +2061,6 @@ "node": ">= 0.4" } }, - "node_modules/es-iterator-helpers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", - "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.6", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.3", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.6", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "iterator.prototype": "^1.1.4", - "safe-array-concat": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-module-lexer": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", - "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", - "license": "MIT" - }, "node_modules/es-object-atoms": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", @@ -7234,33 +2088,45 @@ "node": ">= 0.4" } }, - "node_modules/es-shim-unscopables": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", - "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "node_modules/esbuild": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "hasInstallScript": true, "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" + "bin": { + "esbuild": "bin/esbuild" }, "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", - "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7", - "is-date-object": "^1.0.5", - "is-symbol": "^1.0.4" + "node": ">=18" }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" } }, "node_modules/escalade": { @@ -7272,1063 +2138,29 @@ "node": ">=6" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "license": "MIT" }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", - "license": "MIT", - "peer": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.1", - "@humanwhocodes/config-array": "^0.13.0", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-react-app": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", - "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.16.0", - "@babel/eslint-parser": "^7.16.3", - "@rushstack/eslint-patch": "^1.1.0", - "@typescript-eslint/eslint-plugin": "^5.5.0", - "@typescript-eslint/parser": "^5.5.0", - "babel-preset-react-app": "^10.0.1", - "confusing-browser-globals": "^1.0.11", - "eslint-plugin-flowtype": "^8.0.3", - "eslint-plugin-import": "^2.25.3", - "eslint-plugin-jest": "^25.3.0", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-react": "^7.27.1", - "eslint-plugin-react-hooks": "^4.3.0", - "eslint-plugin-testing-library": "^5.0.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "eslint": "^8.0.0" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "license": "MIT", - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", - "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", - "license": "MIT", - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-flowtype": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", - "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", - "license": "BSD-3-Clause", - "dependencies": { - "lodash": "^4.17.21", - "string-natural-compare": "^3.0.1" - }, "engines": { "node": ">=12.0.0" }, "peerDependencies": { - "@babel/plugin-syntax-flow": "^7.14.5", - "@babel/plugin-transform-react-jsx": "^7.14.9", - "eslint": "^8.1.0" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.32.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", - "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", - "license": "MIT", - "dependencies": { - "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.9", - "array.prototype.findlastindex": "^1.2.6", - "array.prototype.flat": "^1.3.3", - "array.prototype.flatmap": "^1.3.3", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.12.1", - "hasown": "^2.0.2", - "is-core-module": "^2.16.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "object.groupby": "^1.0.3", - "object.values": "^1.2.1", - "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.9", - "tsconfig-paths": "^3.15.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-jest": { - "version": "25.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", - "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/experimental-utils": "^5.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "picomatch": "^3 || ^4" }, "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "jest": { + "picomatch": { "optional": true } } }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", - "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", - "license": "MIT", - "dependencies": { - "aria-query": "^5.3.2", - "array-includes": "^3.1.8", - "array.prototype.flatmap": "^1.3.2", - "ast-types-flow": "^0.0.8", - "axe-core": "^4.10.0", - "axobject-query": "^4.1.0", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "hasown": "^2.0.2", - "jsx-ast-utils": "^3.3.5", - "language-tags": "^1.0.9", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "safe-regex-test": "^1.0.3", - "string.prototype.includes": "^2.0.1" - }, - "engines": { - "node": ">=4.0" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" - } - }, - "node_modules/eslint-plugin-react": { - "version": "7.37.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", - "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.8", - "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.3", - "array.prototype.tosorted": "^1.1.4", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.2.1", - "estraverse": "^5.3.0", - "hasown": "^2.0.2", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.9", - "object.fromentries": "^2.0.8", - "object.values": "^1.2.1", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.12", - "string.prototype.repeat": "^1.0.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", - "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" - } - }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-plugin-react/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-testing-library": { - "version": "5.11.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.11.1.tgz", - "integrity": "sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/utils": "^5.58.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0", - "npm": ">=6" - }, - "peerDependencies": { - "eslint": "^7.5.0 || ^8.0.0" - } - }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-webpack-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", - "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", - "license": "MIT", - "dependencies": { - "@types/eslint": "^7.29.0 || ^8.4.1", - "jest-worker": "^28.0.2", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0", - "webpack": "^5.0.0" - } - }, - "node_modules/eslint-webpack-plugin/node_modules/jest-worker": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", - "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/eslint-webpack-plugin/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/eslint/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/eslint/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/eslint/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "license": "MIT" - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "license": "MIT" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/express": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", - "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.12", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "license": "MIT" - }, - "node_modules/fast-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", - "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "license": "Apache-2.0", - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "license": "Apache-2.0", - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "license": "MIT", - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "license": "MIT", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/file-loader/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "license": "Apache-2.0", - "dependencies": { - "minimatch": "^5.0.1" - } - }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/filesize": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", - "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", - "license": "ISC" - }, "node_modules/follow-redirects": { "version": "1.15.11", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", @@ -8349,146 +2181,6 @@ } } }, - "node_modules/for-each": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", - "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/fork-ts-checker-webpack-plugin": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", - "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", - "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=10", - "yarn": ">=1.0.0" - }, - "peerDependencies": { - "eslint": ">= 6", - "typescript": ">= 2.7", - "vue-template-compiler": "*", - "webpack": ">= 4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - }, - "vue-template-compiler": { - "optional": true - } - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "license": "MIT", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "license": "MIT", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/form-data": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", @@ -8505,63 +2197,6 @@ "node": ">= 6" } }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fraction.js": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", - "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs-monkey": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.1.0.tgz", - "integrity": "sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==", - "license": "Unlicense" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "license": "ISC" - }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -8585,44 +2220,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/function.prototype.name": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", - "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "functions-have-names": "^1.2.3", - "hasown": "^2.0.2", - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/generator-function": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", - "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -8665,21 +2262,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "license": "ISC" - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/get-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", @@ -8693,162 +2275,11 @@ "node": ">= 0.4" } }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", - "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "license": "BSD-2-Clause" - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "license": "MIT", - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "license": "MIT", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "license": "MIT", - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "license": "MIT" }, "node_modules/google-protobuf": { "version": "3.21.4", @@ -8868,57 +2299,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "license": "ISC" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "license": "MIT" - }, - "node_modules/gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "license": "MIT", - "dependencies": { - "duplexer": "^0.1.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "license": "MIT" - }, - "node_modules/harmony-reflect": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", - "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==", - "license": "(Apache-2.0 OR MPL-1.1)" - }, - "node_modules/has-bigints": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", - "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -8928,33 +2308,6 @@ "node": ">=8" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", - "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-symbols": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", @@ -8994,15 +2347,6 @@ "node": ">= 0.4" } }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, "node_modules/history": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz", @@ -9021,322 +2365,6 @@ "react-is": "^16.7.0" } }, - "node_modules/hoopy": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", - "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", - "license": "MIT", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hpack.js/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "license": "MIT" - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/hpack.js/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "license": "MIT", - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-entities": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", - "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ], - "license": "MIT" - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "license": "MIT" - }, - "node_modules/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "license": "MIT", - "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/html-webpack-plugin": { - "version": "5.6.5", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.5.tgz", - "integrity": "sha512-4xynFbKNNk+WlzXeQQ+6YYsH2g7mpfPszQZUi3ovKlj+pDmngQ7vRXjrrmGROabmKwyQkcgcX5hqfOwHbFmK5g==", - "license": "MIT", - "dependencies": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/html-webpack-plugin" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.20.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "license": "MIT" - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-parser-js": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", - "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", - "license": "MIT" - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "license": "MIT", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "license": "MIT", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz", - "integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==", - "license": "MIT", - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/idb": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", - "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", - "license": "ISC" - }, - "node_modules/identity-obj-proxy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", - "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==", - "license": "MIT", - "dependencies": { - "harmony-reflect": "^1.4.6" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, "node_modules/immer": { "version": "9.0.21", "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", @@ -9363,273 +2391,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", - "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", - "license": "MIT", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "license": "ISC" - }, - "node_modules/internal-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", - "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ipaddr.js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", - "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", - "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "license": "MIT" }, - "node_modules/is-async-function": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", - "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", - "license": "MIT", - "dependencies": { - "async-function": "^1.0.0", - "call-bound": "^1.0.3", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", - "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", - "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-view": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", - "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", - "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finalizationregistry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", - "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -9639,1389 +2406,6 @@ "node": ">=8" } }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-generator-function": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", - "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.4", - "generator-function": "^2.0.0", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", - "license": "MIT" - }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", - "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "license": "MIT" - }, - "node_modules/is-regex": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", - "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", - "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", - "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-symbols": "^1.1.0", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", - "license": "MIT", - "dependencies": { - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "license": "MIT" - }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", - "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", - "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "license": "MIT", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "license": "ISC" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "license": "BSD-3-Clause", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-report/node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "license": "MIT", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-reports": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", - "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/iterator.prototype": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", - "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.6", - "get-proto": "^1.0.0", - "has-symbols": "^1.1.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jake": { - "version": "10.9.4", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.4.tgz", - "integrity": "sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==", - "license": "Apache-2.0", - "dependencies": { - "async": "^3.2.6", - "filelist": "^1.0.4", - "picocolors": "^1.1.1" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", - "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@jest/core": "^27.5.1", - "import-local": "^3.0.2", - "jest-cli": "^27.5.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", - "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", - "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-cli": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", - "license": "MIT", - "dependencies": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-config": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", - "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-docblock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", - "license": "MIT", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", - "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-jsdom": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", - "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "license": "MIT", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-jasmine2": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", - "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-leak-detector": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", - "license": "MIT", - "dependencies": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-mock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "license": "MIT", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", - "license": "MIT", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", - "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", - "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", - "license": "MIT", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", - "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", - "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-validate": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "leven": "^3.1.0", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-watch-typeahead": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz", - "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==", - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.3.1", - "chalk": "^4.0.0", - "jest-regex-util": "^28.0.0", - "jest-watcher": "^28.0.0", - "slash": "^4.0.0", - "string-length": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "jest": "^27.0.0 || ^28.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@jest/console": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", - "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", - "license": "MIT", - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@jest/console/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@jest/test-result": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", - "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", - "license": "MIT", - "dependencies": { - "@jest/console": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@jest/types": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", - "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", - "license": "MIT", - "dependencies": { - "@jest/schemas": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@types/yargs": { - "version": "17.0.35", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", - "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/jest-watch-typeahead/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-watch-typeahead/node_modules/emittery": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", - "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-message-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", - "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-message-util/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-regex-util": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", - "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", - "license": "MIT", - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "license": "MIT", - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-watcher": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", - "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", - "license": "MIT", - "dependencies": { - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "jest-util": "^28.1.3", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "license": "MIT", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watch-typeahead/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "license": "MIT", - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "license": "MIT" - }, - "node_modules/jest-watch-typeahead/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watch-typeahead/node_modules/string-length": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", - "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", - "license": "MIT", - "dependencies": { - "char-regex": "^2.0.0", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watch-typeahead/node_modules/string-length/node_modules/char-regex": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.2.tgz", - "integrity": "sha512-cbGOjAptfM2LVmWhwRFHEKTPkLwNddVmuqYZQt895yXwAsWsXObCG+YN4DGQ/JBtT4GP1a1lPPdio2z413LmTg==", - "license": "MIT", - "engines": { - "node": ">=12.20" - } - }, - "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/jest-watch-typeahead/node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/jest-watcher": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", - "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", - "license": "MIT", - "dependencies": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.5.1", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jiti": { - "version": "1.21.7", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", - "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", - "license": "MIT", - "peer": true, - "bin": { - "jiti": "bin/jiti.js" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -11029,105 +2413,22 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", - "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "license": "MIT", - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsdom/node_modules/form-data": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.4.tgz", - "integrity": "sha512-f0cRzm6dkyVYV3nPoooP8XlccPQukegwhAnpoLcXy+X+A8KfpGOoXwDr9FLZd3wzgLaBGQBE3lY93Zm/i1JvIQ==", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.2", - "mime-types": "^2.1.35" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/jsdom/node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "license": "MIT", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jsdom/node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "license": "MIT", - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } + "node_modules/js-yaml/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" }, "node_modules/jsesc": { "version": "3.1.0", @@ -11141,36 +2442,12 @@ "node": ">=6" } }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "license": "MIT" - }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "license": "MIT" }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "license": "(AFL-2.1 OR BSD-3-Clause)" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "license": "MIT" - }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -11183,241 +2460,18 @@ "node": ">=6" } }, - "node_modules/jsonfile": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", - "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonpath": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.1.tgz", - "integrity": "sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w==", - "license": "MIT", - "dependencies": { - "esprima": "1.2.2", - "static-eval": "2.0.2", - "underscore": "1.12.1" - } - }, - "node_modules/jsonpath/node_modules/esprima": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", - "integrity": "sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/jsonpointer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", - "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jsx-ast-utils": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "object.assign": "^4.1.4", - "object.values": "^1.1.6" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/klona": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", - "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/language-subtag-registry": { - "version": "0.3.23", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", - "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", - "license": "CC0-1.0" - }, - "node_modules/language-tags": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", - "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", - "license": "MIT", - "dependencies": { - "language-subtag-registry": "^0.3.20" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/launch-editor": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.12.0.tgz", - "integrity": "sha512-giOHXoOtifjdHqUamwKq6c49GzBdLjvxrd2D+Q4V6uOHopJv7p9VJxikDsQ/CBXZbEITgUqSVHXLTG3VhPP1Dg==", - "license": "MIT", - "dependencies": { - "picocolors": "^1.1.1", - "shell-quote": "^1.8.3" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "license": "MIT" }, - "node_modules/loader-runner": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", - "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", - "license": "MIT", - "engines": { - "node": ">=6.11.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "license": "MIT" }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "license": "MIT" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "license": "MIT" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "license": "MIT" - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", - "license": "MIT" - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "license": "MIT" - }, "node_modules/long": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", @@ -11454,48 +2508,6 @@ "yallist": "^3.0.2" } }, - "node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "license": "MIT", - "dependencies": { - "sourcemap-codec": "^1.4.8" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "license": "BSD-3-Clause", - "dependencies": { - "tmpl": "1.0.5" - } - }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -11505,33 +2517,6 @@ "node": ">= 0.4" } }, - "node_modules/mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", - "license": "CC0-1.0" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memfs": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", - "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", - "license": "Unlicense", - "dependencies": { - "fs-monkey": "^1.0.4" - }, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/memoize": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/memoize/-/memoize-0.1.1.tgz", @@ -11543,64 +2528,6 @@ "node": "*" } }, - "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -11622,113 +2549,12 @@ "node": ">= 0.6" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "2.9.4", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.4.tgz", - "integrity": "sha512-ZWYT7ln73Hptxqxk2DxPU9MmapXRhxkJD6tkSR04dnQxm8BGu2hzgKLugK5yySD97u/8yy7Ma7E76k9ZdvtjkQ==", - "license": "MIT", - "dependencies": { - "schema-utils": "^4.0.0", - "tapable": "^2.2.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "license": "ISC" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, - "node_modules/multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", - "license": "MIT", - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, "node_modules/nanoid": { "version": "3.3.11", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", @@ -11747,33 +2573,6 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "license": "MIT" - }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "license": "MIT" - }, - "node_modules/negotiator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", - "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "license": "MIT" - }, "node_modules/no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", @@ -11804,87 +2603,12 @@ } } }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "license": "(BSD-3-Clause OR GPL-2.0)", - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "license": "MIT" - }, "node_modules/node-releases": { "version": "2.0.27", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", "license": "MIT" }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/nwsapi": { - "version": "2.2.22", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.22.tgz", - "integrity": "sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==", - "license": "MIT" - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -11894,309 +2618,6 @@ "node": ">=0.10.0" } }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", - "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0", - "has-symbols": "^1.1.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", - "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz", - "integrity": "sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==", - "license": "MIT", - "dependencies": { - "array.prototype.reduce": "^1.0.6", - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "gopd": "^1.0.1", - "safe-array-concat": "^1.1.2" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.groupby": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", - "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.values": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", - "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "license": "MIT" - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", - "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "license": "MIT", - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/own-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", - "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.6", - "object-keys": "^1.1.1", - "safe-push-apply": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "license": "MIT", - "dependencies": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "license": "BlueOak-1.0.0" - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "license": "MIT", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -12227,92 +2648,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "license": "MIT" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "license": "MIT" - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "license": "ISC" - }, - "node_modules/path-to-regexp": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", - "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", - "license": "MIT" - }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -12322,12 +2657,6 @@ "node": ">=8" } }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "license": "MIT" - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -12335,114 +2664,17 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", - "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "license": "MIT", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "license": "MIT", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "license": "MIT", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "license": "MIT", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/possible-typed-array-names": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", - "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/postcss": { "version": "8.5.6", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", @@ -12462,7 +2694,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -12472,1326 +2703,6 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/postcss-attribute-case-insensitive": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", - "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-browser-comments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", - "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", - "license": "CC0-1.0", - "engines": { - "node": ">=8" - }, - "peerDependencies": { - "browserslist": ">=4", - "postcss": ">=8" - } - }, - "node_modules/postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0" - }, - "peerDependencies": { - "postcss": "^8.2.2" - } - }, - "node_modules/postcss-clamp": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", - "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=7.6.0" - }, - "peerDependencies": { - "postcss": "^8.4.6" - } - }, - "node_modules/postcss-color-functional-notation": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", - "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-color-hex-alpha": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", - "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-color-rebeccapurple": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", - "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-colormin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", - "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-convert-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", - "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-custom-media": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", - "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/postcss-custom-properties": { - "version": "12.1.11", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz", - "integrity": "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-custom-selectors": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", - "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/postcss-dir-pseudo-class": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", - "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", - "license": "CC0-1.0", - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-discard-comments": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", - "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-empty": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-double-position-gradients": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", - "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-env-function": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", - "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-flexbugs-fixes": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", - "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", - "license": "MIT", - "peerDependencies": { - "postcss": "^8.1.4" - } - }, - "node_modules/postcss-focus-visible": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", - "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", - "license": "CC0-1.0", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-focus-within": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", - "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", - "license": "CC0-1.0", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-font-variant": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", - "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", - "license": "MIT", - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-gap-properties": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", - "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", - "license": "CC0-1.0", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-image-set-function": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", - "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-initial": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", - "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", - "license": "MIT", - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", - "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-lab-function": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", - "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-loader": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", - "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", - "license": "MIT", - "dependencies": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.5", - "semver": "^7.3.5" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" - } - }, - "node_modules/postcss-logical": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", - "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", - "license": "CC0-1.0", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-media-minmax": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", - "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", - "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-merge-rules": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", - "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", - "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-gradients": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", - "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", - "license": "MIT", - "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-params": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", - "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-selectors": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", - "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", - "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", - "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", - "license": "MIT", - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^7.0.0", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", - "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", - "license": "ISC", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "license": "ISC", - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-nested": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", - "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.1.1" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-nesting": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz", - "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/selector-specificity": "^2.0.0", - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-normalize": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", - "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/normalize.css": "*", - "postcss-browser-comments": "^4", - "sanitize.css": "*" - }, - "engines": { - "node": ">= 12" - }, - "peerDependencies": { - "browserslist": ">= 4", - "postcss": ">= 8" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", - "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-positions": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", - "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", - "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-string": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", - "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", - "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-unicode": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", - "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", - "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", - "license": "MIT", - "dependencies": { - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-whitespace": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", - "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-opacity-percentage": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz", - "integrity": "sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==", - "funding": [ - { - "type": "kofi", - "url": "https://ko-fi.com/mrcgrtz" - }, - { - "type": "liberapay", - "url": "https://liberapay.com/mrcgrtz" - } - ], - "license": "MIT", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-ordered-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", - "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", - "license": "MIT", - "dependencies": { - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-overflow-shorthand": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", - "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-page-break": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", - "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", - "license": "MIT", - "peerDependencies": { - "postcss": "^8" - } - }, - "node_modules/postcss-place": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz", - "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-preset-env": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz", - "integrity": "sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/postcss-cascade-layers": "^1.1.1", - "@csstools/postcss-color-function": "^1.1.1", - "@csstools/postcss-font-format-keywords": "^1.0.1", - "@csstools/postcss-hwb-function": "^1.0.2", - "@csstools/postcss-ic-unit": "^1.0.1", - "@csstools/postcss-is-pseudo-class": "^2.0.7", - "@csstools/postcss-nested-calc": "^1.0.0", - "@csstools/postcss-normalize-display-values": "^1.0.1", - "@csstools/postcss-oklab-function": "^1.1.1", - "@csstools/postcss-progressive-custom-properties": "^1.3.0", - "@csstools/postcss-stepped-value-functions": "^1.0.1", - "@csstools/postcss-text-decoration-shorthand": "^1.0.0", - "@csstools/postcss-trigonometric-functions": "^1.0.2", - "@csstools/postcss-unset-value": "^1.0.2", - "autoprefixer": "^10.4.13", - "browserslist": "^4.21.4", - "css-blank-pseudo": "^3.0.3", - "css-has-pseudo": "^3.0.4", - "css-prefers-color-scheme": "^6.0.3", - "cssdb": "^7.1.0", - "postcss-attribute-case-insensitive": "^5.0.2", - "postcss-clamp": "^4.1.0", - "postcss-color-functional-notation": "^4.2.4", - "postcss-color-hex-alpha": "^8.0.4", - "postcss-color-rebeccapurple": "^7.1.1", - "postcss-custom-media": "^8.0.2", - "postcss-custom-properties": "^12.1.10", - "postcss-custom-selectors": "^6.0.3", - "postcss-dir-pseudo-class": "^6.0.5", - "postcss-double-position-gradients": "^3.1.2", - "postcss-env-function": "^4.0.6", - "postcss-focus-visible": "^6.0.4", - "postcss-focus-within": "^5.0.4", - "postcss-font-variant": "^5.0.0", - "postcss-gap-properties": "^3.0.5", - "postcss-image-set-function": "^4.0.7", - "postcss-initial": "^4.0.1", - "postcss-lab-function": "^4.2.1", - "postcss-logical": "^5.0.4", - "postcss-media-minmax": "^5.0.0", - "postcss-nesting": "^10.2.0", - "postcss-opacity-percentage": "^1.1.2", - "postcss-overflow-shorthand": "^3.0.4", - "postcss-page-break": "^3.0.4", - "postcss-place": "^7.0.5", - "postcss-pseudo-class-any-link": "^7.1.6", - "postcss-replace-overflow-wrap": "^4.0.0", - "postcss-selector-not": "^6.0.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-pseudo-class-any-link": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", - "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", - "license": "CC0-1.0", - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", - "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", - "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-replace-overflow-wrap": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", - "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "license": "MIT", - "peerDependencies": { - "postcss": "^8.0.3" - } - }, - "node_modules/postcss-selector-not": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz", - "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", - "license": "MIT", - "peer": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-svgo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", - "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-svgo/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/postcss-svgo/node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/postcss-svgo/node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "license": "CC0-1.0" - }, - "node_modules/postcss-svgo/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-svgo/node_modules/svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "license": "MIT", - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/postcss-unique-selectors": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", - "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "license": "MIT" - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" - } - }, - "node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/pretty-format/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "license": "MIT" - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "license": "MIT" - }, - "node_modules/promise": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", - "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", - "license": "MIT", - "dependencies": { - "asap": "~2.0.6" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -13803,161 +2714,12 @@ "react-is": "^16.13.1" } }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "license": "MIT" }, - "node_modules/psl": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", - "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", - "license": "MIT", - "dependencies": { - "punycode": "^2.3.1" - }, - "funding": { - "url": "https://github.com/sponsors/lupomontero" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", - "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", - "license": "MIT", - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "license": "MIT" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "license": "MIT", - "dependencies": { - "performance-now": "^2.1.0" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/react": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", @@ -13971,23 +2733,6 @@ "node": ">=0.10.0" } }, - "node_modules/react-app-polyfill": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", - "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", - "license": "MIT", - "dependencies": { - "core-js": "^3.19.2", - "object-assign": "^4.1.1", - "promise": "^8.1.0", - "raf": "^3.4.1", - "regenerator-runtime": "^0.13.9", - "whatwg-fetch": "^3.6.2" - }, - "engines": { - "node": ">=14" - } - }, "node_modules/react-bootstrap-icons": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/react-bootstrap-icons/-/react-bootstrap-icons-1.11.6.tgz", @@ -14000,111 +2745,6 @@ "react": ">=16.8.6" } }, - "node_modules/react-dev-utils": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", - "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.16.0", - "address": "^1.1.2", - "browserslist": "^4.18.1", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "detect-port-alt": "^1.1.6", - "escape-string-regexp": "^4.0.0", - "filesize": "^8.0.6", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^6.5.0", - "global-modules": "^2.0.0", - "globby": "^11.0.4", - "gzip-size": "^6.0.0", - "immer": "^9.0.7", - "is-root": "^2.1.0", - "loader-utils": "^3.2.0", - "open": "^8.4.0", - "pkg-up": "^3.1.0", - "prompts": "^2.4.2", - "react-error-overlay": "^6.0.11", - "recursive-readdir": "^2.2.2", - "shell-quote": "^1.7.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/react-dev-utils/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/loader-utils": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", - "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", - "license": "MIT", - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/react-dev-utils/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/react-dom": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", @@ -14119,12 +2759,6 @@ "react": "^18.3.1" } }, - "node_modules/react-error-overlay": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.1.0.tgz", - "integrity": "sha512-SN/U6Ytxf1QGkw/9ve5Y+NxBbZM6Ht95tuXNMKs8EJyFa/Vy/+Co3stop3KBHARfn/giv+Lj1uUnTfOJ3moFEQ==", - "license": "MIT" - }, "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", @@ -14177,16 +2811,6 @@ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "license": "MIT" }, - "node_modules/react-refresh": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", - "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/react-router": { "version": "6.30.2", "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.2.tgz", @@ -14219,126 +2843,6 @@ "react-dom": ">=16.8" } }, - "node_modules/react-scripts": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", - "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.16.0", - "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", - "@svgr/webpack": "^5.5.0", - "babel-jest": "^27.4.2", - "babel-loader": "^8.2.3", - "babel-plugin-named-asset-import": "^0.3.8", - "babel-preset-react-app": "^10.0.1", - "bfj": "^7.0.2", - "browserslist": "^4.18.1", - "camelcase": "^6.2.1", - "case-sensitive-paths-webpack-plugin": "^2.4.0", - "css-loader": "^6.5.1", - "css-minimizer-webpack-plugin": "^3.2.0", - "dotenv": "^10.0.0", - "dotenv-expand": "^5.1.0", - "eslint": "^8.3.0", - "eslint-config-react-app": "^7.0.1", - "eslint-webpack-plugin": "^3.1.1", - "file-loader": "^6.2.0", - "fs-extra": "^10.0.0", - "html-webpack-plugin": "^5.5.0", - "identity-obj-proxy": "^3.0.0", - "jest": "^27.4.3", - "jest-resolve": "^27.4.2", - "jest-watch-typeahead": "^1.0.0", - "mini-css-extract-plugin": "^2.4.5", - "postcss": "^8.4.4", - "postcss-flexbugs-fixes": "^5.0.2", - "postcss-loader": "^6.2.1", - "postcss-normalize": "^10.0.1", - "postcss-preset-env": "^7.0.1", - "prompts": "^2.4.2", - "react-app-polyfill": "^3.0.0", - "react-dev-utils": "^12.0.1", - "react-refresh": "^0.11.0", - "resolve": "^1.20.0", - "resolve-url-loader": "^4.0.0", - "sass-loader": "^12.3.0", - "semver": "^7.3.5", - "source-map-loader": "^3.0.0", - "style-loader": "^3.3.1", - "tailwindcss": "^3.0.2", - "terser-webpack-plugin": "^5.2.5", - "webpack": "^5.64.4", - "webpack-dev-server": "^4.6.0", - "webpack-manifest-plugin": "^4.0.2", - "workbox-webpack-plugin": "^6.4.1" - }, - "bin": { - "react-scripts": "bin/react-scripts.js" - }, - "engines": { - "node": ">=14.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - }, - "peerDependencies": { - "react": ">= 16", - "typescript": "^3.2.1 || ^4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "license": "MIT", - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/recursive-readdir": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", - "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", - "license": "MIT", - "dependencies": { - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/redux": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", @@ -14358,135 +2862,12 @@ "redux": "^4" } }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", - "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.1", - "which-builtin-type": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "license": "MIT" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", - "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/regenerator-runtime": { "version": "0.13.11", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", "license": "MIT" }, - "node_modules/regex-parser": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.1.tgz", - "integrity": "sha512-yXLRqatcCuKtVHsWrNg0JL3l1zGfdXeEvDa0bdu4tCDQw0RpMDZsqbkyRTUnKMR0tXF627V2oEWjBEaEdqTwtQ==", - "license": "MIT" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", - "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpu-core": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", - "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.2.2", - "regjsgen": "^0.8.0", - "regjsparser": "^0.13.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.2.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", - "license": "MIT" - }, - "node_modules/regjsparser": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", - "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", - "license": "BSD-2-Clause", - "dependencies": { - "jsesc": "~3.1.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "license": "MIT", - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -14496,275 +2877,63 @@ "node": ">=0.10.0" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "license": "MIT" - }, "node_modules/reselect": { "version": "4.1.8", "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==", "license": "MIT" }, - "node_modules/resolve": { - "version": "1.22.11", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", - "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.16.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "license": "MIT", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-url-loader": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", - "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", - "license": "MIT", - "dependencies": { - "adjust-sourcemap-loader": "^4.0.0", - "convert-source-map": "^1.7.0", - "loader-utils": "^2.0.0", - "postcss": "^7.0.35", - "source-map": "0.6.1" - }, - "engines": { - "node": ">=8.9" - }, - "peerDependencies": { - "rework": "1.0.1", - "rework-visit": "1.0.0" - }, - "peerDependenciesMeta": { - "rework": { - "optional": true - }, - "rework-visit": { - "optional": true - } - } - }, - "node_modules/resolve-url-loader/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "license": "MIT" - }, - "node_modules/resolve-url-loader/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "license": "ISC" - }, - "node_modules/resolve-url-loader/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "license": "MIT", - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/resolve-url-loader/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve.exports": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", - "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "license": "MIT", "engines": { - "node": ">=10" - } - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=4" } }, "node_modules/rollup": { - "version": "2.79.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz", - "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.2.tgz", + "integrity": "sha512-MHngMYwGJVi6Fmnk6ISmnk7JAHRNF0UkuucA0CUW3N3a4KnONPEZz+vUanQP/ZC/iY1Qkf3bwPWzyY84wEks1g==", "license": "MIT", "peer": true, + "dependencies": { + "@types/estree": "1.0.8" + }, "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=10.0.0" + "node": ">=18.0.0", + "npm": ">=8.0.0" }, "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.53.2", + "@rollup/rollup-android-arm64": "4.53.2", + "@rollup/rollup-darwin-arm64": "4.53.2", + "@rollup/rollup-darwin-x64": "4.53.2", + "@rollup/rollup-freebsd-arm64": "4.53.2", + "@rollup/rollup-freebsd-x64": "4.53.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.53.2", + "@rollup/rollup-linux-arm-musleabihf": "4.53.2", + "@rollup/rollup-linux-arm64-gnu": "4.53.2", + "@rollup/rollup-linux-arm64-musl": "4.53.2", + "@rollup/rollup-linux-loong64-gnu": "4.53.2", + "@rollup/rollup-linux-ppc64-gnu": "4.53.2", + "@rollup/rollup-linux-riscv64-gnu": "4.53.2", + "@rollup/rollup-linux-riscv64-musl": "4.53.2", + "@rollup/rollup-linux-s390x-gnu": "4.53.2", + "@rollup/rollup-linux-x64-gnu": "4.53.2", + "@rollup/rollup-linux-x64-musl": "4.53.2", + "@rollup/rollup-openharmony-arm64": "4.53.2", + "@rollup/rollup-win32-arm64-msvc": "4.53.2", + "@rollup/rollup-win32-ia32-msvc": "4.53.2", + "@rollup/rollup-win32-x64-gnu": "4.53.2", + "@rollup/rollup-win32-x64-msvc": "4.53.2", "fsevents": "~2.3.2" } }, - "node_modules/rollup-plugin-terser": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", - "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", - "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.0.0" - }, - "peerDependencies": { - "rollup": "^2.0.0" - } - }, - "node_modules/rollup-plugin-terser/node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-array-concat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", - "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "has-symbols": "^1.1.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -14785,107 +2954,6 @@ ], "license": "MIT" }, - "node_modules/safe-push-apply": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", - "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-regex-test": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", - "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-regex": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT" - }, - "node_modules/sanitize.css": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", - "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==", - "license": "CC0-1.0" - }, - "node_modules/sass-loader": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", - "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", - "license": "MIT", - "dependencies": { - "klona": "^2.0.4", - "neo-async": "^2.6.2" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", - "sass": "^1.3.0", - "sass-embedded": "*", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - } - } - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "license": "ISC" - }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "license": "ISC", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/scheduler": { "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", @@ -14895,60 +2963,6 @@ "loose-envify": "^1.1.0" } }, - "node_modules/schema-utils": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", - "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/schema-utils/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "license": "MIT", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/schema-utils/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/schema-utils/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT" - }, "node_modules/seedrandom": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", @@ -14956,389 +2970,23 @@ "license": "MIT", "peer": true }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", - "license": "MIT" - }, - "node_modules/selfsigned": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", - "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", - "license": "MIT", - "dependencies": { - "@types/node-forge": "^1.3.0", - "node-forge": "^1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "license": "ISC", "bin": { "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" } }, - "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", "license": "MIT", "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "license": "MIT", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "license": "ISC" - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "license": "ISC" - }, - "node_modules/serve-index/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "license": "MIT", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-proto": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", - "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "license": "ISC" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", - "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "license": "ISC" - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "license": "MIT" - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "license": "MIT", - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "license": "MIT" - }, - "node_modules/source-map": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", - "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 12" + "dot-case": "^3.0.4", + "tslib": "^2.0.3" } }, "node_modules/source-map-js": { @@ -15350,245 +2998,12 @@ "node": ">=0.10.0" } }, - "node_modules/source-map-loader": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", - "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", - "license": "MIT", - "dependencies": { - "abab": "^2.0.5", - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead", - "license": "MIT" - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "license": "BSD-3-Clause" }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", - "license": "MIT" - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/stackframe": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", - "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", - "license": "MIT" - }, - "node_modules/static-eval": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", - "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", - "license": "MIT", - "dependencies": { - "escodegen": "^1.8.1" - } - }, - "node_modules/static-eval/node_modules/escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=4.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/static-eval/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/static-eval/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "license": "MIT", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/static-eval/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "license": "MIT", - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/static-eval/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/static-eval/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-eval/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "license": "MIT", - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/stop-iteration-iterator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", - "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "internal-slot": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -15598,25 +3013,6 @@ "safe-buffer": "~5.2.0" } }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "license": "MIT", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-natural-compare": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", - "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==", - "license": "MIT" - }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -15631,154 +3027,12 @@ "node": ">=8" } }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, "node_modules/string-width/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "license": "MIT" }, - "node_modules/string.prototype.includes": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", - "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", - "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.6", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.6", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "regexp.prototype.flags": "^1.5.3", - "set-function-name": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.repeat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", - "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", - "license": "MIT", - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", - "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-data-property": "^1.1.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-object-atoms": "^1.0.0", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", - "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "license": "BSD-2-Clause", - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -15791,165 +3045,6 @@ "node": ">=8" } }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", - "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/style-loader": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz", - "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", - "license": "MIT", - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/stylehacks": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", - "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/sucrase/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/sucrase/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/sucrase/node_modules/glob": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", - "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sucrase/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -15962,344 +3057,12 @@ "node": ">=8" } }, - "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/svg-parser": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", "license": "MIT" }, - "node_modules/svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", - "license": "MIT", - "dependencies": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/svgo/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/svgo/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/svgo/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/svgo/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "license": "MIT" - }, - "node_modules/svgo/node_modules/css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "node_modules/svgo/node_modules/css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/svgo/node_modules/dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "node_modules/svgo/node_modules/domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "license": "BSD-2-Clause" - }, - "node_modules/svgo/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/svgo/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/svgo/node_modules/nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "~1.0.0" - } - }, - "node_modules/svgo/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "license": "MIT" - }, - "node_modules/tailwindcss": { - "version": "3.4.18", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.18.tgz", - "integrity": "sha512-6A2rnmW5xZMdw11LYjhcI5846rt9pbLSabY5XPxo+XWdxwZaFEn47Go4NzFiHu9sNNmr/kXivP1vStfvMaK1GQ==", - "license": "MIT", - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.6.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.2", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.7", - "lilconfig": "^3.1.3", - "micromatch": "^4.0.8", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.1.1", - "postcss": "^8.4.47", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", - "postcss-nested": "^6.2.0", - "postcss-selector-parser": "^6.1.2", - "resolve": "^1.22.8", - "sucrase": "^3.35.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tailwindcss/node_modules/lilconfig": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/tailwindcss/node_modules/postcss-load-config": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", - "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "lilconfig": "^3.1.1" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "jiti": ">=1.21.0", - "postcss": ">=8.0.9", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - }, - "postcss": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/tapable": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", - "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/tempy": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", - "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", - "license": "MIT", - "dependencies": { - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tempy/node_modules/type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/tensorjs": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/tensorjs/-/tensorjs-0.2.0.tgz", @@ -16310,100 +3073,6 @@ "lodash": "^4.17.4" } }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terser": { - "version": "5.44.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.1.tgz", - "integrity": "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==", - "license": "BSD-2-Clause", - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.15.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.14", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", - "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.25", - "jest-worker": "^27.4.5", - "schema-utils": "^4.3.0", - "serialize-javascript": "^6.0.2", - "terser": "^5.31.1" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "license": "MIT" - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "license": "MIT" - }, "node_modules/tfjs": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tfjs/-/tfjs-0.6.0.tgz", @@ -16413,64 +3082,20 @@ "tensorjs": "^0.2.0" } }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "license": "MIT", "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "license": "MIT", - "dependencies": { - "thenify": ">= 3.1.0 < 4" + "fdir": "^6.5.0", + "picomatch": "^4.0.3" }, "engines": { - "node": ">=0.8" - } - }, - "node_modules/throat": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", - "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", - "license": "MIT" - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "license": "MIT" - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "license": "BSD-3-Clause" - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" + "node": ">=12.0.0" }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "license": "MIT", - "engines": { - "node": ">=0.6" + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" } }, "node_modules/tosource": { @@ -16481,79 +3106,30 @@ "node": ">=0.4.0" } }, - "node_modules/tough-cookie": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", - "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", - "license": "BSD-3-Clause", - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "license": "MIT" }, - "node_modules/tryer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", - "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==", - "license": "MIT" - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "license": "Apache-2.0" - }, - "node_modules/tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "node_modules/tsconfck": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.6.tgz", + "integrity": "sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==", "license": "MIT", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "license": "MIT", + "tsconfck": "bin/tsconfck.js" + }, "engines": { - "node": ">=4" + "node": "^18 || >=20" + }, + "peerDependencies": { + "typescript": "^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/tslib": { @@ -16562,287 +3138,12 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "license": "MIT", - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "license": "0BSD" - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "license": "(MIT OR CC0-1.0)", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", - "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", - "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", - "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.15", - "reflect.getprototypeof": "^1.0.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", - "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0", - "reflect.getprototypeof": "^1.0.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "license": "Apache-2.0", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", - "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-bigints": "^1.0.2", - "has-symbols": "^1.1.0", - "which-boxed-primitive": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/underscore": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", - "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", - "license": "MIT" - }, "node_modules/undici-types": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", "license": "MIT" }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", - "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "license": "MIT", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", - "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", - "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "license": "MIT", - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==", - "license": "MIT" - }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "license": "MIT", - "engines": { - "node": ">=4", - "yarn": "*" - } - }, "node_modules/update-browserslist-db": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz", @@ -16873,25 +3174,6 @@ "browserslist": ">= 4.21.0" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "license": "MIT", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, "node_modules/use-sync-external-store": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", @@ -16901,131 +3183,112 @@ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "license": "MIT" - }, - "node_modules/util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "node_modules/vite": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.2.tgz", + "integrity": "sha512-BxAKBWmIbrDgrokdGZH1IgkIk/5mMHDreLDmCJ0qpyJaAteP8NvMhkwr/ZCQNqNH97bw/dANTE9PDzqwJghfMQ==", "license": "MIT", + "peer": true, "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" + "esbuild": "^0.25.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", - "license": "MIT" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", - "license": "ISC", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" + "url": "https://github.com/vitejs/vite?sponsor=1" }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "license": "MIT" - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", - "license": "MIT", - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "license": "MIT", - "dependencies": { - "xml-name-validator": "^3.0.0" + "optionalDependencies": { + "fsevents": "~2.3.3" }, - "engines": { - "node": ">=10" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "license": "Apache-2.0", - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/watchpack": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", - "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==", - "license": "MIT", - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, - "engines": { - "node": ">=10.13.0" + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } } }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "node_modules/vite-plugin-svgr": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vite-plugin-svgr/-/vite-plugin-svgr-4.5.0.tgz", + "integrity": "sha512-W+uoSpmVkSmNOGPSsDCWVW/DDAyv+9fap9AZXBvWiQqrboJ08j2vh0tFxTD/LjwqwAd3yYSVJgm54S/1GhbdnA==", "license": "MIT", "dependencies": { - "minimalistic-assert": "^1.0.0" + "@rollup/pluginutils": "^5.2.0", + "@svgr/core": "^8.1.0", + "@svgr/plugin-jsx": "^8.1.0" + }, + "peerDependencies": { + "vite": ">=2.6.0" + } + }, + "node_modules/vite-tsconfig-paths": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-5.1.4.tgz", + "integrity": "sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "globrex": "^0.1.2", + "tsconfck": "^3.0.3" + }, + "peerDependencies": { + "vite": "*" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } } }, "node_modules/web-vitals": { @@ -17034,293 +3297,6 @@ "integrity": "sha512-c0rhqNcHXRkY/ogGDJQxZ9Im9D19hDihbzSQJrsioex+KnFgmMzBiy57Z1EjkhX/+OjyBpclDCzz2ITtjokFmg==", "license": "Apache-2.0" }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=10.4" - } - }, - "node_modules/webpack": { - "version": "5.103.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.103.0.tgz", - "integrity": "sha512-HU1JOuV1OavsZ+mfigY0j8d1TgQgbZ6M+J75zDkpEAwYeXjWSqrGJtgnPblJjd/mAyTNQ7ygw0MiKOn6etz8yw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/eslint-scope": "^3.7.7", - "@types/estree": "^1.0.8", - "@types/json-schema": "^7.0.15", - "@webassemblyjs/ast": "^1.14.1", - "@webassemblyjs/wasm-edit": "^1.14.1", - "@webassemblyjs/wasm-parser": "^1.14.1", - "acorn": "^8.15.0", - "acorn-import-phases": "^1.0.3", - "browserslist": "^4.26.3", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.3", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.3.1", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^4.3.3", - "tapable": "^2.3.0", - "terser-webpack-plugin": "^5.3.11", - "watchpack": "^2.4.4", - "webpack-sources": "^3.3.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-middleware": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", - "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", - "license": "MIT", - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-server": { - "version": "4.15.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", - "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.5", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.4", - "ws": "^8.13.0" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.18.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", - "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/webpack-manifest-plugin": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", - "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", - "license": "MIT", - "dependencies": { - "tapable": "^2.0.0", - "webpack-sources": "^2.2.0" - }, - "engines": { - "node": ">=12.22.0" - }, - "peerDependencies": { - "webpack": "^4.44.2 || ^5.47.0" - } - }, - "node_modules/webpack-manifest-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-manifest-plugin/node_modules/webpack-sources": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", - "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", - "license": "MIT", - "dependencies": { - "source-list-map": "^2.0.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", - "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", - "license": "MIT", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/webpack/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "license": "Apache-2.0", - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "license": "Apache-2.0", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "license": "MIT", - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/whatwg-encoding/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/whatwg-fetch": { - "version": "3.6.20", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", - "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", - "license": "MIT" - }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "license": "MIT" - }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", @@ -17337,440 +3313,6 @@ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "license": "BSD-2-Clause" }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", - "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", - "license": "MIT", - "dependencies": { - "is-bigint": "^1.1.0", - "is-boolean-object": "^1.2.1", - "is-number-object": "^1.1.1", - "is-string": "^1.1.1", - "is-symbol": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", - "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "function.prototype.name": "^1.1.6", - "has-tostringtag": "^1.0.2", - "is-async-function": "^2.0.0", - "is-date-object": "^1.1.0", - "is-finalizationregistry": "^1.1.0", - "is-generator-function": "^1.0.10", - "is-regex": "^1.2.1", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.1.0", - "which-collection": "^1.0.2", - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "license": "MIT", - "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.19", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", - "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "for-each": "^0.3.5", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/workbox-background-sync": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz", - "integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==", - "license": "MIT", - "dependencies": { - "idb": "^7.0.1", - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-broadcast-update": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz", - "integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==", - "license": "MIT", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-build": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.6.0.tgz", - "integrity": "sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==", - "license": "MIT", - "dependencies": { - "@apideck/better-ajv-errors": "^0.3.1", - "@babel/core": "^7.11.1", - "@babel/preset-env": "^7.11.0", - "@babel/runtime": "^7.11.2", - "@rollup/plugin-babel": "^5.2.0", - "@rollup/plugin-node-resolve": "^11.2.1", - "@rollup/plugin-replace": "^2.4.1", - "@surma/rollup-plugin-off-main-thread": "^2.2.3", - "ajv": "^8.6.0", - "common-tags": "^1.8.0", - "fast-json-stable-stringify": "^2.1.0", - "fs-extra": "^9.0.1", - "glob": "^7.1.6", - "lodash": "^4.17.20", - "pretty-bytes": "^5.3.0", - "rollup": "^2.43.1", - "rollup-plugin-terser": "^7.0.0", - "source-map": "^0.8.0-beta.0", - "stringify-object": "^3.3.0", - "strip-comments": "^2.0.1", - "tempy": "^0.6.0", - "upath": "^1.2.0", - "workbox-background-sync": "6.6.0", - "workbox-broadcast-update": "6.6.0", - "workbox-cacheable-response": "6.6.0", - "workbox-core": "6.6.0", - "workbox-expiration": "6.6.0", - "workbox-google-analytics": "6.6.0", - "workbox-navigation-preload": "6.6.0", - "workbox-precaching": "6.6.0", - "workbox-range-requests": "6.6.0", - "workbox-recipes": "6.6.0", - "workbox-routing": "6.6.0", - "workbox-strategies": "6.6.0", - "workbox-streams": "6.6.0", - "workbox-sw": "6.6.0", - "workbox-window": "6.6.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", - "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", - "license": "MIT", - "dependencies": { - "json-schema": "^0.4.0", - "jsonpointer": "^5.0.0", - "leven": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "ajv": ">=8" - } - }, - "node_modules/workbox-build/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "license": "MIT", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/workbox-build/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "license": "MIT", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/workbox-build/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT" - }, - "node_modules/workbox-build/node_modules/source-map": { - "version": "0.8.0-beta.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", - "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", - "deprecated": "The work that was done in this beta branch won't be included in future versions", - "license": "BSD-3-Clause", - "dependencies": { - "whatwg-url": "^7.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/workbox-build/node_modules/tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", - "license": "MIT", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/workbox-build/node_modules/webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "license": "BSD-2-Clause" - }, - "node_modules/workbox-build/node_modules/whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "license": "MIT", - "dependencies": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "node_modules/workbox-cacheable-response": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz", - "integrity": "sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==", - "deprecated": "workbox-background-sync@6.6.0", - "license": "MIT", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-core": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz", - "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==", - "license": "MIT" - }, - "node_modules/workbox-expiration": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz", - "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==", - "license": "MIT", - "dependencies": { - "idb": "^7.0.1", - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-google-analytics": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", - "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", - "deprecated": "It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained", - "license": "MIT", - "dependencies": { - "workbox-background-sync": "6.6.0", - "workbox-core": "6.6.0", - "workbox-routing": "6.6.0", - "workbox-strategies": "6.6.0" - } - }, - "node_modules/workbox-navigation-preload": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz", - "integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==", - "license": "MIT", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-precaching": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.0.tgz", - "integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==", - "license": "MIT", - "dependencies": { - "workbox-core": "6.6.0", - "workbox-routing": "6.6.0", - "workbox-strategies": "6.6.0" - } - }, - "node_modules/workbox-range-requests": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz", - "integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==", - "license": "MIT", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-recipes": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.6.0.tgz", - "integrity": "sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==", - "license": "MIT", - "dependencies": { - "workbox-cacheable-response": "6.6.0", - "workbox-core": "6.6.0", - "workbox-expiration": "6.6.0", - "workbox-precaching": "6.6.0", - "workbox-routing": "6.6.0", - "workbox-strategies": "6.6.0" - } - }, - "node_modules/workbox-routing": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.0.tgz", - "integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==", - "license": "MIT", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-strategies": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.0.tgz", - "integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==", - "license": "MIT", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-streams": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.0.tgz", - "integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==", - "license": "MIT", - "dependencies": { - "workbox-core": "6.6.0", - "workbox-routing": "6.6.0" - } - }, - "node_modules/workbox-sw": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.0.tgz", - "integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==", - "license": "MIT" - }, - "node_modules/workbox-webpack-plugin": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.0.tgz", - "integrity": "sha512-xNZIZHalboZU66Wa7x1YkjIqEy1gTR+zPM+kjrYJzqN7iurYZBctBLISyScjhkJKYuRrZUP0iqViZTh8rS0+3A==", - "license": "MIT", - "dependencies": { - "fast-json-stable-stringify": "^2.1.0", - "pretty-bytes": "^5.4.1", - "upath": "^1.2.0", - "webpack-sources": "^1.4.3", - "workbox-build": "6.6.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "webpack": "^4.4.0 || ^5.9.0" - } - }, - "node_modules/workbox-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "license": "MIT", - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/workbox-window": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.6.0.tgz", - "integrity": "sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==", - "license": "MIT", - "dependencies": { - "@types/trusted-types": "^2.0.2", - "workbox-core": "6.6.0" - } - }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -17788,75 +3330,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.5.10", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", - "license": "MIT", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "license": "Apache-2.0" - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "license": "MIT" - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -17872,15 +3345,6 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "license": "ISC" }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "license": "ISC", - "engines": { - "node": ">= 6" - } - }, "node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -17907,18 +3371,6 @@ "engines": { "node": ">=10" } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } } } } diff --git a/package.json b/package.json index fe55010..73ab620 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "@reduxjs/toolkit": "^1.9.3", "@tensorflow/tfjs": "^4.2.0", "@tensorflow/tfjs-converter": "^4.0.0", + "@vitejs/plugin-react-swc": "^4.2.2", "axios": "^1.3.4", "history": "^5.3.0", "memoize": "^0.1.1", @@ -15,18 +16,17 @@ "react-redux": "^8.0.5", "react-router": "^6.4.3", "react-router-dom": "^6.8.2", - "react-scripts": "^5.0.1", "redux": "^4.2.1", "redux-thunk": "^2.4.2", "tfjs": "^0.6.0", + "vite": "^7.2.2", + "vite-plugin-svgr": "^4.5.0", "web-vitals": "^3.1.1" }, "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", - "postbuild": "rimraf build/**/*.map", - "test": "react-scripts test", - "eject": "react-scripts eject" + "start": "vite", + "build": "vite build", + "serve": "vite preview" }, "eslintConfig": { "extends": [ diff --git a/src/components/About.js b/src/components/About.jsx similarity index 100% rename from src/components/About.js rename to src/components/About.jsx diff --git a/src/components/App.js b/src/components/App.jsx similarity index 100% rename from src/components/App.js rename to src/components/App.jsx diff --git a/src/components/Article.js b/src/components/Article.jsx similarity index 100% rename from src/components/Article.js rename to src/components/Article.jsx diff --git a/src/components/ArticleEditor.js b/src/components/ArticleEditor.jsx similarity index 100% rename from src/components/ArticleEditor.js rename to src/components/ArticleEditor.jsx diff --git a/src/components/Articles.js b/src/components/Articles.jsx similarity index 100% rename from src/components/Articles.js rename to src/components/Articles.jsx diff --git a/src/components/Bai.js b/src/components/Bai.jsx similarity index 100% rename from src/components/Bai.js rename to src/components/Bai.jsx diff --git a/src/components/Github.js b/src/components/Github.jsx similarity index 100% rename from src/components/Github.js rename to src/components/Github.jsx diff --git a/src/components/Home.js b/src/components/Home.jsx similarity index 100% rename from src/components/Home.js rename to src/components/Home.jsx diff --git a/src/components/Intro.js b/src/components/Intro.jsx similarity index 100% rename from src/components/Intro.js rename to src/components/Intro.jsx diff --git a/src/components/Navigation.js b/src/components/Navigation.jsx similarity index 100% rename from src/components/Navigation.js rename to src/components/Navigation.jsx diff --git a/src/components/subcomponents/Buttons.js b/src/components/subcomponents/Buttons.jsx similarity index 100% rename from src/components/subcomponents/Buttons.js rename to src/components/subcomponents/Buttons.jsx diff --git a/src/components/subcomponents/Card.js b/src/components/subcomponents/Card.jsx similarity index 100% rename from src/components/subcomponents/Card.js rename to src/components/subcomponents/Card.jsx diff --git a/src/components/subcomponents/ContactModal.js b/src/components/subcomponents/ContactModal.jsx similarity index 100% rename from src/components/subcomponents/ContactModal.js rename to src/components/subcomponents/ContactModal.jsx diff --git a/src/components/subcomponents/GithubRepos.js b/src/components/subcomponents/GithubRepos.jsx similarity index 100% rename from src/components/subcomponents/GithubRepos.js rename to src/components/subcomponents/GithubRepos.jsx diff --git a/src/components/subcomponents/Listing.js b/src/components/subcomponents/Listing.jsx similarity index 100% rename from src/components/subcomponents/Listing.js rename to src/components/subcomponents/Listing.jsx diff --git a/src/components/subcomponents/Modal.js b/src/components/subcomponents/Modal.jsx similarity index 100% rename from src/components/subcomponents/Modal.js rename to src/components/subcomponents/Modal.jsx diff --git a/src/components/subcomponents/ProgressBar.js b/src/components/subcomponents/ProgressBar.jsx similarity index 100% rename from src/components/subcomponents/ProgressBar.js rename to src/components/subcomponents/ProgressBar.jsx diff --git a/src/components/subcomponents/Theater.js b/src/components/subcomponents/Theater.jsx similarity index 100% rename from src/components/subcomponents/Theater.js rename to src/components/subcomponents/Theater.jsx diff --git a/src/components/subcomponents/Topic.js b/src/components/subcomponents/Topic.jsx similarity index 100% rename from src/components/subcomponents/Topic.js rename to src/components/subcomponents/Topic.jsx diff --git a/src/index.js b/src/index.jsx similarity index 100% rename from src/index.js rename to src/index.jsx diff --git a/src/vite-env.d.js b/src/vite-env.d.js new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/src/vite-env.d.js @@ -0,0 +1 @@ +/// diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..272d069 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,8 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react-swc' + +// https://vitejs.dev/config/ +export default defineConfig({ + base: '/', + plugins: [react()] +}) \ No newline at end of file