Pen Settings

CSS Base

Vendor Prefixing

Add External Stylesheets/Pens

Any URL's added here will be added as <link>s in order, and before the CSS in the editor. If you link to another Pen, it will include the CSS from that Pen. If the preprocessor matches, it will attempt to combine them before processing.

+ add another resource

You're using npm packages, so we've auto-selected Babel for you here, which we require to process imports and make it all work. If you need to use a different JavaScript preprocessor, remove the packages in the npm tab.

Add External Scripts/Pens

Any URL's added here will be added as <script>s in order, and run before the JavaScript in the editor. You can use the URL of any other Pen and it will include the JavaScript from that Pen.

+ add another resource

Use npm Packages

We can make npm packages available for you to use in your JavaScript. We use webpack to prepare them and make them available to import. We'll also process your JavaScript with Babel.

⚠️ This feature can only be used by logged in users.

Code Indentation

     

Save Automatically?

If active, Pens will autosave every 30 seconds after being saved once.

Auto-Updating Preview

If enabled, the preview panel updates automatically as you code. If disabled, use the "Run" button to update.

HTML Settings

Here you can Sed posuere consectetur est at lobortis. Donec ullamcorper nulla non metus auctor fringilla. Maecenas sed diam eget risus varius blandit sit amet non magna. Donec id elit non mi porta gravida at eget metus. Praesent commodo cursus magna, vel scelerisque nisl consectetur et.

            
              <div id="escaped">
  <h1>Escape!</h1>
</div>

<!-------  Cheryl Velez - Puzzler   -------- >

<!-- Trigger/Open The Modal -->
<!-- <button id="puzzlerBtn">Open Cheryls Puzzle</button> -->

<!-- The Modal -->
<div id="puzzlerModal" class="modal">

  <!-- Modal content -->
  <div class="modal-content">
    <span class="close close-puzzler">&times;</span>

    <!-- puzzler container   -->
    <div id="puzzler-container">

      <div class="content">
        <div>
          <p id="alert"></p>
        </div>
      </div>
      <p class="quote">"The person who masters himself through self-control and discipline is truly undefeatable." -Buddha</p><br><br>
      <p class="quote">Directions: Solve the riddle of the runes: the tiles are all out of order. <br>Can you figure out their correct order?<br>Drag and drop the tiles into the empty boxes in the correct order. <br> Hint: When placing a tile, do not hover over boxes
        you've already filled or are going to fill! <br><span class="bighint">Bigger Hint: </span><span class="revealtext">Use the console to watch for changes in the array!</span> </p>

      <div id="btn-container"><button>Submit Answer</button>
      </div>
      <div class="outerflex">
        <div class="topContainer">
          <div class="outerBorder">
            <div class="tile" id="1"><img src="http://cherylvelez.com/play/tile1.png"></div>
          </div>
          <div class="outerBorder">
            <div class="tile" id="2"><img src="http://cherylvelez.com/play/tile2.png"></div>
          </div>
          <div class="outerBorder">
            <div class="tile" id="3"><img src="http://cherylvelez.com/play/tile3.png"></div>
          </div>
          <div class="outerBorder">
            <div class="tile" id="4"><img src="http://cherylvelez.com/play/tile4.png"></div>
          </div>
          <div class="outerBorder">
            <div class="tile" id="5"><img src="http://cherylvelez.com/play/tile5.png"></div>
          </div>
          <div class="outerBorder">
            <div class="tile" id="6"><img src="http://cherylvelez.com/play/tile6.png"></div>
          </div>
          <div class="outerBorder">
            <div class="tile" id="7"><img src="http://cherylvelez.com/play/tile7.png"></div>
          </div>
          <div class="outerBorder">
            <div class="tile" id="8"><img src="http://cherylvelez.com/play/tile8.png"></div>
          </div>
        </div>
        <!-- top container -->

        <div class="bottomContainer">
          <div class="blank" id="b1"> </div>
          <div class="blank" id="b2"> </div>
          <div class="blank" id="b3"> </div>
          <div class="blank" id="b4"> </div>
          <div class="blank" id="b5"> </div>
          <div class="blank" id="b6"> </div>
          <div class="blank" id="b7"> </div>
          <div class="blank" id="b8"> </div>

        </div>
        <!-- bottom container -->
      </div>
      <!-- outer container -->

    </div>
    <!--  end puzzler container    -->

  </div>
  <!-- end modal content   -->

</div>
<!-- end modal -->

<!------- End Cheryl Velez - Puzzler ------- >

<!-- Dominic Duffin - Math Puzzle  -->

<!-- Trigger/Open The Modal -->
<!-- <button id="mathPuzzleBtn">Open Dominics Puzzle</button> -->

<!-- The Modal -->
<div id="mathPuzzleModal" class="modal">

  <!-- Modal content -->
  <div class="modal-content">
    <span class="close close-mathpuzzle">&times;</span>

    <!--   Math Puzzle Container   -->
    <!--  PUZZLE GOES INSIDE HERE   -->
    <div id="math-puzzle-container">
      <div id="math-puzzle-main">
        <div id="math-puzzle-keypad">
          <button type="button" class="math-puzzle-numberButton" id="math-puzzle-one">1</button>
          <button type="button" class="math-puzzle-numberButton" id="math-puzzle-two">2</button>
          <button type="button" class="math-puzzle-numberButton" id="math-puzzle-three">3</button>
          <button type="button" class="math-puzzle-numberButton" id="math-puzzle-four">4</button>
          <button type="button" class="math-puzzle-numberButton" id="math-puzzle-five">5</button>
          <button type="button" class="math-puzzle-numberButton" id="math-puzzle-six">6</button>
          <button type="button" class="math-puzzle-numberButton" id="math-puzzle-seven">7</button>
          <button type="button" class="math-puzzle-numberButton" id="math-puzzle-eight">8</button>
          <button type="button" class="math-puzzle-numberButton" id="math-puzzle-nine">9</button>
          <button type="button" class="math-puzzle-zeroButton" id="math-puzzle-zero">0</button>
          <button type="button" class="math-puzzle-signButton" id="math-puzzle-plus">+</button>
          <button type="button" class="math-puzzle-signButton" id="math-puzzle-minus">-</button>
        </div>
        <div id="math-puzzle-sum">
          <div class="math-puzzle-position" id="math-puzzle-message">
            Make the sum add up!
          </div>
          <div class="math-puzzle-position" id="math-puzzle-a">Number</div>
          <div class="math-puzzle-position" id="math-puzzle-b">Sign</div>
          <div class="math-puzzle-position" id="math-puzzle-c">Number</div>
          <div class="math-puzzle-position" id="math-puzzle-d">Sign</div>
          <div class="math-puzzle-position" id="math-puzzle-e">Number</div>
          <div class="math-puzzle-position" id="math-puzzle-f">=</div>
          <div class="math-puzzle-position" id="math-puzzle-g">Number</div>
        </div>
      </div>

    </div>
    <!--  end math puzzle container    -->

  </div>
  <!-- end modal content   -->

</div>
<!-- end modal  -->

<!-- End Dominic Duffin - Math Puzzle -->

<!-- Paul - Flexbox Puzzle  -->

<!-- Trigger/Open The Modal -->
<!-- <button id="flexboxPuzzleBtn">Open Pauls Puzzles</button> -->

<!-- The Modal -->
<div id="flexboxPuzzleModal" class="modal">

  <!-- Modal content -->
  <div class="modal-content">
    <span class="close close-flexboxpuzzle">&times;</span>

    <!--   Flexbox Puzzle Container   -->
    <!--  PUZZLE GOES INSIDE HERE   -->
    <div id="flexbox-puzzle-container">

      <div>
        <header class="heading">
          <p class="heading__rules">
            Use the buttons to rearrange the boxes and find the correct alignment!<br> The box color will change and indicate if you're getting hot or cold.
            <br><br>
          </p>
          <p class="heading__subtitle"></p>
          <div><span class="notification">Start with turning on "Display Flex"</span></div>
        </header>
        <div class="flex-menu">
          <div>
            <label for="flexDisplay">Display</label>
            <button class="flex-menu__items" id="flexDisplay">Display Flex  </button>
          </div>
          <div>
            <label for="flexDirectn">Flex Direction</label>
            <button class="flex-menu__items" id="flexDirectn">Change Flex Direction</button>
          </div>
          <div>
            <label for="flexJustCont">Justify-Content</label>
            <button class="flex-menu__items" id="flexJustCont">Justify Content</button>
          </div>
          <div>
            <label for="flexAlignItems">Align-Items</label>
            <button class="flex-menu__items" id="flexAlignItems">Align Items</button>
          </div>
        </div>

        <div class="flexPuzzle-container">
          <div class="cubes cube-1">
            <div class="side top"></div>
            <div class="side bottom"></div>
            <div class="side front"></div>
            <div class="side back"></div>
            <div class="side left"></div>
            <div class="side right"></div>
          </div>
          <div class="cubes cube-2">
            <div class="side top"></div>
            <div class="side bottom"></div>
            <div class="side front"></div>
            <div class="side back"></div>
            <div class="side left"></div>
            <div class="side right"></div>
          </div>
          <div class="cubes cube-3">
            <div class="side top"></div>
            <div class="side bottom"></div>
            <div class="side front"></div>
            <div class="side back"></div>
            <div class="side left"></div>
            <div class="side right"></div>

          </div>
          <div class="cubes cube-4">
            <div class="side top"></div>
            <div class="side bottom"></div>
            <div class="side front"></div>
            <div class="side back"></div>
            <div class="side left"></div>
            <div class="side right"></div>
          </div>
          <div class="cubes cube-5">
            <div class="side top"></div>
            <div class="side bottom"></div>
            <div class="side front"></div>
            <div class="side back"></div>
            <div class="side left"></div>
            <div class="side right"></div>
          </div>
        </div>
      </div>
    </div>

  </div>
  <!--  end flexbox puzzle container    -->

</div>
<!-- end modal content   -->

</div>
<!-- end Modal -->

<!-- End Paul - Flexbox Puzzle -->

<!-- Kristopher Van Sant - Mirror Puzzle  -->

<!-- Trigger/Open The Modal -->
<!-- <button id="mirrorPuzzleBtn">Open Kristophers Puzzle</button> -->

<!-- The Modal -->
<div id="mirrorPuzzleModal" class="modal">

  <!-- Modal content -->
  <div class="modal-content">
    <span class="close close-mirrorpuzzle">&times;</span>

    <!--   Mirror Puzzle Container   -->
    <!--  PUZZLE GOES INSIDE HERE   -->
    <div id="mirror-puzzle-container">
      <p id="mirror-clue">Hmm, I can't seem to read this note.</p>
      <div id="note">
        <p id="note-text" class="mirror-text">"Scraps of code drifting around the network can congeal into pools of data. within this primordial soup the code breaks, re-assembles, mutates. Evolves"</p>
      </div>
      <div id="mmirror"></div>

    </div>
    <!--  end mirror puzzle container    -->

  </div>
  <!-- end modal content   -->

</div>
<!-- end modal -->

<!-- End Kristopher Van Sant - Mirror Puzzle -->

<!-- Ryan Saunders - Pipe Puzzle  -->

<!-- Trigger/Open The Modal -->
<!-- <button id="pipePuzzleBtn">Open Ryans Puzzle</button> -->

<!-- The Modal -->
<div id="pipePuzzleModal" class="modal">

  <!-- Modal content -->
  <div class="modal-content">
    <span class="close close-pipepuzzle">&times;</span>

    <!--  Pipe Puzzle Container   -->
    <!--  PUZZLE GOES INSIDE HERE   -->
    <div id="pipe-puzzle-container">
      <div id="pipe-notbusted">
        <div class="container" id="container">
        </div>

        <div class="testArea">
          <button class="testButton" id="test" onClick="newPipe()">
        Add Pipe
        </button>
          <button class="testButton" id="test2" onClick="updatePipes()">
        Update Rows & Columns
        </button>
          <button class="testButton" id="test3" onClick="test()">
        List Array
        </button>
          <br /> <br />
          <form>
            Rows: <input type="number" min="1" max="10" id="rowCount"> Columns: <input type="number" min="1" max="10" id="colCount">
          </form>
          <br />
          <div class="pipe pipe-straight"></div>
          <div class="pipe pipe-cross"></div>
          <div class="pipe pipe-angle"></div>
          <div class="pipe pipe-junction"></div>

        </div>

        <div class="bottomConsole"></div>
      </div>
      <div id="pipe-busted">
        <h2>Oh my...Looks like these pipes are busted. <br> I guess I better leave this for the plumber.</h2>
        <!-- <img src="https://media.giphy.com/media/46LMaiLUFRkoU/giphy.gif" alt=""> -->
      </div>

    </div>
    <!--   end container   -->

  </div>
  <!--  end modal content  -->

</div>
<!-- end modal -->

<!-- End Ryan Saunders - Pipe Puzzle -->

<!-- Antoine Guillien - Recursion Puzzle  -->

<!-- Trigger/Open The Modal -->
<!-- <button id="recursionPuzzleBtn">Open Antoines Puzzle</button> -->

<!-- The Modal -->
<div id="recursionPuzzleModal" class="modal">

  <!-- Modal content -->
  <div class="modal-content">
    <span class="close close-recursionpuzzle">&times;</span>

    <!--  Recursion Puzzle Container   -->
    <!--  PUZZLE GOES INSIDE HERE   -->
    <div id="recursion-puzzle-container">

      <div id="app">
        <h1>We All Scream For Ice Cream</h1>
        <div v-if="won" class="won">
          <h1>Yay! You found the Ice Cream at level {{details.level}} after {{details.clicks}} clicks and {{details.opened}} containers opened!</h1>
          <h1><i class="fa fa-ice-cream"></i></h1>
        </div>
        <thing v-else :data="root" :cb="cb"></thing>
      </div>

    </div>
    <!--   end container   -->

  </div>
  <!--  end modal content  -->

</div>
<!-- end modal -->

<!-- End Antoine Guillien - Recursion Puzzle  -->

