diff --git a/courses/IntroToRust/.gitignore b/courses/IntroToRust/.gitignore new file mode 100644 index 0000000..53c37a1 --- /dev/null +++ b/courses/IntroToRust/.gitignore @@ -0,0 +1 @@ +dist \ No newline at end of file diff --git a/courses/IntroToRust/README.md b/courses/IntroToRust/README.md new file mode 100644 index 0000000..678505d --- /dev/null +++ b/courses/IntroToRust/README.md @@ -0,0 +1,3 @@ +# RustSeminar +Introduction to Rust with Reese Hatfield via OSEDA.net + diff --git a/courses/IntroToRust/css/custom.css b/courses/IntroToRust/css/custom.css new file mode 100644 index 0000000..5136329 --- /dev/null +++ b/courses/IntroToRust/css/custom.css @@ -0,0 +1,115 @@ + +/* sensible styles */ +.reveal section { + font-family: "Arial", sans-serif; +} + +.reveal h1 { + color: #f92672; + text-align: left; + margin: 0 0 0.5em 0; + line-height: 1.2; +} + +.reveal h2 { + text-align: left; +} + + +.left { + text-align: left; +} + + +.horizontal-container { + display: flex; + justify-content: space-between; + align-items: center; + gap: 2em; +} + +.vertical-container { + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: flex-start; + gap: 20pt; +} + +.center-container { + display: flex; + justify-content: center; + align-items: center; +} + +.left { + text-align: left; +} + +/* general slide layout for all sections */ +.reveal .slides section { + display: flex !important; + flex-direction: column; + justify-content: flex-start; + align-items: stretch; + gap: 1em; + padding-top: 2em; + box-sizing: border-box; +} + +.horizontal-container .text { + flex: 1; +} + +.horizontal-container .image { + flex: 1; + max-width: 45%; + height: auto; + object-fit: contain; +} + +.reveal ul { + text-align: left; + margin: -1em 0 0 0; + padding-left: 1.2em; +} + +.reveal .slides section.center-slide { + display: flex !important; + flex-direction: column; + justify-content: center; + align-items: center; + min-height: 100vh; + text-align: center !important; + gap: 1em; +} + +.center-slide h1 { + margin: -1.7em 0 0 0; +} + +.reveal pre.full-code, +.reveal pre.full-code code { + max-height: none !important; + overflow: visible !important; + white-space: pre !important; +} + +.no-wrap { + white-space: nowrap; +} + +.move-up-1 { + margin: -1em 0 0 0 !important; +} + +.move-up-2 { + margin: -2em 0 0 0 !important; +} + +.move-up-3 { + margin: -3em 0 0 0 !important; +} +.move-up-4 { + margin: -4em 0 0 0 !important; +} \ No newline at end of file diff --git a/courses/IntroToRust/index.html b/courses/IntroToRust/index.html new file mode 100644 index 0000000..dab5b1c --- /dev/null +++ b/courses/IntroToRust/index.html @@ -0,0 +1,14 @@ + + + + + Reveal + Vite + + + +
+
+
+ + + diff --git a/courses/IntroToRust/oseda-config.json b/courses/IntroToRust/oseda-config.json new file mode 100644 index 0000000..225ecd5 --- /dev/null +++ b/courses/IntroToRust/oseda-config.json @@ -0,0 +1,9 @@ +{ + "title": "IntroToRust", + "author": "ReeseHatfield", + "category": [ + "ComputerScience" + ], + "last_updated": "2025-11-12T14:52:18.608425697Z", + "color": "#FFA500" +} \ No newline at end of file diff --git a/courses/IntroToRust/package-lock.json b/courses/IntroToRust/package-lock.json new file mode 100644 index 0000000..50ce3d4 --- /dev/null +++ b/courses/IntroToRust/package-lock.json @@ -0,0 +1,2503 @@ +{ + "name": "demo-1", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "demo-1", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "reveal.js": "^5.2.1", + "serve": "^14.2.4", + "vite-plugin-singlefile": "^2.2.0" + }, + "devDependencies": { + "http-server": "^14.1.1" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.53.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.0.tgz", + "integrity": "sha512-MX3DD/o2W36nlgQb8KA5QtUw/bK5aR9YDzNmX1PRHZAa6LF/MQCWMN477CgBMg8gH1vEiEZsjWRIZeL/7ttUVA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.53.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.0.tgz", + "integrity": "sha512-U4/R8ZvikDYLkl+hyAGP23SRHp3LwYSRy9SvJqsnva7TYLhVMy39RTVCYn1DdRNxXl1CyCQgE/mXKm9jaQT4ig==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.53.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.0.tgz", + "integrity": "sha512-nBG2BXRU3ifdK0HdqBKaT5VI6ScoIpABYZ+dWwQkIOYd8Suo4iykgPikjhsTd7NeHgJJ3OqlKYCcNkZtB1iLVQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.53.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.0.tgz", + "integrity": "sha512-QuZ5hYStB/vW7b8zQYtdIPpIfNNlUXtGk8zVTkoTMKzMhE2/6tVvcCWqdWqCVhx6eguJJjKjtZ9lAAG/D3yNeA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.53.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.0.tgz", + "integrity": "sha512-4yYPm1PJwK/HKI4FzElAPj2EAAFaaLUWzXV3S3edKy71JcEVzBCpgaXyEcDh3blBIjLml+aMkj6HEVGSuzpz+g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.53.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.0.tgz", + "integrity": "sha512-1SvE5euwWV8JqFc4zEAqHbJbf2yJl00EoHVcnlFqLzjrIExYttLxfZeMDIXY6Yx+bskphrQakpChZKzE2JECEg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.53.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.0.tgz", + "integrity": "sha512-9tS4QyfU5NF5CdUugEi7kWbcGD7pbu6Fm8SunuePH6beeQgtcRZ9K9KVwKHEgfBHeeyrr5OvfV1qWs7PMDOf5w==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.53.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.0.tgz", + "integrity": "sha512-U+0ovxGU9bVJIHfW+oALpHd0ho1YDwhj0yHASDzIj+bOeo+VzEpNtHxcjhFab0YcHUorIMoqyxckC98+81oTJw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.53.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.0.tgz", + "integrity": "sha512-Cp/TQ+wLjRTqTuiVwLz4XPZMo3ROl7EJYMF8HhMp8Uf+9kOOATB3/p4gGZPpuQ4BP7qEXG29ET24u9+F0ERYkQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.53.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.0.tgz", + "integrity": "sha512-SuGoAwhsSonrSTEZTiQOGC3+XZfq7rc/qAdAOBrYYIp8pu+Wh4EFFXl6+QYYNbNrHL3DnVoWACLwnfwlTa0neA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.53.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.0.tgz", + "integrity": "sha512-EOKej1x0WoePnJWfg7ZbnUqiuiQunshzsKZSIfTHFDiCY9pnsr3Weit1GjcpGnun7H5HuRREqkT2c9CcKxNwSg==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.53.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.0.tgz", + "integrity": "sha512-YAvv2aMFlfiawJ97lutomuehG2Yowd4YgsAqI85XNiMK9eBA1vEMZHt3BShg8cUvak71BM+VFRHddqc+OrRdVA==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.53.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.0.tgz", + "integrity": "sha512-DxZe/sMVaqN+s5kVk3Iq619Rgyl1JCTob7xOLSNC84mbzg3NYTSheqqrtVllYjLYo4wm9YyqjVS57miuzNyXbQ==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.53.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.0.tgz", + "integrity": "sha512-N7+iZ0jEhwLY1FEsjbCR9lAxIZP0k+3Cghx9vSQWn+rcW8SgN8VcCmwJDoPDaGKTzWWB791U1s79BSLnEhUa0Q==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.53.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.0.tgz", + "integrity": "sha512-MA/NVneZyIskjvXdh2NR9YcPi7eHWBlQOWP2X8OymzyeUEB0JfUpmbKQZngHmOlyleV2IoR5nHIgMSRjLskOnA==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.53.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.0.tgz", + "integrity": "sha512-iYEYzYpfaSCkunVD0LOYrD9OMc357be7+rBuCxW1qvsjCGl+95iWnYAFfyEoxAm6koasNN3tFxFYze5MKl5S3A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.53.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.0.tgz", + "integrity": "sha512-FoRekOqhRUKbJMsB5LvhQchDeFeNlS6UGUwi0p3860sxE4zE+lp07FnkuR+yQH0rSn6iLXsnr44jnorgl8mGlQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.53.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.0.tgz", + "integrity": "sha512-mEN2k1zKO5PUzW8W15hKpLh+zZI2by1onX2GfI93OekGbKN5aTjWGo7yAjwRZLjhAgs2UQcXmEWbIw0R5B4RnQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.53.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.0.tgz", + "integrity": "sha512-V1dEKUXqevG0wxo6ysGrL7g2T6tndmo6Uqw5vzOqCXv+DHc8m0RRgcCm+96iigDniwpvV6o4HZtkRUnuTz9XiA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.53.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.0.tgz", + "integrity": "sha512-93mJ8Hm9+vbhtu+A1VtmwptSqCYojtMQkBGDjLytCWC8muxmZLGo/MA/4CMAWf6+QpKlxTTMDAHdTC+kxn9ZcQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.53.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.0.tgz", + "integrity": "sha512-1OrYs0p/deXEFLUW1gvyjIabmsJKY3I/9fCUA1K6demaNc4iEhXDW6RnyPv/BWqb7NRmQ9+i+SKoi1HgJxWcwg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.53.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.0.tgz", + "integrity": "sha512-xtSei8paPcLy3GzeeOjoRrllJn6EN8PB+/bXnhZ4R0AaviJsRwtKxFZRVnfFXNZTTp0nLeDo+BcEuIfdZS14/A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "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/@zeit/schemas": { + "version": "2.36.0", + "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.36.0.tgz", + "integrity": "sha512-7kjMwcChYEzMKjeex9ZFXkt1AyNov9R5HZtjBKVsmVpw7pa7ZtlCGvCBC2vnnXctaYN+aRI61HjIqeetZW5ROg==", + "license": "MIT" + }, + "node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "license": "ISC", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-align/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-align/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/ansi-align/node_modules/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/ansi-align/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/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/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "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/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/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, + "license": "MIT" + }, + "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/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/boxen": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.0.0.tgz", + "integrity": "sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==", + "license": "MIT", + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^7.0.0", + "chalk": "^5.0.1", + "cli-boxes": "^3.0.0", + "string-width": "^5.1.2", + "type-fest": "^2.13.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.0.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "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/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-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "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==", + "dev": true, + "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/camelcase": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", + "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk-template": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", + "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/chalk-template?sponsor=1" + } + }, + "node_modules/cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clipboardy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-3.0.0.tgz", + "integrity": "sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==", + "license": "MIT", + "dependencies": { + "arch": "^2.2.0", + "execa": "^5.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "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/compression/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "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/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/content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/corser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", + "integrity": "sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "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/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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/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/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true, + "license": "MIT" + }, + "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/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/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/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "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/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "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", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "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==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "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==", + "dev": true, + "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-server": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/http-server/-/http-server-14.1.1.tgz", + "integrity": "sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "basic-auth": "^2.0.1", + "chalk": "^4.1.2", + "corser": "^2.0.1", + "he": "^1.2.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy": "^1.18.1", + "mime": "^1.6.0", + "minimist": "^1.2.6", + "opener": "^1.5.1", + "portfinder": "^1.0.28", + "secure-compare": "3.0.1", + "union": "~0.5.0", + "url-join": "^4.0.1" + }, + "bin": { + "http-server": "bin/http-server" + }, + "engines": { + "node": ">=12" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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/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-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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-port-reachable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-port-reachable/-/is-port-reachable-4.0.0.tgz", + "integrity": "sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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-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/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "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/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "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/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/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "license": "MIT", + "dependencies": { + "mime-db": "~1.33.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types/node_modules/mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "license": "MIT", + "engines": { + "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/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/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "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/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/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/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/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true, + "license": "(WTFPL OR MIT)", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "license": "(WTFPL OR MIT)" + }, + "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-to-regexp": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.3.0.tgz", + "integrity": "sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/portfinder": { + "version": "1.0.38", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.38.tgz", + "integrity": "sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg==", + "dev": true, + "license": "MIT", + "dependencies": { + "async": "^3.2.6", + "debug": "^4.3.6" + }, + "engines": { + "node": ">= 10.12" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "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/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/registry-auth-token": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", + "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "license": "MIT", + "dependencies": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==", + "license": "MIT", + "dependencies": { + "rc": "^1.0.1" + }, + "engines": { + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/reveal.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/reveal.js/-/reveal.js-5.2.1.tgz", + "integrity": "sha512-r7//6mIM5p34hFiDMvYfXgyjXqGRta+/psd9YtytsgRlrpRzFv4RbH76TXd2qD+7ZPZEbpBDhdRhJaFgfQ7zNQ==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/rollup": { + "version": "4.53.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.0.tgz", + "integrity": "sha512-43Z5T+4YTdfYkkA6CStU2DUYh7Ha9dLtvK+K3n0yEE/QS+4i28vSxrQsM59KqpvmT4tbOwJsFnRGMj/tvmQwWw==", + "hasInstallScript": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.53.0", + "@rollup/rollup-android-arm64": "4.53.0", + "@rollup/rollup-darwin-arm64": "4.53.0", + "@rollup/rollup-darwin-x64": "4.53.0", + "@rollup/rollup-freebsd-arm64": "4.53.0", + "@rollup/rollup-freebsd-x64": "4.53.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.53.0", + "@rollup/rollup-linux-arm-musleabihf": "4.53.0", + "@rollup/rollup-linux-arm64-gnu": "4.53.0", + "@rollup/rollup-linux-arm64-musl": "4.53.0", + "@rollup/rollup-linux-loong64-gnu": "4.53.0", + "@rollup/rollup-linux-ppc64-gnu": "4.53.0", + "@rollup/rollup-linux-riscv64-gnu": "4.53.0", + "@rollup/rollup-linux-riscv64-musl": "4.53.0", + "@rollup/rollup-linux-s390x-gnu": "4.53.0", + "@rollup/rollup-linux-x64-gnu": "4.53.0", + "@rollup/rollup-linux-x64-musl": "4.53.0", + "@rollup/rollup-openharmony-arm64": "4.53.0", + "@rollup/rollup-win32-arm64-msvc": "4.53.0", + "@rollup/rollup-win32-ia32-msvc": "4.53.0", + "@rollup/rollup-win32-x64-gnu": "4.53.0", + "@rollup/rollup-win32-x64-msvc": "4.53.0", + "fsevents": "~2.3.2" + } + }, + "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/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/secure-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", + "integrity": "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==", + "dev": true, + "license": "MIT" + }, + "node_modules/serve": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/serve/-/serve-14.2.5.tgz", + "integrity": "sha512-Qn/qMkzCcMFVPb60E/hQy+iRLpiU8PamOfOSYoAHmmF+fFFmpPpqa6Oci2iWYpTdOUM3VF+TINud7CfbQnsZbA==", + "license": "MIT", + "dependencies": { + "@zeit/schemas": "2.36.0", + "ajv": "8.12.0", + "arg": "5.0.2", + "boxen": "7.0.0", + "chalk": "5.0.1", + "chalk-template": "0.4.0", + "clipboardy": "3.0.0", + "compression": "1.8.1", + "is-port-reachable": "4.0.0", + "serve-handler": "6.1.6", + "update-check": "1.5.4" + }, + "bin": { + "serve": "build/main.js" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/serve-handler": { + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.6.tgz", + "integrity": "sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==", + "license": "MIT", + "dependencies": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "mime-types": "2.1.18", + "minimatch": "3.1.2", + "path-is-inside": "1.0.2", + "path-to-regexp": "3.3.0", + "range-parser": "1.2.0" + } + }, + "node_modules/serve-handler/node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serve/node_modules/chalk": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz", + "integrity": "sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==", + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "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/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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/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": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/union": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", + "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", + "dev": true, + "dependencies": { + "qs": "^6.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/update-check": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.4.tgz", + "integrity": "sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==", + "license": "MIT", + "dependencies": { + "registry-auth-token": "3.3.2", + "registry-url": "3.1.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-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", + "dev": true, + "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/vite": { + "version": "5.4.21", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz", + "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", + "license": "MIT", + "peer": true, + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-singlefile": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/vite-plugin-singlefile/-/vite-plugin-singlefile-2.3.0.tgz", + "integrity": "sha512-DAcHzYypM0CasNLSz/WG0VdKOCxGHErfrjOoyIPiNxTPTGmO6rRD/te93n1YL/s+miXq66ipF1brMBikf99c6A==", + "license": "MIT", + "dependencies": { + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">18.0.0" + }, + "peerDependencies": { + "rollup": "^4.44.1", + "vite": "^5.4.11 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "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/widest-line": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", + "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", + "license": "MIT", + "dependencies": { + "string-width": "^5.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/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==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + } + } +} diff --git a/courses/IntroToRust/package.json b/courses/IntroToRust/package.json new file mode 100644 index 0000000..3ea2fc4 --- /dev/null +++ b/courses/IntroToRust/package.json @@ -0,0 +1,22 @@ +{ + "name": "demo-1", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "serve": "npx http-server -p 8000" + }, + "keywords": [], + "author": "", + "license": "ISC", + "type": "commonjs", + "devDependencies": { + "http-server": "^14.1.1" + }, + "dependencies": { + "reveal.js": "^5.2.1", + "serve": "^14.2.4", + "vite-plugin-singlefile": "^2.2.0" + } +} diff --git a/courses/IntroToRust/presentation-src/errors/javascript.js b/courses/IntroToRust/presentation-src/errors/javascript.js new file mode 100644 index 0000000..be9d454 --- /dev/null +++ b/courses/IntroToRust/presentation-src/errors/javascript.js @@ -0,0 +1,4 @@ +const arr = ["alice", "bob", "charlie"]; + +console.log(arr[5]) + diff --git a/courses/IntroToRust/presentation-src/errors/matlab.m b/courses/IntroToRust/presentation-src/errors/matlab.m new file mode 100644 index 0000000..7abfb00 --- /dev/null +++ b/courses/IntroToRust/presentation-src/errors/matlab.m @@ -0,0 +1,2 @@ +arr = ["alice", "bob", "charlie"] +x = arr(5) diff --git a/courses/IntroToRust/presentation-src/rust/Cargo.lock b/courses/IntroToRust/presentation-src/rust/Cargo.lock new file mode 100644 index 0000000..b9d42e1 --- /dev/null +++ b/courses/IntroToRust/presentation-src/rust/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "rust" +version = "0.1.0" diff --git a/courses/IntroToRust/presentation-src/rust/Cargo.toml b/courses/IntroToRust/presentation-src/rust/Cargo.toml new file mode 100644 index 0000000..1c61e9e --- /dev/null +++ b/courses/IntroToRust/presentation-src/rust/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "rust" +version = "0.1.0" +edition = "2024" + +[dependencies] diff --git a/courses/IntroToRust/presentation-src/rust/src/main.rs b/courses/IntroToRust/presentation-src/rust/src/main.rs new file mode 100644 index 0000000..64b3a0f --- /dev/null +++ b/courses/IntroToRust/presentation-src/rust/src/main.rs @@ -0,0 +1,163 @@ +// fn main() { +// let greeting = "hello world!"; + +// println!("{}", greeting); +// } +//------------------------------------------------------------ + +// #![allow(unused_variables)] +// fn main() { +// let arr = ["alice", "bob", "charlie"]; + +// let x = arr[5]; +// } + +//------------------------------------------------------------ + +// #![allow(unused_variables, unused_assignments)] +// fn main() { +// let x = 5; +// x += 1; +// } + +// ---------------------------- +// enum Direction { +// North, +// South, +// East, +// West, +// } + +//------------------------------------------------------------ + +// #![allow(unused_variables, unused_assignments)] +// fn main() { + + +// let x = match get_direction(){ +// Direction::North => 1, +// Direction::East => 2, +// Direction::South => 2, +// }; +// } + + +// fn get_direction() -> Direction { +// Direction::North +// } + +//------------------------------------------------------------ + +// enum RealCat { +// Alive { hungry: bool }, +// Dead, +// } + +// fn main() { +// let _ = match getCat(){ +// RealCat::Alive { hungry: true } => "Feed me!", +// RealCat::Alive { hungry: false } => "Doing great", +// RealCat::Dead => ":(", +// } +// } + +// fn getCat() -> RealCat { +// return RealCat::Alive(false) +// } +//--------------------------------------------- +// fn divide(a: i32, b: i32) -> Result { +// if b == 0 { +// return Err("cannot divide by zero".to_string()); +// } + +// return Ok(a / b); +// } + +// fn main() { +// let x = match divide(10, 2) { +// Ok(result) => result * 2, +// Err(err) => 0, +// }; +// } +//------------------------------------------------- +// fn divide(a: i32, b: i32) -> Result { +// if b == 0 { +// return Err("cannot divide by zero".to_string()); +// } + +// return Ok(a / b); +// } + +// fn do_math() -> Result { +// let temp = divide(15, 3)?; +// // ... +// return Ok(temp); +// } + +// fn main() { +// let answer = do_math(); +// } +//--------------------------- +// X +// fn greet(name: String) { +// println!("Hello, {}!", name); +// } + +// fn main() {x +// let name = String::from("Bob"); + +// greet(name); + +// println!("You greeted {}", name); +// } +// ------------------------------------------- +// fn greet(name: &String) { +// println!("Hello, {}!", name); +// } + +// fn main() { +// let name = String::from("Bob"); + +// greet(&name); + +// println!("You greeted {}", name); +// } +//-------------------- + +// fn greet(name: &String) { + +// name = &name.to_uppercase(); +// println!("Hello, {}!", name); +// } + +// fn main() { +// let name = String::from("Bob"); + +// greet(&name); + +// println!("You greeted {}", name); +// } +//-------------- +// fn greet(name: &mut String) { + +// *name = name.to_uppercase(); +// println!("Hello, {}!", name); +// } + +// fn main() { +// let mut name = String::from("Bob"); + +// greet(&mut name); + +// println!("You greeted {}", name); +// } +//----------------------------- + +fn main() { + let names = vec!("Alice", "Bob", "Charlie"); + + let x = true; + assert!(x, "x wasn't true!"); + + println!("{:?}", names); +} \ No newline at end of file diff --git a/courses/IntroToRust/presentation-src/rust/target/.rustc_info.json b/courses/IntroToRust/presentation-src/rust/target/.rustc_info.json new file mode 100644 index 0000000..3d82f59 --- /dev/null +++ b/courses/IntroToRust/presentation-src/rust/target/.rustc_info.json @@ -0,0 +1 @@ +{"rustc_fingerprint":12747975240138707543,"outputs":{"7971740275564407648":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/home/reese/.rustup/toolchains/stable-x86_64-unknown-linux-gnu\noff\npacked\nunpacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_abi=\"\"\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"unknown\"\nunix\n","stderr":""},"17747080675513052775":{"success":true,"status":"","code":0,"stdout":"rustc 1.90.0 (1159e78c4 2025-09-14)\nbinary: rustc\ncommit-hash: 1159e78c4747b02ef996e55082b704c09b970588\ncommit-date: 2025-09-14\nhost: x86_64-unknown-linux-gnu\nrelease: 1.90.0\nLLVM version: 20.1.8\n","stderr":""}},"successes":{}} \ No newline at end of file diff --git a/courses/IntroToRust/presentation-src/rust/target/CACHEDIR.TAG b/courses/IntroToRust/presentation-src/rust/target/CACHEDIR.TAG new file mode 100644 index 0000000..20d7c31 --- /dev/null +++ b/courses/IntroToRust/presentation-src/rust/target/CACHEDIR.TAG @@ -0,0 +1,3 @@ +Signature: 8a477f597d28d172789f06886806bc55 +# This file is a cache directory tag created by cargo. +# For information about cache directory tags see https://bford.info/cachedir/ diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/.cargo-lock b/courses/IntroToRust/presentation-src/rust/target/debug/.cargo-lock new file mode 100644 index 0000000..e69de29 diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/.fingerprint/rust-1f8dccdb0b6ca40f/bin-rust b/courses/IntroToRust/presentation-src/rust/target/debug/.fingerprint/rust-1f8dccdb0b6ca40f/bin-rust new file mode 100644 index 0000000..d70baa4 --- /dev/null +++ b/courses/IntroToRust/presentation-src/rust/target/debug/.fingerprint/rust-1f8dccdb0b6ca40f/bin-rust @@ -0,0 +1 @@ +0d18d0735505dba3 \ No newline at end of file diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/.fingerprint/rust-1f8dccdb0b6ca40f/bin-rust.json b/courses/IntroToRust/presentation-src/rust/target/debug/.fingerprint/rust-1f8dccdb0b6ca40f/bin-rust.json new file mode 100644 index 0000000..957218b --- /dev/null +++ b/courses/IntroToRust/presentation-src/rust/target/debug/.fingerprint/rust-1f8dccdb0b6ca40f/bin-rust.json @@ -0,0 +1 @@ +{"rustc":16285725380928457773,"features":"[]","declared_features":"[]","target":13514597129636015143,"profile":8731458305071235362,"path":4942398508502643691,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/rust-1f8dccdb0b6ca40f/dep-bin-rust","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/.fingerprint/rust-1f8dccdb0b6ca40f/dep-bin-rust b/courses/IntroToRust/presentation-src/rust/target/debug/.fingerprint/rust-1f8dccdb0b6ca40f/dep-bin-rust new file mode 100644 index 0000000..5c54f74 Binary files /dev/null and b/courses/IntroToRust/presentation-src/rust/target/debug/.fingerprint/rust-1f8dccdb0b6ca40f/dep-bin-rust differ diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/.fingerprint/rust-1f8dccdb0b6ca40f/invoked.timestamp b/courses/IntroToRust/presentation-src/rust/target/debug/.fingerprint/rust-1f8dccdb0b6ca40f/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/courses/IntroToRust/presentation-src/rust/target/debug/.fingerprint/rust-1f8dccdb0b6ca40f/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/.fingerprint/rust-64b4bc154ca95c42/bin-rust b/courses/IntroToRust/presentation-src/rust/target/debug/.fingerprint/rust-64b4bc154ca95c42/bin-rust new file mode 100644 index 0000000..f82efa6 --- /dev/null +++ b/courses/IntroToRust/presentation-src/rust/target/debug/.fingerprint/rust-64b4bc154ca95c42/bin-rust @@ -0,0 +1 @@ +577c4f6fd9b015ab \ No newline at end of file diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/.fingerprint/rust-64b4bc154ca95c42/bin-rust.json b/courses/IntroToRust/presentation-src/rust/target/debug/.fingerprint/rust-64b4bc154ca95c42/bin-rust.json new file mode 100644 index 0000000..97d263f --- /dev/null +++ b/courses/IntroToRust/presentation-src/rust/target/debug/.fingerprint/rust-64b4bc154ca95c42/bin-rust.json @@ -0,0 +1 @@ +{"rustc":16285725380928457773,"features":"[]","declared_features":"[]","target":13514597129636015143,"profile":17672942494452627365,"path":4942398508502643691,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/rust-64b4bc154ca95c42/dep-bin-rust","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/.fingerprint/rust-64b4bc154ca95c42/dep-bin-rust b/courses/IntroToRust/presentation-src/rust/target/debug/.fingerprint/rust-64b4bc154ca95c42/dep-bin-rust new file mode 100644 index 0000000..5c54f74 Binary files /dev/null and b/courses/IntroToRust/presentation-src/rust/target/debug/.fingerprint/rust-64b4bc154ca95c42/dep-bin-rust differ diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/.fingerprint/rust-64b4bc154ca95c42/invoked.timestamp b/courses/IntroToRust/presentation-src/rust/target/debug/.fingerprint/rust-64b4bc154ca95c42/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/courses/IntroToRust/presentation-src/rust/target/debug/.fingerprint/rust-64b4bc154ca95c42/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/.fingerprint/rust-64b4bc154ca95c42/output-bin-rust b/courses/IntroToRust/presentation-src/rust/target/debug/.fingerprint/rust-64b4bc154ca95c42/output-bin-rust new file mode 100644 index 0000000..9176ad5 --- /dev/null +++ b/courses/IntroToRust/presentation-src/rust/target/debug/.fingerprint/rust-64b4bc154ca95c42/output-bin-rust @@ -0,0 +1,2 @@ +{"$message_type":"diagnostic","message":"unused variable: `x`","code":{"code":"unused_variables","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":68,"byte_end":69,"line_start":4,"line_end":4,"column_start":9,"column_end":10,"is_primary":true,"text":[{"text":" let x = arr[5];","highlight_start":9,"highlight_end":10}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_variables)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"if this is intentional, prefix it with an underscore","code":null,"level":"help","spans":[{"file_name":"src/main.rs","byte_start":68,"byte_end":69,"line_start":4,"line_end":4,"column_start":9,"column_end":10,"is_primary":true,"text":[{"text":" let x = arr[5];","highlight_start":9,"highlight_end":10}],"label":null,"suggested_replacement":"_x","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused variable: `x`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:4:9\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m4\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m let x = arr[5];\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33mhelp: if this is intentional, prefix it with an underscore: `_x`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_variables)]` on by default\u001b[0m\n\n"} +{"$message_type":"diagnostic","message":"1 warning emitted","code":null,"level":"warning","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: 1 warning emitted\u001b[0m\n\n"} diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/deps/librust-64b4bc154ca95c42.rmeta b/courses/IntroToRust/presentation-src/rust/target/debug/deps/librust-64b4bc154ca95c42.rmeta new file mode 100644 index 0000000..e69de29 diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/deps/rust-1f8dccdb0b6ca40f b/courses/IntroToRust/presentation-src/rust/target/debug/deps/rust-1f8dccdb0b6ca40f new file mode 100755 index 0000000..e65cd67 Binary files /dev/null and b/courses/IntroToRust/presentation-src/rust/target/debug/deps/rust-1f8dccdb0b6ca40f differ diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/deps/rust-1f8dccdb0b6ca40f.d b/courses/IntroToRust/presentation-src/rust/target/debug/deps/rust-1f8dccdb0b6ca40f.d new file mode 100644 index 0000000..01145ba --- /dev/null +++ b/courses/IntroToRust/presentation-src/rust/target/debug/deps/rust-1f8dccdb0b6ca40f.d @@ -0,0 +1,5 @@ +/home/reese/Desktop/IntroToRust/presentation-src/rust/target/debug/deps/rust-1f8dccdb0b6ca40f.d: src/main.rs + +/home/reese/Desktop/IntroToRust/presentation-src/rust/target/debug/deps/rust-1f8dccdb0b6ca40f: src/main.rs + +src/main.rs: diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/deps/rust-64b4bc154ca95c42.d b/courses/IntroToRust/presentation-src/rust/target/debug/deps/rust-64b4bc154ca95c42.d new file mode 100644 index 0000000..f3e53a4 --- /dev/null +++ b/courses/IntroToRust/presentation-src/rust/target/debug/deps/rust-64b4bc154ca95c42.d @@ -0,0 +1,5 @@ +/home/reese/Desktop/IntroToRust/presentation-src/rust/target/debug/deps/rust-64b4bc154ca95c42.d: src/main.rs + +/home/reese/Desktop/IntroToRust/presentation-src/rust/target/debug/deps/librust-64b4bc154ca95c42.rmeta: src/main.rs + +src/main.rs: diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/0e93031mje91vz0njwwysv5ay.o b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/0e93031mje91vz0njwwysv5ay.o new file mode 100644 index 0000000..e5fb237 Binary files /dev/null and b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/0e93031mje91vz0njwwysv5ay.o differ diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/0fc451f65yjh7gy6w9y5rxtk3.o b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/0fc451f65yjh7gy6w9y5rxtk3.o new file mode 100644 index 0000000..e26eefb Binary files /dev/null and b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/0fc451f65yjh7gy6w9y5rxtk3.o differ diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/0vtbq51x6nb2xomk40wsk3xq7.o b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/0vtbq51x6nb2xomk40wsk3xq7.o new file mode 100644 index 0000000..0477504 Binary files /dev/null and b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/0vtbq51x6nb2xomk40wsk3xq7.o differ diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/21zbuuef23tjhj2tbdksygpfg.o b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/21zbuuef23tjhj2tbdksygpfg.o new file mode 100644 index 0000000..9ce2cc6 Binary files /dev/null and b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/21zbuuef23tjhj2tbdksygpfg.o differ diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/4m3hdmet6qazskopm88zt0ivd.o b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/4m3hdmet6qazskopm88zt0ivd.o new file mode 100644 index 0000000..8313c36 Binary files /dev/null and b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/4m3hdmet6qazskopm88zt0ivd.o differ diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/5kl04s4bli1gfkijiut8ezw5w.o b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/5kl04s4bli1gfkijiut8ezw5w.o new file mode 100644 index 0000000..75efa1d Binary files /dev/null and b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/5kl04s4bli1gfkijiut8ezw5w.o differ diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/60vafvdlv0mublz71gzyc3re3.o b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/60vafvdlv0mublz71gzyc3re3.o new file mode 100644 index 0000000..8e4f43f Binary files /dev/null and b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/60vafvdlv0mublz71gzyc3re3.o differ diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/8ppjwv4e7vtrjxkxyf8vhs2tp.o b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/8ppjwv4e7vtrjxkxyf8vhs2tp.o new file mode 100644 index 0000000..d8fce8e Binary files /dev/null and b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/8ppjwv4e7vtrjxkxyf8vhs2tp.o differ diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/aa9q1o335u6lshl8lm5qhewdm.o b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/aa9q1o335u6lshl8lm5qhewdm.o new file mode 100644 index 0000000..573c162 Binary files /dev/null and b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/aa9q1o335u6lshl8lm5qhewdm.o differ diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/bazysgxqsgorhajic5ws9j0v8.o b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/bazysgxqsgorhajic5ws9j0v8.o new file mode 100644 index 0000000..8294c67 Binary files /dev/null and b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/bazysgxqsgorhajic5ws9j0v8.o differ diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/cdg1jszfl0i0radf87htv42n8.o b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/cdg1jszfl0i0radf87htv42n8.o new file mode 100644 index 0000000..c7a4ef7 Binary files /dev/null and b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/cdg1jszfl0i0radf87htv42n8.o differ diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/cgixqhhz9aeq3q382qbpzegfk.o b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/cgixqhhz9aeq3q382qbpzegfk.o new file mode 100644 index 0000000..31ebde0 Binary files /dev/null and b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/cgixqhhz9aeq3q382qbpzegfk.o differ diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/ciw3j0pwx6sj34asc3tw3h2o4.o b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/ciw3j0pwx6sj34asc3tw3h2o4.o new file mode 100644 index 0000000..6807403 Binary files /dev/null and b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/ciw3j0pwx6sj34asc3tw3h2o4.o differ diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/cnhp3c3zvdudtl9bsphh0qa2v.o b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/cnhp3c3zvdudtl9bsphh0qa2v.o new file mode 100644 index 0000000..a9ea484 Binary files /dev/null and b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/cnhp3c3zvdudtl9bsphh0qa2v.o differ diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/cnur46herif7r9ip6nlxtjd99.o b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/cnur46herif7r9ip6nlxtjd99.o new file mode 100644 index 0000000..7f3e686 Binary files /dev/null and b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/cnur46herif7r9ip6nlxtjd99.o differ diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/dep-graph.bin b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/dep-graph.bin new file mode 100644 index 0000000..42d028e Binary files /dev/null and b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/dep-graph.bin differ diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/dxhg3kdt9o2zz05tzj34r1c68.o b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/dxhg3kdt9o2zz05tzj34r1c68.o new file mode 100644 index 0000000..ea7e382 Binary files /dev/null and b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/dxhg3kdt9o2zz05tzj34r1c68.o differ diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/query-cache.bin b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/query-cache.bin new file mode 100644 index 0000000..996cc96 Binary files /dev/null and b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/query-cache.bin differ diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/work-products.bin b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/work-products.bin new file mode 100644 index 0000000..fd0d958 Binary files /dev/null and b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw-dxo0v64699nbgtk0oz0vb5s5x/work-products.bin differ diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw.lock b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-0bqm48gwcfx62/s-hcv3ilxubm-02h80hw.lock new file mode 100644 index 0000000..e69de29 diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-1r8uxfilh3nal/s-hcsp9db68j-1qiezfw-cq1ocysz42zzy5ttwa1r9dm8u/dep-graph.bin b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-1r8uxfilh3nal/s-hcsp9db68j-1qiezfw-cq1ocysz42zzy5ttwa1r9dm8u/dep-graph.bin new file mode 100644 index 0000000..1c86dd0 Binary files /dev/null and b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-1r8uxfilh3nal/s-hcsp9db68j-1qiezfw-cq1ocysz42zzy5ttwa1r9dm8u/dep-graph.bin differ diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-1r8uxfilh3nal/s-hcsp9db68j-1qiezfw-cq1ocysz42zzy5ttwa1r9dm8u/query-cache.bin b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-1r8uxfilh3nal/s-hcsp9db68j-1qiezfw-cq1ocysz42zzy5ttwa1r9dm8u/query-cache.bin new file mode 100644 index 0000000..0b6580b Binary files /dev/null and b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-1r8uxfilh3nal/s-hcsp9db68j-1qiezfw-cq1ocysz42zzy5ttwa1r9dm8u/query-cache.bin differ diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-1r8uxfilh3nal/s-hcsp9db68j-1qiezfw-cq1ocysz42zzy5ttwa1r9dm8u/work-products.bin b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-1r8uxfilh3nal/s-hcsp9db68j-1qiezfw-cq1ocysz42zzy5ttwa1r9dm8u/work-products.bin new file mode 100644 index 0000000..2fe524a Binary files /dev/null and b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-1r8uxfilh3nal/s-hcsp9db68j-1qiezfw-cq1ocysz42zzy5ttwa1r9dm8u/work-products.bin differ diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-1r8uxfilh3nal/s-hcsp9db68j-1qiezfw.lock b/courses/IntroToRust/presentation-src/rust/target/debug/incremental/rust-1r8uxfilh3nal/s-hcsp9db68j-1qiezfw.lock new file mode 100644 index 0000000..e69de29 diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/rust b/courses/IntroToRust/presentation-src/rust/target/debug/rust new file mode 100755 index 0000000..e65cd67 Binary files /dev/null and b/courses/IntroToRust/presentation-src/rust/target/debug/rust differ diff --git a/courses/IntroToRust/presentation-src/rust/target/debug/rust.d b/courses/IntroToRust/presentation-src/rust/target/debug/rust.d new file mode 100644 index 0000000..2d2a439 --- /dev/null +++ b/courses/IntroToRust/presentation-src/rust/target/debug/rust.d @@ -0,0 +1 @@ +/home/reese/Desktop/IntroToRust/presentation-src/rust/target/debug/rust: /home/reese/Desktop/IntroToRust/presentation-src/rust/src/main.rs diff --git a/courses/IntroToRust/public/DeadCat.png b/courses/IntroToRust/public/DeadCat.png new file mode 100644 index 0000000..f865f27 Binary files /dev/null and b/courses/IntroToRust/public/DeadCat.png differ diff --git a/courses/IntroToRust/public/Enum.png b/courses/IntroToRust/public/Enum.png new file mode 100644 index 0000000..578bc84 Binary files /dev/null and b/courses/IntroToRust/public/Enum.png differ diff --git a/courses/IntroToRust/public/MacroRules.png b/courses/IntroToRust/public/MacroRules.png new file mode 100644 index 0000000..459de73 Binary files /dev/null and b/courses/IntroToRust/public/MacroRules.png differ diff --git a/courses/IntroToRust/public/animals.png b/courses/IntroToRust/public/animals.png new file mode 100644 index 0000000..674bf38 Binary files /dev/null and b/courses/IntroToRust/public/animals.png differ diff --git a/courses/IntroToRust/public/borrow-after-move.png b/courses/IntroToRust/public/borrow-after-move.png new file mode 100644 index 0000000..4e38745 Binary files /dev/null and b/courses/IntroToRust/public/borrow-after-move.png differ diff --git a/courses/IntroToRust/public/boxes.png b/courses/IntroToRust/public/boxes.png new file mode 100644 index 0000000..06bc353 Binary files /dev/null and b/courses/IntroToRust/public/boxes.png differ diff --git a/courses/IntroToRust/public/cargo.png b/courses/IntroToRust/public/cargo.png new file mode 100644 index 0000000..f15cd6f Binary files /dev/null and b/courses/IntroToRust/public/cargo.png differ diff --git a/courses/IntroToRust/public/check.png b/courses/IntroToRust/public/check.png new file mode 100644 index 0000000..07aa827 Binary files /dev/null and b/courses/IntroToRust/public/check.png differ diff --git a/courses/IntroToRust/public/cover-west.png b/courses/IntroToRust/public/cover-west.png new file mode 100644 index 0000000..1221076 Binary files /dev/null and b/courses/IntroToRust/public/cover-west.png differ diff --git a/courses/IntroToRust/public/ferris.png b/courses/IntroToRust/public/ferris.png new file mode 100644 index 0000000..f4ba955 Binary files /dev/null and b/courses/IntroToRust/public/ferris.png differ diff --git a/courses/IntroToRust/public/gears.png b/courses/IntroToRust/public/gears.png new file mode 100644 index 0000000..1d2b2ae Binary files /dev/null and b/courses/IntroToRust/public/gears.png differ diff --git a/courses/IntroToRust/public/graph.png b/courses/IntroToRust/public/graph.png new file mode 100644 index 0000000..dfffc24 Binary files /dev/null and b/courses/IntroToRust/public/graph.png differ diff --git a/courses/IntroToRust/public/hand-pass.png b/courses/IntroToRust/public/hand-pass.png new file mode 100644 index 0000000..633b622 Binary files /dev/null and b/courses/IntroToRust/public/hand-pass.png differ diff --git a/courses/IntroToRust/public/immutable-assign.png b/courses/IntroToRust/public/immutable-assign.png new file mode 100644 index 0000000..b9e7d4f Binary files /dev/null and b/courses/IntroToRust/public/immutable-assign.png differ diff --git a/courses/IntroToRust/public/keyboard.png b/courses/IntroToRust/public/keyboard.png new file mode 100644 index 0000000..9ecd59d Binary files /dev/null and b/courses/IntroToRust/public/keyboard.png differ diff --git a/courses/IntroToRust/public/lever.png b/courses/IntroToRust/public/lever.png new file mode 100644 index 0000000..e0a4614 Binary files /dev/null and b/courses/IntroToRust/public/lever.png differ diff --git a/courses/IntroToRust/public/logos.png b/courses/IntroToRust/public/logos.png new file mode 100644 index 0000000..adf21ef Binary files /dev/null and b/courses/IntroToRust/public/logos.png differ diff --git a/courses/IntroToRust/public/macro-rules.svg b/courses/IntroToRust/public/macro-rules.svg new file mode 100644 index 0000000..2086349 --- /dev/null +++ b/courses/IntroToRust/public/macro-rules.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/courses/IntroToRust/public/macro_rules.png b/courses/IntroToRust/public/macro_rules.png new file mode 100644 index 0000000..480f0a6 Binary files /dev/null and b/courses/IntroToRust/public/macro_rules.png differ diff --git a/courses/IntroToRust/public/mut-error.png b/courses/IntroToRust/public/mut-error.png new file mode 100644 index 0000000..062f1ab Binary files /dev/null and b/courses/IntroToRust/public/mut-error.png differ diff --git a/courses/IntroToRust/public/null.png b/courses/IntroToRust/public/null.png new file mode 100644 index 0000000..c51a011 Binary files /dev/null and b/courses/IntroToRust/public/null.png differ diff --git a/courses/IntroToRust/public/person.png b/courses/IntroToRust/public/person.png new file mode 100644 index 0000000..de57711 Binary files /dev/null and b/courses/IntroToRust/public/person.png differ diff --git a/courses/IntroToRust/public/point.png b/courses/IntroToRust/public/point.png new file mode 100644 index 0000000..7ddc3df Binary files /dev/null and b/courses/IntroToRust/public/point.png differ diff --git a/courses/IntroToRust/public/press-release.png b/courses/IntroToRust/public/press-release.png new file mode 100644 index 0000000..cbb6a63 Binary files /dev/null and b/courses/IntroToRust/public/press-release.png differ diff --git a/courses/IntroToRust/public/rust-error.png b/courses/IntroToRust/public/rust-error.png new file mode 100644 index 0000000..3611f6d Binary files /dev/null and b/courses/IntroToRust/public/rust-error.png differ diff --git a/courses/IntroToRust/public/rust.png b/courses/IntroToRust/public/rust.png new file mode 100644 index 0000000..24bf5e5 Binary files /dev/null and b/courses/IntroToRust/public/rust.png differ diff --git a/courses/IntroToRust/public/rustwhite.png b/courses/IntroToRust/public/rustwhite.png new file mode 100644 index 0000000..1ce5ba9 Binary files /dev/null and b/courses/IntroToRust/public/rustwhite.png differ diff --git a/courses/IntroToRust/public/thinking.png b/courses/IntroToRust/public/thinking.png new file mode 100644 index 0000000..9ce96ef Binary files /dev/null and b/courses/IntroToRust/public/thinking.png differ diff --git a/courses/IntroToRust/public/trash.png b/courses/IntroToRust/public/trash.png new file mode 100644 index 0000000..689f75f Binary files /dev/null and b/courses/IntroToRust/public/trash.png differ diff --git a/courses/IntroToRust/public/west-not-covered.png b/courses/IntroToRust/public/west-not-covered.png new file mode 100644 index 0000000..450d3e3 Binary files /dev/null and b/courses/IntroToRust/public/west-not-covered.png differ diff --git a/courses/IntroToRust/public/whitehouse.png b/courses/IntroToRust/public/whitehouse.png new file mode 100644 index 0000000..e971171 Binary files /dev/null and b/courses/IntroToRust/public/whitehouse.png differ diff --git a/courses/IntroToRust/public/x.png b/courses/IntroToRust/public/x.png new file mode 100644 index 0000000..c79877d Binary files /dev/null and b/courses/IntroToRust/public/x.png differ diff --git a/courses/IntroToRust/public/yinyang.png b/courses/IntroToRust/public/yinyang.png new file mode 100644 index 0000000..83a5180 Binary files /dev/null and b/courses/IntroToRust/public/yinyang.png differ diff --git a/courses/IntroToRust/slides/slides.html b/courses/IntroToRust/slides/slides.html new file mode 100644 index 0000000..881f815 --- /dev/null +++ b/courses/IntroToRust/slides/slides.html @@ -0,0 +1,875 @@ +
+

