﻿ body{font-family:var(--serifFonts);padding:0;margin:0;text-align:left;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-font-feature-settings:"liga" on;background-color:var(--pageBackground)}.leftCat{position:absolute;transform:translate(-36px,-31px);transition:.2s cubic-bezier(0,.76,.38,1.33) transform;z-index:-10}#myKIRUPALink img{border-radius:50%;border:solid 2px var(--mediaBorder);margin-left:-3px}.kirupaDialog{position:fixed;z-index:1000;width:100vw;height:100vh;left:0;top:0;background-color:#2f2f2fe0;display:flex;align-items:center;justify-content:center;pointer-events:bounding-box}.kirupaDialog:not([open]){display:none}.joinForums{border-top:2px solid var(--structureBorder);text-align:center;border-bottom:2px solid var(--structureBorder);padding-top:10px;padding-bottom:10px}.joinForums h4{margin-top:5px}.joinForums p{font-size:16px}.joinForums a{padding:30px;display:inline-block;border-radius:5px;background-color:var(--lighter)}.joinForums a:hover{background-color:var(--light)}#themeChooser:hover .leftCat,#searchChooser:hover .leftCat{transform:translate(-44px,-44px)}#themeChooser,#searchChooser{background-color:var(--lighter);padding:20px;border-radius:5px;margin-top:30px;position:relative;box-shadow:0 0 8px -2px var(--primary);width:450px;height:fit-content}#themeChooser button{padding:9px;border:3px solid #000;border-radius:5px;margin:14px;cursor:pointer}#themeChooser button:hover{transform:scale(1.3)}#themeChooser #theme_blue{border-color:#0066af;background-color:#ceebff}#themeChooser #theme_yellow{border-color:#867e0f;background-color:#fe2}#themeChooser #theme_pink{border-color:#ff0767;background-color:#ffd9e6}#themeChooser #theme_green{border-color:#2e7d32;background-color:#81c784}#themeChooser #theme_purple{border-color:#6b16a6;background-color:#b891d4}#themeChooser #theme_pico8{border-color:#333;background-color:#fca}#themeChooser #theme_black{border-color:#666;background-color:#ccc}#themeChooser #theme_brown{border-color:#67320f;background-color:#88634e}#themeChooser .activeTheme{box-shadow:0 0 10px 1px var(--primary)}#darkmode{}#lightmode{}#themeChooser .themeHeading{margin:0;font-size:14px;font-weight:700}#themeChooser .bg{margin-top:10px;padding-top:10px;border-top:2px solid var(--structureBorder)}.modes{padding:10px;border:2px solid var(--structureBorder);margin-top:10px;border-radius:5px;font-weight:700;display:block}.modes input{margin-right:7px}.modes:hover{background-color:var(--highlighter)}#radioContainer{color:var(--bodyText)}.themeLabel{margin-top:10px}.videoframe{padding-bottom:240px;background-image:url(/images/videocaption.png);background-repeat:no-repeat;background-size:168px;background-position:calc(50% + 65px) calc(100% - 20px)}lite-youtube{background-color:#000;position:relative;display:block;contain:content;background-position:center center;background-size:cover;cursor:pointer}lite-youtube::before{content:'';display:block;position:absolute;top:0;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==);background-position:top;background-repeat:repeat-x;height:60px;padding-bottom:50px;width:100%;transition:all .2s cubic-bezier(0,0,.2,1)}lite-youtube::after{content:"";display:block;padding-bottom:calc(100%/(16/9))}lite-youtube>iframe{width:100%;height:100%;position:absolute;top:0;left:0;border:0}lite-youtube>.lty-playbtn{width:68px;height:48px;position:absolute;cursor:pointer;transform:translate3d(-50%,-50%,0);top:50%;left:50%;z-index:1;background-color:transparent;background-image:url(data:image/svg+xml;utf8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDY4IDQ4Ij48cGF0aCBmaWxsPSIjZjAwIiBmaWxsLW9wYWNpdHk9IjAuOCIgZD0iTTY2LjUyLDcuNzRjLTAuNzgtMi45My0yLjQ5LTUuNDEtNS40Mi02LjE5QzU1Ljc5LC4xMywzNCwwLDM0LDBTMTIuMjEsLjEzLDYuOSwxLjU1IEMzLjk3LDIuMzMsMi4yNyw0LjgxLDEuNDgsNy43NEMwLjA2LDEzLjA1LDAsMjQsMCwyNHMwLjA2LDEwLjk1LDEuNDgsMTYuMjZjMC43OCwyLjkzLDIuNDksNS40MSw1LjQyLDYuMTkgQzEyLjIxLDQ3Ljg3LDM0LDQ4LDM0LDQ4czIxLjc5LTAuMTMsMjcuMS0xLjU1YzIuOTMtMC43OCw0LjY0LTMuMjYsNS40Mi02LjE5QzY3Ljk0LDM0Ljk1LDY4LDI0LDY4LDI0UzY3Ljk0LDEzLjA1LDY2LjUyLDcuNzR6Ij48L3BhdGg+PHBhdGggZD0iTSA0NSwyNCAyNywxNCAyNywzNCIgZmlsbD0iI2ZmZiI+PC9wYXRoPjwvc3ZnPg==);filter:grayscale(100%);transition:filter .1s cubic-bezier(0,0,.2,1);border:none}lite-youtube:hover>.lty-playbtn,lite-youtube .lty-playbtn:focus{filter:none}lite-youtube.lyt-activated{cursor:unset}lite-youtube.lyt-activated::before,lite-youtube.lyt-activated>.lty-playbtn{opacity:0;pointer-events:none}.lyt-visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.embed-container iframe,.embed-container object,.embed-container embed{position:absolute;top:0;left:0;width:100%;height:100%}.embed-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;max-width:100%;border:var(--mediaBorder) solid 5px;background-color:var(--mediaBorder)}#mobileFooter{display:none}#mobileHeader,#navigationSlider{display:none}div#mainContent ol li{margin-bottom:12px;font-size:17px;color:var(--bodyText)}#tutorialInformation{overflow:hidden;margin-bottom:30px}.authorImage{float:left;margin-right:10px;margin-top:4px;width:51px;display:none}.authorText{margin-top:10px}.authorText h1{font-size:48px;font-weight:700}.horizontal_line{margin-top:20px;margin-bottom:30px;border-bottom:2px var(--structureBorder) solid}.inlineCode{color:var(--bodyText);font-family:var(--monoFonts);font-size:85%;background-color:rgba(244,244,244,.2);border-radius:3px;padding:2px 5px;margin:0 1px;border:1px solid rgb(216 216 216/50%)}.theme_dark .inlineCode{border:1px solid rgba(244,244,244,.2)}h1,h2,h3,h4,h5{font-family:var(--serifFonts);color:var(--headerText);font-weight:700;line-height:1.75em}h1{font-size:40px;color:var(--headerText);margin-bottom:-5px;margin-top:-5px;line-height:60px}.sectionH1{background-repeat:no-repeat;background-size:40px;background-position:left center;padding-left:55px}h2{font-size:30px;margin-bottom:-14px}#mainContent h2{border-top:1px solid var(--structureBorder);margin-top:35px;padding-top:25px;line-height:1.3;margin-bottom:0}#mainContent ul.navigationContent li h2{border-top:0 solid var(--structureBorder);margin-top:0;padding-top:0}#mainContent ul li{line-height:1.75;margin-bottom:15px;color:var(--bodyText)}h3{font-size:26px;margin-bottom:-14px}h4{font-size:22px;margin-bottom:-14px}h5{font-size:18px;margin-bottom:-14px}.videoCallout{padding:20px;display:block;background-color:var(--highlighter);padding-left:50px;background-image:url(https://www.kirupa.com/icon/1f4fa.svg);background-repeat:no-repeat;background-size:24px;background-position:15px calc(50% - 2px);color:var(--darkText)}.videoCallout:hover{background-color:var(--highlighterThree)}.row{display:flex;flex-wrap:wrap}.column{flex:50%}@media all and (max-width:800px){.column{flex:100%}}.fixedArticles .column{flex:100%}.tutorialInfo{font-size:18px;color:#9eaab5;margin-bottom:0;margin-top:15px;margin-left:0}.tutorialInfo a{color:var(--darkText);font-weight:700;text-decoration:none}.tutorialInfo a:hover{text-decoration:underline}.yellowEmphasis{color:#8c6f00;background-color:#ff9;padding:2px;border-radius:5px;padding-left:4px;padding-right:4px}a.yellowEmphasis:hover{border-style:none none dotted none;border-width:1px}p{font-family:var(--serifFonts);font-size:17px;line-height:1.75em;color:var(--bodyText)}.centerImage{text-align:center}.centerIframe{display:block;margin:0 auto}.centerImageNoBorder{text-align:center;margin-bottom:30px;margin-top:30px}.centerImageNoBorder img{border-radius:10px;padding:10px}iframe.centerImage,video.centerImage,.centerImage iframe,.centerImage video{border:5px solid var(--mediaBorder);margin:0 auto;display:inline-block}.centerImageNoBorder iframe{display:inline-block}p.kCaption{color:#000;font-family:Verdana;font-size:8pt;text-align:center}div#mainContent p.grayEmphasis{display:none}a:link{text-decoration:none}.greenEmphasis{background-color:#ecffb3;color:#360;padding:2px;border-radius:5px;padding-left:4px;padding-right:4px}a.greenEmphasis{background-color:#fff;border-style:none none dotted none;border-width:1px}a.greenEmphasis:hover{background-color:#ecffb3}.grayEmphasis{background-color:#f7f7f7;color:gray;padding:2px;border-radius:5px;padding-left:4px;padding-right:4px}a.blueEmphasis{text-decoration:none;border-radius:2px;transition:background-color .2s cubic-bezier(0,1.1,0,1.09);padding:2px;background-color:var(--linkBackground);border-radius:5px;padding-left:4px;padding-right:4px;color:var(--linkForeground);filter:var(--linkFilter)}a.extraEmphasis:hover{background-color:#cbe7f3}a.blueEmphasis:hover{background-color:var(--linkHoverBackground);color:var(--linkHoverForeground);filter:var(--linkFilterHover)}.blueEmphasis{background-color:#eef7fb;color:#0890ff;padding:2px;border-radius:5px;padding-left:4px;padding-right:4px}.redEmphasis{background-color:#ffcaca;color:#900;padding:2px;border-radius:5px;padding-left:4px;padding-right:4px}#rightContents h4{font-size:16px;font-weight:700;border-top:var(--structureBorder) solid 1px;padding-top:30px}#rightNewsletter p{font-size:16px}#tutorialInformation div.tags p{padding:0;margin:0;margin-bottom:15px;margin-right:5px;line-height:1;display:inline-block}#tutorialInformation div.tags a{background-color:#c5e8ff;font-size:12px;font-weight:400;padding:5px;color:#2196f3;line-height:0}#tutorialInformation div.tags a:hover{background-color:#006bb3;color:#fff}.bookContent{display:grid;grid-template-columns:175px 1fr;align-items:start;padding-top:30px;border-top:1px solid #eee}.bookContent h4{margin-top:0}#arrayBookContent{grid-template-columns:135px 1fr}p.centerImage img{border:2px solid var(--mediaBorder)}div #mainContent ol{list-style-type:lower-roman;font-size:18px;color:#373d42;line-height:1.75em}table.data p{margin:-5px}#tutorialBox{display:none;background-color:#f8f8f8;margin-top:10px}#bookBannerContent{margin-top:0;padding-bottom:1px;margin-bottom:20px;padding-right:10px;margin-left:-5px}#bookBannerContent img{margin-left:32px;margin-top:-10px;margin-bottom:30px}#bookBannerContent li{margin-bottom:15px;margin-left:0;list-style:none;padding-left:75px;padding-top:5px;margin-right:10px;background-repeat:no-repeat;background-position:3px 5px;line-height:20px;padding-bottom:15px;background-size:60px}#bookBannerContent li:hover{background-size:63px;background-position:0 3px}#bookBannerContent ul{padding:0;margin-left:5px;margin-top:5px}#bookBannerContent ul ul.buyNowRight li{padding:0;margin:0}#bookBannerContent ul ul.buyNowRight{padding:0;margin:0}#bookBannerContent .bookLink:hover{text-decoration:none}#bookBannerContent .bookLink{color:var(--darkText);font-size:14px;background-repeat:no-repeat;padding-top:0;padding-bottom:5px;background-position:0 3px;margin-top:0;line-height:1.5em;display:inline-block}#bookBannerContent .bookLink:hover{text-decoration:underline}#bookBannerContent li.animationRight{background-image:url(https://www.kirupa.com/book/images/anim2.svg);background-size:70px;background-position:-4px 0}#bookBannerContent li.arraysBookRight{background-image:url(https://www.kirupa.com/book/images/arraysRight.png);background-size:60px;background-position:4px 0}#bookBannerContent li.js101Right{background-image:url(https://www.kirupa.com/book/images/js101_2.svg);background-size:70px;background-position:-4px 0}#bookBannerContent li.learningReactRight{background-image:url(https://www.kirupa.com/book/images/react_book.svg);background-size:70px;background-position:-4px 0}#bookBannerContent li.canvasRight{background-image:url(https://www.kirupa.com/images/canvas_book_small.png);background-size:60px}#bookBannerContent .lessemphasis{color:var(--darkText)}#downwardCurvedArrow{position:absolute;transform:translate(160px,-75px)}#kirupaBio{display:grid;grid-template-columns:30px 121px calc(100% - 150px) 30px;padding-left:10px;padding-right:30px;align-items:center;font-style:italic;margin-bottom:40px}#kirupaBio .kirupaPixel{border-radius:50%;border:4px solid var(--mediaBorder);width:90px;height:90px}#sigNewsletter{margin:60px;display:grid;justify-content:center}#sigNewsletter .newsletterContainer{width:550px;text-align:center}#sigNewsletter #birdNewsletter{position:absolute;transform:translate(560px,-7px) scale(1.05)}#sigNewsletter h4{margin:0;font-size:18px;font-weight:700}#sigNewsletter p{margin:0;font-size:18px;font-weight:400}.strikethrough{text-decoration:line-through}#sigNewsletter .greenButton{margin-top:15px;margin-bottom:15px;background-image:url(https://www.kirupa.com/icon/1f4e8.svg);background-size:32px;background-position:16px center;padding-left:60px}.articleActions{margin-left:71px}.articleActions div{display:inline-block;position:relative}.articleActions a{font-size:14px;font-weight:700;padding:10px;color:#222;background-repeat:no-repeat;padding-left:22px;margin-left:10px;background-position:left center;background-size:19px;position:relative;z-index:10}.articleActions .articleRead:hover{background-color:var(--highlighterTwo)}.articleActions .articleRead a{background-image:url(https://www.kirupa.com/images/menu.svg)}.articleActions .articleRead svg{position:absolute;left:7px;top:15px;z-index:1}.articleActions .articleDiscuss:hover{background-color:var(--highlighterThree)}.articleActions .articleDiscuss a{background-image:url(https://www.kirupa.com/images/message.svg)}.articleActions .articleDiscuss svg{position:absolute;left:7px;top:15px;z-index:1}.articleList li{list-style-type:none;margin-bottom:20px;padding-bottom:0;margin-right:50px;border-radius:5px}#mainContent .articleList li{padding-bottom:20px}#mainContent .articleList li{line-height:1.75;font-size:18px;margin-bottom:40px;color:#585858;padding-bottom:10px}#mainContent ul li:last-of-type{border-bottom:none}.articleList{padding:0;margin-top:40px;position:relative;z-index:100}.articleList li>a{padding:10px;padding-left:75px;display:inline-block;background-repeat:no-repeat;background-size:45px;background-position:12px 12px}#mainContent .articleList li>a:hover{background-color:var(--lighter);box-shadow:var(--primaryLighter) 0 0 50px}.articleList li p{color:var(--darkTextSecondary);margin-left:5px;margin-bottom:2px;margin-top:3px}.articleList li:hover p{}#mainContent p sup{vertical-align:top;position:relative;top:-.5em}body div#mainContent p.inlineCode.standalone{background-color:#f8f8f8!important;padding:1em;overflow:auto;color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.75;font-size:16px}#mainContent .theTopics .articleList li{margin-bottom:20px;padding-bottom:0;margin-right:30px}.theTopics .articleList li>a{padding-left:75px;background-position:15px center;background-size:43px;width:calc(100% - 69px);border-radius:5px;border:1px dotted var(--structureBorder);color:var(--darkText);font-weight:700;padding-top:24px;padding-bottom:24px}.theTopics .articleList{margin:0}.theTopics h3{padding-top:20px;margin-bottom:20px;border-top:2px solid var(--structureBorder)}.theArticles ul.articleList li>a{background-position:15px center}#mainContent .theArticles ul.articleList li>a{background-size:30px;padding-left:60px;color:var(--darkText);font-weight:400}.callout{border-style:solid;border-width:0 0 0 5px;border-color:var(--highlighter);margin:0;padding-left:10px}.kirupaInput{background-color:var(--inputBackground);background-repeat:no-repeat;background-size:20px;background-position:7px center;padding:3px;padding-left:10px;height:30px;border-radius:0;-webkit-appearance:none;border:3px solid var(--inputBorder);font-size:16px}.kirupaInput:focus{background-color:var(--lighter);border-color:var(--primary);outline:0}.greenButton,.kirupaButton{background-color:var(--primary);font-size:16px;color:var(--textOnPrimary);border:0;font-weight:700;border-radius:5px;padding:13px;background-repeat:no-repeat;text-align:right;background-position:-7px center;background-size:60px;line-height:1em;display:inline-block}.greenButton a,.kirupaButton a{color:var(--textOnPrimary);font-weight:700;text-decoration:none}.greenButton:hover,.kirupaButton:hover{background-color:var(--primaryDarker);cursor:pointer}#tutorialInformation .tags{display:none}#mainHeader .kirupaButton{background-image:url(https://www.kirupa.com/images/comment_bubble.svg);margin-right:10px;justify-self:end;width:90px;background-size:48px}.kirupaButtonSmall{font-size:12px;padding:5px}#mainHeader{width:1234px;margin:0 auto;margin-bottom:18px;display:grid;grid-gap:10px;grid-template-columns:56px 200px min-content min-content min-content min-content auto 35px 35px 35px min-content;color:#444;align-items:center;padding:15px;position:relative;border-bottom:2px solid var(--structureBorder);white-space:nowrap;text-transform:uppercase}#mainHeader .headerLink{font-weight:700;justify-self:center;margin-left:0;margin-right:0;color:var(--darkText);padding:12px;border-radius:5px}#mainHeader .headerLink:hover{background-color:var(--primaryLightest)}#mainHeader .headerLink span{}#mainHeader .articles span{border-bottom:var(--headerUnderline,5px) solid var(--primary)}#mainHeader .headerIcons{justify-self:center;width:20px;margin-left:5px;margin-right:5px;margin-top:5px;transition:transform .1s ease-out}#mainHeader .headerIcons:hover{transform:scale(1.2)}#mainHeader .headerDivider{justify-self:center}#mainHeader .miniheadericons{text-align:center;padding:5px}.floatie{}#mainBody{width:min-content;margin:0 auto;margin-bottom:18px;display:grid;grid-template-columns:270px 750px 245px}#mainContent{border-radius:0;padding-top:0;border-left:2px solid var(--structureBorder);border-right:2px solid var(--structureBorder)}#mainContent>*{margin-left:75px;margin-right:75px}#mainContent>.centerImage{margin-left:0;margin-right:0;margin-top:25px;margin-bottom:25px}#mainContent>.centerImageNoBorder{margin-left:0;margin-right:0;margin-top:25px;margin-bottom:25px}#leftContents{margin-right:11px;margin-top:0;margin-left:13px}#rightContents{margin-left:18px}#mainFooter{margin:0 auto;width:1250px;background-color:var(--headerBackground);border-radius:5px;padding:20px;display:grid;grid-template-columns:400px 1fr;align-items:center;margin-bottom:18px}#mainFooter p{margin:0;color:var(--bodyText);font-size:16px;line-height:26px}#mainFooter a{color:var(--bodyText);font-weight:700}#mainFooter img{width:20px;padding:15px}#mainFooter div{text-align:right}div.sectionMainHeader{margin-top:10px}nav.navigationBoxes{border-radius:5px;padding:5px}#leftContents nav.navigationBoxes{background-color:var(--lighter)}#leftContents nav.navigationBoxes.generic ul a{font-weight:400;padding-left:50px;padding-left:50px;background-position:10px center;margin:5px;font-size:16px}#leftContents nav.navigationBoxes.generic ul li:last-of-type{border-top:1px solid var(--structureBorder)}nav.navigationBoxes ul{margin:0;list-style:none;padding:0;font-size:16px}#leftContents nav.navigationBoxes li img{width:24px;margin-right:15px}#leftContents #personalizeList{border-top:2px var(--structureBorder) solid;margin-top:10px;margin-bottom:0}#leftContents #personalizeLink{margin-top:10px}.articleNavigation{margin-top:50px}.articleNavigation ul{display:flex;justify-content:space-between;padding:0;list-style:none}.articleNavigation ul a{display:flex;align-items:center;border-radius:5px;align-content:center}.articleNavigation ul a svg{display:inherit;transform:scale(.5);padding:5px}.articleNavigation ul .navText{padding:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}#previousArticle{margin-left:0}#previousArticle .navText{padding-right:10px}#nextArticle{margin-right:0}#nextArticle .navText{padding-left:10px}.leftNav{position:sticky;align-self:baseline;top:0;height:calc(100vh - 108px);overflow-y:auto;overflow-x:hidden;scroll-padding:30%;transform:translateX(3.5px)}.leftNav{scrollbar-width:5px;scrollbar-color:var(--primary)}.leftNav::-webkit-scrollbar{width:5px}.leftNav::-webkit-scrollbar-track{background:0 0}.leftNav::-webkit-scrollbar-thumb{background-color:var(--primary)}.leftNav h3{font-size:18px;margin-left:24px}.leftNav li{margin-bottom:0}.leftNav li a{font-size:16px;background-size:23px;padding:10px;padding-bottom:5px;padding-top:5px;margin-top:5px;margin-bottom:5px;margin-left:9px;color:var(--darkText);background-position:10px 9px;width:225px;background-size:0;line-height:24px;border-left:5px solid transparent}.leftNav li a:hover{background-color:var(--light)}.leftNav .articleList{margin-top:20px}.leftNavLast{border-bottom:var(--structureBorder) 2px solid;padding-bottom:10px}nav.navigationBoxes ul ul{border-top:var(--structureBorder) 2px solid;border-bottom:var(--structureBorder) 2px solid;font-size:16px;font-weight:400;padding-top:5px;padding-bottom:5px;margin-bottom:5px}nav.navigationBoxes ul a{color:var(--darkText);text-decoration:none;padding:10px;background-repeat:no-repeat;background-size:25px;background-position:1px center;display:flex;border-radius:5px;margin-bottom:0;align-items:center;font-weight:700;font-size:18px}nav.navigationBoxes hr{border:0;height:2px;background:var(--structureBorder)}nav.navigationBoxes ul a:hover{background-color:var(--light)}nav.navigationBoxes ul li li a:hover{text-decoration:underline;background-color:unset;color:var(--darkText)}nav.navigationBoxes ul ul a{background-size:16px;background-position:15px center;font-weight:500;padding-left:45px}#leftContents nav.navigationBoxes ul ul a{font-weight:400;padding-left:36px}#leftContents nav.navigationBoxes li svg{height:18px;position:absolute;transform:translate(-26px,2px);fill:var(--navigationLinkColor)}#rightContents nav.navigationBoxes ul ul a{background-position-y:12px;font-size:14px;font-weight:400;color:var(--darkText);line-height:1.5em}#rightContents nav.navigationBoxes .oneBoxOnly ul{border-bottom:none;padding-bottom:0}#rightContents .newForum{margin-top:30px}#rightContents nav{position:relative}#rightContents nav .fresh_caption{z-index:20;position:relative;margin-left:52px;top:4px;margin-bottom:20px}#rightContents nav .fresh_background{position:absolute;top:-20px;left:0;margin-bottom:0;z-index:10;width:240px}#rightContents nav.newForum .fresh_caption{margin-left:41px;top:4px;margin-bottom:10px}#rightContents nav.newForum .fresh_background{top:7px;left:32px;width:176px;height:18px}#navMobile{display:none}@media all and (max-width:1300px){#rightContents{display:none}#mainBody{grid-template-columns:270px 760px;width:100%}#mainContent{border-right:none}#mainHeader{width:unset}#mainContent>*{margin-left:75px;margin-right:75px}#sigNewsletter .newsletterContainer{width:100%}}@media all and (max-width:1150px){body{margin:0}.leftNav{}.articleNavigation ul{flex-direction:column}#previousArticle{margin-left:0}#nextArticle{margin-right:0}#mainContent img{max-width:calc(100% - 40px);height:auto}#mainContent>*{margin-left:10px;margin-right:10px}#leftContents{}#mainHeader .wideOnly{}#mainBody{grid-template-columns:none;width:calc(100% - 35px)}div#mainContent #pageComments{background-position-x:calc(50% - 120px)}#mainFooter p{margin-bottom:18px}.tutorialInfo a{font-size:16px}#pageCommentsImage{display:none;padding-left:0}.authorText h1,h1{font-size:32px;line-height:1.5}h2{font-size:28px;line-height:1.5}h3{font-size:24px;line-height:1.5}h4{font-size:20px;line-height:1.5}#navigationSlider.hidden{opacity:0}body{padding:0}.syntaxhighlighter{font-size:16px!important}#rightContents{display:none}#mainContent iframe{width:95%!important}#mainContent{width:100%;margin:0;border:0;padding:0;max-width:700px;margin:0 auto}#mainBody{display:flex}#adArea{border-bottom:1px var(--structureBorder) solid}#footer,#bottomFooterLinks{display:none}#theHorizontalLine{width:100%}.authorImage{display:none}#tutorialBox{display:none}.tutorialInfo{margin-top:5px}div#mainContent p{padding-right:0}#mainFooter{width:calc(100% - 70px);margin-left:15px;margin-right:15px;display:flex;flex-direction:column}#sigNewsletter{padding-right:0;background-image:none}#sigNewsletter #mce-EMAIL{width:calc(100% - 40px)}#birdNewsletter,#downwardCurvedArrow,.leftBracket,.rightBracket{display:none}#kirupaBio{display:grid;grid-template-columns:unset;padding-left:0;padding-right:0;justify-items:center;font-style:italic;margin-bottom:40px;padding-top:30px;border-top:2px solid var(--structureBorder)}iframe.centerImage,video.centerImage{margin-left:0}.centerImageNoBorder img{margin-left:0}p.centerImage img{margin-left:0}}@media all and (max-width:1075px){#leftContents{display:none}#mainHeader .wideOnly{display:none}#mainHeader{grid-template-columns:56px 1fr 35px 35px 35px auto;width:unset}.leftNav{display:none}}code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.75;font-size:16px;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,code[class*=language-] ::-moz-selection{text-shadow:none;background:#b3d4fc}pre[class*=language-]::selection,pre[class*=language-] ::selection,code[class*=language-]::selection,code[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f8f8f8}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#708090}.token.punctuation{color:#999}.namespace{opacity:.7}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.deleted{color:#905}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#690}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.function,.token.class-name{color:#dd4a68}.token.regex,.token.important,.token.variable{color:#e90}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}pre[data-line]{position:relative;padding:1em 0 1em 3em}.line-highlight{position:absolute;left:0;right:0;padding:inherit 0;margin-top:1em;background:rgba(158,158,158,.1);pointer-events:none;line-height:inherit;white-space:pre}.line-highlight:before,.line-highlight[data-end]:after{content:attr(data-start);position:absolute;top:.4em;left:.6em;min-width:1em;padding:0 .5em;background-color:hsla(24,20%,50%,.4);color:#f5f2f0;font:bold 65%/1.5 sans-serif;text-align:center;vertical-align:.3em;border-radius:999px;text-shadow:none;box-shadow:0 1px #fff}.line-highlight[data-end]:after{content:attr(data-end);top:auto;bottom:.4em}.line-numbers .line-highlight:before,.line-numbers .line-highlight:after{content:none}pre[class*=language-].line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:0;font-size:100%;left:-3.8em;width:3em;letter-spacing:-1px;border-right:1px solid #ccc;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{pointer-events:none;display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#ccc;display:block;padding-right:.8em;text-align:right;transform:translateY(-5px)}div.askForums a{background-color:var(--highlighter);padding:15px;display:block;color:var(--darkText)}div.askForums a:hover{background-color:var(--highlighterTwo);text-decoration:underline}div.askForums a span{font-weight:700}/*!@docsearch/css 3.1.0 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com*/:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,0.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,0.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,0.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,0.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,0.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,0.3);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,0.5),0 -4px 8px 0 rgba(0,0,0,0.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:start;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;position:relative;padding:0 0 2px;border:0;top:-1px;width:20px}@media(max-width:750px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{appearance:none;background:0 0;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:0 0;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;appearance:none;background:0 0;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;appearance:none;background:0 0;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:focus{outline:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:0 0}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:0 0;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:0 0;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{appearance:none;background:0 0;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:2px;box-shadow:var(--docsearch-key-shadow);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;color:var(--docsearch-muted-color);border:0;width:20px}@media(max-width:750px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh,1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{appearance:none;background:0 0;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}