<!-- ROOM SCENE -->
<!-- Generator: Adobe Illustrator 23.0.3, SVG Export Plug-In  -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="300px" height="105px" viewBox="0 0 300 105" style="enable-background:new 0 0 300 105;" xml:space="preserve">
<style type="text/css">
	.st0{fill:#e6e6e6;}
	.st1{fill:#e6e6e6;stroke:#000000;stroke-width:0.2578;stroke-miterlimit:10;}
	.st2{fill:#e6e6e6;fill-opacity:0;}
	.st3{opacity:0;}
</style>
<defs>
</defs>
<g id="id="mirrorNoteWrap>
	<g id="mirror">
		<ellipse id="solidfill" class="st0" cx="285" cy="27.6" rx="11.5" ry="14.7"/>
		<g>
			<path class="st0" d="M285,7.9c-8.2,0-14.9,8.8-14.9,19.7s6.7,19.7,14.9,19.7s14.9-8.8,14.9-19.7S293.2,7.9,285,7.9z M285,46.3
				c-7.7,0-13.9-8.4-13.9-18.7S277.4,9,285,9s13.9,8.4,13.9,18.7S292.7,46.3,285,46.3z"/>
			<path class="st0" d="M285,12.3c-6.4,0-11.6,6.9-11.6,15.3S278.6,43,285,43s11.6-6.9,11.6-15.3S291.4,12.3,285,12.3z M285,41.9
				c-5.8,0-10.5-6.4-10.5-14.3s4.7-14.3,10.5-14.3s10.5,6.4,10.5,14.3S290.8,41.9,285,41.9z"/>
			<rect x="278.4" y="19.3" transform="matrix(0.7032 -0.711 0.711 0.7032 70.135 207.5076)" width="10.4" height="0.9"/>
			<rect x="279.1" y="26.5" transform="matrix(0.7032 -0.711 0.711 0.7032 64.812 209.1774)" width="7.7" height="0.9"/>
		</g>
		<g id="note">
			<path d="M292,37.8c0-0.1,0.5-1.6,0.5-3.6V30h-7.3v4.2c0,1.9-0.4,3.4-0.4,3.4l-0.1,0.3h7.3V37.8z M285.2,37.5
				c0.1-0.6,0.4-1.8,0.4-3.2v-3.7h6.3v3.7c0,1.5-0.3,2.8-0.4,3.2C291.6,37.5,285.2,37.5,285.2,37.5z"/>
			
				<rect x="287.9" y="29.6" transform="matrix(9.839854e-02 -0.9951 0.9951 9.839854e-02 230.2782 314.6575)" class="st1 st0" width="1.7" height="1.2"/>
			<g>
				<g>
					<path d="M288.8,32.7h-2.4c0,0-0.1,0-0.1-0.1c0,0,0-0.1,0.1-0.1h2.4C288.9,32.6,288.9,32.6,288.8,32.7
						C288.9,32.6,288.9,32.7,288.8,32.7z"/>
				</g>
			</g>
			<g>
				<g>
					<path d="M291.4,33.5c-0.8,0-1.7,0-2.5,0s-1.7,0-2.5,0c0,0-0.1,0-0.1-0.1c0,0,0-0.1,0.1-0.1c0.8,0,1.7,0,2.5,0s1.7,0,2.5,0
						C291.4,33.4,291.4,33.5,291.4,33.5L291.4,33.5z"/>
				</g>
			</g>
			<g>
				<g>
					<path d="M291.2,34.3h-4.9c0,0-0.1,0-0.1-0.1c0,0,0-0.1,0.1-0.1h4.9C291.2,34.2,291.2,34.3,291.2,34.3L291.2,34.3z"/>
				</g>
			</g>
			<g>
				<g>
					<path d="M286.5,35.1C286.4,35.1,286.4,35.1,286.5,35.1C286.4,35,286.5,35,286.5,35.1c0.8-0.1,1.6-0.1,2.4-0.1s1.6,0,2.4,0
						c0,0,0.1,0,0.1,0.1c0,0,0,0.1-0.1,0.1c-0.8,0-1.6,0-2.4,0C288.1,35.1,287.3,35.1,286.5,35.1z"/>
				</g>
			</g>
		</g>
	</g>
	<rect id="mirrorPuzzleBtn" x="270" y="8" class="st2" width="30" height="39.5"/>
</g>
<g id="door">
	<path class="st0" d="M62.7,56.7c1.5,0,2.8-1.3,2.8-2.8s-1.3-2.8-2.8-2.8c-1.5,0-2.8,1.3-2.8,2.8C60,55.5,61.2,56.7,62.7,56.7z
		 M62.7,52.9c0.6,0,1,0.5,1,1s-0.5,1-1,1c-0.6,0-1-0.5-1-1S62.2,52.9,62.7,52.9z"/>
	<path class="st0" d="M95.9,104v-1.7H74.7l0,0h-0.3V0H21.7v102.3h-2.3H0v1.7h19.2h4.1h2.2h1.7h41.6h1.7h2.1 M68.8,102.3H27.2V5.5
		h41.6V102.3z M70.5,102.3V3.8l0,0h-45l0,0v98.5h-2.1V1.7h49.2v100.5h-2.1V102.3z"/>
</g>
  
<!--   padlock section -->
<svg style="display: none;">
	<symbol id="locked" viewBox="0 0 24 24">

	</symbol>
  <symbol id="unlocked" viewBox="0 0 24 24">
  
  </symbol>
</svg>

<svg id="padlock0" x="75" y="25" width="7" height="7" viewBox="0 0 24 24">
   		<path class="locked" d="M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z"/>
      		<path class="unlocked" d="M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10z"/>
  </svg>

<svg id="padlock1" x="75" y="33" width="7" height="7" viewBox="0 0 24 24">
      		<path class="locked" d="M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z"/>
      		<path class="unlocked" d="M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10z"/>
  </svg>

<svg id="padlock2" x="75" y="41" width="7" height="7" viewBox="0 0 24 24">
      		<path class="locked" d="M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z"/>
      		<path class="unlocked" d="M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10z"/>
  </svg>

<svg id="padlock3" x="75" y="49" width="7" height="7" viewBox="0 0 24 24">
      		<path class="locked" d="M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z"/>
      		<path class="unlocked" d="M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10z"/>
  </svg>

<svg id="padlock4" x="75" y="57" width="7" height="7" viewBox="0 0 24 24">
      		<path class="locked" d="M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z"/>
      		<path class="unlocked" d="M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10z"/>
  </svg>

<svg id="padlock5" x="75" y="65" width="7" height="7" viewBox="0 0 24 24">
     		<path  class="locked" d="M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z"/>
      		<path class="unlocked" d="M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10z"/>
  </svg>
<!--   end of padlock section -->

<path id="desk" class="st0" d="M130.4,65.4v5.5h2v33.7h5.5V73H207v6.4v1.3v8.4v1.4v14.1h18.3V90.5v-1.4v-8.4v-1.3v-8.5v-1.3v-4.3
	L130.4,65.4L130.4,65.4z M136.7,103.4h-3V70.9h3V73V103.4z M138,71.7v-0.8h69.1v0.8H138z M224.1,103.4h-15.7V90.5h15.7V103.4z
	 M224.1,89.1h-15.7v-8.4h15.7V89.1z M224.1,79.4h-15.7v-8.5h15.7V79.4z M207.9,69.6h-0.8H138h-1.3h-4.3h-0.7v-3h92.4v3H207.9z
	 M220.3,75.2h-8.1v-0.6c0-0.8,0.7-1.5,1.5-1.5h5c0.8,0,1.5,0.7,1.5,1.5L220.3,75.2L220.3,75.2z M220.3,85.1h-8.1v-0.6
	c0-0.8,0.7-1.5,1.5-1.5h5c0.8,0,1.5,0.7,1.5,1.5L220.3,85.1L220.3,85.1z M212.2,101.8v-0.6c0-0.8,0.7-1.5,1.5-1.5h5
	c0.8,0,1.5,0.7,1.5,1.5v0.6H212.2z M220.3,95.1h-8.1v-0.6c0-0.8,0.7-1.5,1.5-1.5h5c0.8,0,1.5,0.7,1.5,1.5L220.3,95.1L220.3,95.1z" />
<g id="computer">
  <g>
    <g id="hard-drive">
      <rect x="205.4" y="60.4" class="st0" width="0.9" height="3" />
      <rect x="201.7" y="60.4" class="st0" width="0.9" height="3" />
      <polygon class="st0" points="196.3,39.1 206.4,39.1 206.4,40.1 207.3,40.1 207.3,38.2 195.4,38.2 195.4,40.1 196.3,40.1 			" />
      <path class="st0" d="M193.7,36.2v29.5H209V36.2H193.7z M208.1,64.7h-13.5V37.1h13.5V64.7L208.1,64.7z" />
      <polygon class="st0" points="206.2,53.7 204.7,53.7 204.7,54.6 207.1,54.6 207.1,52.1 206.2,52.1 			" />
      <rect x="199.9" y="60.4" class="st0" width="0.9" height="3" />
      <rect x="203.6" y="60.4" class="st0" width="0.9" height="3" />
      <rect x="204.6" y="40.9" class="st0" width="1.8" height="0.9" />
      <rect x="200.1" y="46.2" class="st0" width="6.3" height="0.9" />
      <rect x="198" y="60.4" class="st0" width="0.9" height="3" />
      <rect x="196.2" y="60.4" class="st0" width="0.9" height="3" />
    </g>
    <g id="desktop">
      <path class="st0" d="M170.2,61.3c-5,0.2-5,1-5,1.4v2.1c0,1.2,4.1,1.4,7.6,1.4s7.6-0.2,7.6-1.4v-2.1c0-0.3,0-1.1-5-1.4v-3h14.3
				V34.9h-33.8v23.4h14.3L170.2,61.3L170.2,61.3z M179.4,64.6c-0.5,0.2-2.7,0.6-6.7,0.6c-3.9,0-6.2-0.4-6.7-0.6v-1.2
				c1.4,0.5,4.2,0.6,6.7,0.6s5.2-0.1,6.7-0.6V64.6z M156.7,57.4V35.8h31.9v21.6h-14.3v4.8h0.4c2.1,0.1,3.4,0.3,4.1,0.5
				c-0.9,0.2-3,0.5-6.2,0.5s-5.2-0.3-6.2-0.5c0.7-0.2,2-0.4,4.1-0.5h0.4v-4.8C171.1,57.4,156.7,57.4,156.7,57.4z" />
      <path class="st0" d="M187,37h-28.5v18.4H187V37z M186,54.4h-26.7V37.9H186V54.4z" />
      <rect x="158.9" y="37" class="st0" width="28" height="18" />
      <g id="screenglitch">
        <rect x="175.2" y="43.1" width="3.2" height="1.1" />
        <rect x="181.6" y="43.1" width="3.2" height="1.1" />
        <rect x="162.5" y="43.1" width="9.5" height="1.1" />
        <rect x="168.9" y="40.5" width="6.3" height="1.1" />
        <rect x="178.4" y="40.5" width="3.2" height="1.1" />
        <rect x="162.5" y="37.9" width="3.2" height="1.1" />
        <rect x="168.9" y="37.9" width="3.2" height="1.1" />
        <rect x="175.2" y="37.9" width="3.2" height="1.1" />
        <rect x="181.6" y="37.9" width="3.2" height="1.1" />
        <rect x="159.4" y="45.6" width="3.2" height="1.1" />
        <rect x="165.7" y="45.6" width="6.3" height="1.1" />
        <rect x="178.4" y="45.6" width="6.3" height="1.1" />
        <rect x="170.2" y="50.8" width="3.2" height="1.1" />
        <rect x="163.8" y="50.8" width="3.2" height="1.1" />
        <rect x="176.5" y="50.8" width="9.5" height="1.1" />
        <rect x="173.3" y="48.2" width="6.3" height="1.1" />
        <rect x="160.6" y="48.2" width="3.2" height="1.1" />
        <rect x="167" y="48.2" width="3.2" height="1.1" />
        <rect x="176.5" y="53.4" width="6.3" height="1.1" />
        <rect x="163.8" y="53.4" width="6.3" height="1.1" />
      </g>
    </g>
  </g>
</g>
<g id="servers">
  <g>
    <path class="st0" d="M250.7,72.3c0.2,0,0.4,0.2,0.4,0.4v31.6c0,0.2-0.2,0.4-0.4,0.4h-22.9c-0.2,0-0.4-0.2-0.4-0.4V72.7
			c0-0.2,0.2-0.4,0.4-0.4L250.7,72.3 M250.7,71.9h-22.9c-0.4,0-0.7,0.3-0.7,0.7v31.6c0,0.4,0.3,0.7,0.7,0.7h22.9
			c0.4,0,0.7-0.3,0.7-0.7V72.7C251.5,72.3,251.1,71.9,250.7,71.9L250.7,71.9z" />
    <path class="st0" d="M239.3,87.2c-3.9,0-7.1-3.1-7.1-7s3.2-7,7.1-7c3.9,0,7.1,3.1,7.1,7S243.2,87.2,239.3,87.2z M239.3,73.5
			c-3.7,0-6.7,3-6.7,6.6c0,3.7,3,6.6,6.7,6.6s6.7-3,6.7-6.6S243,73.5,239.3,73.5z" />
    <g>
      <path class="st0" d="M238.9,102.8h-10.2c-0.1,0-0.2-0.1-0.2-0.2V89.9c0-0.1,0.1-0.2,0.2-0.2h10.2c0.1,0,0.2,0.1,0.2,0.2v12.7
				C239.1,102.7,239,102.8,238.9,102.8z M228.9,102.4h9.8V90.1h-9.8V102.4z" />
      <path class="st0" d="M237.8,91.9h-2.5c-0.1,0-0.2-0.1-0.2-0.2v-0.8c0-0.1,0.1-0.2,0.2-0.2h2.5c0.1,0,0.2,0.1,0.2,0.2v0.8
				C238,91.8,237.9,91.9,237.8,91.9z M235.5,91.5h2.1V91h-2.1V91.5z" />
      <path class="st0" d="M234.7,91.9h-2.5c-0.1,0-0.2-0.1-0.2-0.2v-0.8c0-0.1,0.1-0.2,0.2-0.2h2.5c0.1,0,0.2,0.1,0.2,0.2v0.8
				C234.9,91.8,234.8,91.9,234.7,91.9z M232.4,91.5h2.1V91h-2.1V91.5z" />
      <path class="st0" d="M237.8,93.4h-2.5c-0.1,0-0.2-0.1-0.2-0.2v-0.8c0-0.1,0.1-0.2,0.2-0.2h2.5c0.1,0,0.2,0.1,0.2,0.2v0.8
				C238,93.3,237.9,93.4,237.8,93.4z M235.5,93h2.1v-0.5h-2.1V93z" />
      <path class="st0" d="M234.7,93.4h-2.5c-0.1,0-0.2-0.1-0.2-0.2v-0.8c0-0.1,0.1-0.2,0.2-0.2h2.5c0.1,0,0.2,0.1,0.2,0.2v0.8
				C234.9,93.3,234.8,93.4,234.7,93.4z M232.4,93h2.1v-0.5h-2.1V93z" />
      <path class="st0" d="M237.8,94.9h-2.5c-0.1,0-0.2-0.1-0.2-0.2v-0.8c0-0.1,0.1-0.2,0.2-0.2h2.5c0.1,0,0.2,0.1,0.2,0.2v0.8
				C238,94.8,237.9,94.9,237.8,94.9z M235.5,94.5h2.1V94h-2.1V94.5z" />
      <path class="st0" d="M234.7,94.9h-2.5c-0.1,0-0.2-0.1-0.2-0.2v-0.8c0-0.1,0.1-0.2,0.2-0.2h2.5c0.1,0,0.2,0.1,0.2,0.2v0.8
				C234.9,94.8,234.8,94.9,234.7,94.9z M232.4,94.5h2.1V94h-2.1V94.5z" />
      <path class="st0" d="M230.5,92.1c-0.4,0-0.7-0.3-0.7-0.7s0.3-0.7,0.7-0.7s0.7,0.3,0.7,0.7S230.9,92.1,230.5,92.1z M230.5,91
				c-0.2,0-0.4,0.2-0.4,0.4s0.2,0.4,0.4,0.4s0.4-0.2,0.4-0.4S230.7,91,230.5,91z" />
      <path class="st0" d="M230.5,94c-0.4,0-0.7-0.3-0.7-0.7s0.3-0.7,0.7-0.7s0.7,0.3,0.7,0.7C231.3,93.6,230.9,94,230.5,94z
				 M230.5,92.9c-0.2,0-0.4,0.2-0.4,0.4s0.2,0.4,0.4,0.4s0.4-0.2,0.4-0.4S230.7,92.9,230.5,92.9z" />
      <path class="st0" d="M237.8,97.5h-8c-0.1,0-0.2-0.1-0.2-0.2v-1.5c0-0.1,0.1-0.2,0.2-0.2h8c0.1,0,0.2,0.1,0.2,0.2v1.5
				C238,97.4,237.9,97.5,237.8,97.5z M230,97.1h7.6V96H230V97.1z" />
      <path class="st0" d="M237,97h-1.8c-0.1,0-0.1,0-0.2-0.1c0-0.1,0-0.1,0-0.2l0.4-0.5c0,0,0.1-0.1,0.2-0.1h1c0.1,0,0.1,0,0.2,0.1
				l0.4,0.5c0,0.1,0,0.1,0,0.2S237.1,97,237,97z M235.6,96.6h1l-0.1-0.2h-0.8L235.6,96.6z" />
      <path class="st0" d="M237.8,99.7h-8c-0.1,0-0.2-0.1-0.2-0.2V98c0-0.1,0.1-0.2,0.2-0.2h8c0.1,0,0.2,0.1,0.2,0.2v1.5
				C238,99.7,237.9,99.7,237.8,99.7z M230,99.4h7.6v-1.1H230V99.4z" />
      <path class="st0" d="M237.8,102h-8c-0.1,0-0.2-0.1-0.2-0.2v-1.5c0-0.1,0.1-0.2,0.2-0.2h8c0.1,0,0.2,0.1,0.2,0.2v1.5
				C238,101.9,237.9,102,237.8,102z M230,101.6h7.6v-1.1H230V101.6z" />
      <path class="st0" d="M237,99.3h-1.8c-0.1,0-0.1,0-0.2-0.1c0-0.1,0-0.1,0-0.2l0.4-0.5c0,0,0.1-0.1,0.2-0.1h1c0.1,0,0.1,0,0.2,0.1
				l0.4,0.5c0,0.1,0,0.1,0,0.2S237.1,99.3,237,99.3z M235.6,98.9h1l-0.1-0.2h-0.8L235.6,98.9z" />
      <path class="st0" d="M234.4,99.3h-1.8c-0.1,0-0.1,0-0.2-0.1c0-0.1,0-0.1,0-0.2l0.4-0.5c0,0,0.1-0.1,0.2-0.1h1
				c0.1,0,0.1,0,0.2,0.1l0.4,0.5c0,0.1,0,0.1,0,0.2C234.6,99.2,234.5,99.3,234.4,99.3z M233,98.9h1l-0.1-0.2h-0.8L233,98.9z" />
      <path class="st0" d="M234.8,97h-1c-0.1,0-0.2-0.1-0.2-0.2v-0.5c0-0.1,0.1-0.2,0.2-0.2h1c0.1,0,0.2,0.1,0.2,0.2v0.5
				C235,96.9,234.9,97,234.8,97z M234,96.6h0.6v-0.2H234V96.6z" />
      <circle class="st0" cx="230.7" cy="96.5" r="0.2" />
      <circle class="st0" cx="231.5" cy="96.5" r="0.2" />
      <circle class="st0" cx="232.2" cy="96.5" r="0.2" />
    </g>
    <path class="st0" d="M239.3,81.6c-0.8,0-1.5-0.7-1.5-1.5s0.7-1.5,1.5-1.5s1.5,0.7,1.5,1.5C240.7,81,240.1,81.6,239.3,81.6z
			 M239.3,79.1c-0.6,0-1.1,0.5-1.1,1.1s0.5,1.1,1.1,1.1s1.1-0.5,1.1-1.1C240.4,79.6,239.9,79.1,239.3,79.1z" />
    <path class="st0" d="M239.8,78.9h-0.4c0-2.2,2-4,4.5-4v0.4C241.6,75.2,239.8,76.9,239.8,78.9z" />
    <path class="st0" d="M240.4,79.3H240c0-1.4,2.3-2.5,5.3-2.5v0.4C242.7,77.2,240.4,78.2,240.4,79.3z" />
    <path class="st0" d="M244.5,84.4c-0.1-2.2-1.8-4-3.8-4V80c2.2-0.1,4.1,1.9,4.2,4.3L244.5,84.4z" />
    <path class="st0" d="M242.6,86c0-1.3-0.3-2.6-0.8-3.5c-0.4-0.9-1-1.3-1.5-1.3l0,0v-0.4l0,0c0.7,0,1.4,0.5,1.9,1.5s0.8,2.3,0.8,3.7
			L242.6,86z" />
    <path class="st0" d="M236.6,86.6l-0.1-0.3c1-0.3,1.9-1,2.4-1.9s0.6-1.9,0.3-2.8l0.4-0.1c0.3,1,0.2,2.1-0.4,3.1
			C238.7,85.5,237.8,86.2,236.6,86.6z" />
    <path class="st0" d="M234.6,85.2l-0.1-0.3c2.6-0.8,4.4-2.5,4-3.6l0.4-0.1C239.3,82.5,237.4,84.3,234.6,85.2z" />
    <path class="st0" d="M235.6,81.8c-1.2,0-2.4-0.5-3.4-1.5l0.3-0.3c1.6,1.6,4,1.8,5.5,0.4l0.3,0.3C237.5,81.5,236.6,81.8,235.6,81.8
			z" />
    <path class="st0" d="M237,80.4c-0.4,0-0.8-0.1-1.3-0.3c-1-0.4-2.1-1.2-3.1-2.2l0.3-0.3c0.9,1,2,1.7,2.9,2.1s1.7,0.4,2.1,0l0.3,0.3
			C237.9,80.3,237.5,80.4,237,80.4z" />
    <path class="st0" d="M238.1,79.7c-1-0.4-1.8-1.3-2.1-2.3c-0.4-1.1-0.3-2.3,0.2-3.3l0.3,0.1c-0.4,1-0.5,2.1-0.1,3.1
			c0.3,1,1,1.7,1.9,2.1L238.1,79.7z" />
    <path class="st0" d="M238.8,79.2c-0.7-0.3-1-1.1-1.1-2.2c0-1.1,0.3-2.4,0.8-3.7l0.3,0.1c-0.5,1.2-0.8,2.5-0.8,3.5s0.3,1.6,0.8,1.9
			V79.2z" />
    <g>
      <path class="st0" d="M249.6,102.8h-9.8c-0.1,0-0.2-0.1-0.2-0.2V89.5c0-0.1,0-0.1,0.1-0.1c0,0,0.1,0,0.2,0
				c0.6,0.1,1.2,0.1,1.9,0.1c2.8-0.1,5.4-2.3,7.7-6.5c0-0.1,0.1-0.1,0.2-0.1c0.1,0,0.1,0.1,0.1,0.2v19.6
				C249.8,102.7,249.7,102.8,249.6,102.8z M240.1,102.4h9.4V83.7c-2.3,3.9-4.8,5.9-7.7,6c-0.7,0-1.2,0-1.7-0.1V102.4z" />
      <g>
        <path class="st0" d="M249.6,83.5V83c-0.1,0.1-0.1,0.2-0.2,0.3L249.6,83.5z" />
        <path class="st0" d="M249.5,102.1l0.2,0.2v-0.8l-0.2,0.2l-0.4-0.4l0.4-0.4l0.2,0.2v-0.8l-0.2,0.2l-0.4-0.4l0.4-0.4l0.2,0.2v-0.8
					l-0.2,0.2l-0.4-0.4l0.4-0.4l0.2,0.2v-0.8l-0.2,0.2l-0.4-0.4l0.4-0.4l0.2,0.2V96l-0.2,0.2l-0.4-0.4l0.4-0.4l0.2,0.2v-0.8
					l-0.2,0.2l-0.4-0.4l0.4-0.4l0.2,0.2v-0.8l-0.2,0.2l-0.4-0.4l0.4-0.4l0.2,0.2V92l-0.2,0.2l-0.4-0.4l0.4-0.4l0.2,0.2v-0.8
					l-0.2,0.2l-0.4-0.4l0.4-0.4l0.2,0.2v-0.8l-0.2,0.2l-0.4-0.4l0.4-0.4l0.2,0.2V88l-0.2,0.2l-0.4-0.4l0.4-0.4l0.2,0.2v-0.8
					l-0.2,0.2l-0.4-0.4l0.4-0.4l0.2,0.2v-0.8l-0.2,0.2l-0.4-0.4l0.4-0.4l0.2,0.2V84l-0.2,0.2l-0.3-0.3c-0.1,0.1-0.1,0.2-0.2,0.3
					l0.2,0.2l-0.4,0.4l-0.1-0.1c-0.1,0.1-0.1,0.2-0.2,0.3l0.1,0.1l-0.4,0.4l0,0c-0.9,1.2-1.9,2.3-3,3l-0.3,0.3l-0.1-0.1
					c-0.1,0.1-0.2,0.1-0.3,0.2l0.2,0.2l-0.4,0.4l-0.3-0.3c-0.3,0.1-0.7,0.2-1,0.3l0,0l0,0c-0.1,0-0.3,0.1-0.5,0.1l0.2,0.2l-0.4,0.4
					l-0.4-0.4l0.2-0.2c-0.3,0-0.6,0-0.9,0l0.2,0.2l-0.4,0.4l-0.4-0.4l0.2-0.2c-0.2,0-0.3,0-0.5-0.1l0,0l0,0h-0.1v0.7L240,90l0.4,0.4
					l-0.4,0.4l-0.1-0.1v0.8l0.1-0.1l0.4,0.4l-0.4,0.4l-0.1-0.1v0.8l0.1-0.1l0.4,0.4l-0.4,0.4l-0.1-0.1v0.8L240,94l0.4,0.4l-0.4,0.4
					l-0.1-0.1v0.8l0.1-0.1l0.4,0.4l-0.4,0.4l-0.1-0.1v0.8l0.1-0.1l0.4,0.4l-0.4,0.4l-0.1-0.1v0.8l0.1-0.1l0.4,0.4L240,99l-0.1-0.1
					v0.8l0.1-0.1l0.4,0.4l-0.4,0.4l-0.1-0.1v0.8l0.1-0.1l0.4,0.4l-0.4,0.4l-0.1-0.1v0.8l0.1-0.1l0.4,0.4l-0.1,0.1h0.7l-0.1-0.1
					l0.4-0.4l0.4,0.4l-0.1,0.1h0.7l-0.1-0.1l0.4-0.4l0.4,0.4l-0.1,0.1h0.7l-0.1-0.1l0.4-0.4l0.4,0.4l-0.1,0.1h0.7l-0.1-0.1l0.4-0.4
					l0.4,0.4l-0.1,0.1h0.7l-0.1-0.1l0.4-0.4l0.4,0.4l-0.1,0.1h0.7l-0.1-0.1l0.4-0.4l0.4,0.4l-0.1,0.1h0.7l-0.1-0.1L249.5,102.1z
					 M249.2,100.5l-0.4,0.4l-0.4-0.4l0.4-0.4L249.2,100.5z M243.8,96.5l-0.4,0.4l-0.4-0.4l0.4-0.4L243.8,96.5z M243,95.1l0.4-0.4
					l0.4,0.4l-0.4,0.4L243,95.1z M243.6,95.8l0.4-0.4l0.4,0.4l-0.4,0.4L243.6,95.8z M245.7,93.8l0.4-0.4l0.4,0.4l-0.4,0.4
					L245.7,93.8z M246.5,95.1l-0.4,0.4l-0.4-0.4l0.4-0.4L246.5,95.1z M245.8,94.5l-0.4,0.4l-0.4-0.4l0.4-0.4L245.8,94.5z
					 M245.2,95.1l-0.4,0.4l-0.4-0.4l0.4-0.4L245.2,95.1z M244.7,96.1l0.4,0.4l-0.4,0.4l-0.4-0.4L244.7,96.1z M245,95.8l0.4-0.4
					l0.4,0.4l-0.4,0.4L245,95.8z M246.1,96.1l0.4,0.4l-0.4,0.4l-0.4-0.4L246.1,96.1z M246.4,95.8l0.4-0.4l0.4,0.4l-0.4,0.4
					L246.4,95.8z M246.4,94.5l0.4-0.4l0.4,0.4l-0.4,0.4L246.4,94.5z M246.4,93.1l0.4-0.4l0.4,0.4l-0.4,0.4L246.4,93.1z M246.4,91.8
					l0.4-0.4l0.4,0.4l-0.4,0.4L246.4,91.8z M246.5,92.4l-0.4,0.4l-0.4-0.4l0.4-0.4L246.5,92.4z M245.8,93.1l-0.4,0.4l-0.4-0.4
					l0.4-0.4L245.8,93.1z M245.2,93.8l-0.4,0.4l-0.4-0.4l0.4-0.4L245.2,93.8z M244.5,94.5l-0.4,0.4l-0.4-0.4l0.4-0.4L244.5,94.5z
					 M243.4,94.2l-0.4-0.4l0.4-0.4l0.4,0.4L243.4,94.2z M243.1,94.5l-0.4,0.4l-0.4-0.4l0.4-0.4L243.1,94.5z M243.1,95.8l-0.4,0.4
					l-0.4-0.4l0.4-0.4L243.1,95.8z M243.1,97.1l-0.4,0.4l-0.4-0.4l0.4-0.4L243.1,97.1z M243.4,97.4l0.4,0.4l-0.4,0.4l-0.4-0.4
					L243.4,97.4z M243.6,97.1l0.4-0.4l0.4,0.4l-0.4,0.4L243.6,97.1z M244.7,97.4l0.4,0.4l-0.4,0.4l-0.4-0.4L244.7,97.4z M245,97.1
					l0.4-0.4l0.4,0.4l-0.4,0.4L245,97.1z M246.1,97.4l0.4,0.4l-0.4,0.4l-0.4-0.4L246.1,97.4z M246.4,97.1l0.4-0.4l0.4,0.4l-0.4,0.4
					L246.4,97.1z M247.4,97.4l0.4,0.4l-0.4,0.4l-0.4-0.4L247.4,97.4z M247,96.5l0.4-0.4l0.4,0.4l-0.4,0.4L247,96.5z M247,95.1
					l0.4-0.4l0.4,0.4l-0.4,0.4L247,95.1z M247,93.8l0.4-0.4l0.4,0.4l-0.4,0.4L247,93.8z M247,92.4l0.4-0.4l0.4,0.4l-0.4,0.4
					L247,92.4z M247,91.1l0.4-0.4l0.4,0.4l-0.4,0.4L247,91.1z M247,89.8l0.4-0.4l0.4,0.4l-0.4,0.4L247,89.8z M247.2,90.4l-0.4,0.4
					l-0.4-0.4l0.4-0.4L247.2,90.4z M246.5,91.1l-0.4,0.4l-0.4-0.4l0.4-0.4L246.5,91.1z M245.8,91.8l-0.4,0.4l-0.4-0.4l0.4-0.4
					L245.8,91.8z M245.2,92.4l-0.4,0.4l-0.4-0.4l0.4-0.4L245.2,92.4z M244.5,93.1l-0.4,0.4l-0.4-0.4l0.4-0.4L244.5,93.1z
					 M243.4,92.9l-0.4-0.4l0.4-0.4l0.4,0.4L243.4,92.9z M243.1,93.1l-0.4,0.4l-0.4-0.4l0.4-0.4L243.1,93.1z M242.4,93.8l-0.4,0.4
					l-0.4-0.4l0.4-0.4L242.4,93.8z M242.4,95.1l-0.4,0.4l-0.4-0.4l0.4-0.4L242.4,95.1z M242.4,96.5l-0.4,0.4l-0.4-0.4l0.4-0.4
					L242.4,96.5z M242.4,97.8l-0.4,0.4l-0.4-0.4l0.4-0.4L242.4,97.8z M242.4,99.1l-0.4,0.4l-0.4-0.4l0.4-0.4L242.4,99.1z
					 M242.3,98.5l0.4-0.4l0.4,0.4l-0.4,0.4L242.3,98.5z M243.4,98.7l0.4,0.4l-0.4,0.4l-0.4-0.4L243.4,98.7z M243.6,98.5l0.4-0.4
					l0.4,0.4l-0.4,0.4L243.6,98.5z M244.7,98.7l0.4,0.4l-0.4,0.4l-0.4-0.4L244.7,98.7z M245,98.5l0.4-0.4l0.4,0.4l-0.4,0.4L245,98.5
					z M246.1,98.7l0.4,0.4l-0.4,0.4l-0.4-0.4L246.1,98.7z M246.4,98.5l0.4-0.4l0.4,0.4l-0.4,0.4L246.4,98.5z M247.4,98.7l0.4,0.4
					l-0.4,0.4l-0.4-0.4L247.4,98.7z M247.7,98.5l0.4-0.4l0.4,0.4l-0.4,0.4L247.7,98.5z M247.7,97.1l0.4-0.4l0.4,0.4l-0.4,0.4
					L247.7,97.1z M247.7,95.8l0.4-0.4l0.4,0.4l-0.4,0.4L247.7,95.8z M247.7,94.5l0.4-0.4l0.4,0.4l-0.4,0.4L247.7,94.5z M247.7,93.1
					l0.4-0.4l0.4,0.4l-0.4,0.4L247.7,93.1z M247.7,91.8l0.4-0.4l0.4,0.4l-0.4,0.4L247.7,91.8z M247.7,90.4l0.4-0.4l0.4,0.4l-0.4,0.4
					L247.7,90.4z M247.7,89.1l0.4-0.4l0.4,0.4l-0.4,0.4L247.7,89.1z M247.7,87.7l0.4-0.4l0.4,0.4l-0.4,0.4L247.7,87.7z M247.9,88.4
					l-0.4,0.4l-0.4-0.4l0.4-0.4L247.9,88.4z M247.2,89.1l-0.4,0.4l-0.4-0.4l0.4-0.4L247.2,89.1z M246.5,89.8l-0.4,0.4l-0.4-0.4
					l0.4-0.4L246.5,89.8z M245.8,90.4l-0.4,0.4l-0.4-0.4l0.4-0.4L245.8,90.4z M245.2,91.1l-0.4,0.4l-0.4-0.4l0.4-0.4L245.2,91.1z
					 M244.5,91.8l-0.4,0.4l-0.4-0.4l0.4-0.4L244.5,91.8z M243.4,91.5l-0.4-0.4l0.4-0.4l0.4,0.4L243.4,91.5z M243.1,91.8l-0.4,0.4
					l-0.4-0.4l0.4-0.4L243.1,91.8z M242.4,92.4l-0.4,0.4l-0.4-0.4L242,92L242.4,92.4z M241.3,92.2l-0.4-0.4l0.4-0.4l0.4,0.4
					L241.3,92.2z M241.8,93.1l-0.4,0.4l-0.4-0.4l0.4-0.4L241.8,93.1z M241.8,94.5l-0.4,0.4l-0.4-0.4l0.4-0.4L241.8,94.5z
					 M241.8,95.8l-0.4,0.4l-0.4-0.4l0.4-0.4L241.8,95.8z M241.8,97.1l-0.4,0.4l-0.4-0.4l0.4-0.4L241.8,97.1z M241.8,98.5l-0.4,0.4
					l-0.4-0.4l0.4-0.4L241.8,98.5z M241.8,99.8l-0.4,0.4l-0.4-0.4l0.4-0.4L241.8,99.8z M242,100.1l0.4,0.4l-0.4,0.4l-0.4-0.4
					L242,100.1z M242.3,99.8l0.4-0.4l0.4,0.4l-0.4,0.4L242.3,99.8z M243.4,100.1l0.4,0.4l-0.4,0.4l-0.4-0.4L243.4,100.1z
					 M243.6,99.8l0.4-0.4l0.4,0.4l-0.4,0.4L243.6,99.8z M244.7,100.1l0.4,0.4l-0.4,0.4l-0.4-0.4L244.7,100.1z M245,99.8l0.4-0.4
					l0.4,0.4l-0.4,0.4L245,99.8z M246.1,100.1l0.4,0.4l-0.4,0.4l-0.4-0.4L246.1,100.1z M246.4,99.8l0.4-0.4l0.4,0.4l-0.4,0.4
					L246.4,99.8z M247.4,100.1l0.4,0.4l-0.4,0.4l-0.4-0.4L247.4,100.1z M247.7,99.8l0.4-0.4l0.4,0.4l-0.4,0.4L247.7,99.8z
					 M249.2,99.1l-0.4,0.4l-0.4-0.4l0.4-0.4L249.2,99.1z M249.2,97.8l-0.4,0.4l-0.4-0.4l0.4-0.4L249.2,97.8z M249.2,96.5l-0.4,0.4
					l-0.4-0.4l0.4-0.4L249.2,96.5z M249.2,95.1l-0.4,0.4l-0.4-0.4l0.4-0.4L249.2,95.1z M249.2,93.8l-0.4,0.4l-0.4-0.4l0.4-0.4
					L249.2,93.8z M249.2,92.4l-0.4,0.4l-0.4-0.4l0.4-0.4L249.2,92.4z M249.2,91.1l-0.4,0.4l-0.4-0.4l0.4-0.4L249.2,91.1z
					 M249.2,89.8l-0.4,0.4l-0.4-0.4l0.4-0.4L249.2,89.8z M249.2,88.4l-0.4,0.4l-0.4-0.4l0.4-0.4L249.2,88.4z M249.2,87.1l-0.4,0.4
					l-0.4-0.4l0.4-0.4L249.2,87.1z M248.8,85.3l0.4,0.4l-0.4,0.4l-0.4-0.4L248.8,85.3z M248.1,86l0.4,0.4l-0.4,0.4l-0.4-0.4
					L248.1,86z M247.4,86.7l0.4,0.4l-0.4,0.4l-0.4-0.4L247.4,86.7z M246.8,87.3l0.4,0.4l-0.4,0.4l-0.4-0.4L246.8,87.3z M246.1,88
					l0.4,0.4l-0.4,0.4l-0.4-0.4L246.1,88z M245.4,88.7l0.4,0.4l-0.4,0.4l-0.4-0.4L245.4,88.7z M244.7,89.3l0.4,0.4l-0.4,0.4
					l-0.4-0.4L244.7,89.3z M244.5,90.4l-0.4,0.4l-0.4-0.4l0.4-0.4L244.5,90.4z M243.4,89.3l0.4,0.4l-0.4,0.4l-0.4-0.4L243.4,89.3z
					 M242.7,90l0.4,0.4l-0.4,0.4l-0.4-0.4L242.7,90z M242.4,91.1l-0.4,0.4l-0.4-0.4l0.4-0.4L242.4,91.1z M241.3,90l0.4,0.4l-0.4,0.4
					l-0.4-0.4L241.3,90z M240.3,91.1l0.4-0.4l0.4,0.4l-0.4,0.4L240.3,91.1z M240.3,92.4l0.4-0.4l0.4,0.4l-0.4,0.4L240.3,92.4z
					 M240.3,93.8l0.4-0.4l0.4,0.4l-0.4,0.4L240.3,93.8z M240.3,95.1l0.4-0.4l0.4,0.4l-0.4,0.4L240.3,95.1z M240.3,96.5l0.4-0.4
					l0.4,0.4l-0.4,0.4L240.3,96.5z M240.3,97.8l0.4-0.4l0.4,0.4l-0.4,0.4L240.3,97.8z M240.3,99.1l0.4-0.4l0.4,0.4l-0.4,0.4
					L240.3,99.1z M240.3,100.5l0.4-0.4l0.4,0.4l-0.4,0.4L240.3,100.5z M240.7,102.2l-0.4-0.4l0.4-0.4l0.4,0.4L240.7,102.2z
					 M240.9,101.2l0.4-0.4l0.4,0.4l-0.4,0.4L240.9,101.2z M242,102.2l-0.4-0.4l0.4-0.4l0.4,0.4L242,102.2z M242.3,101.2l0.4-0.4
					l0.4,0.4l-0.4,0.4L242.3,101.2z M243.4,102.2l-0.4-0.4l0.4-0.4l0.4,0.4L243.4,102.2z M243.6,101.2l0.4-0.4l0.4,0.4l-0.4,0.4
					L243.6,101.2z M244.7,102.2l-0.4-0.4l0.4-0.4l0.4,0.4L244.7,102.2z M245,101.2l0.4-0.4l0.4,0.4l-0.4,0.4L245,101.2z
					 M246.1,102.2l-0.4-0.4l0.4-0.4l0.4,0.4L246.1,102.2z M246.4,101.2l0.4-0.4l0.4,0.4l-0.4,0.4L246.4,101.2z M247.4,102.2
					l-0.4-0.4l0.4-0.4l0.4,0.4L247.4,102.2z M247.7,101.2l0.4-0.4l0.4,0.4l-0.4,0.4L247.7,101.2z M248.4,101.8l0.4-0.4l0.4,0.4
					l-0.4,0.4L248.4,101.8z" />
      </g>
    </g>
  </g>
  <g>
    <path class="st0" d="M230.3,52.7c-0.1,0-0.2-0.1-0.2-0.2v-3.1c0-0.1,0.1-0.2,0.2-0.2s0.2,0.1,0.2,0.2v3.1
			C230.5,52.6,230.4,52.7,230.3,52.7z" />
  </g>
  <g>
    <path class="st0" d="M231.5,52.7c-0.1,0-0.2-0.1-0.2-0.2v-3.1c0-0.1,0.1-0.2,0.2-0.2s0.2,0.1,0.2,0.2v3.1
			C231.7,52.6,231.6,52.7,231.5,52.7z" />
  </g>
  <g>
    <path class="st0" d="M232.6,52.7c-0.1,0-0.2-0.1-0.2-0.2v-3.1c0-0.1,0.1-0.2,0.2-0.2s0.2,0.1,0.2,0.2v3.1
			C232.9,52.6,232.8,52.7,232.6,52.7z" />
  </g>
  <g>
    <path class="st0" d="M233.8,52.7c-0.1,0-0.2-0.1-0.2-0.2v-3.1c0-0.1,0.1-0.2,0.2-0.2s0.2,0.1,0.2,0.2v3.1
			C234,52.6,234,52.7,233.8,52.7z" />
  </g>
  <g>
    <path class="st0" d="M235,52.7c-0.1,0-0.2-0.1-0.2-0.2v-3.1c0-0.1,0.1-0.2,0.2-0.2s0.2,0.1,0.2,0.2v3.1
			C235.2,52.6,235.1,52.7,235,52.7z" />
  </g>
  <g>
    <path class="st0" d="M247.2,52.2c-0.7,0-1.4-0.6-1.4-1.4c0-0.7,0.6-1.4,1.4-1.4c0.7,0,1.4,0.6,1.4,1.4
			C248.5,51.6,247.9,52.2,247.2,52.2z M247.2,50c-0.5,0-0.9,0.4-0.9,0.9s0.4,0.9,0.9,0.9s0.9-0.4,0.9-0.9
			C248.1,50.4,247.7,50,247.2,50z" />
  </g>
  <path class="st0" d="M239,50.7v0.4h-0.4v-0.4H239 M239,50.2h-0.4c-0.2,0-0.4,0.2-0.4,0.4V51c0,0.2,0.2,0.4,0.4,0.4h0.4
		c0.2,0,0.4-0.2,0.4-0.4v-0.4C239.4,50.4,239.2,50.2,239,50.2L239,50.2z" />
  <path class="st0" d="M241.4,50.7v0.4H241v-0.4H241.4 M241.4,50.2H241c-0.2,0-0.4,0.2-0.4,0.4V51c0,0.2,0.2,0.4,0.4,0.4h0.4
		c0.2,0,0.4-0.2,0.4-0.4v-0.4C241.8,50.4,241.6,50.2,241.4,50.2L241.4,50.2z" />
  <path class="st0" d="M243.8,50.7v0.4h-0.4v-0.4H243.8 M243.8,50.2h-0.4c-0.2,0-0.4,0.2-0.4,0.4V51c0,0.2,0.2,0.4,0.4,0.4h0.4
		c0.2,0,0.4-0.2,0.4-0.4v-0.4C244.2,50.4,244,50.2,243.8,50.2L243.8,50.2z" />
  <g>
    <path class="st0" d="M230.3,61.2c-0.1,0-0.2-0.1-0.2-0.2v-3.1c0-0.1,0.1-0.2,0.2-0.2s0.2,0.1,0.2,0.2V61
			C230.5,61.1,230.4,61.2,230.3,61.2z" />
  </g>
  <g>
    <path class="st0" d="M231.5,61.2c-0.1,0-0.2-0.1-0.2-0.2v-3.1c0-0.1,0.1-0.2,0.2-0.2s0.2,0.1,0.2,0.2V61
			C231.7,61.1,231.6,61.2,231.5,61.2z" />
  </g>
  <g>
    <path class="st0" d="M232.6,61.2c-0.1,0-0.2-0.1-0.2-0.2v-3.1c0-0.1,0.1-0.2,0.2-0.2s0.2,0.1,0.2,0.2V61
			C232.9,61.1,232.8,61.2,232.6,61.2z" />
  </g>
  <g>
    <path class="st0" d="M233.8,61.2c-0.1,0-0.2-0.1-0.2-0.2v-3.1c0-0.1,0.1-0.2,0.2-0.2s0.2,0.1,0.2,0.2V61
			C234,61.1,234,61.2,233.8,61.2z" />
  </g>
  <g>
    <path class="st0" d="M235,61.2c-0.1,0-0.2-0.1-0.2-0.2v-3.1c0-0.1,0.1-0.2,0.2-0.2s0.2,0.1,0.2,0.2V61
			C235.2,61.1,235.1,61.2,235,61.2z" />
  </g>
  <g>
    <path class="st0" d="M247.2,60.8c-0.7,0-1.4-0.6-1.4-1.4c0-0.7,0.6-1.4,1.4-1.4c0.7,0,1.4,0.6,1.4,1.4
			C248.5,60.2,247.9,60.8,247.2,60.8z M247.2,58.5c-0.5,0-0.9,0.4-0.9,0.9s0.4,0.9,0.9,0.9s0.9-0.4,0.9-0.9S247.7,58.5,247.2,58.5z" />
  </g>
  <path class="st0" d="M239,59.2v0.4h-0.4v-0.4H239 M239,58.8h-0.4c-0.2,0-0.4,0.2-0.4,0.4v0.4c0,0.2,0.2,0.4,0.4,0.4h0.4
		c0.2,0,0.4-0.2,0.4-0.4v-0.4C239.4,58.9,239.2,58.8,239,58.8L239,58.8z" />
  <path class="st0" d="M241.4,59.2v0.4H241v-0.4H241.4 M241.4,58.8H241c-0.2,0-0.4,0.2-0.4,0.4v0.4c0,0.2,0.2,0.4,0.4,0.4h0.4
		c0.2,0,0.4-0.2,0.4-0.4v-0.4C241.8,58.9,241.6,58.8,241.4,58.8L241.4,58.8z" />
  <path class="st0" d="M243.8,59.2v0.4h-0.4v-0.4H243.8 M243.8,58.8h-0.4c-0.2,0-0.4,0.2-0.4,0.4v0.4c0,0.2,0.2,0.4,0.4,0.4h0.4
		c0.2,0,0.4-0.2,0.4-0.4v-0.4C244.2,58.9,244,58.8,243.8,58.8L243.8,58.8z" />
  <g>
    <path class="st0" d="M230.3,69.7c-0.1,0-0.2-0.1-0.2-0.2v-3.1c0-0.1,0.1-0.2,0.2-0.2s0.2,0.1,0.2,0.2v3.1
			C230.5,69.7,230.4,69.7,230.3,69.7z" />
  </g>
  <g>
    <path class="st0" d="M231.5,69.7c-0.1,0-0.2-0.1-0.2-0.2v-3.1c0-0.1,0.1-0.2,0.2-0.2s0.2,0.1,0.2,0.2v3.1
			C231.7,69.7,231.6,69.7,231.5,69.7z" />
  </g>
  <g>
    <path class="st0" d="M232.6,69.7c-0.1,0-0.2-0.1-0.2-0.2v-3.1c0-0.1,0.1-0.2,0.2-0.2s0.2,0.1,0.2,0.2v3.1
			C232.9,69.7,232.8,69.7,232.6,69.7z" />
  </g>
  <g>
    <path class="st0" d="M233.8,69.7c-0.1,0-0.2-0.1-0.2-0.2v-3.1c0-0.1,0.1-0.2,0.2-0.2s0.2,0.1,0.2,0.2v3.1
			C234,69.7,234,69.7,233.8,69.7z" />
  </g>
  <g>
    <path class="st0" d="M235,69.7c-0.1,0-0.2-0.1-0.2-0.2v-3.1c0-0.1,0.1-0.2,0.2-0.2s0.2,0.1,0.2,0.2v3.1
			C235.2,69.7,235.1,69.7,235,69.7z" />
  </g>
  <g>
    <path class="st0" d="M247.2,69.3c-0.7,0-1.4-0.6-1.4-1.4c0-0.7,0.6-1.4,1.4-1.4c0.7,0,1.4,0.6,1.4,1.4S247.9,69.3,247.2,69.3z
			 M247.2,67.1c-0.5,0-0.9,0.4-0.9,0.9s0.4,0.9,0.9,0.9s0.9-0.4,0.9-0.9C248.1,67.5,247.7,67.1,247.2,67.1z" />
  </g>
  <path class="st0" d="M239,67.7v0.4h-0.4v-0.4H239 M239,67.3h-0.4c-0.2,0-0.4,0.2-0.4,0.4v0.4c0,0.2,0.2,0.4,0.4,0.4h0.4
		c0.2,0,0.4-0.2,0.4-0.4v-0.4C239.4,67.5,239.2,67.3,239,67.3L239,67.3z" />
  <path class="st0" d="M241.4,67.7v0.4H241v-0.4H241.4 M241.4,67.3H241c-0.2,0-0.4,0.2-0.4,0.4v0.4c0,0.2,0.2,0.4,0.4,0.4h0.4
		c0.2,0,0.4-0.2,0.4-0.4v-0.4C241.8,67.5,241.6,67.3,241.4,67.3L241.4,67.3z" />
  <path class="st0" d="M243.8,67.7v0.4h-0.4v-0.4H243.8 M243.8,67.3h-0.4c-0.2,0-0.4,0.2-0.4,0.4v0.4c0,0.2,0.2,0.4,0.4,0.4h0.4
		c0.2,0,0.4-0.2,0.4-0.4v-0.4C244.2,67.5,244,67.3,243.8,67.3L243.8,67.3z" />
  <path class="st0" d="M250.8,54.5c0.1,0,0.2-0.1,0.2-0.2v-6.7c0-0.1-0.1-0.2-0.2-0.2h-22.5c-0.1,0-0.2,0.1-0.2,0.2V51
		c-2,0.4-3.6,2.2-3.6,4.4c0,2,1.3,3.7,3.1,4.3c-1.8,0.6-3.1,2.3-3.1,4.3c0,2.2,1.5,4,3.6,4.4v3.1c0,0.1,0.1,0.2,0.2,0.2h22.5
		c0.1,0,0.2-0.1,0.2-0.2v-6.7c0-0.1-0.1-0.2-0.2-0.2h-2.9V63h2.9c0.1,0,0.2-0.1,0.2-0.2V56c0-0.1-0.1-0.2-0.2-0.2h-2.9v-1.4h2.9
		V54.5z M228.5,47.7h22V54h-22v-2.8v-0.4V47.7z M224.9,55.3c0-1.9,1.4-3.5,3.1-4v2.9c0,0.1,0.1,0.2,0.2,0.2h2.9v1.4h-2.9
		c-0.1,0-0.2,0.1-0.2,0.2v3.2C226.3,58.8,224.9,57.2,224.9,55.3z M224.9,63.8c0-1.9,1.4-3.5,3.1-4v2.9c0,0.1,0.1,0.2,0.2,0.2h2.9
		v1.4h-2.9c-0.1,0-0.2,0.1-0.2,0.2v3.2C226.3,67.4,224.9,65.7,224.9,63.8z M250.5,71.1h-22v-2.8v-0.4v-3h22V71.1L250.5,71.1z
		 M247.4,64.4h-15.7V63h15.7V64.4z M250.5,62.6h-22v-2.8v-0.1v-0.4v-0.1v-3h22V62.6L250.5,62.6z M247.4,55.8h-15.7v-1.4h15.7V55.8z" />
</g>
<g id="poster">
  <rect x="112" y="26" class="st0" width="0.8" height="0.8" />
  <rect x="110.4" y="26" class="st0" width="0.8" height="0.8" />
  <rect x="113.7" y="26" class="st0" width="0.8" height="0.8" />
  <rect x="107.6" y="19.1" class="st0" width="9.8" height="0.8" />
  <rect x="114.5" y="32.1" class="st0" width="0.8" height="0.8" />
  <path class="st0" d="M118.4,29.4l-1.5-2.3l0.9-0.9v-4.3c0.7-0.2,1.2-0.8,1.2-1.6v-2.2l-0.8-0.8c-0.1-3.1-2.6-5.5-5.6-5.5
		c-3.1,0-5.6,2.4-5.7,5.5l-0.8,0.8v2.2c0,0.8,0.5,1.4,1.2,1.6v4.3l0.9,0.9l-1.5,2.3L101,31l-1.4,2.2V37h0.8v-3.3l5.8-1.5l-0.2-0.8
		l-5.1,1.4l0.6-1l5.1-1.5c0.2,0.6,0.8,1.1,1.5,1.1h3.2v2.4h0.8v-3.2H108c-0.4,0-0.7-0.3-0.8-0.7l1.4-2.2l1.2,1.2h5.2l1.2-1.2
		l1.4,2.2c0,0.4-0.4,0.7-0.8,0.7h-4V37h0.8v-5.7h3.2c0.7,0,1.3-0.4,1.5-1.1l5.1,1.8l0.6,1l-5-1.7l-0.2,0.8l5.8,1.9v3h0.8v-3.4
		l-1.3-2.2L118.4,29.4z M108,22h8.9v1l-1.6,1.6l-0.7-0.6h-4.4l-0.6,0.6L108,23V22z M106.8,20.3v-1.9l0.6-0.6h1.1V17h-0.8
		c0.2-2.5,2.3-4.5,4.8-4.5c2.6,0,4.6,2,4.8,4.5h-8.1v0.8h8.4l0.6,0.6v1.9c0,0.4-0.4,0.8-0.8,0.8H117h-9h-0.4
		C107.1,21.2,106.8,20.8,106.8,20.3z M114.7,28.1h-4.5l-2.2-2.2v-1.7l1.6,1.6l1-1h3.7l1,1l1.6-1.6v1.7L114.7,28.1z" />
  <rect x="105.1" y="35.4" class="st0" width="0.8" height="1.6" />
  <rect x="119" y="35.4" class="st0" width="0.8" height="1.6" />
  <rect x="111.2" y="36.2" class="st0" width="0.8" height="0.8" />
  <rect x="111.2" y="34.6" class="st0" width="0.8" height="0.8" />
  <rect x="119.8" y="24" class="st0" width="0.8" height="0.8" />
  <rect x="121.4" y="25.6" class="st0" width="0.8" height="0.8" />
  <rect x="121.4" y="24" class="st0" width="0.8" height="0.8" />
  <rect x="119.8" y="27.2" class="st0" width="0.8" height="0.8" />
  <rect x="123" y="27.2" class="st0" width="0.8" height="0.8" />
  <rect x="123" y="28.9" class="st0" width="0.8" height="0.8" />
  <rect x="124.6" y="27.2" class="st0" width="0.8" height="0.8" />
  <rect x="99.5" y="28.9" class="st0" width="0.8" height="0.8" />
  <rect x="119.8" y="22.4" class="st0" width="0.8" height="0.8" />
  <rect x="123" y="25.6" class="st0" width="0.8" height="0.8" />
  <rect x="124.6" y="22.4" class="st0" width="0.8" height="0.8" />
  <rect x="124.6" y="24" class="st0" width="0.8" height="0.8" />
  <rect x="124.6" y="19.1" class="st0" width="0.8" height="0.8" />
  <rect x="123" y="20.8" class="st0" width="0.8" height="0.8" />
  <rect x="123" y="17.5" class="st0" width="0.8" height="0.8" />
  <rect x="121.4" y="19.1" class="st0" width="0.8" height="0.8" />
  <rect x="119.8" y="16.9" class="st0" width="0.8" height="0.8" />
  <rect x="118.8" y="14.2" class="st0" width="0.8" height="0.8" />
  <rect x="118.1" y="11" class="st0" width="0.8" height="0.8" />
  <rect x="101.1" y="20.8" class="st0" width="0.8" height="0.8" />
  <rect x="102.7" y="20.8" class="st0" width="0.8" height="0.8" />
  <rect x="102.7" y="25.6" class="st0" width="0.8" height="0.8" />
  <rect x="101.1" y="24" class="st0" width="0.8" height="0.8" />
  <rect x="99.5" y="25.6" class="st0" width="0.8" height="0.8" />
  <rect x="102.7" y="27.2" class="st0" width="0.8" height="0.8" />
  <rect x="101.1" y="27.2" class="st0" width="0.8" height="0.8" />
  <rect x="104.3" y="24" class="st0" width="0.8" height="0.8" />
  <rect x="99.5" y="22.4" class="st0" width="0.8" height="0.8" />
  <rect x="99.5" y="19.1" class="st0" width="0.8" height="0.8" />
  <rect x="102.7" y="17.5" class="st0" width="0.8" height="0.8" />
  <rect x="104.3" y="15.9" class="st0" width="0.8" height="0.8" />
  <rect x="99.5" y="11" class="st0" width="0.8" height="0.8" />
  <rect x="104.3" y="11" class="st0" width="0.8" height="0.8" />
  <rect x="106" y="11" class="st0" width="0.8" height="0.8" />
  <rect x="101.1" y="11" class="st0" width="0.8" height="0.8" />
  <rect x="101.1" y="19.1" class="st0" width="0.8" height="0.8" />
  <rect x="99.5" y="15.9" class="st0" width="0.8" height="0.8" />
  <rect x="101.1" y="15.9" class="st0" width="0.8" height="0.8" />
  <rect x="99.5" y="14.2" class="st0" width="0.8" height="0.8" />
  <rect x="104.3" y="12.6" class="st0" width="0.8" height="0.8" />
  <rect x="102.7" y="12.6" class="st0" width="0.8" height="0.8" />
  <rect x="124.6" y="16.1" class="st0" width="0.8" height="0.8" />
  <rect x="119.8" y="12.2" class="st0" width="0.8" height="0.8" />
</g>
<g id="radiator">
  <path class="st0" d="M279,77.7v1.1l0,0V77.7L279,77.7z M279,97.6v1.1l0,0V97.6L279,97.6z" />
  <path class="st0" d="M269.6,99c0.1,0.1,0.2,0.2,0.3,0.2C269.8,99.2,269.6,99.1,269.6,99z M270,98.1L270,98.1L270,98.1
		c0,0.2,0,0.3,0.2,0.4C270,98.4,270,98.3,270,98.1z" />
  <path class="st0" d="M278.2,76.6V80l0,0V76.6L278.2,76.6z" />
  <path class="st0" d="M297.6,96.8h-0.1c-0.2,0-0.4-0.2-0.4-0.4V80c0-0.2,0.2-0.4,0.4-0.4h0.1c0.7,0,1.3-0.6,1.3-1.3
		s-0.6-1.3-1.3-1.3h-0.1c-0.2,0-0.4-0.2-0.4-0.4v-0.1c0-0.5-0.4-1.3-1.3-1.3s-1.3,0.8-1.3,1.3v0.1c0,0.2-0.2,0.4-0.4,0.4h-0.2
		c-0.2,0-0.4-0.2-0.4-0.4v-0.1c0-0.5-0.4-1.3-1.3-1.3s-1.3,0.8-1.3,1.3v0.1c0,0.2-0.2,0.4-0.4,0.4h-0.2c-0.2,0-0.4-0.2-0.4-0.4v-0.1
		c0-0.5-0.4-1.3-1.3-1.3s-1.3,0.8-1.3,1.3v0.1c0,0.2-0.2,0.4-0.4,0.4h-0.2c-0.2,0-0.4-0.2-0.4-0.4v-0.1c0-0.5-0.4-1.3-1.3-1.3
		s-1.3,0.8-1.3,1.3v0.1c0,0.2-0.2,0.4-0.4,0.4h-0.2c-0.2,0-0.4-0.2-0.4-0.4v-0.1c0-0.5-0.4-1.3-1.3-1.3s-1.3,0.8-1.3,1.3v0.1
		c0,0.2-0.2,0.4-0.4,0.4h-0.2c-0.2,0-0.4-0.2-0.4-0.4v-0.2c0-0.5-0.4-1.3-1.3-1.3s-1.3,0.8-1.3,1.3v0.1c0,0.2-0.2,0.4-0.4,0.4h-0.2
		c-0.2,0-0.4-0.2-0.4-0.4v-0.1c0-0.5-0.4-1.3-1.3-1.3s-1.3,0.8-1.3,1.3v0.1c0,0.2-0.2,0.4-0.4,0.4h-0.6v-0.2c0-0.4-0.4-0.8-0.8-0.8
		h-1c-0.4,0-0.8,0.4-0.8,0.8v2.9c0,0.4,0.4,0.8,0.8,0.8h1c0.4,0,0.8-0.4,0.8-0.8v-0.2h0.6c0.2,0,0.4,0.2,0.4,0.4v16.4
		c0,0.2-0.2,0.4-0.4,0.4h-1.9c-0.2,0-0.5,0.1-0.7,0.2c-0.1,0-0.2,0.1-0.2,0.2c-0.1,0.1-0.1,0.1-0.2,0.2c0,0-0.1,0.1-0.1,0.2
		s-0.1,0.2-0.1,0.3l0,0c0,0.1,0,0.2,0,0.3c0,0.1,0,0.2,0,0.3c0,0.2,0.2,0.5,0.4,0.6c0.1,0.1,0.2,0.2,0.3,0.2
		c0.2,0.1,0.4,0.2,0.6,0.2h1.9c0.2,0,0.4,0.2,0.4,0.4v3.7c0,0.5,0.4,1.3,1.3,1.3s1.3-0.8,1.3-1.3c0-0.1,0-2.3,2.3-2.3h14.5
		c2.2,0,2.3,2.1,2.3,2.3c0,0.5,0.4,1.3,1.3,1.3s1.3-0.8,1.3-1.3v-3.7c0-0.2,0.2-0.4,0.4-0.4h0.1c0.7,0,1.3-0.6,1.3-1.3
		C298.9,97.4,298.3,96.8,297.6,96.8z M297,77.7c0.1,0,0.3,0.1,0.4,0.1h0.1c0.3,0,0.5,0.2,0.5,0.5s-0.2,0.5-0.5,0.5h-0.1
		c-0.2,0-0.3,0-0.4,0.1V77.7z M271,79.7h-1v-2.9h1V79.7z M270.5,98.6c-0.2,0-0.3-0.1-0.4-0.2s-0.2-0.2-0.2-0.4v-0.1
		c0-0.1,0.1-0.2,0.1-0.2s0.1-0.1,0.2-0.1s0.1,0,0.2,0c0.3,0,0.5,0.2,0.5,0.5C271,98.4,270.7,98.6,270.5,98.6z M272.8,98.7
		c-0.1,0-0.3-0.1-0.4-0.1h-0.7c0.1-0.2,0.1-0.3,0.1-0.5s0-0.4-0.1-0.5h0.7c0.1,0,0.3,0,0.4-0.1V98.7z M272.8,78.9
		c-0.1,0-0.3-0.1-0.4-0.1h-0.6v-1h0.6c0.1,0,0.3,0,0.4-0.1V78.9z M275.4,77.7c0.1,0,0.3,0.1,0.4,0.1h0.2c0.1,0,0.3,0,0.4-0.1v1.1
		c-0.1,0-0.3-0.1-0.4-0.1h-0.2c-0.1,0-0.3,0-0.4,0.1V77.7z M275.4,80c0-0.2,0.2-0.4,0.4-0.4h0.2c0.2,0,0.4,0.2,0.4,0.4v16.4
		c0,0.2-0.2,0.4-0.4,0.4h-0.2c-0.2,0-0.4-0.2-0.4-0.4V80z M275.4,97.6c0.1,0,0.3,0.1,0.4,0.1h0.2c0.1,0,0.3,0,0.4-0.1v1.1
		c-0.1,0-0.3-0.1-0.4-0.1h-0.2c-0.1,0-0.3,0-0.4,0.1V97.6z M273.6,76.5c0-0.1,0-0.5,0.5-0.5s0.5,0.4,0.5,0.5v23.4
		c0,0.2,0,0.5-0.5,0.5c-0.4,0-0.5-0.4-0.5-0.5V76.5z M274.6,103.5c0,0.1,0,0.5-0.5,0.5c-0.4,0-0.5-0.4-0.5-0.5v-2.4
		c0.2,0.1,0.3,0.1,0.5,0.1c0.9,0,1.3-0.8,1.3-1.3v-0.1c0-0.2,0.2-0.4,0.4-0.4h0.2c0.2,0,0.4,0.2,0.4,0.4v0.1c0,0.2,0,0.5,0.2,0.7
		C275,101.1,274.6,102.6,274.6,103.5z M278.2,99.9c0,0.1,0,0.5-0.5,0.5c-0.4,0-0.5-0.4-0.5-0.5V76.5c0-0.1,0-0.5,0.5-0.5
		s0.5,0.4,0.5,0.5V99.9z M279,77.7L279,77.7c0.1,0,0.3,0.1,0.4,0.1h0.2c0.1,0,0.3,0,0.4-0.1v1.1c-0.1,0-0.3-0.1-0.4-0.1h-0.2
		c-0.2,0-0.3,0-0.4,0.1l0,0V77.7z M280,80v16.4c0,0.2-0.2,0.4-0.4,0.4h-0.2c-0.2,0-0.4-0.2-0.4-0.4V79.9c0-0.2,0.2-0.4,0.4-0.4h0.2
		C279.8,79.6,280,79.8,280,80z M279,97.6L279,97.6c0.1,0,0.3,0.1,0.4,0.1h0.2c0.1,0,0.3,0,0.4-0.1v1.1c-0.1,0-0.3-0.1-0.4-0.1h-0.2
		c-0.2,0-0.3,0-0.4,0.1l0,0V97.6z M278.9,100.4c0.1-0.2,0.1-0.4,0.1-0.5v-0.2c0-0.2,0.2-0.4,0.4-0.4h0.2c0.2,0,0.4,0.2,0.4,0.4v0.1
		c0,0.2,0,0.3,0.1,0.5L278.9,100.4L278.9,100.4z M281.8,99.9c0,0.2-0.1,0.5-0.5,0.5s-0.5-0.4-0.5-0.5V76.5c0-0.1,0-0.5,0.5-0.5
		c0.4,0,0.5,0.4,0.5,0.5V99.9z M282.6,77.7c0.1,0,0.2,0.1,0.4,0.1h0.2c0.1,0,0.3,0,0.4-0.1v1.1c-0.1,0-0.3-0.1-0.4-0.1H283
		c-0.1,0-0.3,0-0.4,0.1V77.7L282.6,77.7z M282.6,80c0-0.2,0.2-0.4,0.4-0.4h0.2c0.2,0,0.4,0.2,0.4,0.4v16.4c0,0.2-0.2,0.4-0.4,0.4
		H283c-0.2,0-0.4-0.2-0.4-0.4V80L282.6,80z M282.6,97.6c0.1,0,0.2,0.1,0.4,0.1h0.2c0.1,0,0.3,0,0.4-0.1v1.1c-0.1,0-0.3-0.1-0.4-0.1
		H283c-0.1,0-0.3,0-0.4,0.1V97.6L282.6,97.6z M282.5,100.4c0.1-0.2,0.1-0.4,0.1-0.5v-0.1c0-0.2,0.2-0.4,0.4-0.4h0.2
		c0.2,0,0.4,0.2,0.4,0.4v0.1c0,0.2,0,0.3,0.1,0.5H282.5z M285.4,99.9c0,0.2,0,0.5-0.5,0.5c-0.4,0-0.5-0.4-0.5-0.5V76.5
		c0-0.1,0-0.5,0.5-0.5s0.5,0.4,0.5,0.5V99.9z M286.2,77.7c0.1,0,0.3,0.1,0.4,0.1h0.2c0.2,0,0.3,0,0.4-0.1v1.1
		c-0.1,0-0.2-0.1-0.4-0.1h-0.2c-0.1,0-0.3,0-0.4,0.1V77.7z M286.2,80c0-0.2,0.2-0.4,0.4-0.4h0.2c0.2,0,0.4,0.2,0.4,0.4v16.4
		c0,0.2-0.2,0.4-0.4,0.4h-0.2c-0.2,0-0.4-0.2-0.4-0.4V80z M286.2,97.6c0.1,0,0.3,0.1,0.4,0.1h0.2c0.2,0,0.3,0,0.4-0.1v1.1
		c-0.1,0-0.2-0.1-0.4-0.1h-0.2c-0.1,0-0.3,0-0.4,0.1V97.6z M286.1,100.4c0.1-0.2,0.1-0.4,0.1-0.5v-0.1c0-0.2,0.2-0.4,0.4-0.4h0.2
		c0.2,0,0.4,0.2,0.4,0.4v0.1c0,0.2,0,0.3,0.1,0.5H286.1z M289,99.9c0,0.2-0.1,0.5-0.5,0.5s-0.5-0.4-0.5-0.5V76.5
		c0-0.1,0-0.5,0.5-0.5c0.4,0,0.5,0.4,0.5,0.5V99.9z M289.8,77.7c0.1,0,0.3,0.1,0.4,0.1h0.2c0.2,0,0.3,0,0.4-0.1v1.1
		c-0.1,0-0.3-0.1-0.4-0.1h-0.2c-0.2,0-0.3,0-0.4,0.1V77.7z M289.8,80c0-0.2,0.2-0.4,0.4-0.4h0.2c0.2,0,0.4,0.2,0.4,0.4v16.4
		c0,0.2-0.2,0.4-0.4,0.4h-0.2c-0.2,0-0.4-0.2-0.4-0.4V80z M289.8,97.6c0.1,0,0.3,0.1,0.4,0.1h0.2c0.2,0,0.3,0,0.4-0.1v1.1
		c-0.1,0-0.3-0.1-0.4-0.1h-0.2c-0.2,0-0.3,0-0.4,0.1V97.6z M289.7,100.4c0.1-0.2,0.1-0.4,0.1-0.5v-0.1c0-0.2,0.2-0.4,0.4-0.4h0.2
		c0.2,0,0.4,0.2,0.4,0.4v0.1c0,0.2,0,0.3,0.1,0.5H289.7z M292.6,99.9c0,0.1,0,0.5-0.5,0.5l0,0c-0.5,0-0.5-0.4-0.5-0.5V76.5
		c0-0.2,0-0.5,0.5-0.5c0.4,0,0.5,0.4,0.5,0.5V99.9L292.6,99.9z M293.4,77.7c0.1,0,0.3,0.1,0.4,0.1h0.2c0.2,0,0.3,0,0.4-0.1v1.1
		c-0.1,0-0.3-0.1-0.4-0.1h-0.2c-0.2,0-0.3,0-0.4,0.1V77.7z M293.4,80c0-0.2,0.2-0.4,0.4-0.4h0.2c0.2,0,0.4,0.2,0.4,0.4v16.4
		c0,0.2-0.2,0.4-0.4,0.4h-0.2c-0.2,0-0.4-0.2-0.4-0.4V80z M293.4,97.6c0.1,0,0.3,0.1,0.4,0.1h0.2c0.2,0,0.3,0,0.4-0.1v1.1
		c-0.1,0-0.3-0.1-0.4-0.1h-0.2c-0.2,0-0.3,0-0.4,0.1V97.6z M296.3,103.5c0,0.2-0.1,0.5-0.5,0.5s-0.5-0.4-0.5-0.5
		c0-0.9-0.4-2.4-2-2.9c0.1-0.2,0.2-0.5,0.2-0.7v-0.1c0-0.2,0.2-0.4,0.4-0.4h0.2c0.2,0,0.4,0.2,0.4,0.4v0.1c0,0.5,0.4,1.3,1.3,1.3
		c0.2,0,0.4,0,0.5-0.1V103.5z M296.3,99.9c0,0.1,0,0.5-0.5,0.5s-0.5-0.4-0.5-0.5V76.5c0-0.2,0.1-0.5,0.5-0.5s0.5,0.4,0.5,0.5V99.9z
		 M297.6,98.6h-0.1c-0.2,0-0.3,0-0.4,0.1v-1.1c0.1,0,0.3,0.1,0.4,0.1h0.1c0.3,0,0.5,0.2,0.5,0.5S297.8,98.6,297.6,98.6z" />
  <path class="st0" d="M278.2,96.5v3.4l0,0V96.5L278.2,96.5z" />
  <path class="st0" d="M273.4,100.8" />
  <path class="st0" d="M269.2,97.8c0,0.1,0,0.2,0,0.3s0,0.2,0,0.3c0-0.1,0-0.2,0-0.3S269.2,97.9,269.2,97.8z" />
</g>
<g id="plant">
  <polygon class="st0" points="105.9,90.5 92.2,90.5 93.9,103.8 103.8,103.8 	" />
  <g>
    <path class="st0" d="M98.4,90.9c-0.1,0-0.2-0.1-0.2-0.2S97.7,80,96.5,74.5c0-0.1,0.1-0.3,0.2-0.3s0.3,0.1,0.3,0.2
			c1.3,5.6,1.8,16.2,1.8,16.3C98.6,90.7,98.5,90.9,98.4,90.9L98.4,90.9z" />
  </g>
  <g>
    <path class="st0" d="M99.7,90.9c-0.1,0-0.2-0.1-0.2-0.2s-0.1-8.2,2.4-14.5c0.1-0.1,0.2-0.2,0.3-0.1c0.1,0.1,0.2,0.2,0.1,0.3
			c-2.5,6.1-2.4,14.2-2.4,14.3C99.9,90.8,99.8,90.9,99.7,90.9L99.7,90.9z" />
  </g>
  <g>
    <path class="st0" d="M97.6,90.8c-0.1,0-0.2-0.1-0.2-0.2s-1.1-9.9-5-14.1c-0.1-0.1-0.1-0.3,0-0.3c0.1-0.1,0.3-0.1,0.3,0
			c4,4.3,5.1,14,5.1,14.4C97.9,90.7,97.8,90.8,97.6,90.8C97.7,90.8,97.6,90.8,97.6,90.8z" />
  </g>
  <g>
    <path class="st0" d="M99,90.9c-0.1,0-0.2-0.1-0.2-0.2c0-0.4-0.7-10.5,0.6-15.5c0-0.1,0.2-0.2,0.3-0.2c0.1,0,0.2,0.2,0.2,0.3
			c-1.3,4.9-0.6,15.2-0.6,15.3C99.3,90.7,99.2,90.9,99,90.9C99.1,90.9,99,90.9,99,90.9z" />
  </g>
  <g>
    <path class="st0" d="M100.3,90.9c-0.1,0-0.2-0.1-0.2-0.2s-0.2-6.4,4.8-10.2c0.1-0.1,0.3-0.1,0.3,0s0.1,0.3,0,0.3
			c-4.8,3.6-4.6,9.7-4.6,9.7C100.6,90.7,100.5,90.9,100.3,90.9L100.3,90.9z" />
  </g>
  <g>
    <path class="st0" d="M90.1,78.8c-0.2,0-0.3,0-0.3-0.1l-2.5-0.8c-0.1,0-0.2-0.1-0.2-0.3c0-0.1,0.1-0.2,0.2-0.2
			c0.4,0,1.5-0.3,1.8-0.9v-0.1c0,0-0.1,0-0.2,0c-0.6,0-1.7,0.4-2.3,0.9c-0.1,0.1-0.2,0.1-0.3,0c-0.2-0.1-1.8-0.7-2.3-1.5
			c0-0.1,0-0.2,0-0.2s0.1-0.1,0.2-0.1c0.8,0,1.7-0.2,1.8-0.5c0,0,0-0.1,0-0.2s-0.1-0.2-0.5-0.2c-0.7,0-1.8,0.6-1.8,0.6
			c-0.1,0-0.2,0-0.2,0c-0.1-0.1-2.2-1.3-2.3-2.8v-0.1v-0.1c0,0,0-0.1,0.1-0.1c1.1-0.9,4.1-1,4.2-1s0.2,0.1,0.2,0.2
			c0.1,0.4,0.6,1.6,1.2,1.4c0.1,0,0.1-0.1,0.1-0.1c0-0.1-0.4-0.7-0.8-1c-0.1-0.1-0.1-0.2-0.1-0.2c0-0.1,0.1-0.2,0.2-0.2
			c0.9-0.1,2.5,0.7,2.6,0.7S89,72,89,72.1c0.1,0.7,0.6,2,0.9,2.1c0,0,0.1,0,0.2-0.2c0.3-0.6-0.2-1.6-0.4-1.9c-0.1-0.1-0.1-0.2,0-0.3
			c0.1-0.1,0.2-0.1,0.3,0l2.3,1.4c0.2,0.1,0.9,0.4,0.8,2c0,0.9-0.3,1.3-0.4,1.5s-0.2,0.8-0.9,1.3C90.9,78.7,90.4,78.8,90.1,78.8z
			 M90,78.3c0,0,0.5,0.2,1.5-0.7c0.6-0.5,0.7-1,0.7-1.1s0-0.1,0.1-0.1l0,0c0,0,0.3-0.3,0.3-1.2c0.1-1.4-0.5-1.6-0.5-1.6s0,0-0.1,0
			l-1.6-0.9c0.2,0.5,0.3,1.1,0.1,1.7c-0.3,0.5-0.7,0.6-1,0.3c-0.4-0.4-0.8-1.7-0.9-2.1c-0.3-0.1-1-0.5-1.6-0.6
			c0.3,0.3,0.6,0.7,0.5,1.1c0,0.1-0.2,0.3-0.5,0.4c-1,0.2-1.5-1.1-1.7-1.6c-0.6,0-2.8,0.2-3.7,0.8c0.1,1,1.6,2,2,2.2
			c0.3-0.2,1.2-0.6,1.9-0.6c0.5,0,0.8,0.2,0.9,0.4c0.2,0.3,0.1,0.5,0,0.6c-0.2,0.4-1.1,0.6-1.7,0.7c0.5,0.4,1.2,0.7,1.6,0.9
			c0.7-0.5,1.8-0.9,2.5-0.9c0.3,0,0.5,0.1,0.6,0.3c0.1,0.1,0.1,0.3,0,0.5c-0.2,0.5-0.8,0.9-1.3,1L90,78.3
			C89.9,78.3,89.9,78.3,90,78.3L90,78.3z" />
  </g>
  <g>
    <path class="st0" d="M101.6,76.5c-0.1,0-0.1,0-0.2,0c-0.9,0-1.6-0.7-1.8-1c-0.3,0-1-0.1-1.8-0.9c-1.6-1.6-1.2-2.8-1.1-2.9l0.8-2.7
			c0-0.1,0.1-0.2,0.2-0.2s0.2,0.1,0.2,0.2c0,0,0.4,1.8,1.4,2.2c0.1,0.1,0.2,0.1,0.3,0.1c0.1-0.4-1.1-2.5-1.6-3.2
			c-0.1-0.1-0.1-0.1,0-0.2c0-0.1,0.8-1.8,1.7-2.3c0.1,0,0.2,0,0.2,0c0.1,0,0.1,0.1,0.1,0.2c0.1,0.9,0.4,2,0.7,2h0.1
			c0.1-0.1,0.2-0.1,0.2-0.2c0.2-0.6-0.5-1.9-0.8-2.3c-0.1-0.1,0-0.2,0-0.3c0.1-0.1,2-2.6,3.7-2.6h0.1h0.1c0,0,0.1,0,0.1,0.1
			c1.2,1.4,1.1,4.6,1.1,4.8c0,0.1-0.1,0.2-0.2,0.2c-0.4,0.1-1.6,0.5-1.9,1.1c-0.1,0.1-0.1,0.3-0.1,0.5c0.1,0.2,0.2,0.2,0.2,0.2
			c0.4,0,1.1-0.6,1.5-1c0.1-0.1,0.1-0.1,0.2-0.1s0.2,0.1,0.2,0.2c0.3,1.1-0.2,3.1-0.2,3.2s-0.1,0.2-0.3,0.2c-0.1,0-0.2,0-0.2,0
			c-1.1,0-2.4,0.6-2.5,1c0,0.1,0.1,0.1,0.1,0.1c0.2,0.1,0.4,0.2,0.7,0.2c0.8,0,1.6-0.5,1.6-0.5c0.1-0.1,0.2-0.1,0.3,0
			c0.1,0.1,0.1,0.2,0.1,0.3l-1,2.8C103.8,75.5,103.4,76.5,101.6,76.5z M99.7,75c0.1,0,0.2,0,0.2,0.1c0,0,0.6,0.9,1.5,0.9
			c1.7,0.1,2-0.7,2-0.7l0.8-2.2c-0.3,0.1-0.8,0.3-1.3,0.3c-0.3,0-0.6-0.1-0.9-0.2c-0.4-0.2-0.4-0.6-0.4-0.7c0.2-0.7,1.9-1.4,3-1.3
			c0.1-0.4,0.3-1.5,0.3-2.3c-0.4,0.4-1,0.9-1.5,0.9c-0.2,0-0.5-0.1-0.7-0.6c-0.1-0.3-0.1-0.6,0.1-0.8c0.4-0.7,1.6-1.1,2-1.2
			c0-0.7-0.1-3.1-1-4.2c-1.2,0.1-2.7,1.8-3.1,2.3c0.3,0.4,1,1.7,0.7,2.5c-0.1,0.2-0.2,0.4-0.4,0.6c-0.1,0.1-0.2,0.1-0.4,0.1
			c-0.7,0-1-1.3-1.1-2c-0.4,0.5-0.9,1.3-1.1,1.7c0.4,0.6,1.8,2.8,1.6,3.5c-0.1,0.3-0.4,0.4-0.9,0.1c-0.7-0.3-1.2-1.2-1.4-1.8l-0.6,2
			c0,0-0.3,1.1,1,2.4c0.7,0.6,1.2,0.7,1.4,0.7C99.6,75,99.6,75,99.7,75C99.6,75,99.6,75,99.7,75z" />
  </g>
  <g>
    <path class="st0" d="M99.7,75.4C99.6,75.4,99.6,75.4,99.7,75.4c-0.2-0.1-0.3-0.2-0.2-0.3l4.2-12.6c0-0.1,0.2-0.2,0.3-0.2
			c0.1,0,0.2,0.2,0.2,0.3L100,75.2C99.9,75.4,99.8,75.4,99.7,75.4z" />
  </g>
  <g>
    <path class="st0" d="M105.4,83.2c-0.3,0-0.7-0.1-1.1-0.3c-0.6-0.3-0.8-0.7-0.9-0.8c-0.1-0.1-0.4-0.4-0.5-1.2
			c-0.3-1.3,0.2-1.8,0.4-1.9l1.7-1.8c0.1-0.1,0.2-0.1,0.3,0c0.1,0.1,0.1,0.2,0.1,0.3c-0.1,0.3-0.4,1.3-0.1,1.8c0,0,0,0.1,0.1,0.1
			c0.2-0.3,0.4-1.9,0.4-2.5c0-0.1,0-0.1,0.1-0.2s1.3-1.2,2.1-1.4c0.1,0,0.2,0,0.2,0.1c0.1,0.1,0.1,0.2,0,0.3
			c-0.4,0.7-0.6,1.5-0.5,1.6c0.5-0.1,0.8-1.3,0.8-2.1c0-0.1,0.1-0.2,0.1-0.2c0.1,0,1.8-0.8,3-0.8c0.3,0,0.5,0,0.6,0.1
			c0,0,0.1,0,0.1,0.1l0,0v0.1c0.1,1.2-1.3,3.6-1.4,3.7s-0.2,0.1-0.3,0.1c0,0-0.4-0.1-0.9-0.1c-0.4,0-1,0.1-1.1,0.4
			c0,0.1,0,0.1,0,0.1l0,0c0,0,0.1,0.1,0.3,0.1c0.5,0,1.2-0.2,1.2-0.2c0.1,0,0.2,0,0.2,0.1c0.1,0.1,0.1,0.2,0.1,0.3
			c-0.3,0.8-1.6,1.9-1.7,1.9c-0.1,0.1-0.2,0.1-0.3,0c-0.2-0.1-0.7-0.2-1.1-0.2c-0.7,0-1,0.2-1,0.2c0.2,0.3,0.6,0.3,0.9,0.3
			s0.6-0.1,0.6-0.1c0.1,0,0.2,0,0.3,0.1c0,0.1,0,0.2-0.1,0.3l-2,1.4C106,83,105.8,83.2,105.4,83.2z M103.5,79.3c0,0-0.4,0.3-0.2,1.5
			c0.2,0.7,0.4,0.9,0.4,0.9c0.1,0,0.1,0.1,0.1,0.1s0.1,0.4,0.7,0.6c0.3,0.1,0.6,0.2,0.9,0.2s0.4-0.1,0.4-0.1l1.3-1
			c-0.5,0-0.9-0.2-1.1-0.5c-0.2-0.2-0.1-0.4,0-0.5c0.2-0.5,1.2-0.5,1.5-0.5c0.5,0,0.9,0.1,1.2,0.2c0.3-0.3,0.8-0.7,1.1-1.1
			c-0.2,0-0.5,0.1-0.7,0.1c-0.3,0-0.6-0.1-0.7-0.3c-0.1-0.1-0.1-0.3,0-0.5c0.1-0.3,0.5-0.8,1.5-0.8c0.3,0,0.6,0,0.8,0.1
			c0.4-0.7,1.2-2.3,1.3-3.2c-0.1,0-0.2,0-0.3,0c-0.9,0-2.2,0.5-2.7,0.7c0,0.6-0.2,2.2-1.1,2.4h-0.1l0,0c-0.2,0-0.3-0.1-0.4-0.2
			c-0.2-0.3,0-1,0.2-1.5c-0.5,0.3-1,0.7-1.2,1c0,0.5-0.1,2.2-0.5,2.7c-0.1,0.2-0.3,0.2-0.4,0.2c-0.2,0-0.3-0.1-0.4-0.3
			c-0.3-0.3-0.3-0.8-0.2-1.3L103.5,79.3L103.5,79.3L103.5,79.3z" />
  </g>
  <g>
    <path class="st0" d="M103.6,82.2c-0.1,0-0.1,0-0.2-0.1s-0.1-0.3,0-0.3l8.5-7.5c0.1-0.1,0.3-0.1,0.3,0c0.1,0.1,0.1,0.3,0,0.3
			l-8.5,7.5C103.7,82.2,103.6,82.2,103.6,82.2z" />
  </g>
  <g>
    <path class="st0" d="M92.6,76.6L92.6,76.6c-3.2-1.6-11.3-3.8-11.4-3.8S81,72.6,81,72.5c0-0.1,0.2-0.2,0.3-0.2
			c0.3,0.1,8.2,2.2,11.4,3.8c0.1,0.1,0.2,0.2,0.1,0.3C92.8,76.5,92.7,76.6,92.6,76.6z" />
  </g>
  <g>
    <path class="st0" d="M104.1,104H93.7c-0.1,0-0.2-0.1-0.2-0.2L92,90.7c0-0.1,0-0.1,0.1-0.2c0-0.1,0.1-0.1,0.2-0.1H106
			c0.1,0,0.1,0,0.2,0.1c0,0.1,0.1,0.1,0.1,0.2l-1.8,13.1C104.3,103.9,104.2,104,104.1,104z M93.9,103.5h10l1.7-12.7H92.5L93.9,103.5
			z" />
  </g>
  <g>
    <path class="st0" d="M94.6,75.3c-1,0-1.3-0.3-1.4-0.5l-1.8-2c-0.1-0.1-0.1-0.2,0-0.3s0.2-0.1,0.3-0.1c0,0,0.7,0.3,1.3,0.3
			c0.3,0,0.5-0.1,0.7-0.2c0.1,0,0.1-0.1,0.1-0.1c-0.1-0.2-1.1-0.6-2.1-0.6c-0.2,0-0.4,0-0.5,0s-0.2,0-0.2-0.1
			c-0.1-0.2-1.2-1.5-1.2-2.4c0-0.1,0-0.2,0.1-0.2s0.2,0,0.2,0c0.3,0.2,1.1,0.6,1.6,0.6c0.2,0,0.2-0.1,0.2-0.2c0-0.6-1.5-0.8-2.2-0.8
			c-0.1,0-0.2-0.1-0.2-0.2s-0.7-3-0.1-4.3c0,0,0-0.1,0.1-0.1h0.1h0.1c1.4-0.2,3.9,1.5,4,1.6s0.1,0.2,0.1,0.3c-0.2,0.7-0.6,2.1,0,2.4
			c0.1,0,0.1,0,0.2,0c0.2-0.3,0.2-1.2,0.1-1.8c0-0.1,0-0.2,0.1-0.2c0.1-0.1,0.2-0.1,0.2,0c0.9,0.3,1.8,1.9,1.9,2c0,0.1,0,0.2,0,0.3
			c-0.2,0.6-0.7,2.4-0.5,2.7c0,0,0.1,0,0.2-0.1c0.6-0.4,0.6-1.5,0.6-1.9c0-0.1,0.1-0.2,0.2-0.2s0.2,0,0.3,0.1l0.5,1
			c0,0.1,0,0.1,0,0.2c0,0-0.1,0.2-0.2,0.6c0,0.2-0.1,0.4-0.1,0.5s-0.1,0.2-0.1,0.3C97,72,97,72.3,97,72.5c0,0.1,0.1,0.3,0.2,0.5
			c0.2,0.3,0.3,0.5,0.3,0.6c0.1,0.1,0.1,0.2,0,0.4c-0.4,0.5-0.7,0.6-0.8,0.7c-0.1,0.1-0.6,0.5-1.4,0.6
			C95.1,75.3,94.8,75.3,94.6,75.3z M93.6,74.6c0,0,0.2,0.2,0.9,0.2c0.2,0,0.4,0,0.7-0.1c0.8-0.1,1.1-0.5,1.2-0.5l0.1-0.1l0,0
			c0,0,0.2-0.1,0.5-0.4c-0.1-0.1-0.2-0.3-0.3-0.6c-0.1-0.2-0.2-0.5-0.2-0.6c0-0.3,0-0.6,0.1-1c0-0.1,0.1-0.2,0.1-0.4
			c0-0.1,0.1-0.3,0.1-0.5c0.1-0.3,0.1-0.5,0.2-0.6h-0.1c-0.1,0.5-0.3,1.1-0.8,1.5c-0.4,0.3-0.7,0.2-0.9-0.1c-0.3-0.6,0.3-2.5,0.5-3
			C95.5,68,95,67.3,94.5,67c0,0.5,0,1.3-0.3,1.7c-0.2,0.2-0.4,0.3-0.7,0.2c-1-0.4-0.5-2.2-0.4-2.8c-0.5-0.3-2.3-1.5-3.4-1.4
			c-0.4,0.9-0.1,2.8,0.1,3.7c0.6,0,2.5,0.2,2.5,1.3c0,0.4-0.3,0.7-0.7,0.7l0,0c-0.4,0-1-0.2-1.4-0.4c0.2,0.6,0.6,1.2,0.9,1.6
			c0.1,0,0.3,0,0.5,0c0.9,0,2.4,0.4,2.6,0.9c0,0.1,0.1,0.4-0.2,0.6c-0.3,0.2-0.6,0.3-1,0.3c-0.2,0-0.4,0-0.6-0.1L93.6,74.6
			C93.6,74.5,93.6,74.5,93.6,74.6L93.6,74.6z" />
  </g>
  <g>
    <path class="st0" d="M96.6,74.6c-0.1,0-0.2,0-0.2-0.1c-1.4-2.8-6.8-9.9-6.9-10s-0.1-0.3,0-0.3c0.1-0.1,0.3-0.1,0.3,0
			c0.2,0.3,5.5,7.3,6.9,10.1C96.8,74.4,96.7,74.6,96.6,74.6C96.7,74.6,96.6,74.6,96.6,74.6z" />
  </g>
  <g>
    <path class="st0" d="M104.7,76.8c-0.3,0-0.8-0.1-1.5-1.1c-0.1-0.1-0.1-0.2,0-0.3c0,0,0.1-0.2,0.2-0.5l0.3-0.7c0,0,0.3-0.7,0.5-1.2
			c-0.1,0-0.1,0.1-0.2,0.1s-0.4,0.1-0.5,0.2c-0.1,0-0.2,0-0.3-0.1c-0.1-0.1-0.1-0.2,0-0.3c0.7-1.3,1.3-1.5,1.4-1.5l2.6-0.7
			c0.1,0,0.2,0,0.3,0.1c0.1,0.1,0,0.2-0.1,0.3c-0.3,0.2-1.2,1-1.2,1.6c0,0.1,0,0.1,0,0.1c0.4-0.1,1.5-1.5,1.9-2.1
			c0-0.1,0.1-0.1,0.2-0.1s1.8,0.2,2.6,0.5c0.1,0,0.2,0.1,0.2,0.2s-0.1,0.2-0.2,0.2c-0.6,0.2-1.2,0.5-1.3,0.7l0,0c0.1,0,0.1,0,0.2,0
			c0.6,0,1.4-0.7,1.7-1c0.1-0.1,0.1-0.1,0.2-0.1c0.3,0.1,2.9,0.8,3.6,1.7v0.1V73v0.1c-0.5,0.9-2.2,1.5-3.2,1.7H112l0,0
			c-0.1,0-0.2,0-0.3-0.1c-0.1-0.1-0.1-0.2-0.1-0.3c-0.1,0-0.2,0-0.3,0h-0.2c-0.2,0-0.3,0-0.3-0.1c-0.6-0.4-1-0.5-1.3-0.3
			c-0.1,0.1-0.1,0.1-0.1,0.1s0,0,0.1,0s0.2,0.1,0.2,0.2c0,0.2-0.1,0.2-0.5,0.3c-0.2,0.1-0.6,0.2-0.6,0.2s0,0.3,0,0.6c0,0,0,0,0,0.1
			s-0.1,0.2-0.2,0.2l0,0c-0.1,0-0.2,0-0.2-0.1c0,0-0.2-0.2-0.3-0.2c-0.1-0.1-0.1-0.1-0.2-0.1s-0.1-0.1-0.2-0.1s-0.1-0.1-0.2-0.2
			c-0.3-0.2-0.6-0.4-0.9-0.4c-0.2,0-0.2,0.1-0.2,0.1c0,0.3,0.3,0.6,0.6,0.7c0.1,0,0.1,0.1,0.1,0.2s0,0.1-0.1,0.2
			c0,0-0.2,0.2-0.3,0.3c-0.1,0.1-0.3,0.2-0.3,0.2h-0.1H106l-1.2,0.1C104.8,76.8,104.8,76.8,104.7,76.8z M103.8,75.6
			c0.6,0.8,1,0.7,1,0.7l1.3-0.1c0,0,0.2-0.1,0.3-0.2l0,0c-0.3-0.3-0.5-0.6-0.5-1s0.3-0.6,0.7-0.6c0.4,0,0.8,0.2,1.2,0.5
			c0.1,0.1,0.1,0.1,0.2,0.1s0.1,0.1,0.2,0.1s0.1,0.1,0.2,0.1l0,0c0-0.2,0.1-0.4,0.1-0.5c0.1-0.1,0.3-0.2,0.8-0.3c0,0,0,0,0-0.1
			c-0.1-0.2,0-0.5,0.3-0.6c0.4-0.4,1.1-0.3,1.8,0.2c0,0,0,0,0.1,0h0.2c0.4,0,0.6,0.1,0.6,0.1c0.1,0,0.2,0.2,0.1,0.3l0,0
			c1.3-0.3,2.3-0.8,2.6-1.3c-0.6-0.6-2.3-1.2-3.1-1.4c-0.3,0.3-1.2,1-2,1c-0.1,0-0.3,0-0.4-0.1c-0.3-0.1-0.3-0.3-0.3-0.4
			c0-0.3,0.5-0.6,1-0.9c-0.6-0.1-1.3-0.2-1.6-0.3c-0.4,0.5-1.6,2.2-2.2,2.2c-0.1,0-0.4-0.1-0.5-0.6c0-0.5,0.3-0.9,0.6-1.3l-1.6,0.5
			c0,0-0.3,0.1-0.7,0.7c0.1-0.1,0.2-0.1,0.3-0.2c0.1-0.1,0.2-0.1,0.3-0.1c0.1,0,0.2,0,0.2,0.1s0.1,0.2,0,0.2
			c-0.1,0.5-0.6,1.7-0.6,1.8l-0.3,0.7C103.9,75.3,103.8,75.5,103.8,75.6z" />
  </g>
  <g>
    <path class="st0" d="M104.1,74.3c-0.1,0-0.2-0.1-0.2-0.2s0.1-0.3,0.2-0.3s5.3-1.1,11.2-0.9c0.1,0,0.2,0.1,0.2,0.2
			s-0.1,0.2-0.2,0.2C109.4,73.3,104.2,74.3,104.1,74.3L104.1,74.3z" />
  </g>
</g>
<g id="box">
  <path class="st0" d="M17.8,88.7H3c-0.3,0-0.5,0.2-0.5,0.5v2.1c0,0.3,0.2,0.5,0.5,0.5h0.7v10.5h13.4V91.9h0.7c0.3,0,0.5-0.2,0.5-0.5
		v-2.1C18.3,89,18.1,88.7,17.8,88.7z M4,100.4c0.9,0.1,1.6,0.8,1.7,1.7H4V100.4z M15,102.1c0.1-0.9,0.8-1.6,1.7-1.7v1.7H15z
		 M16.7,100c-1.1,0.1-2,1-2.1,2.1H6.1c-0.1-1.1-1-2-2.1-2.1v-8.1h12.7V100z M18,91.4c0,0.1-0.1,0.2-0.2,0.2H3
		c-0.1,0-0.2-0.1-0.2-0.2v-2.1c0-0.1,0.1-0.2,0.2-0.2h14.8c0.1,0,0.2,0.1,0.2,0.2V91.4z" />
  <path class="st0" d="M8.7,95.1H12c0.5,0,0.9-0.4,0.9-0.9s-0.4-0.9-0.9-0.9H8.7c-0.5,0-0.9,0.4-0.9,0.9S8.2,95.1,8.7,95.1z
		 M8.7,93.7H12c0.3,0,0.5,0.2,0.5,0.5s-0.2,0.5-0.5,0.5H8.7c-0.3,0-0.5-0.2-0.5-0.5S8.4,93.7,8.7,93.7z" />
  <path class="st0" d="M17.1,89.5h-4.5v0.4h4.5c0.1,0,0.2,0.1,0.2,0.2v0.7h0.3v-0.7C17.6,89.7,17.4,89.5,17.1,89.5z" />
  <rect x="11.5" y="89.5" class="st0" width="0.5" height="0.4" />
</g>
<g id="abacus">
  <g transform="translate(50 50) scale(0.69 0.69) rotate(0) translate(-50 -50)">
    <path class="st0" d="M173.8,57.7c-0.2,0-0.3,0.2-0.3,0.4v14c0,0.2,0.2,0.3,0.3,0.3H196c0.2,0,0.3-0.2,0.3-0.3v-14
			c0-0.2-0.2-0.4-0.3-0.4l0,0L173.8,57.7C173.9,57.7,173.8,57.7,173.8,57.7z M174.2,58.4h21.5v13.3h-21.5V58.4z" />
    <path class="st0" d="M173.9,62.6v0.2H196v-0.2H173.9z" />
    <path class="st0" d="M176.1,58.1v14h0.2v-14H176.1z" />
    <path class="st0" d="M179.6,58.1v14h0.2v-14H179.6z" />
    <path class="st0" d="M183.1,58.1v14h0.2v-14H183.1z" />
    <path class="st0" d="M186.6,58.1v14h0.2v-14H186.6z" />
    <path class="st0" d="M190.1,58.1v14h0.2v-14H190.1z" />
    <path class="st0" d="M193.6,58.1v14h0.2v-14H193.6z" />
    <path class="st0" d="M175.6,69h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S175.4,69,175.6,69z" />
    <path class="st0" d="M175.6,70.9h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S175.4,70.9,175.6,70.9z
			" />
    <path class="st0" d="M175.6,70h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S175.4,70,175.6,70z" />
    <path class="st0" d="M175.6,68.1h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S175.4,68.1,175.6,68.1z
			" />
    <path class="st0" d="M175.6,63.4h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S175.4,63.4,175.6,63.4z
			" />
    <path class="st0" d="M179.1,69h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S178.9,69,179.1,69z" />
    <path class="st0" d="M179.1,70.9h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S178.9,70.9,179.1,70.9z
			" />
    <path class="st0" d="M179.1,70h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S178.9,70,179.1,70z" />
    <path class="st0" d="M179.1,65.3h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S178.9,65.3,179.1,65.3z
			" />
    <path class="st0" d="M179.1,64.4h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S178.9,64.4,179.1,64.4z
			" />
    <path class="st0" d="M182.6,69h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S182.4,69,182.6,69z" />
    <path class="st0" d="M182.6,70.9h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S182.4,70.9,182.6,70.9z
			" />
    <path class="st0" d="M182.6,70h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S182.4,70,182.6,70z" />
    <path class="st0" d="M182.6,68.1h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S182.4,68.1,182.6,68.1z
			" />
    <path class="st0" d="M182.6,67.2h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S182.4,67.2,182.6,67.2z
			" />
    <path class="st0" d="M182.6,63.4h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S182.4,63.4,182.6,63.4z
			" />
    <path class="st0" d="M186.1,69h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S185.9,69,186.1,69z" />
    <path class="st0" d="M186.1,70.9h1.2c0.2,0,0.3,0.2,0.3,0.3c0,0.2-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3
			S185.9,70.9,186.1,70.9z" />
    <path class="st0" d="M186.1,70h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S185.9,70,186.1,70z" />
    <path class="st0" d="M186.1,68.1h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S185.9,68.1,186.1,68.1z
			" />
    <path class="st0" d="M186.1,67.2h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S185.9,67.2,186.1,67.2z
			" />
    <path class="st0" d="M186.1,63.4h1.2c0.2,0,0.3,0.2,0.3,0.3c0,0.2-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3
			C185.8,63.6,185.9,63.4,186.1,63.4z" />
    <path class="st0" d="M189.6,69h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S189.4,69,189.6,69z" />
    <path class="st0" d="M189.6,70.9h1.2c0.2,0,0.3,0.2,0.3,0.3c0,0.2-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3
			S189.4,70.9,189.6,70.9z" />
    <path class="st0" d="M189.6,70h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S189.4,70,189.6,70z" />
    <path class="st0" d="M189.6,68.1h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S189.4,68.1,189.6,68.1z
			" />
    <path class="st0" d="M189.6,67.2h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S189.4,67.2,189.6,67.2z
			" />
    <path class="st0" d="M189.6,67.2h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S189.4,67.2,189.6,67.2z
			" />
    <path class="st0" d="M193.1,69h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S192.9,69,193.1,69z" />
    <path class="st0" d="M193.1,70.9h1.2c0.2,0,0.3,0.2,0.3,0.3c0,0.2-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3
			S192.9,70.9,193.1,70.9z" />
    <path class="st0" d="M193.1,70h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S192.9,70,193.1,70z" />
    <path class="st0" d="M193.1,68.1h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S192.9,68.1,193.1,68.1z
			" />
    <path class="st0" d="M193.1,67.2h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S192.9,67.2,193.1,67.2z
			" />
    <path class="st0" d="M193.1,67.2h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S192.9,67.2,193.1,67.2z
			" />
    <path class="st0" d="M175.6,61.6h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S175.4,61.6,175.6,61.6z
			" />
    <path class="st0" d="M175.6,58.8h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S175.4,58.8,175.6,58.8z
			" />
    <path class="st0" d="M179.1,61.6h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S178.9,61.6,179.1,61.6z
			" />
    <path class="st0" d="M179.1,60.6h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S178.9,60.6,179.1,60.6z
			" />
    <path class="st0" d="M179.1,60.6h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S178.9,60.6,179.1,60.6z
			" />
    <path class="st0" d="M182.6,61.6h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S182.4,61.6,182.6,61.6z
			" />
    <path class="st0" d="M182.6,60.6h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S182.4,60.6,182.6,60.6z
			" />
    <path class="st0" d="M182.6,60.6h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S182.4,60.6,182.6,60.6z
			" />
    <path class="st0" d="M186.1,61.6h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S185.9,61.6,186.1,61.6z
			" />
    <path class="st0" d="M186.1,60.6h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S185.9,60.6,186.1,60.6z
			" />
    <path class="st0" d="M186.1,60.6h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S185.9,60.6,186.1,60.6z
			" />
    <path class="st0" d="M189.6,61.6h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S189.4,61.6,189.6,61.6z
			" />
    <path class="st0" d="M189.6,60.6h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S189.4,60.6,189.6,60.6z
			" />
    <path class="st0" d="M189.6,60.6h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S189.4,60.6,189.6,60.6z
			" />
    <path class="st0" d="M193.1,61.6h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S192.9,61.6,193.1,61.6z
			" />
    <path class="st0" d="M193.1,60.6h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S192.9,60.6,193.1,60.6z
			" />
    <path class="st0" d="M193.1,60.6h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S192.9,60.6,193.1,60.6z
			" />
    <path class="st0" d="M193.1,61.6h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S192.9,61.6,193.1,61.6z
			" />
    <path class="st0" d="M193.1,60.6h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S192.9,60.6,193.1,60.6z
			" />
    <path class="st0" d="M193.1,60.6h1.2c0.2,0,0.3,0.2,0.3,0.3s-0.2,0.3-0.3,0.3h-1.2c-0.2,0-0.3-0.2-0.3-0.3S192.9,60.6,193.1,60.6z
			" />
  </g>
</g>
<g id="phone">
  <path class="st0" d="M218.1,55.2v-2.7c0-0.1-0.1-0.2-0.2-0.2c-0.1,0-0.2,0.1-0.2,0.2v2.7h-0.4v2l0.7,2.2v4l-0.7,1.3v0.7h1.4V55.2
		H218.1z" />
  <path class="st0" d="M217.9,59.4l-0.7-2.2v-2h-2.9v2l0.7,2.2v4l-0.7,1.3v0.7h2.9v-0.8l0.7-1.3V59.4z M216.1,55.9
		C216.1,55.9,216.2,56,216.1,55.9c0.1,0.1,0,0.2,0,0.2C216.1,56.1,216,56.1,216.1,55.9C216,56,216,55.9,216.1,55.9z M216.1,56.3
		C216.1,56.3,216.2,56.3,216.1,56.3c0.1,0.1,0,0.2,0,0.2C216.1,56.5,216,56.4,216.1,56.3C216,56.3,216,56.3,216.1,56.3z M216.1,56.7
		C216.1,56.7,216.2,56.7,216.1,56.7c0.1,0.1,0,0.2,0,0.2C216.1,56.8,216,56.8,216.1,56.7C216,56.7,216,56.7,216.1,56.7z M215.7,55.9
		C215.8,55.9,215.8,56,215.7,55.9c0.1,0.1,0,0.2,0,0.2S215.7,56.1,215.7,55.9C215.6,56,215.7,55.9,215.7,55.9z M215.7,56.3
		C215.8,56.3,215.8,56.3,215.7,56.3c0.1,0.1,0,0.2,0,0.2S215.7,56.4,215.7,56.3C215.6,56.3,215.7,56.3,215.7,56.3z M215.7,56.7
		C215.8,56.7,215.8,56.7,215.7,56.7c0.1,0.1,0,0.2,0,0.2S215.7,56.8,215.7,56.7C215.6,56.7,215.7,56.7,215.7,56.7z M215.4,55.9
		C215.4,55.9,215.5,56,215.4,55.9c0.1,0.1,0,0.2,0,0.2S215.3,56.1,215.4,55.9C215.3,56,215.3,55.9,215.4,55.9z M215.4,56.3
		C215.4,56.3,215.5,56.3,215.4,56.3c0.1,0.1,0,0.2,0,0.2S215.3,56.4,215.4,56.3C215.3,56.3,215.3,56.3,215.4,56.3z M215.4,56.7
		C215.4,56.7,215.5,56.7,215.4,56.7c0.1,0.1,0,0.2,0,0.2S215.3,56.8,215.4,56.7C215.3,56.7,215.3,56.7,215.4,56.7z M214.8,57.8h2.2
		l0.4,1.1h-2.2L214.8,57.8z M215.5,62.2v-0.4h0.5v0.4H215.5z M216,62.8v0.4h-0.5v-0.4H216z M215.5,61.5v-0.4h0.5v0.4H215.5z
		 M215.5,60.7v-0.4h0.5v0.4H215.5z M215.5,60v-0.4h0.5V60H215.5z M215.9,65.2h-0.4c-0.1,0-0.2-0.1-0.2-0.2s0.1-0.2,0.2-0.2h0.4
		c0.1,0,0.2,0.1,0.2,0.2S216,65.2,215.9,65.2z M216.7,63.1h-0.5v-0.4h0.5V63.1z M216.7,62.2h-0.5v-0.4h0.5V62.2z M216.7,61.5h-0.5
		v-0.4h0.5V61.5z M216.7,60.7h-0.5v-0.4h0.5V60.7z M216.7,60h-0.5v-0.4h0.5V60z M217.4,63.1h-0.5v-0.4h0.5V63.1z M217.4,62.2h-0.5
		v-0.4h0.5V62.2z M217.4,61.5h-0.5v-0.4h0.5V61.5z M217.4,60.7h-0.5v-0.4h0.5V60.7z M217.4,60h-0.5v-0.4h0.5V60z" />
</g>
<g id="tiles">
  <path class="st0" d="M122.3,15c0,0.1,0.1,0.1,0.1,0.1h2.8c0.1,0,0.1-0.1,0.1-0.1v-3.9c0-0.1-0.1-0.1-0.1-0.1h-3.9
		c-0.1,0-0.1,0.1-0.1,0.1v2.8c0,0.1,0.1,0.1,0.1,0.1c0.1,0,0.1-0.1,0.1-0.1v-2.6h3.6v3.6L122.3,15C122.4,14.9,122.3,14.9,122.3,15z" />
  <path class="st0" d="M123.5,11.7v1.1c0,0.1,0.1,0.1,0.1,0.1h1.1c0.1,0,0.1-0.1,0.1-0.1v-1.1c0-0.1-0.1-0.1-0.1-0.1h-1.1
		C123.5,11.6,123.5,11.6,123.5,11.7z M123.7,11.8h0.8v0.8h-0.8V11.8z" />
  <path class="st0" d="M123.2,12.8v-1.1c0-0.1-0.1-0.1-0.1-0.1H122c-0.1,0-0.1,0.1-0.1,0.1v1.1c0,0.1,0.1,0.1,0.1,0.1h1.1
		C123.1,12.9,123.2,12.9,123.2,12.8z M122.9,12.7h-0.8v-0.8h0.8V12.7z" />
  <path class="st0" d="M123.5,13.4v1.1c0,0.1,0.1,0.1,0.1,0.1h1.1c0.1,0,0.1-0.1,0.1-0.1v-1.1c0-0.1-0.1-0.1-0.1-0.1h-1.1
		C123.5,13.2,123.5,13.3,123.5,13.4z M123.7,13.5h0.8v0.8h-0.8V13.5z" />
  <path class="st0" d="M120.4,14.8v1.1c0,0.1,0.1,0.1,0.1,0.1h1.1c0.1,0,0.1-0.1,0.1-0.1v-1.1c0-0.1-0.1-0.1-0.1-0.1h-1.1
		C120.5,14.6,120.4,14.7,120.4,14.8z M120.7,14.9h0.8v0.8h-0.8V14.9z" />
  <circle class="st0" cx="121.9" cy="14.5" r="0.1" />
  <circle class="st0" cx="121.9" cy="13.9" r="0.1" />
  <circle class="st0" cx="121.9" cy="13.4" r="0.1" />
  <circle class="st0" cx="122.5" cy="13.4" r="0.1" />
  <circle class="st0" cx="123" cy="13.4" r="0.1" />
  <circle class="st0" cx="123" cy="13.9" r="0.1" />
  <circle class="st0" cx="123" cy="14.5" r="0.1" />
  <circle class="st0" cx="122.5" cy="14.5" r="0.1" />
</g>
<rect id="flexboxPuzzleBtn" x="2.5" y="88.5" class="st2" width="16" height="14" />
<rect id="mathPuzzleBtn" x="135" y="55" class="st2" width="16" height="10" />
<rect id="puzzlerBtn" x="120.4" y="11" class="st2" width="5.1" height="5" />
<rect id="recursionPuzzleBtn" x="156" y="34.8" class="st2" width="34" height="23.5" />
<rect id="pipePuzzleBtn" x="269" y="75" class="st2" width="30" height="30" />
<g id="open-door" class="st3">
  <path class="st0" d="M49.1,53.9c0,1.5,1.2,2.8,2.8,2.8c1.5,0,2.8-1.2,2.8-2.8c0-1.5-1.2-2.8-2.8-2.8C50.3,51.2,49.1,52.4,49.1,53.9
		z M51.2,53.9c0-0.4,0.3-0.6,0.6-0.6c0.4,0,0.6,0.3,0.6,0.6s-0.3,0.6-0.6,0.6C51.5,54.6,51.2,54.3,51.2,53.9z" />
  <path class="st0" d="M0,101.9v2.1h27.4l29.8-8.4V12.3L34.2,6h34.3v98h27.4v-2.1H74.5V0H21.4v101.9H0z M27.4,101.5V6.3L55,13.9V94
		L27.4,101.5z M23.5,101.9V2.1h48.8v99.7h-1.7v-98H26.5l-1.2-0.3v0.3v98C25.3,101.9,23.5,101.9,23.5,101.9z" />
</g>
<g id="fishbooks">
  <path class="st0" d="M249.8,42.7c0.1,0,0.2-0.1,0.2-0.2v-0.7c0-0.1-0.1-0.2-0.2-0.2h-4.9c1.8-0.7,2.9-2.5,2.9-4.4
		c0-1.3-0.5-2.6-1.5-3.5c-0.1-0.1-0.1-0.1-0.2-0.2l-0.1-0.1h-5.9c-0.1,0-0.1,0-0.1,0.1c-2,1.7-2.3,4.7-0.5,6.7
		c0.5,0.6,1.1,1,1.8,1.3h-2.7c-0.8,0-1.4,0.6-1.4,1.4c0,0.4,0.2,0.8,0.4,1h-0.3c-1,0-1.8,0.8-1.8,1.7s0.8,1.8,1.7,1.8v1.3
		c0,0.1,0.1,0.2,0.2,0.2c0.1,0,0.1,0,0.1-0.1l0.5-0.6l0.5,0.6c0.1,0.1,0.2,0.1,0.3,0l0.1-0.1v-1.3h9.2c0.1,0,0.2-0.1,0.2-0.2v-0.7
		c0-0.1-0.1-0.2-0.2-0.2h-0.4V45h0.4c0.1,0,0.2-0.1,0.2-0.2v-0.6h1.5c0.1,0,0.2-0.1,0.2-0.2v-0.7c0-0.1-0.1-0.2-0.2-0.2h-0.2v-0.6
		h0.2V42.7z M240.2,33.8h5.7l0.1,0.1c0.2,0.2,0.4,0.4,0.6,0.6c-0.2,0-0.5,0.1-0.7,0.2c-0.6,0.2-1.2,0.2-1.8,0
		c-0.3-0.1-0.7-0.2-1-0.2c-0.4,0-0.7,0.1-1,0.2c-0.3,0.1-0.6,0.2-0.9,0.2c-0.3,0-0.6-0.1-0.9-0.2c-0.2-0.1-0.5-0.2-0.7-0.2
		C239.7,34.3,239.9,34.1,240.2,33.8z M238.7,37.2c0-0.8,0.2-1.6,0.6-2.2c0.3,0,0.6,0.1,0.8,0.2c0.3,0.1,0.7,0.2,1,0.2
		c0.4,0,0.7-0.1,1-0.2c0.3-0.1,0.6-0.2,0.9-0.2c0.3,0,0.6,0.1,0.9,0.2c0.3,0.1,0.7,0.2,1,0.2c0.4,0,0.7-0.1,1-0.2
		c0.3-0.1,0.5-0.2,0.8-0.2c1.2,2.1,0.5,4.8-1.6,6s-4.8,0.5-6-1.6C238.9,38.7,238.7,37.9,238.7,37.2z M248,47.1h-9v-0.4h9V47.1z
		 M247.4,46.4h-8.5V46c0-0.1-0.1-0.2-0.2-0.2h-1.3c-0.1,0-0.2,0.1-0.2,0.2v0.4c-0.4,0-0.6-0.3-0.6-0.7s0.3-0.6,0.7-0.6l0,0h10.1
		V46.4z M248,44.7h-10.7c-0.6,0-1,0.4-1,1s0.4,1,1,1v0.4c-0.8,0-1.4-0.6-1.4-1.4s0.6-1.4,1.4-1.4H248V44.7z M249.6,44h-11.1
		c-0.6,0-1-0.5-1-1c0-0.6,0.5-1,1-1h11.1v0.4h-10.9c-0.4,0-0.6,0.3-0.6,0.6c0,0.4,0.3,0.6,0.6,0.6h10.9V44z M249.3,43.2h-10.5
		c-0.2,0-0.3-0.1-0.3-0.3s0.1-0.3,0.3-0.3h10.5V43.2z" />
  <path class="st0" d="M245.8,37.5l0.8,0.7c0.1,0.1,0.2,0.1,0.3,0l0.1-0.1v-1.7c0-0.1-0.1-0.2-0.2-0.2c0,0-0.1,0-0.1,0.1l-0.8,0.7
		c-0.3-0.4-1.1-1.1-2.1-1.1c-1.2,0-2,1.3-2,1.3c0,0.1,0,0.1,0,0.2c0,0.1,0.8,1.3,2,1.3C244.7,38.6,245.5,37.8,245.8,37.5z
		 M246.5,36.8v0.8l-0.4-0.4L246.5,36.8z M242.1,37.2c0.2-0.3,0.8-1,1.6-1s1.6,0.7,1.8,1c-0.3,0.3-1,1-1.8,1
		C242.9,38.2,242.3,37.5,242.1,37.2L242.1,37.2z" />
  <circle class="st0" cx="242.8" cy="37" r="0.2" />
  <path class="st0" d="M242.1,35.4c0-0.5-0.4-1-1-1c-0.5,0-1,0.4-1,1c0,0.5,0.4,1,1,1C241.6,36.4,242.1,35.9,242.1,35.4z M241.1,36
		c-0.3,0-0.6-0.3-0.6-0.6s0.3-0.6,0.6-0.6s0.6,0.3,0.6,0.6S241.4,36,241.1,36z" />
  <path class="st0" d="M240.2,36.6c-0.3,0-0.6,0.3-0.6,0.6s0.3,0.6,0.6,0.6s0.6-0.3,0.6-0.6C240.9,36.9,240.6,36.6,240.2,36.6
		L240.2,36.6z M240.2,37.4c-0.1,0-0.2-0.1-0.2-0.2s0.1-0.2,0.2-0.2c0.1,0,0.2,0.1,0.2,0.2l0,0C240.5,37.3,240.4,37.4,240.2,37.4z" />
</g>
</svg>
            
          
!
            
              /***** Global Styles ******/

/***** 

Objects in the Room

#door
#screenglitch
#computer
#desk
#servers
#poster
#radiator
#mirror
#plant
#noteWrap
#box
#abacus
#phone
#tiles
#open-door

******/

/* Start global colors */

:root {
  --white: #e6e6e6; /* white alt */
  --darkest-blue-color: #071e26; /*  black alt */
  --greyish-blue-color: #06394c;
  --bright-blue-color: #0c4383; /*Recursion*/
  --turquoise-blue-color: #22a0b6; /* Tiles */
  --palest-blue-color: #6a96b9; /* Mirror */
  --dark-magenta-color: #7b1346; /* Pipe */
  --magenta-color: #cb0c59; /* Math */
  --pink-color: #eb649f; /* Box */
}

/* End global color variables */

* {
  box-sizing: border-box;
}

html {
  height: 100%;
}

body {
  display: grid;
  align-items: center;
  justify-items: center;
  background-color: #051217;
  background-image: radial-gradient(circle, #071e26, #051217);
  font-family: "Cutive Mono", monospace;
}

svg {
  width: 100%;
  height: 100vh;
  margin: 0 auto;
}

/* Room scene */
.st0 {
  fill: var(--white);
  transition: 0.4s ease-in-out;
}
#solidfill {
  fill: var(--white);
}
#poster {
  transition: 0.4s ease-in-out;
  opacity: 1;
}

#flexboxPuzzleBtn:hover,
#mathPuzzleBtn:hover,
#puzzlerBtn:hover,
#recursionPuzzleBtn:hover,
#pipePuzzleBtn:hover,
#mirrorPuzzleBtn:hover,
#noteBtn:hover {
  cursor: pointer;
}

/* End room scene */

/* The Modal (background) */
.modal {
  display: none; /* Hidden by default */
  position: fixed; /* Stay in place */
  z-index: 1; /* Sit on top */
  left: 0;
  top: 0;
  width: 100%; /* Full width */
  height: 100%; /* Full height */
  overflow: auto; /* Enable scroll if needed */
  background-color: rgb(0, 0, 0); /* Fallback color */
  background-color: rgba(0, 0, 0, 0.4); /* Black w/ opacity */
}

// Less opaque versions of their color

#mirrorPuzzleModal .modal-content {
  background-color: #6a96b9d9;
  box-shadow: 0px 0px 30px 10px #6a96b9d9;
}