Intro To Rust!

+

Pioneering Open Source

+

with Reese Hatfield

+
+ +
+

Who is this for

+
+
    +
  • Students
  • +
  • Developers
  • +
  • Engineers
  • +
+ +
+ +
+

Rust

+
+
    +
  • Programming Language
  • +
  • Many advantages over other language
  • +
  • Makes C++ nervous
  • +
+ Rust Logo +
+
+ +
+

Ferris!

+
+
    +
  • Awesome Mascot
  • +
  • Ferris!
  • +
  • Favorite Crustacean
  • +
+ Ferris +
+
+ + +
+

White House

+
+ +
    +
  • Over 50% of CVEs are memory-safety bugs
  • +
  • National security nightmare
  • +
  • Feb. 2024 Press Release
  • +
+ +
+
+ +
+ Press Release +
+ +
+

Errors

+
+ +
    +
  • Programming errors
  • +
  • Developers are not infallible
  • +
  • Basic memory errors
  • +
+ + +
+
+ +
+

Javascript Errors

+
    +
  • What does this look like?
  • +
+
const arr = ["alice", "bob", "charlie"];
+console.log(arr[5])
+
    +
  • + Result: +
  • +
+
Undefined
+
+ +
+

What's worse?

+
+ +
    +
  • Only thing worse than an error
  • +
  • No error at all!
  • +
  • Engineers > Web Developers!
  • +
