/
component---src-pages-decal-homework-hw-4-js-16d23e6be83027b57c44.js.map
1 lines (1 loc) · 41.2 KB
/
component---src-pages-decal-homework-hw-4-js-16d23e6be83027b57c44.js.map
1
{"version":3,"file":"component---src-pages-decal-homework-hw-4-js-16d23e6be83027b57c44.js","mappings":"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","sources":["webpack://xr-b-website/./src/components/decalNav.js","webpack://xr-b-website/./src/components/nav.js","webpack://xr-b-website/./src/images/decal/HW4-0.png","webpack://xr-b-website/./src/images/decal/HW4-1.png","webpack://xr-b-website/./src/images/decal/HW4-2.png","webpack://xr-b-website/./src/images/decal/HW4-3.png","webpack://xr-b-website/./src/pages/decal/homework/hw4.js","webpack://xr-b-website/./src/styles/decal.module.css","webpack://xr-b-website/./src/styles/nav.module.css"],"sourcesContent":["import React, { useState } from \"react\"\nimport { Link } from \"gatsby\";\n\nimport logo from \"../images/logo.png\";\n\nimport * as navStyles from \"../styles/nav.module.css\"\nimport * as defaultStyles from \"../styles/default.module.css\"\n\nconst DecalNav = ({activePage, open}) => {\n\n const [shown, setShown] = useState(false);\n\n return (\n <section className={navStyles.decal}>\n <div className={navStyles.navBar}>\n\n <Link to=\"/decal/\">\n <div className={activePage==\"home\" ? navStyles.active : navStyles.item}>Home/Announcements</div>\n </Link>\n <div className={navStyles.group}>\n <Link to=\"/decal/homework\" className={navStyles.title}>\n <div className={open==\"homework\" ? navStyles.arrowOpen : navStyles.arrow}>></div>\n <div className={open==\"homework\" ? navStyles.active : navStyles.item}>Homework</div>\n </Link>\n <div className={navStyles.subLinks} style={{display: open==\"homework\" ? \"flex\" : \"none\"}}>\n <Link to=\"/decal/homework/hw1\">\n <div className={activePage==\"hw1\" ? navStyles.active : navStyles.item}>Homework 1: The Rube Goldberg Ball Machine</div>\n </Link>\n <Link to=\"/decal/homework/hw2\">\n <div className={activePage==\"hw2\" ? navStyles.active : navStyles.item}>Homework 2: Music Visualizer</div>\n </Link>\n <Link to=\"/decal/homework/hw3\">\n <div className={activePage==\"hw3\" ? navStyles.active : navStyles.item}>Homework 3: Fractal Generation</div>\n </Link>\n <Link to=\"/decal/homework/hw4\">\n <div className={activePage==\"hw4\" ? navStyles.active : navStyles.item}>Homework 4: Pong</div>\n </Link>\n <Link to=\"/decal/homework/hw5\">\n <div className={activePage==\"hw5\" ? navStyles.active : navStyles.item}>Homework 5: Collisions, Raycasting, and Triggers</div>\n </Link>\n </div> \n </div>\n <div className={navStyles.group}>\n <Link to=\"/decal/labs\" className={navStyles.title}>\n <div className={open.includes(\"labs\") ? navStyles.arrowOpen : navStyles.arrow}>></div>\n <div className={open.includes(\"labs\") ? navStyles.active : navStyles.item}>Labs</div>\n </Link>\n <div className={navStyles.subLinks} style={{display: open.includes(\"labs\") ? \"flex\" : \"none\"}}>\n <div className={navStyles.group}>\n <Link to=\"/decal/labs/oculus\" className={navStyles.title}>\n <div className={open==\"oculuslabs\" ? navStyles.arrowOpen : navStyles.arrow}>></div>\n <div className={open==\"oculuslabs\" ? navStyles.active : navStyles.item}>Oculus Labs</div>\n </Link>\n <div className={navStyles.subLinks} style={{display: open==\"oculuslabs\" ? \"flex\" : \"none\"}}>\n <Link to=\"/decal/labs/oculus/lab1\">\n <div className={activePage==\"oculuslab1\" ? navStyles.active : navStyles.item}>Oculus Lab 1</div>\n </Link>\n <Link to=\"/decal/labs/oculus/lab2\">\n <div className={activePage==\"oculuslab2\" ? navStyles.active : navStyles.item}>Oculus Lab 2</div>\n </Link>\n <Link to=\"/decal/labs/oculus/lab3\">\n <div className={activePage==\"oculuslab3\" ? navStyles.active : navStyles.item}>Oculus Lab 3</div>\n </Link>\n <Link to=\"/decal/labs/oculus/lab4\">\n <div className={activePage==\"oculuslab4\" ? navStyles.active : navStyles.item}>Oculus Lab 4</div>\n </Link>\n </div>\n </div>\n {/* <Link to=\"/decal/labs/lab2\">\n <div className={activePage==\"lab2\" ? navStyles.active : navStyles.item}>Lab 2</div>\n </Link> */}\n </div>\n </div> \n <Link to=\"/decal/lectures/\">\n <div className={activePage==\"lectures\" ? navStyles.active : navStyles.item}>Lectures</div>\n </Link>\n {/* <Link to=\"/decal/final/\">\n <div className={activePage==\"final\" ? navStyles.active : navStyles.item}>Final project</div>\n </Link> */}\n <Link to=\"/decal/resources/\">\n <div className={activePage==\"resources\" ? navStyles.active : navStyles.item}>Extra resources</div>\n </Link>\n\n </div>\n\n <div className={navStyles.navBarSmallWrapper}>\n <div className={navStyles.navBarSmall}>\n\n <img className={navStyles.logo} src={logo} alt=\"logo\" />\n\n <div className={navStyles.smallNavButtonOutline} onClick={() => setShown(!shown)}>\n <div className={navStyles.smallNavButton}>\n <h1>...</h1>\n </div>\n </div>\n\n </div>\n\n {shown ? \n <div className={navStyles.navListWrapper}>\n <div className={navStyles.navList}>\n <Link to=\"/decal/\">\n <div className={activePage==\"home\" ? navStyles.active : navStyles.item}>Home/Announcements</div>\n </Link>\n <div className={navStyles.group}>\n <Link to=\"/decal/homework\" className={navStyles.title}>\n <div className={open==\"homework\" ? navStyles.arrowOpen : navStyles.arrow}>></div>\n <div className={open==\"homework\" ? navStyles.active : navStyles.item}>Homework</div>\n </Link>\n <div className={navStyles.subLinks} style={{display: open==\"homework\" ? \"flex\" : \"none\"}}>\n <Link to=\"/decal/homework/hw1\">\n <div className={activePage==\"hw1\" ? navStyles.active : navStyles.item}>Homework 1: The Rube Goldberg Ball Machine</div>\n </Link>\n <Link to=\"/decal/homework/hw2\">\n <div className={activePage==\"hw2\" ? navStyles.active : navStyles.item}>Homework 2: Music Visualizer</div>\n </Link>\n <Link to=\"/decal/homework/hw3\">\n <div className={activePage==\"hw3\" ? navStyles.active : navStyles.item}>Homework 3: Fractal Generation</div>\n </Link>\n <Link to=\"/decal/homework/hw4\">\n <div className={activePage==\"hw4\" ? navStyles.active : navStyles.item}>Homework 4: Pong</div>\n </Link>\n <Link to=\"/decal/homework/hw5\">\n <div className={activePage==\"hw5\" ? navStyles.active : navStyles.item}>Homework 5: Collisions, Raycasting, and Triggers</div>\n </Link>\n </div> \n </div>\n <div className={navStyles.group}>\n <Link to=\"/decal/labs\" className={navStyles.title}>\n <div className={open==\"labs\" ? navStyles.arrowOpen : navStyles.arrow}>></div>\n <div className={open==\"labs\" ? navStyles.active : navStyles.item}>Labs</div>\n </Link>\n <div className={navStyles.subLinks} style={{display: open.includes(\"labs\") ? \"flex\" : \"none\"}}>\n <div className={navStyles.group}>\n <Link to=\"/decal/labs/oculus\" className={navStyles.title}>\n <div className={open==\"oculuslabs\" ? navStyles.arrowOpen : navStyles.arrow}>></div>\n <div className={open==\"oculuslabs\" ? navStyles.active : navStyles.item}>Oculus Labs</div>\n </Link>\n <div className={navStyles.subLinks} style={{display: open==\"oculuslabs\" ? \"flex\" : \"none\"}}>\n <Link to=\"/decal/labs/oculus/lab1\">\n <div className={activePage==\"oculuslab1\" ? navStyles.active : navStyles.item}>Oculus Lab 1</div>\n </Link>\n <Link to=\"/decal/labs/oculus/lab2\">\n <div className={activePage==\"oculuslab2\" ? navStyles.active : navStyles.item}>Oculus Lab 2</div>\n </Link>\n <Link to=\"/decal/labs/oculus/lab3\">\n <div className={activePage==\"oculuslab3\" ? navStyles.active : navStyles.item}>Oculus Lab 3</div>\n </Link>\n <Link to=\"/decal/labs/oculus/lab4\">\n <div className={activePage==\"oculuslab4\" ? navStyles.active : navStyles.item}>Oculus Lab 4</div>\n </Link>\n </div>\n </div>\n {/* <Link to=\"/decal/labs/lab2\">\n <div className={activePage==\"lab2\" ? navStyles.active : navStyles.item}>Lab 2</div>\n </Link> */}\n </div>\n </div> \n <Link to=\"/decal/lectures/\">\n <div className={activePage==\"lectures\" ? navStyles.active : navStyles.item}>Lectures</div>\n </Link>\n {/* <Link to=\"/decal/final/\">\n <div className={activePage==\"final\" ? navStyles.active : navStyles.item}>Final project</div>\n </Link> */}\n <Link to=\"/decal/resources/\">\n <div className={activePage==\"resources\" ? navStyles.active : navStyles.item}>Extra resources</div>\n </Link>\n </div>\n </div>\n :\n \"\"\n }\n \n </div>\n </section>\n )\n}\n\nexport default DecalNav\n\nexport const Head = () => <title>Extended Reality @ Berkeley</title>\n","import React, { useState } from \"react\"\nimport { Link } from \"gatsby\";\n\nimport logo from \"../images/logo.png\";\n\nimport * as navStyles from \"../styles/nav.module.css\"\nimport * as defaultStyles from \"../styles/default.module.css\"\n\nconst Nav = ({activePage}) => {\n\n // if (activePage == \"decal\") {\n // return (\n // <section>\n // <div className={navStyles.navBarDecal}>\n // <Link to=\"/home/\">\n // <img className={navStyles.logo} src={logo} alt=\"logo\" />\n // </Link>\n // <div className={navStyles.item} style={{visibility: 'hidden'}}>.</div>\n // </div>\n // </section>\n // )\n // }\n\n const [shown, setShown] = useState(false);\n\n return (\n <section>\n <div className={navStyles.navBar}>\n\n <img className={navStyles.logo} src={logo} alt=\"logo\" />\n\n <Link to=\"/home/\">\n <div className={activePage==\"home\" ? navStyles.active : navStyles.item}>Home</div>\n </Link>\n <Link to=\"/about/\">\n <div className={activePage==\"about\" ? navStyles.active : navStyles.item}>Who we are</div>\n </Link>\n <Link to=\"/projects/\">\n <div className={activePage==\"projects\" ? navStyles.active : navStyles.item}>Projects</div>\n </Link>\n <Link to=\"/decal/\">\n <div className={activePage==\"decal\" ? navStyles.active : navStyles.item}>Decal</div>\n </Link>\n <a href=\"https://discord.com/invite/GvGUUCN\" target=\"_blank\">\n <div className={navStyles.item}>Discord</div>\n </a>\n\n </div>\n\n {activePage != \"decal\" ?\n <div className={navStyles.navBarSmallWrapper}>\n <div className={navStyles.navBarSmall}>\n\n <img className={navStyles.logo} src={logo} alt=\"logo\" />\n\n <div className={navStyles.smallNavButtonOutline} onClick={() => setShown(!shown)}>\n <div className={navStyles.smallNavButton}>\n <h1>...</h1>\n </div>\n </div>\n\n </div>\n\n {shown ? \n <div className={navStyles.navListWrapper}>\n <div className={navStyles.navList}>\n <Link to=\"/home/\">\n <div className={activePage==\"home\" ? navStyles.active : navStyles.item}>Home</div>\n </Link>\n <Link to=\"/about/\">\n <div className={activePage==\"about\" ? navStyles.active : navStyles.item}>Who we are</div>\n </Link>\n <Link to=\"/projects/\">\n <div className={activePage==\"projects\" ? navStyles.active : navStyles.item}>Projects</div>\n </Link>\n <Link to=\"/decal/\">\n <div className={activePage==\"decal\" ? navStyles.active : navStyles.item}>Decal</div>\n </Link>\n <a href=\"https://discord.com/invite/GvGUUCN\" target=\"_blank\">\n <div className={navStyles.item}>Discord</div>\n </a>\n </div>\n </div>\n :\n \"\"\n }\n \n </div>\n : \"\"}\n\n </section>\n )\n}\n\nexport default Nav\n\nexport const Head = () => <title>Extended Reality @ Berkeley</title>\n","export default __webpack_public_path__ + \"static/HW4-0-385b45f86c10e81b93122cadf0d3d67b.png\";","export default __webpack_public_path__ + \"static/HW4-1-7dece56c367ac283a6e7352fc8846284.png\";","export default __webpack_public_path__ + \"static/HW4-2-606f370459f19ef33f77787beedf491c.png\";","export default __webpack_public_path__ + \"static/HW4-3-2bf6149db3886259de37fbeb067958f4.png\";","import * as React from \"react\"\nimport { Link } from \"gatsby\";\n\nimport * as decalStyles from \"../../../styles/decal.module.css\"\nimport * as defaultStyles from \"../../../styles/default.module.css\"\n\nimport Nav from \"../../../components/nav\"\nimport DecalNav from \"../../../components/decalNav\"\nimport Button from \"../../../components/button\";\n\nimport EastIcon from '@mui/icons-material/East';\n\nimport img1 from '../../../images/decal/HW4-0.png';\nimport img2 from '../../../images/decal/HW4-1.png';\nimport img3 from '../../../images/decal/HW4-2.png';\nimport img4 from '../../../images/decal/HW4-3.png';\n\nconst hw4 = () => {\n\n return (\n <main>\n <body>\n <Nav activePage=\"decal\"/>\n\n <div className={decalStyles.bodyWrapper}>\n <DecalNav activePage=\"hw4\" open=\"homework\"/>\n <div className={decalStyles.textWrapper}>\n <h1>Homework 4: Pong</h1> \n\n <div className={decalStyles.toc}>\n <h2>Table of Contents</h2>\n <p><span className={decalStyles.redLink}>\n <Button text=\"Your Task\"\n color=\"red\"\n icon={EastIcon} \n type=\"underlineOut\"\n link=\"#your-task\"\n alt=\"\"\n /></span></p>\n <p><span className={decalStyles.redLink}>\n <Button text=\"Puck Physics\"\n color=\"red\"\n icon={EastIcon} \n type=\"underlineOut\"\n link=\"#puck-physics\"\n alt=\"\"\n /></span></p>\n <p><span className={decalStyles.redLink}>\n <Button text=\"Player Interactions\"\n color=\"red\"\n icon={EastIcon} \n type=\"underlineOut\"\n link=\"#player-interactions\"\n alt=\"\"\n /></span></p>\n <p><span className={decalStyles.redLink}>\n <Button text=\"Artificial Intelligence\"\n color=\"red\"\n icon={EastIcon} \n type=\"underlineOut\"\n link=\"#artificial-intelligence\"\n alt=\"\"\n /></span></p>\n <p><span className={decalStyles.redLink}>\n <Button text=\"Game Logic\"\n color=\"red\"\n icon={EastIcon} \n type=\"underlineOut\"\n link=\"#game-logic\"\n alt=\"\"\n /></span></p>\n <p><span className={decalStyles.redLink}>\n <Button text=\"Submission and Grading\"\n color=\"red\"\n icon={EastIcon} \n type=\"underlineOut\"\n link=\"submission-and-grading\"\n alt=\"\"\n /></span></p>\n </div>\n\n <p>\n By now, you should have a pretty good grasp on Unity from the labs and the other homework assignments. Unlike these past assignments, however, your final project is completely free-form, with no set instructions to follow. As a way to bridge this gap, this final assignment will be a lot less guided than the previous ones.\n <br/><br/>\n You’ll be building a clone of Pong, the classic Atari game. Download the skeleton package <a href=\"https://drive.google.com/file/d/1c7m916mECxBUbsGPNjTeQAhDPE2XL1l5/view?usp=sharing\" target=\"_blank\" className={decalStyles.yellowUnderline}>here</a>.\n <br/><br/>\n <img src={img1}/>\n </p>\n\n <div className={decalStyles.boxLine}>\n <div className={decalStyles.box}></div>\n </div> \n\n <h2 id=\"your-task\">Your Task</h2>\n <p>\n Everyone has heard of <a href=\"https://www.youtube.com/watch?v=fiShX2pTz9A\" target=\"_blank\" className={decalStyles.yellowUnderline}>Pong</a>, and for good reason - it was the first financially successful video game of all time and kick-started the industry as we know it today. It is also an extremely simple game (out of necessity, considering it had to fit on 128 bytes of ram). The combination of these two factors makes it a traditional programming exercise for anyone learning a new language or tool.\n <br/><br/>\n Your task is to implement a game of Pong such that it meets the specifications, which are described below. If you look at the skeleton package, you’ll notice that while we’ve built the scene for you, there’s almost no starter code. You recommend using the scene provided, but you are free to start from scratch.\n <br/><br/>\n Now, let’s break down a game of Pong. What are the components that work together to make the game tick?\n </p>\n\n <div className={decalStyles.boxLine}>\n <div className={decalStyles.box}></div>\n <div className={decalStyles.box}></div>\n </div> \n\n <h2 id=\"puck-physics\">Puck Physics</h2>\n <p>\n <img src={img2}/>\n <br/><br/>\n The puck moves across the table, bouncing off of the walls and paddles. With respect to movement, we expect the following from your puck:\n <ul>\n <li>It moves in straight lines at constant velocity, and doesn’t change speed after bouncing off an object.</li>\n <li>The angle it reflects to after bouncing off an object is the same angle as when it came in (imagine a laser bouncing off a mirror).</li>\n </ul>\n <i>This isn’t faithful to the original games. In other versions of Pong, the puck would speed up after every collision until somebody lost. The angle that which the puck would reflect off the paddle would also change depending on which part of the paddle was hit. You are free to implement this more advanced version for extra credit.</i>\n </p>\n\n <h2>Implementation Hints</h2>\n <p>\n In the scene provided, we’ve taken advantage of Unity physics to both specifications by attaching a <a href=\"https://docs.unity3d.com/Manual/class-PhysicMaterial.html\" target=\"_blank\" className={decalStyles.yellowUnderline}>physics material</a> with full bounciness to the puck gameobject. We’ve also changed its rigidbody’s collision detection to “Continuous Dynamic”, which tells Unity that this object is going to move around a lot and should be treated accordingly.\n </p>\n\n <div className={decalStyles.boxLine}>\n <div className={decalStyles.box}></div>\n <div className={decalStyles.box}></div>\n <div className={decalStyles.box}></div>\n </div> \n\n <h2 id=\"player-interactions\">Player Interactions</h2>\n <p>\n <img src={img3}/>\n <br/><br/>\n The player controls the blue paddle on the left side of the screen. Pressing the <b>up</b> or <b>w</b> keys on the keyboard should move the paddle up, while pressing <b>down</b> or <b>s</b> should move it down. The paddle should move at a constant, reasonable speed, and shouldn’t clip into or move through the walls.\n </p>\n\n <h2>Implementation Hints</h2>\n <p>\n Utilize Unity’s <a href=\"https://docs.unity3d.com/Manual/ConventionalGameInput.html\" target=\"_blank\" className={decalStyles.yellowUnderline}>input manager</a> to access keyboard input (you used it in roll-a-ball to move the ball). Instead of using physics to move the paddle around, it’d be easier to directly modify its transform.\n </p>\n\n <div className={decalStyles.boxLine}>\n <div className={decalStyles.box}></div>\n <div className={decalStyles.box}></div>\n <div className={decalStyles.box}></div>\n <div className={decalStyles.box}></div>\n </div> \n\n <h2 id=\"artificial-intelligence\">Artificial Intelligence</h2>\n <p>\n <img src={img4}/>\n <br/><br/>\n An AI agent controls the red paddle on the right side of the screen. The movement of this paddle is subject to the same constraints as the player - it must move at the same speed as the player, cannot clip or pass through walls, and cannot accelerate.\n <br/><br/>\n You must script an AI for this paddle so that one person can play against the computer. The AI doesn’t have to be perfect by any means - it’s fine if it’s able to hit the puck roughly ~50% of the time.\n </p>\n\n <h2>Implementation Hints</h2>\n <p>\n There are many possible solutions for this part. One simple approach is comparing the paddle’s z position with that of the puck’s, and choosing a direction to move in off of that. Since this is Berkeley though, for full credit we require that AI agents be run by multi-layer convolutional neural nets fed by the data of every pong, air hockey, and beer pong game ever played*.\n <br/><br/>\n <i>*This is a joke. But we will give extra credit to anyone who manages to implement an ML powered pong AI into this assignment. \n To get started, you could look into Unity’s recently released <a href=\"https://github.com/Unity-Technologies/ml-agents\" target=\"_blank\" className={decalStyles.yellowUnderline}>ML Agents</a>. \n Want to go even further? Do it off of purely pixel values with <a href=\"https://github.com/openai/universe\" target=\"_blank\" className={decalStyles.yellowUnderline}>OpenAI Universe</a> with <a href=\"http://www.nature.com/nature/journal/v518/n7540/abs/nature14236.html?foxtrotcallback=true\" target=\"_blank\" className={decalStyles.yellowUnderline}>deep reinforcement learning</a>.</i>\n </p>\n\n <div className={decalStyles.boxLine}>\n <div className={decalStyles.box}></div>\n <div className={decalStyles.box}></div>\n <div className={decalStyles.box}></div>\n <div className={decalStyles.box}></div>\n <div className={decalStyles.box}></div>\n </div> \n\n <h2 id=\"game-logic\">Game Logic</h2>\n <p>\n When the game begins, the puck should receive an impulse that gets it moving across the table. This can be either hard-coded to move towards a certain player or completely randomized. It must, however, have a decent amount of movement on the x-axis so that the game doesn’t get stuck. At this time, the score will be 0 to 0. This is reflected in the ScoreUI object which we’ve scripted and put into the scene for you already.\n <br/><br/>\n Changes in game logic occur when the puck passes by a paddle and reaches the goal behind it. The following things occur:\n <ul>\n <li>The scoring player receives a point (update ScoreUI accordingly).</li>\n <li>The puck is moved back to the center of the table.</li>\n <li>The puck receives an impulse that gets it moving towards the <i>player who was scored on</i>.</li>\n </ul>\n When the winning score of 5 is reached, a message must be displayed on screen indicating who won. ScoreUI does this for you already.\n </p>\n\n <h2>Implementation Hints</h2>\n <p>\n There are many ways you could detect a goal being scored: triggers, <a href=\"https://unity3d.com/learn/tutorials/topics/physics/detecting-collisions-oncollisionenter\" target=\"_blank\" className={decalStyles.yellowUnderline}>collision detection</a> with the border, \n or a simple distance check on the x-axis. Since the puck has a rigidbody, you can use <a href=\"https://docs.unity3d.com/ScriptReference/Rigidbody.AddForce.html\" target=\"_blank\" className={decalStyles.yellowUnderline}>AddForce</a> to apply an initial impulse to it.\n </p>\n\n <div className={decalStyles.boxLine}>\n <div className={decalStyles.box}></div>\n <div className={decalStyles.box}></div>\n <div className={decalStyles.box}></div>\n <div className={decalStyles.box}></div>\n <div className={decalStyles.box}></div>\n <div className={decalStyles.box}></div>\n </div> \n\n <h2 id=\"submission-and-grading\">Submission and Grading</h2>\n <p>\n Use simmer.io to submit your work to bCourses.\n <br/><br/>\n Grading will be done by whether or not the submission meets the described specifications. For full credit, a facilitator must be able to actually play the game. Partial credit will be given if some components (puck, player, AI, logic) work but others don’t. Unlike HW2 and HW3, making additional improvements is not required for this assignment. We will, however, still give extra credit to those we deem went above and beyond with their submission.\n </p>\n \n </div>\n </div>\n\n </body>\n </main>\n )\n}\n\nexport default hw4\n\nexport const Head = () => <title>Extended Reality @ Berkeley</title>\n","// extracted by mini-css-extract-plugin\nexport var bodyWrapper = \"decal-module--bodyWrapper--7cbfc\";\nexport var box = \"decal-module--box--08640\";\nexport var boxLine = \"decal-module--boxLine--6ea90\";\nexport var code = \"decal-module--code--9b2c6\";\nexport var copy = \"decal-module--copy--cc970\";\nexport var lectures = \"decal-module--lectures--2770e\";\nexport var redLink = \"decal-module--redLink--36893\";\nexport var resources = \"decal-module--resources--ee376\";\nexport var textWrapper = \"decal-module--textWrapper--f3b49\";\nexport var toc = \"decal-module--toc--fe879\";\nexport var yellowUnderline = \"decal-module--yellowUnderline--1be03\";","// extracted by mini-css-extract-plugin\nexport var active = \"nav-module--active--e2142\";\nexport var arrow = \"nav-module--arrow--f97c8\";\nexport var arrowOpen = \"nav-module--arrowOpen--0a74b\";\nexport var decal = \"nav-module--decal--6e3af\";\nexport var group = \"nav-module--group--9c696\";\nexport var item = \"nav-module--item--0b430\";\nexport var logo = \"nav-module--logo--d13a3\";\nexport var navBar = \"nav-module--navBar--cb2fc\";\nexport var navBarDecal = \"nav-module--navBarDecal--a9df9\";\nexport var navBarSmall = \"nav-module--navBarSmall--0bb6d\";\nexport var navBarSmallWrapper = \"nav-module--navBarSmallWrapper--b56b7\";\nexport var navList = \"nav-module--navList--7fdbd\";\nexport var navListWrapper = \"nav-module--navListWrapper--3782d\";\nexport var smallNavButton = \"nav-module--smallNavButton--bf652\";\nexport var smallNavButtonOutline = \"nav-module--smallNavButtonOutline--db7e1\";\nexport var subLinks = \"nav-module--subLinks--34e84\";\nexport var title = \"nav-module--title--d190f\";"],"names":["_ref","activePage","open","shown","setShown","useState","React","className","navStyles","Link","to","style","display","includes","src","logo","alt","onClick","href","target","hw4","Nav","decalStyles","DecalNav","Button","text","color","icon","EastIcon","type","link","img1","id","img2","img3","img4","Head","bodyWrapper","box","boxLine","code","copy","lectures","redLink","resources","textWrapper","toc","yellowUnderline","active","arrow","arrowOpen","decal","group","item","navBar","navBarSmall","navBarSmallWrapper","navList","navListWrapper","smallNavButton","smallNavButtonOutline","subLinks","title"],"sourceRoot":""}