#recursionPuzzleModal .modal-content {
  background-color: #0c4383f2;
  box-shadow: 0px 0px 30px 10px #0c4383f2;
}

#puzzlerModal .modal-content {
  background-color: #22a0b6f2;
  box-shadow: 0px 0px 30px 10px #22a0b6f2;
  width: 90%;
}

#flexboxPuzzleModal .modal-content {
  background-color: #eb649fe6;
  box-shadow: 0px 0px 30px 10px #eb649fe6;
}

#mathPuzzleModal .modal-content {
  background-color: #cb0c59e6;
  box-shadow: 0px 0px 30px 10px #cb0c59e6;
}

#pipePuzzleModal .modal-content {
  background-color: #7b1346d9;
  box-shadow: 0px 0px 30px 10px #7b1346d9;
}

/* Modal Content */
.modal-content {
  background-color: #fefefe;
  margin: auto;
  padding: 20px;
  width: 80%;
}

/* The Close Button */
.close {
  color: var(--white);
  float: right;
  font-size: 28px;
  font-weight: bold;
  z-index: 100;
  position: relative;
}

.close:hover,
.close:focus {
  color: var(--darkest-blue-color);
  text-decoration: none;
  cursor: pointer;
}

/****** End Global Styles ******/

/* Cheryl Velez - Puzzler  */