+ +
+
+ +
+

MatLab Errors

+ +
    +
  • Similar syntax
  • +
+
arr = ["alice", "bob", "charlie"]
+x = arr(5)
+
    +
  • Result:
  • +
+
Index exceeds the number of array elements.
+Index must not exceed 3.
+Error in file (line 2)
+x = arr(5);
+
+ +
+

This is good!

+
+
    +
  • An error was caught
  • +
  • Informed the developer
  • +
  • But *who* caught this error?
  • +
  • Can we do better?
  • +
+ Ferris +
+
+ +
+

Small Beginnings

+
+
    +
  • Before we tackle how Rust handles this
  • +
  • First Rust program
  • +
  • cargo init
  • +
  • cargo run
  • +
+ Cargo +
+
+ +
+

Greatness

+
fn main() {
+    let greeting = "Hello, world!";
+    println!("{}", greeting);
+}
+
+
    +
  • Main function
  • +
  • Bindings via let
  • +
  • Print to stdout
  • +
+ Ferris +
+
+ +
+

Arrays

+
fn main() {
+    let arr = ["alice", "bob", "charlie"];
+    let x = arr[5];
+}
+ +
    +
  • Similar to MatLab
  • +
  • Arrays with [ ]'s
  • +
  • Inferred → Strong + Static
  • +
  • Compiler knows the size
  • +
+
+ +
+

Compile Time Error

+ Rust Error + +
    +
  • Program never actually ran
  • +
+
+ +
+

Anatomy of a Compiler Error

+
    +
  • Compiler knows more than you do
  • +
  • Safety as a feature
  • +
  • "This will panic at runtime"
  • +
  • You live in compiler-land before runtime
  • +
  • The compiler is your pair programmer
  • +
+
+ +
+

Rust Philosophy

+
+
    +
  • Make the compiler do the heavy lifting
  • +
  • Catch bugs before the code runs
  • +
  • Safety without sacrificing control
  • +
+ +
+
+ +
+

Data + Compiler

+
fn main() {
+    let x = 5;
+    x += 1;
+}
+ +
    +
  • We forgot something
  • +
  • Safety is a priority
  • +
  • Tell Rust when data is mutable
  • +
+ +
+ + +
+

Compiler Messages

+ Mut Error +
    +
  • Legitimately useful help message
  • +
+
+ +
+
fn main() {
+    let mut x = 5;
+    x += 1;
+}
+ +
+ +
    +
  • Opt-in philosophy
  • +
  • Safety as a feature
  • +
  • Allows the data's binding to mutate it how it pleases
  • +
+ +
+
+ +
+

Stack Overflow

+

Most-Loved Language