#puzzler-container {
  margin: 0;
  display: flex;
  flex-direction: column;
}
#puzzler-container button {
  font-size: 19px;
  padding: 10px;
  color: var(--white);
  background: #253543;
  margin-bottom: 8px;
  border: 5px solid #22a0b6f2;
  outline: 2px dashed var(--greyish-blue-color);
  transition: 0.3s ease-in-out;
}

#alert {
  position: relative;
  color: var(--dark-magenta-color);
  font-size: 32px;
  text-align: center;
}

.quote {
  position: relative;
  color: var(--white);
  font-size: 25px;
  margin-top: 10px;
  text-align: center;
  cursor: auto;
  width: 72%;
  margin: 0 auto;
  text-align: center;
}
.quote:last-of-type {
  text-align: justify;
  font-size: 18px;
  margin-bottom: 35px;
}
#puzzler-container button:hover {
  transform: scale(1.3);
}
.content {
  display: flex;
  flex-direction: column;
  justify-content: space-evenly;
  flex: 0 0 30%;
}
#btn-container {
  text-align: center;
}

.topContainer {
  margin-top: 20px;
  justify-content: space-evenly;
  display: flex;
}

.bottomContainer {
  margin-top: 20px;
  justify-content: space-evenly;
  display: flex;
}

.outerflex {
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  flex: 1;
  height: 66vh;
}
#puzzler-container button {
  cursor: pointer;
}