+ +
    +
  • 2016 → Rust
  • +
  • 2017 → Rust
  • +
  • 2018 → ...
  • +
  • 2023 → Rust
  • +
  • 2024 → Rust
  • +
+
+ +
+

The Billion Dollar Mistake

+
+
    +
  • Tony Hoare
  • +
  • ALGOL, 1965
  • +
  • "Simply because it was so easy to implement"
  • +
  • NULL
  • +
+ +
+
+ +
+

No Concept of NULL

+
    +
  • Rust does NOT have a null type
  • +
  • No NULL → Less Memory errors
  • +
  • But things don't always strictly "exist"?
  • +
  • How does Rust accomplish this?
  • +
+
+ +
+

The Type System

+
+
    +
  • Algebraic Types
  • +
  • Lets the compiler do the work
  • +
  • Extensive Enums
  • +
  • C-Style* structs
  • +
+ +
+
+ +
+

Enums

+
+
    +
  • NOT just named integers
  • +
  • Compiler knows every enum type
  • +
  • Provable
  • +
  • "Sum Type"
  • +
+ +
+
+ +
+

Classic Example

+
enum Direction {
+    North,
+    South,
+    East,
+    West,
+}
+ +
    +
  • The compiler knows that if you have a Direction
  • +
  • It must be one of those 4 types
  • +
  • Sum of the number of enumerations
  • +
+
+ +
+

Structs

+
+
    +
  • Groups related data together
  • +
  • Non mutually-exclusive
  • +
  • "Product Type"
  • +
+ +
+ +
+ +
+

Simple Color

+
struct Color{
+  r: bool,
+  g: bool,
+  b: bool,
+}
+
+let black = Color { r: false, g: false, b: false };
+let blue  = Color { r: false, g: false, b: true };
+let white = Color { r: true,  g: true,  b: true };
+ +
    +
  • If you have a Color:
  • +
  • It must be one of those 8 types
  • +
  • Product of the number of enumerations
  • +
+ +
+ +
+

Match

+
+ +
    +
  • match keyword
  • +
  • An exhaustive advanced switch
  • +
  • Only possible via algebraic types
  • +
+ +
+ +
+ +
+
let x = match get_direction() {
+    Direction::North => 1,
+    Direction::East => 2,
+    Direction::South => 3,
+};
+ +
+
    +
  • Exhaustion is a feature
  • +
  • Prevents bugs
  • +
  • Always ensure your code functions as intended
  • +
  • Localize state management
  • +
+ +
+
+ +
+

Compile Error

+ West Not Covered + Cover West +
+ + +
+

Simple Fix

+
let x = match get_direction() {
+    Direction::North => 1,
+    Direction::East => 2,
+    Direction::South => 3,
+    Direction::West => 4
+};
+ +
    +
  • Happy Compiler
  • +
  • Proved every case
  • +