.outerBorder {
  border: 2px dashed var(--greyish-blue-color);
  padding: 5px;
  height: fit-content;
  width: fit-content;
  margin: 10px;
}

.tile {
  width: 100px;
  height: 100px;
  z-index: 1000;
  box-sizing: border-box;
  cursor: move;
  border: 5px solid var(--darkest-blue-color);
}
.tile img {
  filter: invert(100%);
}
.blank {
  min-width: 116px;
  min-height: 116px;
  z-index: 100;
  box-sizing: border-box;
  border: 2px dashed var(--greyish-blue-color);
  top: 200px;
  padding: 5px;
  margin: 10px;
}

.ui-state-highlight {
  border-color: var(--dark-magenta-color);
}

@media all and (max-width: 1200px) {
  .outerflex {
    flex-direction: row;
    justify-content: space-around;
    height: auto;
  }
  .topContainer,
  .bottomContainer {
    flex-direction: column;
  }
}

.revealtext {
  background-color: var(--white);
  transition: 0.3s ease;
}

.revealtext:hover {
  cursor: pointer;
}

/* End Cheryl Velez - Puzzler  */

/* Dominic Duffin - Math Puzzle */

:root {
  --text-color: #111111;
}

#math-puzzle-container div {
  color: var(--white);
}

#math-puzzle-container button {
  line-height: 100px;
  width: 100px;
  border-radius: 40%;
  border: 4px solid var(--white);
  font-size: 2em;
  font-weight: bold;
  color: var(--white);
  margin: 2px 0 0 2px;
}