+
+ +
+

Type Composition

+
+ +
    +
  • Model your data
  • +
  • Without classes
  • +
  • Complex relations
  • +
+ +
+
+ +
+

Cats?

+
struct FakeCat {
+  alive: bool,
+  hungry: bool,
+}
+ +
+
    +
  • Copies OOP paradigms
  • +
  • But are there really 4 types of cats?
  • +
  • Can a dead cat be hungry?
  • +
+ +
+
+ +
+

Build a Better Type

+
enum RealCat {
+    Alive { hungry: bool },
+    Dead,
+}
+ +
    +
  • Composition → better modeling
  • +
  • Real life is not classes
  • +
  • Real life is data
  • +
  • Encode real data with your own, specific type system
  • +
+
+ +
+

Covering Your Bases

+
let status = match getCat() {
+    RealCat::Alive { hungry: true } => "Feed me!",
+    RealCat::Alive { hungry: false } => "Doing great",
+    RealCat::Dead => ":(",
+}
+ +
    +
  • Algebraic types
  • +
  • Provably exhaustive
  • +
  • Encoded only the necessary state
  • +
  • Build your own type system → NULL?
  • +
+
+ +
+

The Option Type

+
    +
  • Explicit: Some(T) or None
  • +
  • Forces handling of missing values
  • +
  • Compiler ensures you check it
  • +
+
pub enum Option<T> {
+    None,
+    Some(T),
+}
+
+ +
+

None

+
fn find_user_id(name: &str) -> Option<i32> {
+    // or return Some(user)
+    return None;
+}
+fn main() {
+    match find_user_id("Alice") {
+        Some(id) => println!("Found user with id {id}"),
+        None => println!("User not found"),
+    }
+}
+
    +
  • None only exists where it needs to
  • +
  • Limited scope → handled immediately
  • +
  • Never NULL → but what about errors?
  • +
+
+ +
+

The Result Type

+
    +
  • Explicit: Ok(T) or Err(T)
  • +
  • Errors are expected
  • +
  • They are not an "exception"
  • +
+
enum Result<T, E> {
+    Ok(T),
+    Err(E),
+}
+
+ +
+

Error Handling

+
fn divide(a: i32, b: i32) -> Result<i32, String> {
+    if b == 0 { 
+        return Err("cannot divide by zero".to_string()); 
+    } 
+    Ok(a / b)
+}
+
+fn main() {
+    let x = match divide(10, 2) {
+        Ok(result) => result * 2,
+        Err(err) => 0,
+    };
+}
+
+ +
+

Chaining

+
fn divide(a: i32, b: i32) -> Result<i32, String> {
+    if b == 0 { 
+        return Err("cannot divide by zero".to_string()); 
+    } 
+    return Ok(a / b);
+}
+
+fn do_math() -> Result<i32, String> {
+    let temp = divide(15, 3)?; 
+    return Ok(temp);
+}
+
+
+
    +
  • ? → early return if Err()
  • +
  • ? → get value if Ok()
  • +
+
+ +
+

Memory Management

+
    +
  • No garbage collector
  • +
  • No manual free()
  • +
  • Ownership & Borrowing system
  • +
+
+ +
+

Ownership Rules

+
+ +
    +
  • Each value has one owner
  • +
  • Ownership is transferred on assignment
  • +
  • When the owner goes out of scope → value freed
  • +
+ +
+
+ +
+

Ownership Ideas

+
fn greet(name: String) {
+    println!("Hello, {}!", name);
+}
+
+fn main() {
+    let name = String::from("Bob");
+
+    greet(name);
+
+    println!("You greeted {}", name);
+}
+    
+ +
    +
  • `let` is a binding
  • +
  • Variable Owns → Some Data
  • +
+
+ + +
+
fn greet(name: String) {
+    println!("Hello, {}!", name);
+}
+
+fn main() {
+    let name = String::from("Bob");
+
+    greet(name);
+
+    println!("You greeted {}", name);
+}
+    
+ +
+ + +
+
fn greet(name: &String) {
+    println!("Hello, {}!", name);
+}
+
+fn main() {
+    let name = String::from("Bob");
+
+    greet(&name);
+
+    println!("You greeted {}", name);
+}
+    
+
    +
  • Lets pass a reference instead
  • +
  • Compiler needs to know this
  • +
  • Change the signature
  • +
  • Immutable Borrow
  • +
+
+ + + + +
+
fn greet(name: &String) {
+
+    name = &name.to_uppercase();
+    println!("Hello, {}!", name);
+}
+
+fn main() {
+    let name = String::from("Bob");
+
+    greet(&name);
+
+    println!("You greeted {}", name);
+}
+    
+
    +
  • Attempting to edit name
  • +
  • But main() never promised this
  • +
  • Compiler Error
  • +
+
+ +
+
fn greet(name: &String) {
+    name = &name.to_uppercase();
+    println!("Hello, {}!", name);
+}
+
+fn main() {
+    let name = String::from("Bob");
+    greet(&name);
+    println!("You greeted {}", name);
+}
+    
+ + +
+ + +
+
fn greet(name: &mut String) {
+    *name = name.to_uppercase();
+    println!("Hello, {}!", name);
+}
+
+fn main() {
+    let mut name = String::from("Bob");
+    greet(&mut name);
+    println!("You greeted {}", name);
+}
+    
+
    +
  • Opt in to `mut`
  • +
  • Call site changes
  • +
  • 1 Mutable reference
  • +
  • ∞ *Immutable* references
  • +
  • 1 Owner
  • +
+
+ +
+

Why have all that?

+ +
+
    +
  • Strict State Management
  • +
  • Prevent Bugs
  • +
  • No manual memory management
  • +
  • No garbage collector
  • +
+ +
+
+ + +
+

No-Cost Abstractions

+
    +
  • High-level code that compiles to low-level performance
  • +
  • Zero runtime overhead for iterators, generics, traits
  • +
  • "You don’t pay for what you don’t use"
  • +
+
+ + + +
+

Macros

+
+
    +
  • Works with the type system
  • +
  • Operate on Rust tokens
  • +
  • Compile-time code generation
  • +
  • Enables println!, vec!, format!
  • +
  • Powerful but safe
  • +
+ +
+ +
+ + + +
+

Macro Definition

+
macro_rules! say_hello {
+    () => {
+        println!("Hello, world!");
+    };
+}
+
+fn main() {
+    say_hello!();
+}
+
    +
  • Simple example
  • +
  • Can pass token stream
  • +
  • Turtles all the way down
  • +
  • Forward-growth mindset
  • +
+
+ + +
+

Macro Examples

+
fn main() {
+    let names = vec!("Alice", "Bob", "Charlie");
+
+    let x = true;   
+    assert!(x, "x wasn't true!");
+    
+    println!("{:?}", names);
+}
+    
+ +
    +
  • Vector of data
  • +
  • Simple Assertions
  • +
  • Powerful, relevant, forever
  • +
+
+ + +
+

Cargo

+
+
    +
  • Rust’s package manager + build system
  • +
  • Handles dependencies, testing, documentation
  • +
  • Enables Rust's rich, stable ecosystem
  • +
+ +
+
+ + + +
+
[package]
+name = "IntroToRust"
+version = "0.1.0"
+edition = "2021"
+authors = ["Reese Hatfield <reese@example.com>"]
+description = "Introductory Rust code snippets"
+license = "MIT"
+
+[dependencies]
+rand = "0.8"
+chrono = "0.4"
+ + +
    +
  • Cargo.toml
  • +
  • cargo run → Run project
  • +
  • cargo test → Test project
  • +
  • cargo publish → Publish to an extensive ecosystem
  • +
+
+ +
+

Universal Language

+
+
    +
  • Systems Programming
  • +
  • Web (WASM)
  • +
  • Backend Services
  • +
  • Embedded + IoT
  • +
  • Games + Engines
  • +
+ +
+
+ +
+

Famous Rust Users

+
+
    +
  • Microsoft
  • +
  • Google
  • +
  • AWS
  • +
  • Cloudflare
  • +
  • Your next company
  • +
+ +
+
+ +
+

Why Rust?

+ +
+
    +
  • Safety without GC
  • +
  • Performance without pain
  • +
  • Compiler is your friend
  • +
  • Strong type system
  • +
  • Active community
  • +
+ +
+
+ +
+

Thank You!

+

Questions?

+
\ No newline at end of file diff --git a/courses/IntroToRust/src/main.js b/courses/IntroToRust/src/main.js new file mode 100644 index 0000000..793f962 --- /dev/null +++ b/courses/IntroToRust/src/main.js @@ -0,0 +1,25 @@ +import Reveal from "reveal.js"; +import Notes from "reveal.js/plugin/notes/notes.esm.js"; +import Highlight from "reveal.js/plugin/highlight/highlight.esm.js"; + +import "reveal.js/dist/reveal.css"; +import "reveal.js/dist/theme/black.css"; +import "reveal.js/plugin/highlight/monokai.css"; +import "../css/custom.css"; + +import slidesHTML from "../slides/slides.html?raw"; // raw loader, make sure your bundler supports this + +document.addEventListener("DOMContentLoaded", () => { + const slidesContainer = document.querySelector(".slides"); + slidesContainer.innerHTML = slidesHTML; // directly inject the HTML slides + + const deck = new Reveal({ + hash: true, + plugins: [Highlight, Notes], + }); + + deck.initialize({ + center: false, + slideNumber: true, + }); +}); diff --git a/courses/IntroToRust/vite.config.js b/courses/IntroToRust/vite.config.js new file mode 100644 index 0000000..559d6ac --- /dev/null +++ b/courses/IntroToRust/vite.config.js @@ -0,0 +1,12 @@ +import { defineConfig } from "vite"; +import { viteSingleFile } from "vite-plugin-singlefile"; + +export default defineConfig({ + plugins: [viteSingleFile()], + build: { + rollupOptions: { + input: "index.html", + }, + assetsInlineLimit: 100_000, // inline images/fonts up to ~100kb, save server space, enforce this? + }, +});