#math-puzzle-main {
  display: grid;
  grid-template-rows: 1fr;
  grid-template-columns: 50% 50%;
}

#math-puzzle-keypad {
  grid-column: 1;
  width: 50%;
  margin-left: 10%;
}

#math-puzzle-sum {
  grid-column: 2;
  margin-right: 10%;
}

.math-puzzle-numberButton {
  background-color: transparent;
}

.math-puzzle-zeroButton {
  background-color: transparent;
}

.math-puzzle-signButton {
  background-color: transparent;
}

.math-puzzle-position {
  text-align: center;
  line-height: 65px;
  font-size: 2em;
  padding: 10px;
  font-weight: bold;
  border-bottom: 1px solid var(--white);
}

#math-puzzle-message {
  line-height: normal;
  font-size: 1.5em;
}

/* End  Dominic Duffin - Math Puzzle */

/* Paul - Flexbox Puzzle  */
#flexbox-puzzle-container {
  height: 700px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  position: relative;
}

.heading {
  margin: 8px;
  color: var(--white);
}

.heading__rules {
  padding: 0;
  margin: 0 auto;
  text-align: center;
}

.heading__subtitle {
  display: block;
  margin: 10px auto;
  width: 80%;
  height: 50px;
  text-align: center;
}

.notification {
  display: block;
  width: 100%;
  height: 35px;
  font-size: 25px;
  margin-bottom: 30px;
  text-align: center;
  color: var(--white);
  transition: all 0.5s ease-in;
}

.flex-menu {
  width: 100%;
  height: 25%;
  padding: 0.5rem;
  text-align: center;
  display: flex;
  flex-direction: row;
  justify-content: space-evenly;
  align-items: center;
  color: var(--white);
}

.flex-menu div {
  display: flex;
  flex-direction: column;
}

.flex-menu label {
  display: inline-block;
  padding-bottom: 0.5rem;
}

.flex-menu button {
  margin: 10px;
  margin-bottom: 50px;
  border: 0;
  padding: 10px 0;
  width: 140px;
  font-size: 0.75rem;
  white-space: nowrap;
  text-decoration: none;
  outline: none;
  box-shadow: 5px 6px 4px 2px rgba(12, 67, 131, 0.45);
}

.flex-menu__items {
  background-color: var(--bright-blue-color);
  padding: 4px;
  text-decoration: none;
  color: #fff;
  cursor: pointer;
}

.flexPuzzle-container {
  // display: block;
  position: absolute;
  height: 25%;
  max-width: 100%;
  left: 10%;
  perspective: 1000px;
      top: 300px;
}

.cube-1,
.cube-2,
.cube-3,
.cube-4,
.cube-5 {
  //position: relative;
  width: 75px;
  height: 75px;
  padding: 25px;
  transform-style: preserve-3d;
  transform: translateZ(-360px) rotateX(65deg) rotateZ(75deg);
  transition: all 2s ease-in-out;

  .side {
    position: absolute;
    width: 75px;
    height: 75px;
  }

  .front {
    background-color: var(--bright-blue-color);
    transform: rotateY(0deg) translateZ(35px);
    transition: all 0.5s ease-in-out;
  }

  .back {
    background-color: var(--bright-blue-color);
    transform: rotateX(180deg) translateZ(35px);
    transition: all 0.5s ease-in-out;
  }

  .right {
    background-color: var(--bright-blue-color);
    transform: rotateY(90deg) translateZ(35px);
    transition: all 0.5s ease-in-out;
  }

  .left {
    transform: rotateY(-90deg) translateZ(35px);
    transition: all 0.5s ease-in-out;
  }

  .top {
    // background-color: var(--bright-blue-color);
    transform: rotateX(90deg) translateZ(35px);
    transition: all 0.5s ease-in-out;
  }

  .bottom {
    background-color: var(--bright-blue-color);
    transform: rotateX(-90deg) translateZ(35px);
    transition: all 0.5s ease-in-out;
  }
}



// Media queries smaller screen

@media only screen and (max-width: 1500px) {
 #flexboxPuzzleModal .modal-content {
  width: 90%;
}

  .flexPuzzle-container {
    left: 0;
  }
}

/* End  Paul - Flexbox Puzzle  */

/* Kristopher Van Sant - Mirror Puzzle  */

#mirror-puzzle-container {
  text-align: center;
}

#mirror-clue,
#mirror-puzzle-container > p:first-of-type {
  color: var(--white);
  font-size: 1.7em;
  margin-bottom: 50px;
}

#mirror-puzzle-container #note {
  color: var(--darkest-blue-color);
  width: 285px;
  padding: 2%;
  box-sizing: border-box;
  display: inline-block;
  vertical-align: middle;
  background: var(--white);
  background-size: contain;
  text-align: left;
  font-size: 19px;
}
#mirror-puzzle-container #note:hover {
  cursor: grab;
}
#mirror-puzzle-container #note:active {
  cursor: grabbing;
}

#mirror-puzzle-container #mmirror {
  width: 500px;
  height: 500px;
  padding: 5%;
  display: inline-block;
  vertical-align: middle;
  background: url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/108463/mirror.svg)
    center center no-repeat;
  background-size: contain;
}
#note-text {
  margin: 0;
  padding: 9%;
  border: 2px dashed var(--darkest-blue-color);
}

#mirror-puzzle-container .mirror-text {
  -moz-transform: scaleX(-1);
  -o-transform: scaleX(-1);
  -webkit-transform: scaleX(-1);
  transform: scaleX(-1);
}

/* End  Kristopher Van Sant - Mirror Puzzle  */

/* Ryan Saunders - Pipe Puzzle   */

#pipe-puzzle-container {
  font-size: 100%;
  height: 600px;
  padding: 0;
  margin: 0;
  color: var(--white);
  position: relative;
}
#pipePuzzleModal .modal-content {
  height: 660px;
}
#pipe-puzzle-container span {
  -webkit-transition-duration: 0.5s;
  -moz-transition-duration: 0.5s;
  -o-transition-duration: 0.5s;
  transition-duration: 0.5s;
  -webkit-transition-property: -webkit-transform;
  -moz-transition-property: -moz-transform;
  -o-transition-property: -o-transform;
  transition-property: transform;
}

.container {
  text-align: center;
  margin-top: 50px;
  font-size: 0;
  width: 50%;
  float: right;
}

.box {
  width: 95px;
  height: 95px;
  position: relative;
  display: inline-block;
  font-size: 16px;
}

.box.fake {
  border: none;
  height: 25px;
}

#pipe-puzzle-container .left {
  float: left;
  position: absolute;
  left: 0px;
  top: 0px;
  z-index: 9999;
  width: 50%;
  height: 100%;
  font-size: xx-large;
  line-height: 95px;
}

#pipe-puzzle-container .right {
  float: left;
  position: absolute;
  right: 0px;
  top: 0px;
  z-index: 9999;
  width: 50%;
  height: 100%;
  font-size: xx-large;
  line-height: 95px;
}

.testArea {
  position: absolute;
  top: 20px;
  left: 0px;
  padding: 30px 15px;
  background-color: #6a96b9d9;
  text-align: center;
}

.testButton {
  border: none;
  padding: 10px;
  background-color: var(--white);
}

.pipe {
  width: 95px;
  height: 95px;
  filter: grayscale(1);
  background: url("data:image/png;base64,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");
  float: left;
  //border: 1px solid #dddddd;
}

.pipe.pipe-straight {
  background-position: -383px -192px;
  background-size: 2400px;
}

.testArea .pipe.pipe-straight {
  transition: all linear 2s;
  opacity: 1;
  filter: alpha(opacity=100);
}

.testArea .pipe.pipe-straight:hover {
  box-shadow: inset 100px 0 0 0 blue;
  opacity: 0.5;
  filter: alpha(opacity=50);
}

.pipe.pipe-cross {
  background-position: -95px -95px;
  background-size: 2400px;
}

.testArea .pipe.pipe-cross {
  transition: all linear 1s;
  opacity: 1;
  filter: alpha(opacity=100);
}

.testArea .pipe.pipe-cross:hover {
  opacity: 0;
  filter: alpha(opacity=0);
}

.pipe.pipe-angle {
  background-position: -193px -192px;
  background-size: 2400px;
}

.pipe.pipe-junction {
  background-position: -193px -384px;
  background-size: 2400px;
}

.pipe.pipe-empty {
  background-position: 100px 0;
  background-size: 2400px;
}

input[type="number"] {
  width: 45px;
  background-color: var(--white);
}

.startPipe {
  position: absolute;
  height: 20px;
  width: 75%;
  background: var(--palest-blue-color);
  font-size: 16px;
  bottom: 2px;
  left: 12px;
}

.endPipe {
  position: absolute;
  height: 75%;
  width: 20px;
  background: var(--palest-blue-color);
  font-size: 16px;
  bottom: 10px;
  left: 2px;
  writing-mode: vertical-rl;
}

.bottomConsole {
  position: absolute;
  bottom: 0px;
  left: 0px;
  height: 50%;
  width: 410px;
  padding: 10px;
  background-color: #6a96b9d9;
  color: var(--white);
  overflow-x: auto;
  scrollbar-width: thin;
}

.bottomConsole hr {
  color: var(--white);
}

#pipe-busted {
  text-align: center;
  display: none;
}

#pipe-busted h2 {
  font-weight: ligher;
}
/* End  Ryan Saunders - Pipe Puzzle  */

/* Antoine Guillien - Recursion Puzzle   */

#recursion-puzzle-container #app {
  padding: 0.5rem;
  font-size: 2rem;
}
#recursion-puzzle-container .fa-ice-cream {
  font-size: 2rem;
  color: var(--pink-color);
}
#recursion-puzzle-container h1 {
  font-weight: normal;
  font-size: 1.7rem;
  text-align: center;
  margin: 1rem 0 3.5rem 0;
  color: var(--white);
}
#recursion-puzzle-container .thing {
  > .flex {
    font-size: 23px;
    font-weight: 700;
    color: var(--white);
    border-bottom: 1px solid var(--pink-color);
    padding-bottom: 5px;
    display: flex;
    div {
      padding: 0.5rem;
    }
    div:nth-child(2) {
      color: var(--white);
      cursor: pointer;
      transition: 0.3s ease-in-out;
    }
    div:nth-child(2):hover {
      transform: scale(1.5);
    }
  }
  > .children {
    .thing {
      padding: 0.5rem 0 0 2rem;
    }
  }
}
#recursion-puzzle-container .won {
  padding: 1rem;
}
#recursion-puzzle-container h1 .fa-ice-cream {
  color: var(--pink-color);
  font-size: 7rem;
}

/* End  Antoine Guillien - Recursion Puzzle   */

.locked {
  fill: var(--white);
}

/* padlock unlocked colors */
#padlock0 .unlocked {
  fill: var(--turquoise-blue-color);
}

#padlock1 .unlocked {
  fill: var(--magenta-color);
}

#padlock2 .unlocked {
  fill: var(--pink-color);
}

#padlock4 .unlocked {
  fill: var(--palest-blue-color);
}

#padlock3 .unlocked {
  fill: var(--dark-magenta-color);
}

#padlock5 .unlocked {
  fill: var(--bright-blue-color);
}

.unlocked {
  opacity: 0;
}

#escaped {
  visibility: hidden;
  display: grid;
  position: absolute;
  z-index: 100;
  width: 100%; /* Full width */
  height: 100%; /* Full height */
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: var(--white);
  text-align: center;
  margin: 0;
  font-family: "Bangers", cursive;
  background-color: rgb(0, 0, 0); /* Fallback color */
  background-color: rgba(0, 0, 0, 0.4);
  overflow: hidden;
}

#escaped h1 {
  font-size: 300px;
  justify-self: center;
  align-self: center;
}

// make font responsive

            
          
!
            
              // Global

// These variables set to true when player solves puzzle:
// Please comment here with ✅ as triggers are added to puzzles:
var puzzlerSolved = false; // ✅
var mathPuzzleSolved = false; // ✅
var flexboxPuzzleSolved = false; // ✅
var mirrorPuzzleSolved = false; // ✅
var pipePuzzleSolved = false; // ✅
var recursionPuzzleSolved = false; // ✅

// Theme color variables - please use in all color functions.
var white = "#e6e6e6";
var darkestBlueColor = "#071e26";
var greyishBlueColor = "#06394c";
var brightBlueColor = "#0c4383";
var turquoiseBlueColor = "#22a0b6";
var palestBlueColor = "#6a96b9";
var darkMagentaColor = "#7b1346";
var magentaColor = "#cb0c59";
var pinkColor = "#eb649f";
// End Global

// Room scene

// Changes fill color of elements <selectors> to <color>
function toColor(selectors, color) {
  var item = document.querySelectorAll(selectors);
  item.forEach(function(i) {
    i.style.fill = color;
  });
}

// Changes opacity of element <selector> to <opacity>
function toOpacity(selector, opacity) {
  var item = document.querySelector(selector);
  item.style.opacity = opacity;
}

function abacusToColor() {
  toColor("#abacus .st0", magentaColor);
}

function abacusToWhite() {
  toColor("#abacus .st0", white);
}

function boxToColor() {
  toColor("#box .st0", pinkColor);
}

function boxToWhite() {
  toColor("#box .st0", white);
}

function mirrorToColor() {
  toColor("#mirror .st0", palestBlueColor);
}

function mirrorToWhite() {
  toColor("#mirror .st0", white);
}

function mirrorToColor() {
  toColor("#mirror .st0", palestBlueColor);
}

function mirrorToWhite() {
  toColor("#mirror .st0", white);
}

function radiatorToColor() {
  toColor("#radiator .st0", darkMagentaColor);
}

function radiatorToWhite() {
  toColor("#radiator .st0", white);
}

function computerToColor() {
  toColor("#computer #desktop .st0", brightBlueColor);
}

function computerToWhite() {
  toColor("#computer .st0", white);
}

function posterToTransparent() {
  toOpacity("#poster", "0.2");
}

function posterToOpaque() {
  toOpacity("#poster", "1");
}

function tilesToColor() {
  toColor("#tiles .st0", turquoiseBlueColor);
}

function tilesToWhite() {
  toColor("#tiles .st0", white);
}

document
  .getElementById("mathPuzzleBtn")
  .addEventListener("mouseover", abacusToColor);
document
  .getElementById("mathPuzzleBtn")
  .addEventListener("mouseout", abacusToWhite);
document
  .getElementById("flexboxPuzzleBtn")
  .addEventListener("mouseover", boxToColor);
document
  .getElementById("flexboxPuzzleBtn")
  .addEventListener("mouseout", boxToWhite);
document
  .getElementById("mirrorPuzzleBtn")
  .addEventListener("mouseover", mirrorToColor);
document
  .getElementById("mirrorPuzzleBtn")
  .addEventListener("mouseout", mirrorToWhite);
document
  .getElementById("pipePuzzleBtn")
  .addEventListener("mouseover", radiatorToColor);
document
  .getElementById("pipePuzzleBtn")
  .addEventListener("mouseout", radiatorToWhite);
document
  .getElementById("recursionPuzzleBtn")
  .addEventListener("mouseover", computerToColor);
document
  .getElementById("recursionPuzzleBtn")
  .addEventListener("mouseout", computerToWhite);
document
  .getElementById("puzzlerBtn")
  .addEventListener("mouseover", posterToTransparent);
document
  .getElementById("puzzlerBtn")
  .addEventListener("mouseout", posterToOpaque);
document
  .getElementById("puzzlerBtn")
  .addEventListener("mouseover", tilesToColor);
document
  .getElementById("puzzlerBtn")
  .addEventListener("mouseout", tilesToWhite);

// End room scene

// Cheryl Velez - Puzzler

// MODAL

// Get the modal
var puzzlerModal = document.getElementById("puzzlerModal");

// Get the button that opens the modal
var puzzlerBtn = document.getElementById("puzzlerBtn");

// Get the <span> element that closes the modal
var closePuzzler = document.getElementsByClassName("close-puzzler")[0];

// When the user clicks the button, open the modal
puzzlerBtn.onclick = function() {
  puzzlerModal.style.display = "grid";
};

// When the user clicks on <span> (x), close the modal and check whether all puzzles solved
closePuzzler.onclick = function() {
  puzzlerModal.style.display = "none";
  verify();
};

// When the user clicks anywhere outside of the modal, close it
window.onclick = function(event) {
  if (event.target == puzzlerModal) {
    puzzlerModal.style.display = "none";
  }
};

// END MODAL

// Start JS for Puzzler Puzzler
!(function(a) {
  function f(a, b) {
    if (!(a.originalEvent.touches.length > 1)) {
      a.preventDefault();
      var c = a.originalEvent.changedTouches[0],
        d = document.createEvent("MouseEvents");
      d.initMouseEvent(
        b,
        !0,
        !0,
        window,
        1,
        c.screenX,
        c.screenY,
        c.clientX,
        c.clientY,
        !1,
        !1,
        !1,
        !1,
        0,
        null
      ),
        a.target.dispatchEvent(d);
    }
  }
  if (((a.support.touch = "ontouchend" in document), a.support.touch)) {
    var e,
      b = a.ui.mouse.prototype,
      c = b._mouseInit,
      d = b._mouseDestroy;
    (b._touchStart = function(a) {
      var b = this;
      !e &&
        b._mouseCapture(a.originalEvent.changedTouches[0]) &&
        ((e = !0),
        (b._touchMoved = !1),
        f(a, "mouseover"),
        f(a, "mousemove"),
        f(a, "mousedown"));
    }),
      (b._touchMove = function(a) {
        e && ((this._touchMoved = !0), f(a, "mousemove"));
      }),
      (b._touchEnd = function(a) {
        e &&
          (f(a, "mouseup"),
          f(a, "mouseout"),
          this._touchMoved || f(a, "click"),
          (e = !1));
      }),
      (b._mouseInit = function() {
        var b = this;
        b.element.bind({
          touchstart: a.proxy(b, "_touchStart"),
          touchmove: a.proxy(b, "_touchMove"),
          touchend: a.proxy(b, "_touchEnd")
        }),
          c.call(b);
      }),
      (b._mouseDestroy = function() {
        var b = this;
        b.element.unbind({
          touchstart: a.proxy(b, "_touchStart"),
          touchmove: a.proxy(b, "_touchMove"),
          touchend: a.proxy(b, "_touchEnd")
        }),
          d.call(b);
      });
  }
})(jQuery);

/* *** end jQuery UI Touch Punch *** */

var tileArr = [];
var ansID = ["6", "8", "1", "2", "7", "4", "3", "5"];
var droppedID = [0, 0, 0, 0, 0, 0, 0, 0];
var dragThis = 0;
var dropThis = 0;
$(document).ready(function() {
  $(".tile").each(function() {
    $(this).draggable({
      drag: function(event, ui) {
        dragThis = $(this).attr("id");
        console.log(droppedID);
      }
    });
  });
  $(".blank").each(function() {
    $(this).droppable({
      drop: function(event, ui) {
        $(this).addClass("ui-state-highlight");
        dropThis =
          $(this)
            .attr("id")
            .substring(2, 1) - 1;
        droppedID[dropThis] = dragThis;
      },
      out: function(event, ui) {
        $(this).removeClass("ui-state-highlight");
        droppedID[dropThis] = 0;
      }
    });
  });

  $("button").click(function() {
    var c = 0;
    $(".blank").each(function(obj, value) {
      if ($(this).hasClass("ui-state-highlight")) {
        //do nothing
      } else {
        c++;
      }
    });
    if (c > 0) {
      $("#alert").html("Please place all tiles!");
    } else {
      var w = 0;
      $.each(ansID, function(obj, value) {
        if (value == droppedID[obj]) {
          w++;
        }

        if (w == 8) {
          puzzlerSolved = true;
          $("#alert").html("You solved it!");

          //unlock 1st padlock once puzzle is solved
          // checkPadlocks('padlock0',puzzlerSolved);
          // document.querySelector('.unlocked').setAttribute('fill', "#22a0b6");
          document.querySelector("#padlock0 .locked").style.opacity = "0";
          document.querySelector("#padlock0 .unlocked").style.opacity = "1";
          //$("#alert").html(`You win! ${puzzlerSolved}`);
          //console.log(puzzlerSolved); //done- trigger worked
        } else {
          $("#alert").html("Sorry please try again!");
          puzzlerSolved = false;
        }

        //unlock 1st padlock once puzzle is solved
        // puzzlerSolved= true;
        // checkPadlocks('padlock0',puzzlerSolved);
      });
    }
  });
});
// End JS for Puzzler Puzzle

document.querySelector(".revealtext").onclick = function() {
  document.querySelector(".revealtext").style.backgroundColor = "transparent";
};

// End Cheryl Velez - Puzzler

// Dominic Duffin - Math Puzzle

// Get the modal
var mathPuzzleModal = document.getElementById("mathPuzzleModal");

// Get the button that opens the modal
var mathPuzzleBtn = document.getElementById("mathPuzzleBtn");

// Get the <span> element that closes the modal
var closeMathPuzzle = document.getElementsByClassName("close-mathpuzzle")[0];

// When the user clicks the button, open the modal
mathPuzzleBtn.onclick = function() {
  mathPuzzleModal.style.display = "grid";
};

// When the user clicks on <span> (x), close the modal and check whether all puzzles solved
closeMathPuzzle.onclick = function() {
  mathPuzzleModal.style.display = "none";
  verify();
};

// When the user clicks anywhere outside of the modal, close it
window.onclick = function(event) {
  if (event.target == mathPuzzleModal) {
    mathPuzzleModal.style.display = "none";
  }
};

// Begin Math Puzzle JavaScript (not modal)

// TODO Replace window.alerts with something else!

var positionA; //A-G store value assigned to positions in sum
var positionB;
var positionC;
var positionD;
var positionE; //F doesn't exist because = is hard wired for F.
var positionG;
var choice; //Stores value of button last pressed by user
var bPlus = true; //Switch to false if user selects minus for B
var dPlus = true; //Switch to false if user selects minus for D
var sumTotal; //Stores correct sum for comparison with final position

//Messages:
function invalidMessage() {
  document.getElementById("math-puzzle-message").innerHTML =
    "Sorry, your choice is invalid!";
}

function fullMessage() {
  document.getElementById("math-puzzle-message").innerHTML =
    "Sorry, there are no more positions to fill!";
}

function solvedMessage() {
  document.getElementById("math-puzzle-message").innerHTML =
    "Yay, you've solved this one!";
}

function wrongMessage() {
  document.getElementById("math-puzzle-message").innerHTML =
    "Oh no, you got it wrong, better try again!";
}

function resetMathPuzzle() {
  positionA = void 0;
  positionB = void 0;
  positionC = void 0;
  positionD = void 0;
  positionE = void 0;
  positionG = void 0;
  document.getElementById("math-puzzle-a").innerHTML = "Number";
  document.getElementById("math-puzzle-b").innerHTML = "Sign";
  document.getElementById("math-puzzle-c").innerHTML = "Number";
  document.getElementById("math-puzzle-d").innerHTML = "Sign";
  document.getElementById("math-puzzle-e").innerHTML = "Number";
  document.getElementById("math-puzzle-g").innerHTML = "Number";
}

function checkNumber(x) {
  //Returns true if x is a number 0 ≥ x ≤ 9
  for (var i = 0; i < 10; i++) {
    if (x == i) {
      var y = true;
      i = 10; //To stop loop
    } else {
      var y = false;
    }
  }
  return y;
}

function checkSign(x) {
  //Returns true if x is '+' or '-'
  if (x == "+" || x == "-") {
    var y = true;
  } else {
    var y = false;
  }
  return y;
}

//The assignPosition functions assign the user's choice to the position's var, after checking for validity.

function assignPositionA() {
  isChoiceValid = checkNumber(choice);
  if (isChoiceValid == true) {
    positionA = choice;
    document.getElementById("math-puzzle-a").innerHTML = choice;
  } else {
    invalidMessage();
  }
}

function assignPositionB() {
  isChoiceValid = checkSign(choice);
  if (isChoiceValid == true) {
    positionB = choice;
    document.getElementById("math-puzzle-b").innerHTML = choice;
    if (choice == "-") {
      bPlus = false;
      //console.log(bPlus);
    }
  } else {
    invalidMessage();
  }
}

function assignPositionC() {
  isChoiceValid = checkNumber(choice);
  if (isChoiceValid == true) {
    positionC = choice;
    document.getElementById("math-puzzle-c").innerHTML = choice;
  } else {
    invalidMessage();
  }
}

function assignPositionD() {
  isChoiceValid = checkSign(choice);
  if (isChoiceValid == true) {
    positionD = choice;
    document.getElementById("math-puzzle-d").innerHTML = choice;
    if (choice == "-") {
      dPlus = false;
      //console.log(dPlus);
    }
  } else {
    invalidMessage();
  }
}

function assignPositionE() {
  isChoiceValid = checkNumber(choice);
  if (isChoiceValid == true) {
    positionE = choice;
    document.getElementById("math-puzzle-e").innerHTML = choice;
  } else {
    invalidMessage();
  }
}

function assignPositionG() {
  //Also calls calculate function
  isChoiceValid = checkNumber(choice);
  if (isChoiceValid == true) {
    positionG = choice;
    document.getElementById("math-puzzle-g").innerHTML = choice;
    calculateSumTotal();
  } else {
    invalidMessage();
  }
}

function findEmptyPosition() {
  //Finds the first unfilled position
  if (positionA == undefined) {
    assignPositionA();
  } else if (positionB == undefined) {
    assignPositionB();
  } else if (positionC == undefined) {
    assignPositionC();
  } else if (positionD == undefined) {
    assignPositionD();
  } else if (positionE == undefined) {
    assignPositionE();
  } else if (positionG == undefined) {
    assignPositionG();
  } else {
    fullMessage();
  }
}

//The clicked functions record button presses by user

function oneClicked() {
  choice = 1;
  findEmptyPosition();
}

function twoClicked() {
  choice = 2;
  findEmptyPosition();
}

function threeClicked() {
  choice = 3;
  findEmptyPosition();
}

function fourClicked() {
  choice = 4;
  findEmptyPosition();
}

function fiveClicked() {
  choice = 5;
  findEmptyPosition();
}

function sixClicked() {
  choice = 6;
  findEmptyPosition();
}

function sevenClicked() {
  choice = 7;
  findEmptyPosition();
}

function eightClicked() {
  choice = 8;
  findEmptyPosition();
}

function nineClicked() {
  choice = 9;
  findEmptyPosition();
}

function zeroClicked() {
  choice = 0;
  findEmptyPosition();
}

function plusClicked() {
  choice = "+";
  findEmptyPosition();
}

function minusClicked() {
  choice = "-";
  findEmptyPosition();
}

function calculateSumTotal() {
  //Calculates correct total
  if (bPlus == true && dPlus == true) {
    sumTotal = positionA + positionC + positionE;
  } else if (bPlus == true && dPlus == false) {
    sumTotal = positionA + positionC - positionE;
  } else if (bPlus == false && dPlus == true) {
    sumTotal = positionA - positionC + positionE;
  } else if (bPlus == false && dPlus == false) {
    sumTotal = positionA - positionC - positionE;
  }
  endGame();
}

function endGame() {
  //Checks whether user is correct
  if (sumTotal == positionG) {
    solvedMessage();
    mathPuzzleSolved = true; // Global var
    //unlock 2nd lock
    // checkPadlocks('padlock1',mathPuzzleSolved);
    // document.querySelector('.unlocked').setAttribute('fill', "#cb0c59");
    document.querySelector("#padlock1 .locked").style.opacity = "0";
    document.querySelector("#padlock1 .unlocked").style.opacity = "1";
  } else {
    wrongMessage();
    resetMathPuzzle();
  }
}

//Tests for checkNumber
//var output = checkNumber(0);
//console.log(output); //true
//output = checkNumber(-1);
//console.log(output); //false
//output = checkNumber(9);
//console.log(output); //true
//output = checkNumber(10);
//console.log(output); //false
//output = checkNumber('+');
//console.log(output); //false

//Tests for checkSign:
//var output = checkSign('+');
//console.log(output); //true
//output = checkSign('-');
//console.log(output); //true
//output = checkSign(8);
//console.log(output); //false

//Tests for assignPosition functions:

//choice = 5;
//assignPositionA();
//assignPositionB(); //invalid
//assignPositionC();
//assignPositionD(); //invalid
//assignPositionE();
//assignPositionG();

//choice = '+';
//assignPositionA(); //invalid
//assignPositionB();
//assignPositionC(); //invalid
//assignPositionD();
//assignPositionE(); //invalid
//assignPositionG(); //invalid

//Tests for calculateSumTotal:
//bPlus = true;
//dPlus = true;
//positionA = 1;
//positionC = 2;
//positionE = 4;
//calculateSumTotal();
//console.log(sumTotal) //7

//bPlus = true;
//dPlus = false;
//positionA = 4;
//positionC = 2;
//positionE = 6;
//calculateSumTotal();
//console.log(sumTotal) //0

//bPlus = false;
//dPlus = true;
//positionA = 1;
//positionC = 2;
//positionE = 4;
//calculateSumTotal();
//console.log(sumTotal) //3

//bPlus = false;
//dPlus = false;
//positionA = 1;
//positionC = 1;
//positionE = 1;
//calculateSumTotal();
//console.log(sumTotal) //-1

//Tests for endGame:
//sumTotal = 9;
//positionG = 9;
//endGame(); //You win!
//sumTotal = 0;
//positionG = 9;
//endGame(); //Oh no, you're wrong!

document
  .getElementById("math-puzzle-one")
  .addEventListener("click", oneClicked, false);
document
  .getElementById("math-puzzle-two")
  .addEventListener("click", twoClicked, false);
document
  .getElementById("math-puzzle-three")
  .addEventListener("click", threeClicked, false);
document
  .getElementById("math-puzzle-four")
  .addEventListener("click", fourClicked, false);
document
  .getElementById("math-puzzle-five")
  .addEventListener("click", fiveClicked, false);
document
  .getElementById("math-puzzle-six")
  .addEventListener("click", sixClicked, false);
document
  .getElementById("math-puzzle-seven")
  .addEventListener("click", sevenClicked, false);
document
  .getElementById("math-puzzle-eight")
  .addEventListener("click", eightClicked, false);
document
  .getElementById("math-puzzle-nine")
  .addEventListener("click", nineClicked, false);
document
  .getElementById("math-puzzle-zero")
  .addEventListener("click", zeroClicked, false);
document
  .getElementById("math-puzzle-plus")
  .addEventListener("click", plusClicked, false);
document
  .getElementById("math-puzzle-minus")
  .addEventListener("click", minusClicked, false);

// End Math Puzzle JavaScript

// End Dominic Duffin - Math Puzzle

// `Paul` - Flexbox Puzzle

// Get the modal
var flexboxPuzzleModal = document.getElementById("flexboxPuzzleModal");

// Get the button that opens the modal
var flexboxPuzzleBtn = document.getElementById("flexboxPuzzleBtn");

// Get the <span> element that closes the modal
var closeFlexboxPuzzle = document.getElementsByClassName(
  "close-flexboxpuzzle"
)[0];

// When the user clicks the button, open the modal
flexboxPuzzleBtn.onclick = function() {
  flexboxPuzzleModal.style.display = "grid";
};

// When the user clicks on <span> (x), close the modal adn check whether all puzzles solved
closeFlexboxPuzzle.onclick = function() {
  flexboxPuzzleModal.style.display = "none";
  verify();
};

// When the user clicks anywhere outside of the modal, close it
window.onclick = function(event) {
  if (event.target == flexboxPuzzleModal) {
    flexboxPuzzleModal.style.display = "none";
  }
};

//define all variables used
let i = 0;
let subTitle = document.getElementsByClassName("heading__subtitle");
let displayFlex = document.getElementById("flexDisplay");
let directionOfFlex = document.getElementById("flexDirectn");
let justContent = document.getElementById("flexJustCont");
let flexAlign = document.getElementById("flexAlignItems");
let notification = document.querySelector(".notification");
let cubes = document.getElementsByClassName("cubes");
const containerClass = document.getElementsByClassName("flexPuzzle-container");
const flexDirections = ["row", "row-reverse", "column", "column-reverse"];
const flexJustifyContent = [
  "flex-start",
  "flex-end",
  "center",
  "space-between",
  "space-around",
  "space-evenly"
];
const flexAlignArray = [
  "stretch",
  "center",
  "flex-start",
  "flex-end",
  "baseline"
];

//buttons event listener
displayFlex.addEventListener("click", function() {
  if (containerClass[0].style.display == "block") {
    containerClass[0].style.display = "flex";
    displayFlex.innerHTML = "flex";

    //add space on cubes when flex is on
    for (i = 0; i < 5; i++) {
      cubes[i].style.padding = "125px";
    }
  } else {
    containerClass[0].style.display = "block";
    displayFlex.innerHTML = "Display Flex";

    //bring back original padding size on each cube
    for (i = 0; i < 5; i++) {
      cubes[i].style.padding = "15px";
    }
  }
  checkPuzzle();
});

let itemLength = flexDirections.length;
directionOfFlex.addEventListener("click", function() {
  // console.log(this.textContent);
  subTitle[0].innerHTML =
    "The flex-direction CSS property specifies how flex items are placed in the flex container defining the main axis and the direction (normal or reversed).";
  if (i <= itemLength) {
    
    this.textContent = flexDirections[i];
    containerClass[0].style.flexDirection = flexDirections[i];
    i++;
    
    
    
    if (
      document.querySelector(".flexPuzzle-container").style.flexDirection ===
      "column-reverse"
    ) {
      document.querySelector(".flexPuzzle-container").style.top = "1100px";
      document.querySelector("#flexboxPuzzleModal .modal-content").style.height =
      "1300px";
    }
 
  
   if (
      document.querySelector(".flexPuzzle-container").style.flexDirection ===
      "column"
    ) {
     
      document.querySelector("#flexboxPuzzleModal .modal-content").style.height =
      "1300px";
    }
  }
  
  
  if (i > itemLength) {
    document.querySelector("#flexboxPuzzleModal .modal-content").style.height =
      "745px";
    document.querySelector(".flexPuzzle-container").style.top = "300px";
    this.textContent = "Change Flex Direction";
    containerClass[0].style.flexDirection = "row";
    i = 0;
  }
  checkPuzzle();
});

let itemJustifyContLength = flexJustifyContent.length;
justContent.addEventListener("click", function() {
  // console.log(subTitle[0].innerHTML);
  subTitle[0].innerHTML =
    "justify-content property defines how the browser distributes space between and around content items along the main-axis of their container.";
  if (i <= itemJustifyContLength) {
    this.textContent = flexJustifyContent[i];
    containerClass[0].style.justifyContent = flexJustifyContent[i];
    i++;
  }
  if (i > itemJustifyContLength) {
    this.textContent = "Change Flex Direction";
    containerClass[0].style.justifyContent = "flex-start";
    i = 0;
  }
  checkPuzzle();
});

let itemAlignmentArrayLen = flexAlignArray.length;
let midItem = document.getElementsByClassName("cubes");
flexAlign.addEventListener("click", function() {
  // console.log(midItem[2].innerHTML);
  subTitle[0].innerHTML =
    "This controls the alignment of items on the Cross Axis.";
  if (i <= itemAlignmentArrayLen) {
    this.textContent = flexAlignArray[i];
    containerClass[0].style.alignItems = flexAlignArray[i];
    i++;
  }
  if (i > itemAlignmentArrayLen) {
    this.textContent = "Change Flex Direction";
    containerClass[0].style.alignItems = "flex-start";
    midItem[2].classList.remove("itemHeight");
    i = 0;
  }
  checkPuzzle();
});

function checkPuzzle() {
  if (displayFlex.innerHTML === "flex") {
    document.querySelectorAll(".front")[0].style.backgroundColor = "#7b1346";
    // document.querySelectorAll('.side')[0]].style.backgroundColor = '#7b1346';
    document.querySelectorAll(".left")[0].style.backgroundColor = "#7b1346";
    document.querySelectorAll(".right")[0].style.backgroundColor = "#7b1346";
    document.querySelectorAll(".bottom")[0].style.backgroundColor = "#7b1346";
    document.querySelectorAll(".top")[0].style.backgroundColor = "#7b1346";
    document.querySelectorAll(".back")[0].style.backgroundColor = "#7b1346";
    notification.innerHTML = "Keep going! Try changing flex direction now.";
    notification.style.color = "#0c4383";
    checkDirection();
  } else {
    document.querySelectorAll(".front")[0].style.backgroundColor = "#0c4383";
    // document.querySelectorAll('.side')[0].style.backgroundColor = '#0c4383';
    document.querySelectorAll(".left")[0].style.backgroundColor = "#0c4383";
    document.querySelectorAll(".right")[0].style.backgroundColor = "#0c4383";
    document.querySelectorAll(".bottom")[0].style.backgroundColor = "#0c4383";
    document.querySelectorAll(".top")[0].style.backgroundColor = "#0c4383";
    document.querySelectorAll(".back")[0].style.backgroundColor = "#0c4383";

    notification.innerHTML = 'Start with turning on "Display Flex"';
    notification.style.color = "#E6E6E6";
  }
  checkAllButtons();
}

function checkDirection() {
  if (displayFlex.innerHTML == "flex" && directionOfFlex.innerHTML == "row") {
    document.querySelectorAll(".front")[4].style.backgroundColor = "#7b1346";
    // document.querySelectorAll('.side')[4].style.backgroundColor = '#7b1346';
    document.querySelectorAll(".left")[4].style.backgroundColor = "#7b1346";
    document.querySelectorAll(".right")[4].style.backgroundColor = "#7b1346";
    document.querySelectorAll(".bottom")[4].style.backgroundColor = "#7b1346";
    document.querySelectorAll(".top")[4].style.backgroundColor = "#7b1346";
    document.querySelectorAll(".back")[4].style.backgroundColor = "#7b1346";
    notification.innerHTML = "Ok now, keep going...";
    notification.style.color = "#0c4383";
    checkJustifyContent();
  } else {
    document.querySelectorAll(".front")[4].style.backgroundColor = "#0c4383";
    // document.querySelectorAll('.side')[4].style.backgroundColor = '#0c4383';
    document.querySelectorAll(".left")[4].style.backgroundColor = "#0c4383";
    document.querySelectorAll(".right")[4].style.backgroundColor = "#0c4383";
    document.querySelectorAll(".bottom")[4].style.backgroundColor = "#0c4383";
    document.querySelectorAll(".top")[4].style.backgroundColor = "#0c4383";
    document.querySelectorAll(".back")[4].style.backgroundColor = "#0c4383";
  }
}

function checkJustifyContent() {
  if (
    displayFlex.innerHTML == "flex" &&
    directionOfFlex.innerHTML == "row" &&
    justContent.innerHTML == "center"
  ) {
    document.querySelectorAll(".front")[1].style.backgroundColor = "#7b1346";
    // document.querySelectorAll('.side')[1].style.backgroundColor = '#7b1346';
    document.querySelectorAll(".left")[1].style.backgroundColor = "#7b1346";
    document.querySelectorAll(".right")[1].style.backgroundColor = "#7b1346";
    document.querySelectorAll(".bottom")[1].style.backgroundColor = "#7b1346";
    document.querySelectorAll(".top")[1].style.backgroundColor = "#7b1346";
    document.querySelectorAll(".back")[1].style.backgroundColor = "#7b1346";
    document.querySelectorAll(".front")[3].style.backgroundColor = "#7b1346";
    // document.querySelectorAll('.side')[3].style.backgroundColor = '#7b1346';
    document.querySelectorAll(".left")[3].style.backgroundColor = "#7b1346";
    document.querySelectorAll(".right")[3].style.backgroundColor = "#7b1346";
    document.querySelectorAll(".bottom")[3].style.backgroundColor = "#7b1346";
    document.querySelectorAll(".top")[3].style.backgroundColor = "#7b1346";
    document.querySelectorAll(".back")[3].style.backgroundColor = "#7b1346";
    notification.innerHTML = "Hmm, you're getting hotter.";
    notification.style.color = "#0d4383";
    checkAllButtons();
  } else {
    document.querySelectorAll(".front")[1].style.backgroundColor = "#0c4383";
    // document.querySelectorAll('.side')[1].style.backgroundColor = '#0c4383';
    document.querySelectorAll(".left")[1].style.backgroundColor = "#0c4383";
    document.querySelectorAll(".right")[1].style.backgroundColor = "#0c4383";
    document.querySelectorAll(".bottom")[1].style.backgroundColor = "#0c4383";
    document.querySelectorAll(".top")[1].style.backgroundColor = "#0c4383";
    document.querySelectorAll(".back")[1].style.backgroundColor = "#0c4383";
    document.querySelectorAll(".front")[3].style.backgroundColor = "#0c4383";
    // document.querySelectorAll('.side')[3].style.backgroundColor = '#0c4383';
    document.querySelectorAll(".left")[3].style.backgroundColor = "#0c4383";
    document.querySelectorAll(".right")[3].style.backgroundColor = "#0c4383";
    document.querySelectorAll(".bottom")[3].style.backgroundColor = "#0c4383";
    document.querySelectorAll(".top")[3].style.backgroundColor = "#0c4383";
    document.querySelectorAll(".back")[3].style.backgroundColor = "#0c4383";
    notification.innerHTML = "Ok now, keep going...";
  }
}

function checkAllButtons() {
  if (
    displayFlex.innerHTML == "flex" &&
    directionOfFlex.innerHTML == "row" &&
    justContent.innerHTML == "center" &&
    flexAlign.innerHTML == "center"
  ) {
    document.querySelectorAll(".front")[2].style.backgroundColor = "#7b1346";
    // document.querySelectorAll('.side')[2].style.backgroundColor = '#7b1346';
    document.querySelectorAll(".left")[2].style.backgroundColor = "#7b1346";
    document.querySelectorAll(".right")[2].style.backgroundColor = "#7b1346";
    document.querySelectorAll(".bottom")[2].style.backgroundColor = "#7b1346";
    document.querySelectorAll(".top")[2].style.backgroundColor = "#7b1346";
    document.querySelectorAll(".back")[2].style.backgroundColor = "#7b1346";
    notification.innerHTML = "Well done! You've solved it!";
    notification.style.color = "#0d4383";
    flexboxPuzzleSolved = true;
    //unlock 2nd padlock once puzzle is solved
    // checkPadlocks('padlock2',flexboxPuzzleSolved);
    // document.querySelector('.unlocked').setAttribute('fill', "#eb649f");
    flexboxPuzzleSolved = true;
    document.querySelector("#padlock2 .locked").style.opacity = "0";
    document.querySelector("#padlock2 .unlocked").style.opacity = "1";
  } else {
    document.querySelectorAll(".front")[2].style.backgroundColor = "#0c4383";
    // document.querySelectorAll('.side')[2].style.backgroundColor = '#0c4383';
    document.querySelectorAll(".left")[2].style.backgroundColor = "#0c4383";
    document.querySelectorAll(".right")[2].style.backgroundColor = "#0c4383";
    document.querySelectorAll(".bottom")[2].style.backgroundColor = "#0c4383";
    document.querySelectorAll(".top")[2].style.backgroundColor = "#0c4383";
    document.querySelectorAll(".back")[2].style.backgroundColor = "#0c4383";
    notification.innerHTML = "Ok now, keep going...";
    flexboxPuzzleSolved = false;
    document.querySelector("#padlock2 .locked").style.opacity = "1";
    document.querySelector("#padlock2 .unlocked").style.opacity = "0";
  }
  console.log(flexboxPuzzleSolved);
}

// End Paul - Flexbox Puzzle

// Kristopher Van Sant - Mirror Puzzle

// Get the modal
var mirrorPuzzleModal = document.getElementById("mirrorPuzzleModal");

// Get the button that opens the modal
var mirrorPuzzleBtn = document.getElementById("mirrorPuzzleBtn");

// Get the <span> element that closes the modal
var closeMirrorPuzzle = document.getElementsByClassName(
  "close-mirrorpuzzle"
)[0];

// When the user clicks the button, open the modal
mirrorPuzzleBtn.onclick = function() {
  mirrorPuzzleModal.style.display = "grid";
};

// When the user clicks on <span> (x), close the modal and check whether all puzzles solved
closeMirrorPuzzle.onclick = function() {
  mirrorPuzzleModal.style.display = "none";
  verify();
};

// When the user clicks anywhere outside of the modal, close it
window.onclick = function(event) {
  if (event.target == mirrorPuzzleModal) {
    mirrorPuzzleModal.style.display = "none";
  }
};

// // Drag and drop note
// Draggable.create("#noteWrap", {
//   bounds:"svg"
// });

// Begin JS for Mirror Puzzle (not modal)

$(function() {
  $("#note").draggable();
});

$(function() {
  $("#note").draggable();
  $("#mmirror").droppable({
    drop: function(event, ui) {
      $("#note-text").removeClass("mirror-text");

      $("#mirror-clue").replaceWith("<p>Ah, there we go. Interesting.</p>");

      mirrorPuzzleSolved = true;

      //unlock 4th padlock once puzzle is solved
      // checkPadlocks('padlock4',mirrorPuzzleSolved);
      // document.querySelector('use#ulock4 >

      document.querySelector("#padlock4 .locked").style.opacity = "0";
      document.querySelector("#padlock4 .unlocked").style.opacity = "1";
    }
  });
});
// End JS for Mirror Puzzle

// End Kristopher Van Sant - Mirror Puzzle

// Ryan Saunders - Pipe Puzzle

// Pipe Break Timer
var myVar;

function myFunction() {
  myVar = setTimeout(function() {
    document.querySelector(
      "#pipePuzzleModal .modal-content "
    ).style.backgroundImage =
      "url('https://media.giphy.com/media/46LMaiLUFRkoU/giphy.gif')";
    document.querySelector(
      "#pipePuzzleModal .modal-content "
    ).style.backgroundSize =
      "cover";
    document.querySelector("#pipePuzzleModal .modal-content ").style.boxShadow =
      "0px 0px 30px 10px #727ab9";
    document.querySelector("#pipe-notbusted").style.display = "none";
    document.querySelector("#pipe-notbusted").style.display = "none";
    document.querySelector("#pipe-busted").style.display = "block";

    pipePuzzleSolved = true;
    document.querySelector("#padlock3 .locked").style.opacity = "0";
    document.querySelector("#padlock3 .unlocked").style.opacity = "1";
  }, 75000);
}

function myStopFunction() {
  clearTimeout(myVar);
}

// Get the modal
var pipePuzzleModal = document.getElementById("pipePuzzleModal");

// Get the button that opens the modal
var pipePuzzleBtn = document.getElementById("pipePuzzleBtn");

// Get the <span> element that closes the modal
var closePipePuzzle = document.getElementsByClassName("close-pipepuzzle")[0];

// When the user clicks the button, open the modal
pipePuzzleBtn.onclick = function() {
  pipePuzzleModal.style.display = "grid";
  myFunction();
};

// When the user clicks on <span> (x), close the modal and check whether all puzzles solved
closePipePuzzle.onclick = function() {
  pipePuzzleModal.style.display = "none";
  verify();
  myStopFunction();
};

// When the user clicks anywhere outside of the modal, close it
// window.onclick = function(event) {

//   if (event.target == pipePuzzleModal) {
//     pipePuzzleModal.style.display = "none";
//     myStopFunction2();

//   }

// }

// Begin JS for Pipe Puzzle (not Modal)

// Store our Pipes directions within an array
// NOTE: We need to look into extending this on a per row basis

let pipeDef = [];

// Set rows to have letter assigned
var rowAlpha = "A".charCodeAt(0);
var curRow = String.fromCharCode(rowAlpha++);

// Array of classes for our different types of pipe
var pipeType = ["straight", "cross", "angle", "junction", "empty"];
var pipeTypeX = [
  ["Up", "Down"],
  ["Up", "Right", "Down", "Left"],
  ["Right", "Down"],
  ["Up", "Right", "Down"],
  ["None"]
];

// Text for pipe current direction
var dirText = ["Up", "Right", "Down", "Left"];

// Set initial line count & pipe count
var lineCount = 0; // current line
var pipeCount = 0; // current pipe number

// Set the initial number of total blocks and columns
var columns = 5; // Total of 4 coluns - 4 * 4 = 16 total blocks
var totalBlocks = 25;

$(document).ready(function() {
  // Add the first row with the start point
  addStart();

  // Call our newPipe function for the total number of blocks
  for (var i = 0; i < totalBlocks; i++) newPipe();

  // Add the final end block to the screen
  addEnd();

  // When a pipe is clicked on the left half, turn counter clockwise & save the direction
  $(document).on("click touchstart", ".left", function() {
    pipeID = $(this)
      .next()
      .next()
      .attr("id")
      .substring(5);
    pipeDef[pipeID].direction -= 90;
    $(this)
      .next()
      .next()
      .css("transform", "rotate(" + pipeDef[pipeID].direction + "deg)");
  });

  // When a pipe is clicked on the right half, turn clockwise & save the direction
  $(document).on("click touchstart", ".right", function() {
    pipeID = $(this)
      .next()
      .attr("id")
      .substring(5);
    pipeDef[pipeID].direction += 90;
    $(this)
      .next()
      .css("transform", "rotate(" + pipeDef[pipeID].direction + "deg)");
  });
});

// Function to add a new pipe to the screen
function newPipe() {
  // When the current lineCount reaches the column maximum, force a clear to start a new line
  if (lineCount == columns) {
    $(".container").append($("<div>", { style: "clear: both" }));
    lineCount = 0;
    curRow = String.fromCharCode(rowAlpha++);
  }

  // Add our new 'box' div within the content div
  $(".container").append($("<div>", { class: "box" }));

  // Add the left overlaid div as a child of 'box'
  $(".box")
    .last()
    .append($("<div>", { class: "left", text: curRow }));

  // Add the right overlaid div as a child of 'box'
  $(".box")
    .last()
    .append($("<div>", { class: "right", text: lineCount + 1 }));

  // Before any specific pipe code is spat out, call function which will return the details of the pipe as an object. Pass argument of "A1" etc.

  // curRow = A | lineCount = 0 + 1 (starts on line 0)
  var curPipe = valPipe(curRow + (lineCount + 1));

  // Increase the pipeDef array to have the same number of elements as there are pipes.
  if (pipeDef.length <= pipeCount) {
    pipeDef.push(curPipe);
  }

  //alert(pipeDef[pipeCount].direction);
  //alert(curPipe.id + " " + curPipe.direction + " " + curPipe.type);

  // Here we need to put our algorithm to make this work.
  // Also need random rotation for each pipe so that they don't always start in the same direction!

  // I need to calculate the route for a win from A1 to D4.
  // So, A1, A2, B2, B3, C3, D3, D4

  //     1  2  3  4
  // A [[X][X][ ][ ]]
  // B [[ ][X][X][ ]]
  // C [[ ][ ][X][ ]]
  // D [[ ][ ][X][X]]

  // A1 is Bend, Junction or cross
  // A2 is Bend, Junction or Cross
  // B2 is Bend, Junction or Cross
  // B3 is Bend, Junction or Cross
  // C3 is Straight, Junction or Cross
  // D3 is Bend, Junction or Cross
  // D4 is Straight, Junction or Cross

  // Then we need to work out orientation of pipes

  // If pipeType = 2 for first pipe, we need to make A2 have a pipe
  // if A2 = pipeType 2 then B2 must have pipe!
  // if B2 = pipeType 2 then B1 or B3 must have pipe!

  // add our actual pipe span (Random)
  $(".box")
    .last()
    .append(
      $("<span>", {
        class: "pipeblock pipe pipe-" + pipeType[curPipe.type],
        id: "pipe-" + pipeCount,
        style: "transform: rotate(" + curPipe.direction + "deg);"
      })
    );

  // Increment the pipeCount & lineCount counters
  pipeCount += 1;
  lineCount += 1;

  // Output number of rows and columns to test area
  document.getElementById("rowCount").value = Math.ceil(pipeCount / columns);
  document.getElementById("colCount").value = columns;
}

// Add a new "Start" block/label to the first line.
function addStart() {
  // Add our new 'box' div within the content div
  $(".container").append($("<div>", { class: "box fake" }));

  // Add the end pipe as a child of 'box'
  $(".box")
    .last()
    .append($("<span>", { class: "startPipe", text: "Start" }));

  for (var i = 0; i < columns - 1; i++) {
    $(".container").append($("<div>", { class: "box fake" }));
  }

  $(".container").append($("<div>", { style: "clear: both" }));
}

// Add a new "End" block/label to the last pipe added.
function addEnd() {
  // Add our new 'box' div within the content div
  $(".container").append(
    $("<div>", {
      class: "box",
      style: "width:25px; border: none; position: absolute;"
    })
  );

  // Add the end pipe as a child of 'box'
  $(".box")
    .last()
    .append($("<span>", { class: "endPipe", text: "End" }));
}

// Function to add a new pipe to the screen
function updatePipes() {
  clearAll();
  columns = document.getElementById("colCount").value;
  totalBlocks = document.getElementById("rowCount").value * columns;

  //alert("Columns: " + columns + " | Total Blocks: " + totalBlocks + " | Rows: " + (totalBlocks / columns));

  addStart();
  for (var i = 0; i < totalBlocks; i++) newPipe();
  addEnd();
}

function clearAll() {
  //$(".container").innerHTML = '';

  // Store our Pipes directions within an array
  pipeDef = [];

  // Set initial line count & pipe count
  lineCount = 0;
  pipeCount = 0;
  document.getElementById("container").innerHTML = "";

  // reset row letters
  rowAlpha = "A".charCodeAt(0);
  curRow = String.fromCharCode(rowAlpha++);
}

function valPipe(cell) {
  var x;

  var topLeft =
    pipeCount - columns - 1 >= 0 &&
    (pipeCount - columns - 1) % columns != columns - 1
      ? pipeCount - columns - 1
      : "None";
  var top = pipeCount - columns >= 0 ? pipeCount - columns : "None";
  var topRight =
    pipeCount - columns + 1 >= 0 && (pipeCount - columns + 1) % columns != 0
      ? pipeCount - columns + 1
      : "None";
  var left =
    pipeCount - 1 >= 0 && (pipeCount - 1) % columns != columns - 1
      ? pipeCount - 1
      : "None";

  // If A1 (So if Above = Empty and Left = Empty and lineCount not final pipe) then must contain pipe (not empty)
  // If Above = empty & left = straight then pick anything.
  // If above = empty & left = bent then pick any other than empty

  // Set x to a random value between 0-4 (0-3 for first element and last element)
  // First element can be 0-3 but last needs to check various bits!
  if (cell == "A1") {
    x = Math.floor(Math.random() * 4);
  } else {
    x =
      pipeCount == 0
        ? Math.floor(Math.random() * 4)
        : pipeCount == totalBlocks - 1
          ? Math.floor(Math.random() * 4)
          : Math.floor(Math.random() * 5);
  }

  $(".bottomConsole").append("<strong>" + cell + ": </strong>");
  $(".bottomConsole").append(
    "Top Left: " +
      (topLeft != "None"
        ? pipeType[pipeDef[topLeft].type]
        : "<strong>None</strong>") +
      " | Top: " +
      (top != "None" ? pipeType[pipeDef[top].type] : "<strong>None</strong>") +
      " | Top Right: " +
      (topRight != "None"
        ? pipeType[pipeDef[topRight].type]
        : "<strong>None</strong>") +
      " | Left: " +
      (left != "None"
        ? pipeType[pipeDef[left].type]
        : "<strong>None</strong>") +
      "<br />"
  );

  $(".bottomConsole").append(
    "Top Left Pipe can Join on: " +
      (topLeft != "None"
        ? pipeTypeX[pipeDef[topLeft].type]
            .toString()
            .split(",")
            .join(", ")
        : "None") +
      "<br />"
  );

  $(".bottomConsole").append(
    "Top Pipe can Join on: " +
      (top != "None"
        ? pipeTypeX[pipeDef[top].type]
            .toString()
            .split(",")
            .join(", ")
        : "None") +
      "<br />"
  );

  $(".bottomConsole").append(
    "Top Right Pipe can Join on: " +
      (topRight != "None"
        ? pipeTypeX[pipeDef[topRight].type]
            .toString()
            .split(",")
            .join(", ")
        : "None") +
      "<br />"
  );

  $(".bottomConsole").append(
    "Left Pipe can Join on: " +
      (left != "None"
        ? pipeTypeX[pipeDef[left].type]
            .toString()
            .split(",")
            .join(", ")
        : "None") +
      "<br />"
  );

  //if (left != "None") {
  //  $('.bottomConsole').append(pipeTypeX[pipeDef[left].type].includes('Right'));
  //}

  // A1 - Still tempted to just check for cell == 'A1' here...
  if (left == "None" && top == "None") {
    // Setting direction to -90 as the images I'm using are not the same as the actual algorithm being used.
    var y = -90;
    var dirCount = 0;
    var dirCheck = "";
    var z = [];

    // This for loop swaps our directions to see which orientations are valid (Does the pipe connect?)
    for (var r = 0; r < 4; r++) {
      dirCheck = "Run " + (r + 1) + ": ";

      for (var i = 0; i < pipeTypeX[x].length; i++) {
        dirCheck +=
          (dirText.indexOf(pipeTypeX[x][i]) + r > dirText.length - 1
            ? (dirText.indexOf(pipeTypeX[x][i]) + r) % (dirText.length - 1) > 0
              ? dirText[
                  (dirText.indexOf(pipeTypeX[x][i]) + r) %
                    (dirText.length - 1) -
                    1
                ]
              : dirText[
                  (dirText.indexOf(pipeTypeX[x][i]) + r) %
                    (dirText.length - 1) +
                    2
                ]
            : dirText[dirText.indexOf(pipeTypeX[x][i]) + r]) +
          "[" +
          (dirText.indexOf(pipeTypeX[x][i]) + r > dirText.length - 1
            ? (dirText.indexOf(pipeTypeX[x][i]) + r) % (dirText.length - 1) > 0 // if out of bounds, this corrects index
              ? (dirText.indexOf(pipeTypeX[x][i]) + r) % (dirText.length - 1) -
                1
              : (dirText.indexOf(pipeTypeX[x][i]) + r) % (dirText.length - 1) +
                2
            : dirText.indexOf(pipeTypeX[x][i]) + r) + // if within bounds, this simply grabs new index
          "] ";

        // puts all current directions into string, if our count >= 2 then it's a valid pipe that
        // we can use to connect to others. If so, we +1 to our master check. At the end if our total > 0
        // the pipe is valid? I need to save f though on a "good" pipe.

        //alert("Run " + (f+1) + ": " + dirText.indexOf(pipeTypeX[x][i]) + " - " + pipeTypeX[x][i] + " Becomes: " + (((dirText.indexOf(pipeTypeX[x][i])+f) > (dirText.length -1)) ? (dirText.indexOf(pipeTypeX[x][i])+f)%(dirText.length -1)-1 : (dirText.indexOf(pipeTypeX[x][i])+f)) + " - " + (((dirText.indexOf(pipeTypeX[x][i])+f) > (dirText.length -1)) ? dirText[(dirText.indexOf(pipeTypeX[x][i])+f)%(dirText.length -1)-1] : dirText[(dirText.indexOf(pipeTypeX[x][i])+f)]));

        //alert(dirText.indexOf(pipeTypeX[x][i])+f%(dirText.length -1) + " - " + (dirText.length -1));
      }

      // These need to be dynamic based upon what's around it.
      dirCount += dirCheck.includes("Up") ? 1 : -1;
      dirCount += dirCheck.includes("Right") ? 1 : 0;
      dirCount += dirCheck.includes("Down") ? 1 : 0;
      dirCount += dirCheck.includes("Left") ? 0 : 0;

      //bleh += (pipeTypeX[x].includes('Up')) ? 1 : -1;
      //bleh += (pipeTypeX[x].includes('Right')) ? 1 : 0;
      //bleh += (pipeTypeX[x].includes('Down')) ? 1 : 0;
      //bleh += (pipeTypeX[x].includes('Left')) ? -1 : 0;

      // Add successful direction to Connection State
      if (dirCount >= 2) {
        z.push(r);
      }

      dirCount = 0;
    }
  } else {
    // Direction of pipe (When finished will be based on surrounding)
    var y = 90 * Math.floor(Math.random() * 4);
    // Shoving directions in here for now. Changing to orientation (0-3) later - can have more than 1 value
    var z = pipeTypeX[x];
  }

  $(".bottomConsole").append("<hr />");

  return {
    id: cell, // A1 (A1-E5)
    type: x, // 1 (Used in pipeType Array (0,1,2,3,4))
    direction: y, // 90 (Degrees (0,90,180,270))
    state: z // 1,2 (Orientations that are valid (0-3))
  };
}

function test() {
  $(".bottomConsole").empty();

  var dirNum;

  for (var i = 0; i < pipeDef.length; i++) {
    dirNum = pipeDef[i].direction / 360;
    dirNum = (dirNum - Math.floor(dirNum)) * 4;

    $(".bottomConsole").append(
      "Pipe ID: pipe-" +
        i +
        " | Pipe Position: " +
        pipeDef[i].id +
        " | Pipe Direction: " +
        pipeDef[i].direction +
        " ( " +
        dirText[dirNum] +
        ") | Pipe Type: " +
        pipeType[pipeDef[i].type] +
        " | Connection State: " +
        pipeDef[i].state +
        "<br />"
    );
  }
}

// NOTES:
// Make button with slider to select difficulty ?
// Easy - Normal - Hard - Extreme - Expert
// 2x2 - 3x3 - 4x4 - 5x5 - 6x6
// Multi dimensional  key-pair/array? each side has an index?
// create algorithm to generate correct "path" to win
// and based on difficulty, spit out "grid" in random
// order (avoiding solved path).
// top left & bottom right always ends. Direction is
// random based on possible solved path outcomes

// End JS for Pipe Puzzle

// End Ryan Saunders - Pipe Puzzle

// Antoine Guillien - Recursion Puzzle

// Get the modal
var recursionPuzzleModal = document.getElementById("recursionPuzzleModal");

// Get the button that opens the modal
var recursionPuzzleBtn = document.getElementById("recursionPuzzleBtn");

// Get the <span> element that closes the modal
var closeRecursionPuzzle = document.getElementsByClassName(
  "close-recursionpuzzle"
)[0];

// When the user clicks the button, open the modal
recursionPuzzleBtn.onclick = function() {
  recursionPuzzleModal.style.display = "grid";
};

// When the user clicks on <span> (x), close the modal and check whether all puzzles solved
closeRecursionPuzzle.onclick = function() {
  recursionPuzzleModal.style.display = "none";
  verify();
};

// When the user clicks anywhere outside of the modal, close it
window.onclick = function(event) {
  if (event.target == recursionPuzzleModal) {
    recursionPuzzleModal.style.display = "none";
    verify();
  }
  if (event.target == puzzlerModal) {
    puzzlerModal.style.display = "none";
    verify();
  }

  if (event.target == mathPuzzleModal) {
    mathPuzzleModal.style.display = "none";
    verify();
  }

  if (event.target == flexboxPuzzleModal) {
    flexboxPuzzleModal.style.display = "none";
    verify();
  }

  if (event.target == mirrorPuzzleModal) {
    mirrorPuzzleModal.style.display = "none";
    verify();
  }

  if (event.target == pipePuzzleModal) {
    pipePuzzleModal.style.display = "none";
    verify();
    myStopFunction();
  }
};

// Start JS for Recursion Puzzle
const TYPE = {
  ROOM: 0,
  CORRIDOR: 1,
  DOOR_IN: 2,
  DOOR_OUT: 3,
  OBJECT: 4,
  CONTAINER: 5,
  CAT: 6,
  THOUGHTS: 7,
  EXIT: 8
};

const config = {
  [TYPE.ROOM]: {
    seeds: () => {
      const adjectives = ["Tiny", "Big", "Dirty"];
      const colors = ["Fluorescent", "Dark", "Luminous", "Resplendant"];
      return `${_.sample(adjectives)} ${_.sample(colors)} Room`;
    },
    relations: [
      { type: TYPE.DOOR_OUT, min: 1, max: 3 },
      { type: TYPE.CONTAINER, min: 1, max: 5 },
      { type: TYPE.CAT, min: 1, max: 1, p: 0.2 }
    ]
  },
  [TYPE.CONTAINER]: {
    seeds: ["Freezer", "Fridge", "Icebox"],
    relations: [
      { type: TYPE.OBJECT, min: 1, max: 2 },
      {
        type: TYPE.EXIT,
        min: 1,
        max: 1,
        p: data => {
          const nb = countParents(data);
          if (nb > 2) {
            return 0.05 * (nb / 2);
          } else {
            return 0;
          }
        }
      }
    ]
  },
  [TYPE.OBJECT]: {
    seeds: [
      "Beans",
      "Carrots",
      "French fries",
      "Cucumber",
      "Peas",
      "Strawberries",
      "Blueberries",
      "Shrimp",
      "Pizza",
      "Broccoli",
      "Spinach",
      "Soup"
    ],
    relations: []
  },
  [TYPE.CORRIDOR]: {
    seeds: ["Corridor", "Aisle", "Passage", "Couloir", "Lobby"],
    relations: [{ type: TYPE.DOOR_IN, min: 1, max: 3 }]
  },
  [TYPE.DOOR_IN]: {
    seeds: ["A Door"],
    relations: [{ type: TYPE.ROOM, min: 1, max: 1 }]
  },
  [TYPE.DOOR_OUT]: {
    seeds: ["A Door"],
    relations: [{ type: TYPE.CORRIDOR, min: 1, max: 1 }]
  },
  [TYPE.EXIT]: {
    seeds: ["wiiiii"],
    relations: []
  },
  [TYPE.CAT]: {
    seeds: () => {
      const adjectives = ["Majestic", "Big", "Lazy"];
      const coats = ["", "Bi-Coloured", "Tabby", "Tortoiseshell", "Calico"];
      const colors = [
        "Dark",
        "White",
        "Brown",
        "Ginger",
        "Grey",
        "Cinnamon",
        ""
      ];
      return `${_.sample(adjectives)} ${_.sample(coats)} ${_.sample(
        colors
      )} Cat`;
    },
    relations: [{ type: TYPE.THOUGHTS, min: 1, max: 2 }]
  },
  [TYPE.THOUGHTS]: {
    seeds: [
      "Sharp Look",
      "Paws",
      "Tail",
      "Weird Look",
      "Thoughts Of Destruction",
      "Starvation"
    ],
    relations: []
  }
};

let tid = 0;
const generateThing = (type, parent) => {
  let name = Array.isArray(config[type].seeds)
    ? _.sample(config[type].seeds)
    : config[type].seeds();
  return {
    type: type,
    name,
    id: tid++,
    links: [],
    parent
  };
};

const countParents = data => {
  let sum = 0;
  let p = data;
  while (p.parent) {
    p = p.parent;
    sum++;
  }
  return sum;
};

const generateFromParent = parent => {
  let links = [];
  config[parent.type].relations.forEach(r => {
    let p = r.p ? (r.p instanceof Function ? r.p(parent) : r.p) : 1;
    if (r.type == TYPE.EXIT) {
      console.log(p);
    }
    if (p === 1 || Math.random() < p) {
      links = links.concat(
        Array.from({ length: _.random(r.min, r.max) }, () =>
          generateThing(r.type, parent)
        )
      );
    }
  });
  return links;
};

Vue.component("thing", {
  props: ["data", "create", "cb"],
  data: () => ({
    show: false
  }),
  methods: {
    createLinks: function() {
      let self = this;
      this.data.links = generateFromParent(this.data);
      this.cb(this.data);
    },
    handle: function() {
      if (!this.data.links.length) {
        this.createLinks();
      }
      this.show = !this.show;
    }
  },
  template: `
    <div class="thing">
      <div class="flex">
        <div>
          <span v-if="data.type == TYPE.EXIT"><i class="fa fa-ice-cream"></i></span>
          <span v-else>{{data.name}}</span>
        </div>
        <div @click="handle" v-if="[TYPE.OBJECT, TYPE.EXIT, TYPE.THOUGHTS].indexOf(data.type) === -1">
          <i v-if="show" class="fas fa-arrow-left"></i>
          <i v-else class="fas fa-arrow-right"></i>
        </div>
      </div>
      <div class="children" v-if="show">
        <div v-for="c in data.links">
          <thing :data="c" :key="c.id" :cb="cb"></thing>
        </div>
      </div>
    </div>
  `
});

const app = new Vue({
  el: "#app",
  data: {
    root: null,
    won: false,
    details: {
      clicks: 0,
      level: 0,
      opened: 0
    }
  },
  beforeMount: function() {
    this.root = generateFromParent({ type: TYPE.DOOR_IN, links: [] }).pop();
  },
  methods: {
    cb: function(data) {
      if (data.type === TYPE.CONTAINER) {
        this.details.opened++;
      }
      if (data.links.some(l => l.type === TYPE.EXIT)) {
        this.details.level = countParents(data);
        this.won = true;
        recursionPuzzleSolved = true;
        //unlock 6th padlock once puzzle is solved
        // checkPadlocks('padlock5',recursionPuzzleSolved);
        // document.querySelector(' .unlocked').setAttribute('fill', "#7b1346");
        document.querySelector("#padlock5 .locked").style.opacity = "0";
        document.querySelector("#padlock5 .unlocked").style.opacity = "1";
      }
      this.details.clicks++;
    }
  }
});

// End Antoine Guillien - Recursion Puzzle

// Padlock Functionality and Verification

// let padlocks = document.querySelectorAll('[id^=padlock]'),
// pathsToAnimate = document.querySelectorAll('[id^=ulock]');

// function checkPadlocks(whichLock,bol=false) {
//   //iterate through each path id of svg padlock
//   for(let i=0; i < 6; i++) {
//     //console.log(i + '  ' + padlocks[i].getAttribute('id'));
//     //console.log(whichLock === padlocks[i].getAttribute('id'));
//     if(whichLock === padlocks[i].getAttribute('id') && bol) {

//       // pathsToAnimate[i].setAttribute('href','#unlocked');
//       // console.log(pathsToAnimate[i]);
//       // document.querySelector(`${whichLock}.locked`).style.opacity="0";
//  // document.querySelector(`${whichLock}.unlocked`).style.opacity="1";
//       var paths = document.getElementsByTagName("path");
//       whichLock.paths[0].style.opacity = "0";
//       whichLock.paths[1].style.opacity = "1";
//     }
//   }
// }

// Start JS for verification

var haveEscaped;

function escapeNow() {
  haveEscaped = setTimeout(function() {
    //  replace door with opened version
    document.getElementById("door").style.opacity = "0";
    document.getElementById("open-door").style.opacity = "1";
    // window.alert("You may now escape!");
    document.getElementById("escaped").style.visibility = "visible";
  }, 750);
}

// Checks whether player has solved all puzzles, if yes, escape!
function verify() {
  // testing
  //   var puzzlerSolved = true; // ✅
  // var mathPuzzleSolved = true; // ✅
  // var flexboxPuzzleSolved = true; // ✅
  // var mirrorPuzzleSolved = true; // ✅
  // var pipePuzzleSolved = true; // ✅
  // var recursionPuzzleSolved = true; // ✅

  if (
    puzzlerSolved == true &&
    mathPuzzleSolved == true &&
    flexboxPuzzleSolved == true &&
    mirrorPuzzleSolved == true &&
    pipePuzzleSolved == true &&
    recursionPuzzleSolved == true
  ) {
    //ESCAPE

    escapeNow();
  }
}
verify();

// End JS for verification

            
          
!
999px
🕑 One or more of the npm packages you are using needs to be built. You're the first person to ever need it! We're building it right now and your preview will start updating again when it's ready.

Console