Line No.-0: <!DOCTYPE html> Line No.-1: Line No.-2: <html lang="en"> Line No.-3: <head> Line No.-4: Line No.-5: <meta charset="utf-8"> Line No.-6: <link type="text/css" rel="stylesheet" href="/assets/mdl/material.min.css"> Line No.-7: <link type="text/css" rel="stylesheet" href="/assets/mdl/additional.css"> Line No.-8: <meta name="viewport" content="width=device-width, initial-scale=1.0 "> Line No.-9: <link rel="shortcut icon" href="//www.w3resource.com/images/favicon.png"> Line No.-10: <title>Web development tutorials | w3resource</title> Line No.-11: <meta name="viewport" content="width=device-width, initial-scale=1.0 "> Line No.-12: <meta name="description" content="Web development tutorials on HTML, CSS, JS, PHP, SQL, MySQL, PostgreSQL, MongoDB, JSON and more."> Line No.-13: <meta property="og:title" content="web development tutorials from w3resource" /> Line No.-14: <meta property="og:description" content="Web development tutorials on HTML, CSS, JS, PHP, SQL, MySQL, PostgreSQL, MongoDB, JSON and more." /> Line No.-15: <meta property="og:type" content="tutorial" /> Line No.-16: <meta property="og:url" content="https://www.w3resource.com/" /> Line No.-17: <meta property="og:image" content="https://www.w3resource.com/images/w3resource-logo.png" /> Line No.-18: <meta property="og:site_name" content="w3resource" /> Line No.-19: <meta name="msvalidate.01" content="1F8E3A7A751C0BD17BCB6CE7509D800B" /> Line No.-20: Line No.-21: Line No.-22: <script src="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/1.0.9/cookieconsent.min.js"></script> Line No.-23: <script src="https://kit.fontawesome.com/d75c4d42f8.js" crossorigin="anonymous"></script> Line No.-24: <script> Line No.-25: Line No.-26: window.cookieconsent_options = { Line No.-27: Line No.-28: message: 'This site uses cookies to deliver our services and to show you relevant ads. By using our site, you acknowledge that you have read and understood our Privacy Policy. Your use of w3resource Services, is subject to these policies', Line No.-29: Line No.-30: theme:'dark-bottom', Line No.-31: Line No.-32: learnMore: 'More info', Line No.-33: Line No.-34: link: 'https://www.w3resource.com/privacy.php' Line No.-35: Line No.-36: }; Line No.-37: Line No.-38: </script> Line No.-39: <style type="text/css"> Line No.-40: .demo-card-square.mdl-card { Line No.-41: width: 320px; Line No.-42: height: 320px; Line No.-43: } Line No.-44: .demo-card-square > .mdl-card__title { Line No.-45: color: #fff; Line No.-46: /* background: Line No.-47: url('../assets/demos/dog.png') bottom right 15% no-repeat #46B6AC;*/ Line No.-48: } Line No.-49: .mdl-card__supporting-text a { Line No.-50: display: inline-block; Line No.-51: padding: 5px; Line No.-52: } Line No.-53: .mdl-card__supporting-text a:link { Line No.-54: color: #4485FF Line No.-55: } Line No.-56: .mdl-card__supporting-text a:hover { Line No.-57: color: #f86d1d Line No.-58: } Line No.-59: .mdl-card__supporting-text a:visited { Line No.-60: color: #5407bf Line No.-61: } Line No.-62: .mdl-card__supporting-text a:active { Line No.-63: color: #4485FF Line No.-64: } Line No.-65: .mdl-card__actions.mdl-card--border { Line No.-66: background-color: #4485FF Line No.-67: } Line No.-68: .demo-card-square.mdl-card { Line No.-69: height: 250px Line No.-70: } Line No.-71: .mdl-card__actions.mdl-card--border a{ Line No.-72: color: #fff Line No.-73: } Line No.-74: html,body { Line No.-75: background-color: #e8e8ee Line No.-76: } Line No.-77: </style> Line No.-78: <body> Line No.-79: <style type="text/css"> Line No.-80: article a { Line No.-81: text-decoration: none Line No.-82: } Line No.-83: .mdl-menu { Line No.-84: min-width: 1024px; Line No.-85: } Line No.-86: .mdl-menu__item { Line No.-87: height: 24px; Line No.-88: line-height: 24px Line No.-89: } Line No.-90: .header_notice a{ Line No.-91: color: #fff Line No.-92: } Line No.-93: .w3r_donate_link { Line No.-94: font-weight: 800 Line No.-95: } Line No.-96: .w3r_donate_link i{ Line No.-97: margin-right: 5px; Line No.-98: margin-top: 5px; Line No.-99: } Line No.-100: .w3r_donate_link a i{ Line No.-101: color: #fff Line No.-102: } Line No.-103: .w3r_donate_link a:hover{ Line No.-104: color: #ff0a01 Line No.-105: } Line No.-106: .w3r_donate_link a:visited{ Line No.-107: color: #fff Line No.-108: } Line No.-109: Line No.-110: .w3r_donate_link a:hover{ Line No.-111: color: #ff0a01 Line No.-112: } Line No.-113: .w3r_donate_link a:visited{ Line No.-114: color: #fff Line No.-115: } Line No.-116: .w3r_donate_link a:link{ Line No.-117: color: #fff Line No.-118: } Line No.-119: .w3r_donate_link a:hover{ Line No.-120: color: #ff0a01 Line No.-121: } Line No.-122: .w3r_donate_link a:visited{ Line No.-123: color: #fff Line No.-124: } Line No.-125: </style> Line No.-126: <script async src="https://www.googletagmanager.com/gtag/js?id=G-HCW88J419P"></script> Line No.-127: <script> Line No.-128: window.dataLayer = window.dataLayer || []; Line No.-129: function gtag(){dataLayer.push(arguments);} Line No.-130: gtag('js', new Date()); Line No.-131: Line No.-132: gtag('config', 'G-HCW88J419P'); Line No.-133: </script> Line No.-134: <div class="mdl-layout mdl-layout--fixed-header"> Line No.-135: <header class="mdl-layout__header"> Line No.-136: <div class="mdl-layout__header-row"> Line No.-137: <a href="https://www.w3resource.com" style="text-decoration: none;"><span class="mdl-layout-title" style="margin-left: -50px;margin-top: -5px;color:#fff">w3resource</span></a> Line No.-138: Line No.-139: Line No.-140: </nav> Line No.-141: <div class="np"></div> Line No.-142: <div class="mdl-layout-spacer"></div> Line No.-143: Line No.-144: <nav class="mdl-navigation"> Line No.-145: Line No.-146: <a href="https://www.patreon.com/bePatron?u=31377924" data-patreon-widget-type="become-patron-button">Become a Patron!</a><script async src="https://c6.patreon.com/becomePatronButton.bundle.js"></script> Line No.-147: </nav> Line No.-148: <div class="mdl-textfield mdl-js-textfield mdl-textfield--expandable Line No.-149: mdl-textfield--floating-label mdl-textfield--align-right"> Line No.-150: Line No.-151: <div class="mdl-textfield__expandable-holder"> Line No.-152: <input class="mdl-textfield__input" type="text" name="sample" id="fixed-header-drawer-exp"> Line No.-153: </div> Line No.-154: </div> Line No.-155: <nav class="mdl-navigation mdl-layout--large-screen-only"> Line No.-156: Line No.-157: Line No.-158: Line No.-159: Line No.-160: <button id="demo-menu-lower-right" class="mdl-button mdl-js-button mdl-button--icon"> Line No.-161: <i class="material-icons">share</i> Line No.-162: </button> Line No.-163: <ul class="mdl-menu mdl-menu--bottom-right mdl-js-menu mdl-js-ripple-effect" for="demo-menu-lower-right" style="overflow-y:scroll;min-width:200px"> Line No.-164: <li class="mdl-menu__item"><a href="https://www.facebook.com/W3resource-103553425799800" target="_blank">Facebook</a></li> Line No.-165: <li class="mdl-menu__item"><a href="https://twitter.com/w3resource">Twitter</a></li> Line No.-166: <li class="mdl-menu__item"><a href="https://plus.google.com/+W3resource">Google Plus</a></li> Line No.-167: <li class="mdl-menu__item"><a href="http://in.linkedin.com/in/w3resource">Linkedin</a></li> Line No.-168: <li class="mdl-menu__item"><a href="http://feeds.feedburner.com/W3resource">RSS</a></li> Line No.-169: </ul> Line No.-170: </nav> Line No.-171: </div> Line No.-172: </header> Line No.-173: <main class="mdl-layout__content"> Line No.-174: <div class="page-content"> Line No.-175: Line No.-176: Line No.-177: Line No.-178: <div class="mdl-grid"> Line No.-179: <div class="mdl-cell mdl-cell--12-col"> Line No.-180: <a href="//www.w3resource.com"><script type="text/javascript" style="display:none"> Line No.-181: //<![CDATA[ Line No.-182: window.__mirage2 = {petok:"DDUBpwxkHcZrAnBwmeloN56JUeJjguiKeqQ5ZHcbo78-1800-0.0.1.1"}; Line No.-183: //]]> Line No.-184: </script> Line No.-185: <script type="text/javascript" src="https://ajax.cloudflare.com/cdn-cgi/scripts/04b3eb47/cloudflare-static/mirage2.min.js"></script> Line No.-186: <img alt="w3resource logo" id="log_img" data-cfsrc="https://www.w3resource.com/images/w3resource-logo.png" style="display:none;visibility:hidden;"><noscript><img src="https://www.w3resource.com/images/w3resource-logo.png" alt="w3resource logo" id="log_img"></noscript></a> Line No.-187: </div> Line No.-188: <div class="mdl-cell mdl-card mdl-shadow--2dp through mdl-shadow--6dp mdl-cell--12-col"> Line No.-189: <div class="mdl-grid"> Line No.-190: <div class="mdl-cell mdl-cell--4-col"> Line No.-191: <div class="demo-card-square mdl-card mdl-shadow--2dp"> Line No.-192: <div class="mdl-card__actions mdl-card--border"> Line No.-193: <a>Frontend tutorials</a> Line No.-194: </div> Line No.-195: <div class="mdl-card__supporting-text"> Line No.-196: <a href="https://www.w3resource.com/html/HTML-tutorials.php">HTML</a> Line No.-197: <a href="https://www.w3resource.com/css/CSS-tutorials.php">CSS</a> Line No.-198: <a href="https://www.w3resource.com/javascript/javascript.php">JavaScript</a> Line No.-199: <a href="https://www.w3resource.com/html5/introduction.php">HTML5</a> Line No.-200: <a href="https://www.w3resource.com/schema.org/introduction.php">Schema.org</a> Line No.-201: <a href="https://www.w3resource.com/phpjs/use-php-functions-in-javascript.php">php.js</a> Line No.-202: <a href="https://www.w3resource.com/twitter-bootstrap/tutorial.php">Twitter Bootstrap</a> Line No.-203: <a href="https://www.w3resource.com/responsive-web-design/overview.php">Responsive Web Design tutorial</a> Line No.-204: <a href="https://www.w3resource.com/zurb-foundation3/introduction.php">Zurb Foundation 3 tutorials</a> Line No.-205: <a href="https://www.w3resource.com/pure/index.php">Pure CSS</a> Line No.-206: <a href="https://www.w3resource.com/html5-canvas/index.php">HTML5 Canvas</a> Line No.-207: <a href="https://www.w3resource.com/course/javascript-course.html" target="_blank">JavaScript Course</a> Line No.-208: <a href="https://www.w3resource.com/icon/index.php">Icon</a> Line No.-209: <a href="https://www.w3resource.com/angular/getting-started-with-angular.php">Angular</a> Line No.-210: <a href="https://www.w3resource.com/vue/installation.php">Vue</a> Line No.-211: <a href="https://www.w3resource.com/jest/introduction.php">Jest</a> Line No.-212: <a href="https://www.w3resource.com/mocha/getting-started.php">Mocha</a> Line No.-213: <a href="https://www.w3resource.com/npm/getting-started-with-npm.php">npm</a> Line No.-214: <a href="https://www.w3resource.com/yarn/getting-started-with-yarn.php">Yarn</a> Line No.-215: <a href="https://www.w3resource.com/cypress/cypress-overview.php">Cypress</a> Line No.-216: </div> Line No.-217: </div> Line No.-218: </div> Line No.-219: <div class="mdl-cell mdl-cell--4-col"> Line No.-220: <div class="demo-card-square mdl-card mdl-shadow--2dp"> Line No.-221: <div class="mdl-card__actions mdl-card--border"> Line No.-222: <a>Backend tutorials</a> Line No.-223: </div> Line No.-224: <div class="mdl-card__supporting-text"> Line No.-225: <a href="https://www.w3resource.com/php/php-home.php">PHP</a> Line No.-226: <a href="https://www.w3resource.com/python/python-tutorial.php">Python</a> Line No.-227: <a href="https://www.w3resource.com/numpy/index.php">Python-NumPy</a> Line No.-228: <a href="https://www.w3resource.com/pandas/index.php">Python-Pandas</a> Line No.-229: <a href="https://www.w3resource.com/java-tutorial/index.php">Java</a> Line No.-230: <a href="https://www.w3resource.com/node.js/node.js-tutorials.php">Node.js</a> Line No.-231: <a href="https://www.w3resource.com/ruby/index.php">Ruby</a> Line No.-232: <a href="https://www.w3resource.com/c-programming/programming-in-c.php">C programming</a> Line No.-233: <a href="https://www.w3resource.com/php/composer/a-gentle-introduction-to-composer.php">Composer</a> Line No.-234: <a href="https://www.w3resource.com/php/PHPUnit/a-gentle-introduction-to-unit-test-and-testing.php">PHPUnit</a> Line No.-235: <a href="https://www.w3resource.com/laravel/laravel-tutorial.php">Laravel</a> Line No.-236: <a href="https://www.w3resource.com/mojo/index.php">Mojo</a> Line No.-237: </div> Line No.-238: </div> Line No.-239: </div> Line No.-240: <div class="mdl-cell mdl-cell--4-col"> Line No.-241: <div class="demo-card-square mdl-card mdl-shadow--2dp"> Line No.-242: <div class="mdl-card__actions mdl-card--border"> Line No.-243: <a>Database tutorials</a> Line No.-244: </div> Line No.-245: <div class="mdl-card__supporting-text"> Line No.-246: <a href="https://www.w3resource.com/sql/tutorials.php">SQL(2003 standard of ANSI)</a> Line No.-247: <a href="https://www.w3resource.com/mysql/mysql-tutorials.php">MySQL</a> Line No.-248: <a href="https://www.w3resource.com/PostgreSQL/tutorial.php">PostgreSQL</a> Line No.-249: <a href="https://www.w3resource.com/sqlite/index.php">SQLite</a> Line No.-250: <a href="https://www.w3resource.com/mongodb/nosql.php">NoSQL</a> Line No.-251: <a href="https://www.w3resource.com/mongodb/nosql.php">MongoDB</a><a href="https://www.w3resource.com/oracle/index.php">Oracle</a> Line No.-252: <a href="https://www.w3resource.com/redis/index.php">Redis</a> Line No.-253: <a href="https://www.w3resource.com/apollo-graphql/the-apollo-graphql-platform.php">Apollo GraphQL</a> Line No.-254: </div> Line No.-255: </div> Line No.-256: </div> Line No.-257: </div> Line No.-258: Line No.-259: <div class="mdl-grid"> Line No.-260: <div class="mdl-cell mdl-cell--4-col"> Line No.-261: <div class="demo-card-square mdl-card mdl-shadow--2dp"> Line No.-262: <div class="mdl-card__actions mdl-card--border"> Line No.-263: <a>Exercises with online editor</a> Line No.-264: </div> Line No.-265: <div class="mdl-card__supporting-text"> Line No.-266: <a href="https://www.w3resource.com/html-css-exercise/">HTML CSS</a> Line No.-267: <a href="https://www.w3resource.com/javascript-exercises/">JavaScript</a> Line No.-268: <a href="https://www.w3resource.com/jquery-exercises/">jQuery</a> Line No.-269: <a href="https://www.w3resource.com/php-exercises/">PHP</a> Line No.-270: <a href="https://www.w3resource.com/jquery-ui-exercises/">jQuery-UI</a> Line No.-271: <a href="https://www.w3resource.com/coffeescript-exercises/">CoffeeScript</a> Line No.-272: <a href="https://www.w3resource.com/python-exercises/">Python</a> Line No.-273: <a href="https://www.w3resource.com/python-exercises/numpy/index.php">NumPy</a> Line No.-274: <a href="https://www.w3resource.com/python-exercises/pandas/index.php">Pandas</a> Line No.-275: <a href="https://www.w3resource.com/csharp-exercises/">C# </a> Line No.-276: <a href="https://www.w3resource.com/cpp-exercises/index.php">C++ </a> Line No.-277: <a href="https://www.w3resource.com/java-exercises/">Java</a> Line No.-278: <a href="https://www.w3resource.com/sql-exercises/">SQL</a> Line No.-279: <a href="https://www.w3resource.com/ruby-exercises/">Ruby</a> Line No.-280: <a href="https://www.w3resource.com/graphics/matplotlib/">Matplotlib</a> Line No.-281: <a href="https://www.w3resource.com/machine-learning/scikit-learn/iris/index.php">Machine Learning</a> Line No.-282: <a href="https://www.w3resource.com/plsql-exercises/index.php">PL/SQL</a> Line No.-283: <a href="https://www.w3resource.com/c-programming-exercises/">C</a> Line No.-284: <a href="https://www.w3resource.com/machine-learning/tensorflow/index.php">TensorFlow</a> Line No.-285: <a href="https://www.w3resource.com/scala-exercises/index.php">Scala</a> Line No.-286: <a href="https://www.w3resource.com/swift-programming-exercises/">Swift</a> Line No.-287: <a href="https://www.w3resource.com/kotlin-exercises/index.php">Kotlin</a> Line No.-288: <a href="https://www.w3resource.com/bash-script-exercises/index.php">BASH</a> Line No.-289: <a href="https://www.w3resource.com/r-programming-exercises/">R </a> Line No.-290: <a href="https://www.w3resource.com/oracle-exercises/">Oracle</a> Line No.-291: <a href="https://www.w3resource.com/mysql-exercises/">MySQL</a> Line No.-292: <a href="https://www.w3resource.com/sqlite-exercises/">SQLite</a> Line No.-293: <a href="https://www.w3resource.com/postgresql-exercises/">PostgreSQL</a> Line No.-294: <a href="https://www.w3resource.com/mongodb-exercises/">MongoDB</a> Line No.-295: <a href="https://www.w3resource.com/typescript-exercises/index.php">TypeScript</a> Line No.-296: <a href="https://www.w3resource.com/java-exercises/javafx/index.php">JavaFX</a> Line No.-297: <a href="https://www.w3resource.com/rust/index.php">Rust</a> Line No.-298: </div> Line No.-299: </div> Line No.-300: </div> Line No.-301: <div class="mdl-cell mdl-cell--4-col"> Line No.-302: <div class="demo-card-square mdl-card mdl-shadow--2dp"> Line No.-303: <div class="mdl-card__actions mdl-card--border"> Line No.-304: <a>Linux, Data interchange & API tutorials</a> Line No.-305: </div> Line No.-306: <div class="mdl-card__supporting-text"> Line No.-307: <a href="https://www.w3resource.com/linux-system-administration/installation.php">Linux Home</a> Line No.-308: <a href="https://www.w3resource.com/linux-system-administration/linux-commands-introduction.php">Linux Commands</a> Line No.-309: <a href="https://www.w3resource.com/linux-system-administration/installation.php">Linux Server Administration</a> Line No.-310: <a href="https://www.w3resource.com/xml/xml.php">XML</a> Line No.-311: <a href="https://www.w3resource.com/JSON/introduction.php">JSON</a> Line No.-312: <a href="https://www.w3resource.com/ajax/introduction.php">Ajax</a> Line No.-313: <a href="https://www.w3resource.com/API/google-plus/tutorial.php">Google Plus API</a> Line No.-314: <a href="https://www.w3resource.com/API/youtube/tutorial.php">Youtube API</a> Line No.-315: <a href="https://www.w3resource.com/API/google-maps/index.php">Google Maps API</a> Line No.-316: <a href="https://www.w3resource.com/API/flickr/tutorial.php">Flickr API</a> Line No.-317: <a href="https://www.w3resource.com/API/last.fm/tutorial.php">Last.fm API</a> Line No.-318: <a href="https://www.w3resource.com/API/twitter-rest-api/">Twitter REST API</a> Line No.-319: </div> Line No.-320: </div> Line No.-321: </div> Line No.-322: <div class="mdl-cell mdl-cell--4-col"> Line No.-323: <div class="demo-card-square mdl-card mdl-shadow--2dp"> Line No.-324: <div class="mdl-card__actions mdl-card--border"> Line No.-325: <a>Miscellaneous Tutorials</a> Line No.-326: </div> Line No.-327: <div class="mdl-card__supporting-text"> Line No.-328: <a href="https://www.w3resource.com/projects/python/index.php">Python Projects</a> Line No.-329: <a href="https://www.w3resource.com/excel/index.php">Excel Tutorial</a> Line No.-330: <a href="https://www.w3resource.com/web-development-tools/firebug-tutorials.php">Firebug Tutorial</a> Line No.-331: <a href="https://www.w3resource.com/web-development-tools/useful-web-development-tools.php">Useful Tools</a> Line No.-332: <a href="https://www.w3resource.com/form-template/index.php">Google Docs Forms Template</a> Line No.-333: <a href="https://www.w3resource.com/slides/index.php">Google Docs Slides Presentation</a> Line No.-334: <a href="https://www.w3resource.com/convert/number/binary-to-decimal.php">Number Conversion</a> Line No.-335: <a href="https://www.w3resource.com/quizzes/index.php">Quizzes</a> Line No.-336: <a href="https://www.w3resource.com/twitter-bootstrap/examples.php">Twitter Bootstrap Examples</a> Line No.-337: <a href="https://www.w3resource.com/python-interview/index.php">Python Interview Q&A</a> Line No.-338: <a href="https://www.w3resource.com/wxmaxima/index.php">wxMaxima</a> Line No.-339: Line No.-340: </div> Line No.-341: </div> Line No.-342: </div> Line No.-343: </div> Line No.-344: Line No.-345: <style type="text/css"> Line No.-346: h1 { Line No.-347: color: #2a69a8; Line No.-348: font-size: 30px; Line No.-349: margin-left: 30px; Line No.-350: } Line No.-351: .home_updates { Line No.-352: margin: 20px; Line No.-353: font-size: 17px; Line No.-354: background-color: #f1f3f4; Line No.-355: padding: 10px Line No.-356: } Line No.-357: .home_updates a{ Line No.-358: font-size: 17px; Line No.-359: } Line No.-360: </style> Line No.-361: <hr> Line No.-362: <div style="margin-left: 10%"> Line No.-363: <p><strong>Tutorials, Exercises published recently</strong></p> Line No.-364: <p><strong>Trending Exercises / Tutorial :</strong></p> Line No.-365: <p><a href="https://www.w3resource.com/python-interview/index.php" target="_blank">Python Interview Questions and Answers: Comprehensive Guide</a></p> Line No.-366: <p><a href="https://www.w3resource.com/scala-exercises/index.php">Scala Exercises, Practice, Solution</a></p> Line No.-367: <p><a href="https://www.w3resource.com/projects/python/python_beginners_projects.php">100 Python Projects for Beginners with solution</a></p> Line No.-368: <p><a href="https://www.w3resource.com/weekly-trends-and-language-statistics.php" target="_blank">Weekly Trends and Language Statistics</a></p> Line No.-369: <strong>22 April, 2024</strong></p> Line No.-370: <p><a href="https://www.w3resource.com/bash-script-exercises/working-with-symbolic-links.php" target="_blank">Bash Working with Symbolic Links exercises</a></p> Line No.-371: <p><a href="https://www.w3resource.com/bash-script-exercises/manipulating-text-files.php" target="_blank">Bash Manipulating text files exercises</a></p> Line No.-372: <strong>20 April, 2024</strong></p> Line No.-373: <p><a href="https://www.w3resource.com/bash-script-exercises/archiving-and-compressing-files.php" target="_blank">Bash Archiving and Compressing Files Exercises</a></p> Line No.-374: <strong>19 April, 2024</strong></p> Line No.-375: <p><a href="https://www.w3resource.com/bash-script-exercises/changing-file-permissions.php" target="_blank">Bash File Permissions: Exercises, Solutions, and Explanations</a></p> Line No.-376: <strong>18 April, 2024</strong></p> Line No.-377: <p><a href="https://www.w3resource.com/bash-script-exercises/listing-files-and-directories.php" target="_blank">Bash Listing Files and Directories: Exercises, Solutions, and Explanations, and Explanations</a></p> Line No.-378: <p><a href="https://www.w3resource.com/bash-script-exercises/seaching-for-files.php" target="_blank">Bash File Searching: Exercises, Solutions, and Explanations</a></p> Line No.-379: <strong>17 April, 2024</strong></p> Line No.-380: <p><a href="https://www.w3resource.com/bash-script-exercises/script-execution.php" target="_blank">Bash Script Execution Exercises, Solutions, and Explanations</a></p> Line No.-381: <p><a href="https://www.w3resource.com/bash-script-exercises/creating-copying-moving-and-deleting-files-and-directories.php" target="_blank">Bash File and Directory Operations: Exercises, Solutions, and Explanations</a></p> Line No.-382: <strong>16 April, 2024</strong></p> Line No.-383: <p><a href="https://www.w3resource.com/bash-script-exercises/conditional-statements.php" target="_blank">Bash Conditional Statements - Exercises, Solution and Explanation</a></p> Line No.-384: <p><a href="https://www.w3resource.com/bash-script-exercises/looping.php" target="_blank">Bash Looping (for, while): Exercises, Solution and Explanation</a></p> Line No.-385: <strong>15 April, 2024</strong></p> Line No.-386: <p><a href="https://www.w3resource.com/bash-script-exercises/index.php" target="_blank">Bash Scripting Exercises and Solutions</a></p> Line No.-387: <p><a href="https://www.w3resource.com/bash-script-exercises/understanding-basic-commands.php" target="_blank">Bash Basic Commands: Exercises and Solutions</a></p> Line No.-388: <p><a href="https://www.w3resource.com/bash-script-exercises/variable-declaration-and-usage.php" target="_blank">Bash Variables: Declaration, usage and explanation</a></p> Line No.-389: <p><a href="https://www.w3resource.com/bash-script-exercises/input-output-redirection.php" target="_blank">Bash I/O Redirection: Exercises, Solution and Explanation</a></p> Line No.-390: <strong>27 March, 2024</strong></p> Line No.-391: <p><a href="https://www.w3resource.com/r-programming-exercises/control-structure/index.php" target="_blank">R Programming Control Structure: Exercises, Practice, Solution</a></p> Line No.-392: <strong>22 March, 2024</strong></p> Line No.-393: <p><a href="https://www.w3resource.com/python/examples/python-functions-examples.php" target="_blank">Python Functions Examples</a></p> Line No.-394: <p><a href="https://www.w3resource.com/rust/functional-programming/closures-and-higher-order-functions.php" target="_blank">Rust Closures and Higher-Order Functions Exercises with Solutions and Explanations</a></p> Line No.-395: <p><a href="https://www.w3resource.com/rust/functional-programming/iteretors-and-iterator-adapters.php" target="_blank">Rust Iterator Exercises with Solutions and Explanations</a></p> Line No.-396: <p><a href="https://www.w3resource.com/rust/functional-programming/pattern-matching.php" target="_blank">Rust Pattern Matching Exercises with Solutions and Explanations</a></p> Line No.-397: <strong>12 March, 2024</strong></p> Line No.-398: <p><a href="https://www.w3resource.com/java-exercises/collection/array-list.php" target="_blank">Java Collection: ArrayList Exercises, Practice & Solutions</a></p> Line No.-399: <p><a href="https://www.w3resource.com/java-exercises/collection/linked-list.php" target="_blank">Java Collection: LinkedList Exercises, Practice & Solutions</a></p> Line No.-400: <p><a href="https://www.w3resource.com/java-exercises/collection/hash-set.php" target="_blank">Java Collection: HashSet Exercises, Practice & Solutions</a></p> Line No.-401: <p><a href="https://www.w3resource.com/java-exercises/collection/tree-set.php" target="_blank">Java Collection: TreeSet Exercises, Practice & Solutions</a></p> Line No.-402: <p><a href="https://www.w3resource.com/java-exercises/collection/priority-queue.php" target="_blank">Java Collection: PriorityQueue Exercises, Practice & Solutions</a></p> Line No.-403: <p><a href="https://www.w3resource.com/java-exercises/collection/hash-map.php" target="_blank">Java Collection: HashMap Exercises, Practice & Solutions</a></p> Line No.-404: <p><a href="https://www.w3resource.com/java-exercises/collection/tree-map.php" target="_blank">Java Collection: TreeMap Exercises, Practice & Solutions</a></p> Line No.-405: <strong>05 March, 2024</strong></p> Line No.-406: <p><a href="https://www.w3resource.com/rust/threads_and_synchronization/threads-and-synchronization.php" target="_blank">Rust Threads and Synchronization Exercises with Solutions and Explanations</a></p> Line No.-407: <p><a href="https://www.w3resource.com/rust/channels/message-passing.php" target="_blank">Rust Message Passing Exercises with Solutions and Explanations</a></p> Line No.-408: <strong>29 February, 2024</strong></p> Line No.-409: <p><a href="https://www.w3resource.com/rust/index.php" target="_blank">Rust Exercises, Practice, Solution and Explanation</a></p> Line No.-410: <p><a href="https://www.w3resource.com/rust/basic/basic-exercises-for-beginners.php" target="_blank">Rust Basic Exercises with Solutions and Explanations</a></p> Line No.-411: <p><a href="https://www.w3resource.com/rust/basic/variables-and-data-types.php" target="_blank">Rust Variables and Data Types Exercises with Solutions and Explanations</a></p> Line No.-412: <p><a href="https://www.w3resource.com/rust/basic/functions-and-control-flow.php" target="_blank">Rust Functions and Control Flow Exercises with Solutions and Explanations</a></p> Line No.-413: <p><a href="https://www.w3resource.com/rust/basic/ownership-borrowing-and-lifetimes.php" target="_blank">Rust Ownership, Borrowing, and Lifetimes Exercises with Solutions and Explanations</a></p> Line No.-414: <p><a href="https://www.w3resource.com/rust/basic/structs-and-enums.php" target="_blank">Rust Structs and Enums Exercises with Solutions and Explanations</a></p> Line No.-415: <p><a href="https://www.w3resource.com/rust/error_handling/result-and-option-types.php" target="_blank">Rust Result and Option Exercises with Solutions and Explanations</a></p> Line No.-416: <p><a href="https://www.w3resource.com/rust/error_handling/handling-errors-with-result-and-option.php" target="_blank">Rust Handling Errors with Result and Option Exercises</a></p> Line No.-417: <p><a href="https://www.w3resource.com/rust/error_handling/error-propagation.php" target="_blank">Rust Error Propagation Exercises with Solutions and Explanations</a></p> Line No.-418: <p><a href="https://www.w3resource.com/rust/collections_and_data_structures/vectors.php" target="_blank">Rust Vectors Exercises with Solutions and Explanations</a></p> Line No.-419: <p><a href="https://www.w3resource.com/rust/collections_and_data_structures/arrays.php" target="_blank">Rust Arrays Exercises with Solutions and Explanations</a></p> Line No.-420: <p><a href="https://www.w3resource.com/rust/collections_and_data_structures/vectors-arrays-slices.php" target="_blank">Rust Vectors, Arrays, and Slices Exercises with Solutions and Explanations</a></p> Line No.-421: <p><a href="https://www.w3resource.com/rust/collections_and_data_structures/hashmaps.php" target="_blank">Rust Hashmaps Exercises with Solutions and Explanations</a></p> Line No.-422: <p><a href="https://www.w3resource.com/rust/collections_and_data_structures/sets.php" target="_blank">Rust Sets Exercises with Solutions and Explanations</a></p> Line No.-423: <p><a href="https://www.w3resource.com/rust/collections_and_data_structures/linked-lists.php" target="_blank">Rust Linked Lists Exercises with Solutions and Explanations</a></p> Line No.-424: <strong>08 February, 2024</strong></p> Line No.-425: <p><a href="https://www.w3resource.com/python-exercises/urllib3/python-urllib3-exercise-20.php" target="_blank">Python Program: Maximum connection Pool size analysis</a></p> Line No.-426: <p><a href="https://www.w3resource.com/python-exercises/urllib3/python-urllib3-exercise-21.php" target="_blank">Python Program: Observing urllib3 Response compression handling</a></p> Line No.-427: <p><a href="https://www.w3resource.com/python-exercises/urllib3/python-urllib3-exercise-22.php" target="_blank">Python Program: Custom Redirect Handling with urllib3</a></p> Line No.-428: <p><a href="https://www.w3resource.com/python-exercises/urllib3/python-urllib3-exercise-23.php" target="_blank">Python Retry Mechanism with incremental timeouts</a></p> Line No.-429: <p><a href="https://www.w3resource.com/python-exercises/urllib3/python-urllib3-exercise-24.php" target="_blank">Python Event Hooks for Request and Response Customization</a></p> Line No.-430: <p><a href="https://www.w3resource.com/python-exercises/urllib3/python-urllib3-exercise-25.php" target="_blank">Python URL Parsing and Modification for Requests</a></p> Line No.-431: <p><a href="https://www.w3resource.com/python-exercises/urllib3/python-urllib3-exercise-26.php" target="_blank">Python HTTP Request with Manual response decompression</a></p> Line No.-432: <strong>05 February, 2024</strong></p> Line No.-433: <p><a href="https://www.w3resource.com/python-exercises/urllib3/python-urllib3-exercise-11.php" target="_blank">Implementing Retry Mechanism in Python urllib3 for Resilient HTTP Requests</a></p> Line No.-434: <p><a href="https://www.w3resource.com/python-exercises/urllib3/python-urllib3-exercise-12.php" target="_blank">Logging HTTP Requests in Python urllib3: Understanding Request Hooks</a></p> Line No.-435: <p><a href="https://www.w3resource.com/python-exercises/urllib3/python-urllib3-exercise-13.php" target="_blank">Making API Requests with digest authentication in Python urllib3</a></p> Line No.-436: <p><a href="https://www.w3resource.com/python-exercises/urllib3/python-urllib3-exercise-14.php" target="_blank">Creating a session for multiple Requests with Python urllib3 PoolManager</a></p> Line No.-437: <p><a href="https://www.w3resource.com/python-exercises/urllib3/python-urllib3-exercise-15.php" target="_blank">Implementing a Custom SSL Context for Secure HTTPS requests in Python urllib3</a></p> Line No.-438: <p><a href="https://www.w3resource.com/python-exercises/urllib3/python-urllib3-exercise-16.php" target="_blank">Implementing Retry Mechanism in Python urllib3 for Resilient HTTP Requests</a></p> Line No.-439: <p><a href="https://www.w3resource.com/python-exercises/urllib3/python-urllib3-exercise-17.php" target="_blank">Python file upload with urllib3: Making POST Requests simplified</a></p> Line No.-440: <p><a href="https://www.w3resource.com/python-exercises/urllib3/python-urllib3-exercise-18.php" target="_blank">Python Large File Download with Stream Parameter example</a></p> Line No.-441: <p><a href="https://www.w3resource.com/python-exercises/urllib3/python-urllib3-exercise-19.php" target="_blank">Python File Upload: Simulate POST request with multipart/Form-Data</a></p> Line No.-442: <strong>03 February, 2024</strong></p> Line No.-443: <p><a href="https://www.w3resource.com/python-exercises/urllib3/index.php" target="_blank">Python urllib3 Exercises and Solutions for HTTP Requests</a></p> Line No.-444: <p><a href="https://www.w3resource.com/python-exercises/urllib3/python-urllib3-exercise-1.php" target="_blank">Python HTTP GET Request to Public API example</a></p> Line No.-445: <p><a href="https://www.w3resource.com/python-exercises/urllib3/python-urllib3-exercise-2.php" target="_blank">Python HTTP GET Request with custom Headers Example</a></p> Line No.-446: <p><a href="https://www.w3resource.com/python-exercises/urllib3/python-urllib3-exercise-3.php" target="_blank">Python HTTP GET Request with Query parameters example</a></p> Line No.-447: <p><a href="https://www.w3resource.com/python-exercises/urllib3/python-urllib3-exercise-4.php" target="_blank">Python POST Request to Sample API with Data example</a></p> Line No.-448: <p><a href="https://www.w3resource.com/python-exercises/urllib3/python-urllib3-exercise-5.php" target="_blank">Python GET Request with Timeout example</a></p> Line No.-449: <p><a href="https://www.w3resource.com/python-exercises/urllib3/python-urllib3-exercise-6.php" target="_blank">Python Multiple Requests with Connection Pooling Example</a></p> Line No.-450: <p><a href="https://www.w3resource.com/python-exercises/urllib3/python-urllib3-exercise-7.php" target="_blank">Python Redirect Handling and final URL example</a></p> Line No.-451: <p><a href="https://www.w3resource.com/python-exercises/urllib3/python-urllib3-exercise-8.php" target="_blank">Python HTTPS Requests with and without SSL/TLS verification example</a></p> Line No.-452: <p><a href="https://www.w3resource.com/python-exercises/urllib3/python-urllib3-exercise-9.php" target="_blank">Python HTTP Request with Network Exception Handling Exampl</a></p> Line No.-453: <p><a href="https://www.w3resource.com/python-exercises/urllib3/python-urllib3-exercise-10.php" target="_blank">Python Large File Download with Stream Parameter example</a></p> Line No.-454: <strong>02 February, 2024</strong></p> Line No.-455: <p><a href="https://www.w3resource.com/python-exercises/python_pendulum_module.php" target="_blank">Python Pendulum Module - Exercises, Solutions, and Examples</a></p> Line No.-456: <strong>30 January, 2024</strong></p> Line No.-457: <p><a href="https://www.w3resource.com/c-programming-exercises/while-loop/index.php" target="_blank">C Programming Exercises, Practice, Solution : While Loop</a></p> Line No.-458: <p><a href="https://www.w3resource.com/c-programming-exercises/while-loop/c-while-loop-exercise-1.php" target="_blank">C Program to Print numbers from 0 to 10 and 10 to 0 using While loops</a></p> Line No.-459: <p><a href="https://www.w3resource.com/c-programming-exercises/while-loop/c-while-loop-exercise-2.php" target="_blank">C Program: Calculate sum of positive integers using while loop</a></p> Line No.-460: <p><a href="https://www.w3resource.com/c-programming-exercises/while-loop/c-while-loop-exercise-3.php" target="_blank">C Program to calculate product of numbers 1 to 5 using while loop</a></p> Line No.-461: <p><a href="https://www.w3resource.com/c-programming-exercises/while-loop/c-while-loop-exercise-4.php" target="_blank">C Program: Detect duplicate numbers using while loop</a></p> Line No.-462: <p><a href="https://www.w3resource.com/c-programming-exercises/while-loop/c-while-loop-exercise-5.php" target="_blank">C Program: Guess the number game using while loop</a></p> Line No.-463: <p><a href="https://www.w3resource.com/c-programming-exercises/while-loop/c-while-loop-exercise-6.php" target="_blank">C Program: Calculate Factorial with while loop and User-entered positive integer</a></p> Line No.-464: <p><a href="https://www.w3resource.com/c-programming-exercises/while-loop/c-while-loop-exercise-7.php" target="_blank">C Program: User input validation with While Loop for minimum 8-Character username</a></p> Line No.-465: <p><a href="https://www.w3resource.com/c-programming-exercises/while-loop/c-while-loop-exercise-8.php" target="_blank">C Program: Sum of Cubes of Even Numbers up to 20 using While loop</a></p> Line No.-466: <p><a href="https://www.w3resource.com/c-programming-exercises/while-loop/c-while-loop-exercise-9.php" target="_blank">C Program: Palindrome check using While loop</a></p> Line No.-467: <p><a href="https://www.w3resource.com/c-programming-exercises/while-loop/c-while-loop-exercise-10.php" target="_blank">C Program: Print first 10 Fibonacci numbers - While loop</a></p> Line No.-468: <p><a href="https://www.w3resource.com/c-programming-exercises/while-loop/c-while-loop-exercise-11.php" target="_blank">C Program to Print multiplication table using while loop</a></p> Line No.-469: <strong>29 January, 2024</strong></p> Line No.-470: <p><a href="https://www.w3resource.com/c-programming-exercises/do-while-loop/index.php" target="_blank">C Programming Exercises, Practice, Solution : Do While Loop</a></p> Line No.-471: <p><a href="https://www.w3resource.com/c-programming-exercises/do-while-loop/c-do-while-loop-exercise-1.php" target="_blank">C Program to Print numbers from 1 to 10 and 10 to 1 using Do-While Loop</a></p> Line No.-472: <p><a href="https://www.w3resource.com/c-programming-exercises/do-while-loop/c-do-while-loop-exercise-2.php" target="_blank">C Program: Calculate Sum of positive integers using Do-While Loop</a></p> Line No.-473: <p><a href="https://www.w3resource.com/c-programming-exercises/do-while-loop/c-do-while-loop-exercise-3.php" target="_blank">C Program: Calculate Sum of even and odd numbers (1-50) with Do-While Loops</a></p> Line No.-474: <p><a href="https://www.w3resource.com/c-programming-exercises/do-while-loop/c-do-while-loop-exercise-4.php" target="_blank">C Program: Calculate Sum of entered numbers with Do-While Loop</a></p> Line No.-475: <p><a href="https://www.w3resource.com/c-programming-exercises/do-while-loop/c-do-while-loop-exercise-5.php" target="_blank">C Program: Guess the number game with Do-While Loop</a></p> Line No.-476: <p><a href="https://www.w3resource.com/c-programming-exercises/do-while-loop/c-do-while-loop-exercise-6.php" target="_blank">C Program: Calculate Sum of squares of digits with Do-While Loop</a></p> Line No.-477: <p><a href="https://www.w3resource.com/c-programming-exercises/do-while-loop/c-do-while-loop-exercise-7.php" target="_blank">C Program: Calculate average of user input numbers</a></p> Line No.-478: <p><a href="https://www.w3resource.com/c-programming-exercises/do-while-loop/c-do-while-loop-exercise-8.php" target="_blank">C Program: Password authentication with Do-While Loop</a></p> Line No.-479: <p><a href="https://www.w3resource.com/c-programming-exercises/do-while-loop/c-do-while-loop-exercise-9.php" target="_blank">C Program: Calculate sum of Prime numbers with Do-While Loop</a></p> Line No.-480: <p><a href="https://www.w3resource.com/c-programming-exercises/do-while-loop/c-do-while-loop-exercise-10.php" target="_blank">C Program: Counting digits in an integer using Do-While Loop</a></p> Line No.-481: <p><a href="https://www.w3resource.com/c-programming-exercises/do-while-loop/c-do-while-loop-exercise-11.php" target="_blank">C Program: Calculating compound interest with User input Loop</a></p> Line No.-482: <p><a href="https://www.w3resource.com/c-programming-exercises/do-while-loop/c-do-while-loop-exercise-12.php" target="_blank">C Program: Reversing a number using a Do-While loop</a></p> Line No.-483: <strong>19 January, 2024</strong></p> Line No.-484: <p><a href="https://www.w3resource.com/python-exercises/numpy/numpy_100_exercises_with_solutions.php" target="_blank">Mastering NumPy: 100 Exercises with solutions for Python numerical computing</a></p> Line No.-485: <strong>09 January, 2024</strong></p> Line No.-486: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-21.php" target="_blank">Finding index of maximum and minimum values in a NumPy array</a></p> Line No.-487: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-22.php" target="_blank">Reshaping a 1D NumPy array into a 2D array</a></p> Line No.-488: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-23.php" target="_blank">Slicing and extracting a portion of a NumPy array</a></p> Line No.-489: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-24.php" target="_blank">Concatenating NumPy Arrays Vertically</a></p> Line No.-490: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-25.php" target="_blank">Matrix Multiplication with NumPy</a></p> Line No.-491: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-26.php" target="_blank">Cumulative sum of a NumPy array</a></p> Line No.-492: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-27.php" target="_blank">Generating and identifying unique values in a NumPy array</a></p> Line No.-493: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-28.php" target="_blank">Sorting Pandas DataFrame by values: Python data manipulation</a></p> Line No.-494: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-29.php" target="_blank">Applying custom function to salary: Pandas DataFrame operation</a></p> Line No.-495: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-30.php" target="_blank">Renaming columns in Pandas DataFrame</a></p> Line No.-496: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-31.php" target="_blank">Transposing DataFrame: Pandas data manipulation</a></p> Line No.-497: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-32.php" target="_blank">Merging Pandas DataFrames on multiple columns</a></p> Line No.-498: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-33.php" target="_blank">Aggregating data in Pandas: Multiple functions example</a></p> Line No.-499: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-34.php" target="_blank">Extracting date and time from Pandas DateTime</a></p> Line No.-500: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-35.php" target="_blank">Resampling Time-Series in a Pandas DataFrame</a></p> Line No.-501: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-36.php" target="_blank">Rolling Calculation in Pandas DataFrame</a></p> Line No.-502: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-37.php" target="_blank">Cross-Tabulation in Pandas: Analyzing DataFrame categories</a></p> Line No.-503: <strong>08 January, 2024</strong></p> Line No.-504: <p><a href="https://www.w3resource.com/java-exercises/unittest/index.php" target="_blank">Java Unit Test: Exercises, Solutions, and Practice</a></p> Line No.-505: <p><a href="https://www.w3resource.com/java-exercises/unittest/java-unittest-exercise-1.php" target="_blank">Java Unit Test Case: Asserting Expected method returns</a></p> Line No.-506: <p><a href="https://www.w3resource.com/java-exercises/unittest/java-unittest-exercise-2.php" target="_blank">Java Test Case: Exception Testing</a></p> Line No.-507: <p><a href="https://www.w3resource.com/java-exercises/unittest/java-unittest-exercise-3.php" target="_blank">Java JUnit Test Case: Test Setup and Teardown</a></p> Line No.-508: <p><a href="https://www.w3resource.com/java-exercises/unittest/java-unittest-exercise-4.php" target="_blank">Java Parameterized test with JUnit: MultiplyTest example</a></p> Line No.-509: <p><a href="https://www.w3resource.com/java-exercises/unittest/java-unittest-exercise-5.php" target="_blank">Java Timeout test with JUnit: Timeout Test example</a></p> Line No.-510: <p><a href="https://www.w3resource.com/java-exercises/unittest/java-unittest-exercise-6.php" target="_blank">Java ignored test Case with JUnit: IgnoredTest example</a></p> Line No.-511: <p><a href="https://www.w3resource.com/java-exercises/unittest/java-unittest-exercise-7.php" target="_blank">Java Custom Assertion Example: Providing Meaningful feedback in tests</a></p> Line No.-512: <p><a href="https://www.w3resource.com/java-exercises/unittest/java-unittest-exercise-8.php" target="_blank">Java Testing Private methods with reflection: ExampleClass demonstration</a></p> Line No.-513: <p><a href="https://www.w3resource.com/java-exercises/unittest/java-unittest-exercise-9.php" target="_blank">Testing Java Singleton class for Multi-Threading with JUnit</a></p> Line No.-514: <p><a href="https://www.w3resource.com/java-exercises/unittest/java-unittest-exercise-10.php" target="_blank">Java Application Integration testing with JUnit: UserService and OrderService Interaction</a></p> Line No.-515: <strong>06 January, 2024</strong></p> Line No.-516: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/index.php" target="_blank">Pandas and NumPy Exercises, Practice, Solution for Data Analysis</a></p> Line No.-517: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-1.php" target="_blank">Loading a CSV file into a Pandas DataFrame with Python</a></p> Line No.-518: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-2.php" target="_blank">Generating a Pandas DataFrame from a NumPy array with custom column names in Python</a></p> Line No.-519: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-3.php" target="_blank">Selecting rows based on multiple conditions in Pandas DataFrame</a></p> Line No.-520: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-4.php" target="_blank">Selecting the first and last 7 rows in a Pandas DataFrame</a></p> Line No.-521: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-5.php" target="_blank">Filtering rows based on a column condition in Pandas DataFrame</a></p> Line No.-522: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-6.php" target="_blank">Creating a new column with NumPy operation in Pandas DataFrame</a></p> Line No.-523: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-7.php" target="_blank">Merging DataFrames based on a common column in Pandas</a></p> Line No.-524: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-8.php" target="_blank">Filtering DataFrame rows by column values in Pandas using NumPy array</a></p> Line No.-525: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-9.php" target="_blank">Performing element-wise addition in Pandas DataFrame with NumPy array</a></p> Line No.-526: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-10.php" target="_blank">Applying NumPy function to DataFrame column in Python</a></p> Line No.-527: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-11.php" target="_blank">Calculating correlation matrix for DataFrame in Python</a></p> Line No.-528: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-12.php" target="_blank">Calculating cumulative sum in Pandas DataFrame with NumPy array</a></p> Line No.-529: <p><a href="https://www.w3resource.com/python-exercises/pandas_numpy/pandas_numpy-exercise-13.php" target="_blank">Grouping DataFrame by column and calculating mean in Python</a></p> Line No.-530: </div> Line No.-531: <style type="text/css"> Line No.-532: Line No.-533: .a_link a:link{ Line No.-534: Line No.-535: color: #bc17d6; Line No.-536: Line No.-537: font-weight: bold; Line No.-538: Line No.-539: font-size: 16px; Line No.-540: Line No.-541: margin-left: 1% Line No.-542: Line No.-543: } Line No.-544: Line No.-545: .a_link a:hover{ Line No.-546: Line No.-547: color: #4e990d; Line No.-548: Line No.-549: font-weight: bold; Line No.-550: Line No.-551: font-size: 16px; Line No.-552: Line No.-553: margin-left: 1% Line No.-554: Line No.-555: } Line No.-556: Line No.-557: .a_link a:active{ Line No.-558: Line No.-559: color: #0c1796; Line No.-560: Line No.-561: font-weight: bold; Line No.-562: Line No.-563: font-size: 16px; Line No.-564: Line No.-565: margin-left: 1% Line No.-566: Line No.-567: } Line No.-568: Line No.-569: .a_link a:visited{ Line No.-570: Line No.-571: color: #032859; Line No.-572: Line No.-573: font-weight: bold; Line No.-574: Line No.-575: font-size: 16px; Line No.-576: Line No.-577: margin-left: 1% Line No.-578: Line No.-579: } Line No.-580: Line No.-581: .native-cpc a { Line No.-582: Line No.-583: font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Line No.-584: Line No.-585: Cantarell, "Helvetica Neue", Helvetica, Arial, sans-serif; Line No.-586: Line No.-587: } Line No.-588: Line No.-589: Line No.-590: Line No.-591: .default-ad { Line No.-592: Line No.-593: display: none; Line No.-594: Line No.-595: } Line No.-596: Line No.-597: Line No.-598: Line No.-599: .native-cpc a { Line No.-600: Line No.-601: text-decoration: none !important; Line No.-602: Line No.-603: } Line No.-604: Line No.-605: Line No.-606: Line No.-607: .native-cpc img { Line No.-608: Line No.-609: display: none; Line No.-610: Line No.-611: } Line No.-612: Line No.-613: Line No.-614: Line No.-615: .native-cpc ._default_ { Line No.-616: Line No.-617: display: flex; Line No.-618: Line No.-619: flex-flow: column wrap; Line No.-620: Line No.-621: max-width: 600px; Line No.-622: Line No.-623: padding: 10px; Line No.-624: Line No.-625: background: repeating-linear-gradient(-45deg, transparent, transparent 5px, hsla(0, 0%, 0%, .025) 5px, hsla(0, 0%, 0%, .025) 10px) hsla(203, 11%, 95%, .4); Line No.-626: Line No.-627: Line No.-628: Line No.-629: } Line No.-630: Line No.-631: Line No.-632: Line No.-633: .native-cpc .default-title { Line No.-634: Line No.-635: margin-right: 5px; Line No.-636: Line No.-637: font-size: 10px; Line No.-638: Line No.-639: margin-bottom: 2px; Line No.-640: Line No.-641: letter-spacing: .75px; Line No.-642: Line No.-643: text-transform: uppercase; Line No.-644: Line No.-645: } Line No.-646: Line No.-647: Line No.-648: Line No.-649: .native-cpc .default-title:before { Line No.-650: Line No.-651: content: "Sponsored by " Line No.-652: Line No.-653: } Line No.-654: Line No.-655: Line No.-656: Line No.-657: .native-cpc .default-description { Line No.-658: Line No.-659: font-size: 14px; Line No.-660: Line No.-661: line-height: 1.4; Line No.-662: Line No.-663: } Line No.-664: .widget {display: none !important;} Line No.-665: </style> Line No.-666: </div> Line No.-667: <div class="mdl-cell mdl-card mdl-shadow--2dp through mdl-shadow--6dp mdl-cell--3-col mdl-cell--hide-phone"> Line No.-668: </div> Line No.-669: </div> Line No.-670: </div> Line No.-671: <footer class="mdl-mega-footer"> Line No.-672: Line No.-673: <div class="mdl-mega-footer__bottom-section"> Line No.-674: <div class="mdl-logo"><a href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.en_US" target="_blank">This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.</a></div> Line No.-675: </div> Line No.-676: <div class="mdl-mega-footer__bottom-section"> Line No.-677: <div class="mdl-logo">©w3resource.com 2011-2024</div> Line No.-678: <ul class="mdl-mega-footer__link-list"> Line No.-679: <li><a href="https://www.w3resource.com/privacy.php">Privacy</a></li> Line No.-680: <li><a href="https://www.w3resource.com/about.php">About</a></li> Line No.-681: <li><a href="https://www.w3resource.com/contact.php">Contact</a></li> Line No.-682: <li><a href="https://www.w3resource.com/feedback.php">Feedback</a></li> Line No.-683: </ul> Line No.-684: </div> Line No.-685: </footer> Line No.-686: </main> Line No.-687: </div> Line No.-688: </div> Line No.-689: </div> Line No.-690: <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"> Line No.-691: Line No.-692: <script> Line No.-693: /** Line No.-694: * material-design-lite - Material Design Components in CSS, JS and HTML Line No.-695: * @version v1.3.0 Line No.-696: * @license Apache-2.0 Line No.-697: * @copyright 2015 Google, Inc. Line No.-698: * @link https://github.com/google/material-design-lite Line No.-699: */ Line No.-700: !function(){"use strict";function e(e,t){if(e){if(t.element_.classList.contains(t.CssClasses_.MDL_JS_RIPPLE_EFFECT)){var s=document.createElement("span");s.classList.add(t.CssClasses_.MDL_RIPPLE_CONTAINER),s.classList.add(t.CssClasses_.MDL_JS_RIPPLE_EFFECT);var i=document.createElement("span");i.classList.add(t.CssClasses_.MDL_RIPPLE),s.appendChild(i),e.appendChild(s)}e.addEventListener("click",function(s){if("#"===e.getAttribute("href").charAt(0)){s.preventDefault();var i=e.href.split("#")[1],n=t.element_.querySelector("#"+i);t.resetTabState_(),t.resetPanelState_(),e.classList.add(t.CssClasses_.ACTIVE_CLASS),n.classList.add(t.CssClasses_.ACTIVE_CLASS)}})}}function t(e,t,s,i){function n(){var n=e.href.split("#")[1],a=i.content_.querySelector("#"+n);i.resetTabState_(t),i.resetPanelState_(s),e.classList.add(i.CssClasses_.IS_ACTIVE),a.classList.add(i.CssClasses_.IS_ACTIVE)}if(i.tabBar_.classList.contains(i.CssClasses_.JS_RIPPLE_EFFECT)){var a=document.createElement("span");a.classList.add(i.CssClasses_.RIPPLE_CONTAINER),a.classList.add(i.CssClasses_.JS_RIPPLE_EFFECT);var l=document.createElement("span");l.classList.add(i.CssClasses_.RIPPLE),a.appendChild(l),e.appendChild(a)}i.tabBar_.classList.contains(i.CssClasses_.TAB_MANUAL_SWITCH)||e.addEventListener("click",function(t){"#"===e.getAttribute("href").charAt(0)&&(t.preventDefault(),n())}),e.show=n}var s={upgradeDom:function(e,t){},upgradeElement:function(e,t){},upgradeElements:function(e){},upgradeAllRegistered:function(){},registerUpgradedCallback:function(e,t){},register:function(e){},downgradeElements:function(e){}};s=function(){function e(e,t){for(var s=0;s<c.length;s++)if(c[s].className===e)return"undefined"!=typeof t&&(c[s]=t),c[s];return!1}function t(e){var t=e.getAttribute("data-upgraded");return null===t?[""]:t.split(",")}function s(e,s){var i=t(e);return i.indexOf(s)!==-1}function i(e,t,s){if("CustomEvent"in window&&"function"==typeof window.CustomEvent)return new CustomEvent(e,{bubbles:t,cancelable:s});var i=document.createEvent("Events");return i.initEvent(e,t,s),i}function n(t,s){if("undefined"==typeof t&&"undefined"==typeof s)for(var i=0;i<c.length;i++)n(c[i].className,c[i].cssClass);else{var l=t;if("undefined"==typeof s){var o=e(l);o&&(s=o.cssClass)}for(var r=document.querySelectorAll("."+s),_=0;_<r.length;_++)a(r[_],l)}}function a(n,a){if(!("object"==typeof n&&n instanceof Element))throw new Error("Invalid argument provided to upgrade MDL element.");var l=i("mdl-componentupgrading",!0,!0);if(n.dispatchEvent(l),!l.defaultPrevented){var o=t(n),r=[];if(a)s(n,a)||r.push(e(a));else{var _=n.classList;c.forEach(function(e){_.contains(e.cssClass)&&r.indexOf(e)===-1&&!s(n,e.className)&&r.push(e)})}for(var d,h=0,u=r.length;h<u;h++){if(d=r[h],!d)throw new Error("Unable to find a registered component for the given class.");o.push(d.className),n.setAttribute("data-upgraded",o.join(","));var E=new d.classConstructor(n);E[C]=d,p.push(E);for(var m=0,L=d.callbacks.length;m<L;m++)d.callbacks[m](n);d.widget&&(n[d.className]=E);var I=i("mdl-componentupgraded",!0,!1);n.dispatchEvent(I)}}}function l(e){Array.isArray(e)||(e=e instanceof Element?[e]:Array.prototype.slice.call(e));for(var t,s=0,i=e.length;s<i;s++)t=e[s],t instanceof HTMLElement&&(a(t),t.children.length>0&&l(t.children))}function o(t){var s="undefined"==typeof t.widget&&"undefined"==typeof t.widget,i=!0;s||(i=t.widget||t.widget);var n={classConstructor:t.constructor||t.constructor,className:t.classAsString||t.classAsString,cssClass:t.cssClass||t.cssClass,widget:i,callbacks:[]};if(c.forEach(function(e){if(e.cssClass===n.cssClass)throw new Error("The provided cssClass has already been registered: "+e.cssClass);if(e.className===n.className)throw new Error("The provided className has already been registered")}),t.constructor.prototype.hasOwnProperty(C))throw new Error("MDL component classes must not have "+C+" defined as a property.");var a=e(t.classAsString,n);a||c.push(n)}function r(t,s){var i=e(t);i&&i.callbacks.push(s)}function _(){for(var e=0;e<c.length;e++)n(c[e].className)}function d(e){if(e){var t=p.indexOf(e);p.splice(t,1);var s=e.element_.getAttribute("data-upgraded").split(","),n=s.indexOf(e[C].classAsString);s.splice(n,1),e.element_.setAttribute("data-upgraded",s.join(","));var a=i("mdl-componentdowngraded",!0,!1);e.element_.dispatchEvent(a)}}function h(e){var t=function(e){p.filter(function(t){return t.element_===e}).forEach(d)};if(e instanceof Array||e instanceof NodeList)for(var s=0;s<e.length;s++)t(e[s]);else{if(!(e instanceof Node))throw new Error("Invalid argument provided to downgrade MDL nodes.");t(e)}}var c=[],p=[],C="mdlComponentConfigInternal_";return{upgradeDom:n,upgradeElement:a,upgradeElements:l,upgradeAllRegistered:_,registerUpgradedCallback:r,register:o,downgradeElements:h}}(),s.ComponentConfigPublic,s.ComponentConfig,s.Component,s.upgradeDom=s.upgradeDom,s.upgradeElement=s.upgradeElement,s.upgradeElements=s.upgradeElements,s.upgradeAllRegistered=s.upgradeAllRegistered,s.registerUpgradedCallback=s.registerUpgradedCallback,s.register=s.register,s.downgradeElements=s.downgradeElements,window.componentHandler=s,window.componentHandler=s,window.addEventListener("load",function(){"classList"in document.createElement("div")&&"querySelector"in document&&"addEventListener"in window&&Array.prototype.forEach?(document.documentElement.classList.add("mdl-js"),s.upgradeAllRegistered()):(s.upgradeElement=function(){},s.register=function(){})}),Date.now||(Date.now=function(){return(new Date).getTime()},Date.now=Date.now);for(var i=["webkit","moz"],n=0;n<i.length&&!window.requestAnimationFrame;++n){var a=i[n];window.requestAnimationFrame=window[a+"RequestAnimationFrame"],window.cancelAnimationFrame=window[a+"CancelAnimationFrame"]||window[a+"CancelRequestAnimationFrame"],window.requestAnimationFrame=window.requestAnimationFrame,window.cancelAnimationFrame=window.cancelAnimationFrame}if(/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)||!window.requestAnimationFrame||!window.cancelAnimationFrame){var l=0;window.requestAnimationFrame=function(e){var t=Date.now(),s=Math.max(l+16,t);return setTimeout(function(){e(l=s)},s-t)},window.cancelAnimationFrame=clearTimeout,window.requestAnimationFrame=window.requestAnimationFrame,window.cancelAnimationFrame=window.cancelAnimationFrame}var o=function(e){this.element_=e,this.init()};window.MaterialButton=o,o.prototype.Constant_={},o.prototype.CssClasses_={RIPPLE_EFFECT:"mdl-js-ripple-effect",RIPPLE_CONTAINER:"mdl-button__ripple-container",RIPPLE:"mdl-ripple"},o.prototype.blurHandler_=function(e){e&&this.element_.blur()},o.prototype.disable=function(){this.element_.disabled=!0},o.prototype.disable=o.prototype.disable,o.prototype.enable=function(){this.element_.disabled=!1},o.prototype.enable=o.prototype.enable,o.prototype.init=function(){if(this.element_){if(this.element_.classList.contains(this.CssClasses_.RIPPLE_EFFECT)){var e=document.createElement("span");e.classList.add(this.CssClasses_.RIPPLE_CONTAINER),this.rippleElement_=document.createElement("span"),this.rippleElement_.classList.add(this.CssClasses_.RIPPLE),e.appendChild(this.rippleElement_),this.boundRippleBlurHandler=this.blurHandler_.bind(this),this.rippleElement_.addEventListener("mouseup",this.boundRippleBlurHandler),this.element_.appendChild(e)}this.boundButtonBlurHandler=this.blurHandler_.bind(this),this.element_.addEventListener("mouseup",this.boundButtonBlurHandler),this.element_.addEventListener("mouseleave",this.boundButtonBlurHandler)}},s.register({constructor:o,classAsString:"MaterialButton",cssClass:"mdl-js-button",widget:!0});var r=function(e){this.element_=e,this.init()};window.MaterialCheckbox=r,r.prototype.Constant_={TINY_TIMEOUT:.001},r.prototype.CssClasses_={INPUT:"mdl-checkbox__input",BOX_OUTLINE:"mdl-checkbox__box-outline",FOCUS_HELPER:"mdl-checkbox__focus-helper",TICK_OUTLINE:"mdl-checkbox__tick-outline",RIPPLE_EFFECT:"mdl-js-ripple-effect",RIPPLE_IGNORE_EVENTS:"mdl-js-ripple-effect--ignore-events",RIPPLE_CONTAINER:"mdl-checkbox__ripple-container",RIPPLE_CENTER:"mdl-ripple--center",RIPPLE:"mdl-ripple",IS_FOCUSED:"is-focused",IS_DISABLED:"is-disabled",IS_CHECKED:"is-checked",IS_UPGRADED:"is-upgraded"},r.prototype.onChange_=function(e){this.updateClasses_()},r.prototype.onFocus_=function(e){this.element_.classList.add(this.CssClasses_.IS_FOCUSED)},r.prototype.onBlur_=function(e){this.element_.classList.remove(this.CssClasses_.IS_FOCUSED)},r.prototype.onMouseUp_=function(e){this.blur_()},r.prototype.updateClasses_=function(){this.checkDisabled(),this.checkToggleState()},r.prototype.blur_=function(){window.setTimeout(function(){this.inputElement_.blur()}.bind(this),this.Constant_.TINY_TIMEOUT)},r.prototype.checkToggleState=function(){this.inputElement_.checked?this.element_.classList.add(this.CssClasses_.IS_CHECKED):this.element_.classList.remove(this.CssClasses_.IS_CHECKED)},r.prototype.checkToggleState=r.prototype.checkToggleState,r.prototype.checkDisabled=function(){this.inputElement_.disabled?this.element_.classList.add(this.CssClasses_.IS_DISABLED):this.element_.classList.remove(this.CssClasses_.IS_DISABLED)},r.prototype.checkDisabled=r.prototype.checkDisabled,r.prototype.disable=function(){this.inputElement_.disabled=!0,this.updateClasses_()},r.prototype.disable=r.prototype.disable,r.prototype.enable=function(){this.inputElement_.disabled=!1,this.updateClasses_()},r.prototype.enable=r.prototype.enable,r.prototype.check=function(){this.inputElement_.checked=!0,this.updateClasses_()},r.prototype.check=r.prototype.check,r.prototype.uncheck=function(){this.inputElement_.checked=!1,this.updateClasses_()},r.prototype.uncheck=r.prototype.uncheck,r.prototype.init=function(){if(this.element_){this.inputElement_=this.element_.querySelector("."+this.CssClasses_.INPUT);var e=document.createElement("span");e.classList.add(this.CssClasses_.BOX_OUTLINE);var t=document.createElement("span");t.classList.add(this.CssClasses_.FOCUS_HELPER);var s=document.createElement("span");if(s.classList.add(this.CssClasses_.TICK_OUTLINE),e.appendChild(s),this.element_.appendChild(t),this.element_.appendChild(e),this.element_.classList.contains(this.CssClasses_.RIPPLE_EFFECT)){this.element_.classList.add(this.CssClasses_.RIPPLE_IGNORE_EVENTS),this.rippleContainerElement_=document.createElement("span"),this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_CONTAINER),this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_EFFECT),this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_CENTER),this.boundRippleMouseUp=this.onMouseUp_.bind(this),this.rippleContainerElement_.addEventListener("mouseup",this.boundRippleMouseUp);var i=document.createElement("span");i.classList.add(this.CssClasses_.RIPPLE),this.rippleContainerElement_.appendChild(i),this.element_.appendChild(this.rippleContainerElement_)}this.boundInputOnChange=this.onChange_.bind(this),this.boundInputOnFocus=this.onFocus_.bind(this),this.boundInputOnBlur=this.onBlur_.bind(this),this.boundElementMouseUp=this.onMouseUp_.bind(this),this.inputElement_.addEventListener("change",this.boundInputOnChange),this.inputElement_.addEventListener("focus",this.boundInputOnFocus),this.inputElement_.addEventListener("blur",this.boundInputOnBlur),this.element_.addEventListener("mouseup",this.boundElementMouseUp),this.updateClasses_(),this.element_.classList.add(this.CssClasses_.IS_UPGRADED)}},s.register({constructor:r,classAsString:"MaterialCheckbox",cssClass:"mdl-js-checkbox",widget:!0});var _=function(e){this.element_=e,this.init()};window.MaterialIconToggle=_,_.prototype.Constant_={TINY_TIMEOUT:.001},_.prototype.CssClasses_={INPUT:"mdl-icon-toggle__input",JS_RIPPLE_EFFECT:"mdl-js-ripple-effect",RIPPLE_IGNORE_EVENTS:"mdl-js-ripple-effect--ignore-events",RIPPLE_CONTAINER:"mdl-icon-toggle__ripple-container",RIPPLE_CENTER:"mdl-ripple--center",RIPPLE:"mdl-ripple",IS_FOCUSED:"is-focused",IS_DISABLED:"is-disabled",IS_CHECKED:"is-checked"},_.prototype.onChange_=function(e){this.updateClasses_()},_.prototype.onFocus_=function(e){this.element_.classList.add(this.CssClasses_.IS_FOCUSED)},_.prototype.onBlur_=function(e){this.element_.classList.remove(this.CssClasses_.IS_FOCUSED)},_.prototype.onMouseUp_=function(e){this.blur_()},_.prototype.updateClasses_=function(){this.checkDisabled(),this.checkToggleState()},_.prototype.blur_=function(){window.setTimeout(function(){this.inputElement_.blur()}.bind(this),this.Constant_.TINY_TIMEOUT)},_.prototype.checkToggleState=function(){this.inputElement_.checked?this.element_.classList.add(this.CssClasses_.IS_CHECKED):this.element_.classList.remove(this.CssClasses_.IS_CHECKED)},_.prototype.checkToggleState=_.prototype.checkToggleState,_.prototype.checkDisabled=function(){this.inputElement_.disabled?this.element_.classList.add(this.CssClasses_.IS_DISABLED):this.element_.classList.remove(this.CssClasses_.IS_DISABLED)},_.prototype.checkDisabled=_.prototype.checkDisabled,_.prototype.disable=function(){this.inputElement_.disabled=!0,this.updateClasses_()},_.prototype.disable=_.prototype.disable,_.prototype.enable=function(){this.inputElement_.disabled=!1,this.updateClasses_()},_.prototype.enable=_.prototype.enable,_.prototype.check=function(){this.inputElement_.checked=!0,this.updateClasses_()},_.prototype.check=_.prototype.check,_.prototype.uncheck=function(){this.inputElement_.checked=!1,this.updateClasses_()},_.prototype.uncheck=_.prototype.uncheck,_.prototype.init=function(){if(this.element_){if(this.inputElement_=this.element_.querySelector("."+this.CssClasses_.INPUT),this.element_.classList.contains(this.CssClasses_.JS_RIPPLE_EFFECT)){this.element_.classList.add(this.CssClasses_.RIPPLE_IGNORE_EVENTS),this.rippleContainerElement_=document.createElement("span"),this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_CONTAINER),this.rippleContainerElement_.classList.add(this.CssClasses_.JS_RIPPLE_EFFECT),this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_CENTER),this.boundRippleMouseUp=this.onMouseUp_.bind(this),this.rippleContainerElement_.addEventListener("mouseup",this.boundRippleMouseUp);var e=document.createElement("span");e.classList.add(this.CssClasses_.RIPPLE),this.rippleContainerElement_.appendChild(e),this.element_.appendChild(this.rippleContainerElement_)}this.boundInputOnChange=this.onChange_.bind(this),this.boundInputOnFocus=this.onFocus_.bind(this),this.boundInputOnBlur=this.onBlur_.bind(this),this.boundElementOnMouseUp=this.onMouseUp_.bind(this),this.inputElement_.addEventListener("change",this.boundInputOnChange),this.inputElement_.addEventListener("focus",this.boundInputOnFocus),this.inputElement_.addEventListener("blur",this.boundInputOnBlur),this.element_.addEventListener("mouseup",this.boundElementOnMouseUp),this.updateClasses_(),this.element_.classList.add("is-upgraded")}},s.register({constructor:_,classAsString:"MaterialIconToggle",cssClass:"mdl-js-icon-toggle",widget:!0});var d=function(e){this.element_=e,this.init()};window.MaterialMenu=d,d.prototype.Constant_={TRANSITION_DURATION_SECONDS:.3,TRANSITION_DURATION_FRACTION:.8,CLOSE_TIMEOUT:150},d.prototype.Keycodes_={ENTER:13,ESCAPE:27,SPACE:32,UP_ARROW:38,DOWN_ARROW:40},d.prototype.CssClasses_={CONTAINER:"mdl-menu__container",OUTLINE:"mdl-menu__outline",ITEM:"mdl-menu__item",ITEM_RIPPLE_CONTAINER:"mdl-menu__item-ripple-container",RIPPLE_EFFECT:"mdl-js-ripple-effect",RIPPLE_IGNORE_EVENTS:"mdl-js-ripple-effect--ignore-events",RIPPLE:"mdl-ripple",IS_UPGRADED:"is-upgraded",IS_VISIBLE:"is-visible",IS_ANIMATING:"is-animating",BOTTOM_LEFT:"mdl-menu--bottom-left",BOTTOM_RIGHT:"mdl-menu--bottom-right",TOP_LEFT:"mdl-menu--top-left",TOP_RIGHT:"mdl-menu--top-right",UNALIGNED:"mdl-menu--unaligned"},d.prototype.init=function(){if(this.element_){var e=document.createElement("div");e.classList.add(this.CssClasses_.CONTAINER),this.element_.parentElement.insertBefore(e,this.element_),this.element_.parentElement.removeChild(this.element_),e.appendChild(this.element_),this.container_=e;var t=document.createElement("div");t.classList.add(this.CssClasses_.OUTLINE),this.outline_=t,e.insertBefore(t,this.element_);var s=this.element_.getAttribute("for")||this.element_.getAttribute("data-mdl-for"),i=null;s&&(i=document.getElementById(s),i&&(this.forElement_=i,i.addEventListener("click",this.handleForClick_.bind(this)),i.addEventListener("keydown",this.handleForKeyboardEvent_.bind(this))));var n=this.element_.querySelectorAll("."+this.CssClasses_.ITEM);this.boundItemKeydown_=this.handleItemKeyboardEvent_.bind(this),this.boundItemClick_=this.handleItemClick_.bind(this);for(var a=0;a<n.length;a++)n[a].addEventListener("click",this.boundItemClick_),n[a].tabIndex="-1",n[a].addEventListener("keydown",this.boundItemKeydown_);if(this.element_.classList.contains(this.CssClasses_.RIPPLE_EFFECT))for(this.element_.classList.add(this.CssClasses_.RIPPLE_IGNORE_EVENTS),a=0;a<n.length;a++){var l=n[a],o=document.createElement("span");o.classList.add(this.CssClasses_.ITEM_RIPPLE_CONTAINER);var r=document.createElement("span");r.classList.add(this.CssClasses_.RIPPLE),o.appendChild(r),l.appendChild(o),l.classList.add(this.CssClasses_.RIPPLE_EFFECT)}this.element_.classList.contains(this.CssClasses_.BOTTOM_LEFT)&&this.outline_.classList.add(this.CssClasses_.BOTTOM_LEFT),this.element_.classList.contains(this.CssClasses_.BOTTOM_RIGHT)&&this.outline_.classList.add(this.CssClasses_.BOTTOM_RIGHT),this.element_.classList.contains(this.CssClasses_.TOP_LEFT)&&this.outline_.classList.add(this.CssClasses_.TOP_LEFT),this.element_.classList.contains(this.CssClasses_.TOP_RIGHT)&&this.outline_.classList.add(this.CssClasses_.TOP_RIGHT),this.element_.classList.contains(this.CssClasses_.UNALIGNED)&&this.outline_.classList.add(this.CssClasses_.UNALIGNED),e.classList.add(this.CssClasses_.IS_UPGRADED)}},d.prototype.handleForClick_=function(e){if(this.element_&&this.forElement_){var t=this.forElement_.getBoundingClientRect(),s=this.forElement_.parentElement.getBoundingClientRect();this.element_.classList.contains(this.CssClasses_.UNALIGNED)||(this.element_.classList.contains(this.CssClasses_.BOTTOM_RIGHT)?(this.container_.style.right=s.right-t.right+"px",this.container_.style.top=this.forElement_.offsetTop+this.forElement_.offsetHeight+"px"):this.element_.classList.contains(this.CssClasses_.TOP_LEFT)?(this.container_.style.left=this.forElement_.offsetLeft+"px",this.container_.style.bottom=s.bottom-t.top+"px"):this.element_.classList.contains(this.CssClasses_.TOP_RIGHT)?(this.container_.style.right=s.right-t.right+"px",this.container_.style.bottom=s.bottom-t.top+"px"):(this.container_.style.left=this.forElement_.offsetLeft+"px",this.container_.style.top=this.forElement_.offsetTop+this.forElement_.offsetHeight+"px"))}this.toggle(e)},d.prototype.handleForKeyboardEvent_=function(e){if(this.element_&&this.container_&&this.forElement_){var t=this.element_.querySelectorAll("."+this.CssClasses_.ITEM+":not([disabled])");t&&t.length>0&&this.container_.classList.contains(this.CssClasses_.IS_VISIBLE)&&(e.keyCode===this.Keycodes_.UP_ARROW?(e.preventDefault(),t[t.length-1].focus()):e.keyCode===this.Keycodes_.DOWN_ARROW&&(e.preventDefault(),t[0].focus()))}},d.prototype.handleItemKeyboardEvent_=function(e){if(this.element_&&this.container_){var t=this.element_.querySelectorAll("."+this.CssClasses_.ITEM+":not([disabled])");if(t&&t.length>0&&this.container_.classList.contains(this.CssClasses_.IS_VISIBLE)){var s=Array.prototype.slice.call(t).indexOf(e.target);if(e.keyCode===this.Keycodes_.UP_ARROW)e.preventDefault(),s>0?t[s-1].focus():t[t.length-1].focus();else if(e.keyCode===this.Keycodes_.DOWN_ARROW)e.preventDefault(),t.length>s+1?t[s+1].focus():t[0].focus();else if(e.keyCode===this.Keycodes_.SPACE||e.keyCode===this.Keycodes_.ENTER){e.preventDefault();var i=new MouseEvent("mousedown");e.target.dispatchEvent(i),i=new MouseEvent("mouseup"),e.target.dispatchEvent(i),e.target.click()}else e.keyCode===this.Keycodes_.ESCAPE&&(e.preventDefault(),this.hide())}}},d.prototype.handleItemClick_=function(e){e.target.hasAttribute("disabled")?e.stopPropagation():(this.closing_=!0,window.setTimeout(function(e){this.hide(),this.closing_=!1}.bind(this),this.Constant_.CLOSE_TIMEOUT))},d.prototype.applyClip_=function(e,t){this.element_.classList.contains(this.CssClasses_.UNALIGNED)?this.element_.style.clip="":this.element_.classList.contains(this.CssClasses_.BOTTOM_RIGHT)?this.element_.style.clip="rect(0 "+t+"px 0 "+t+"px)":this.element_.classList.contains(this.CssClasses_.TOP_LEFT)?this.element_.style.clip="rect("+e+"px 0 "+e+"px 0)":this.element_.classList.contains(this.CssClasses_.TOP_RIGHT)?this.element_.style.clip="rect("+e+"px "+t+"px "+e+"px "+t+"px)":this.element_.style.clip=""},d.prototype.removeAnimationEndListener_=function(e){e.target.classList.remove(d.prototype.CssClasses_.IS_ANIMATING)},d.prototype.addAnimationEndListener_=function(){this.element_.addEventListener("transitionend",this.removeAnimationEndListener_),this.element_.addEventListener("webkitTransitionEnd",this.removeAnimationEndListener_)},d.prototype.show=function(e){if(this.element_&&this.container_&&this.outline_){var t=this.element_.getBoundingClientRect().height,s=this.element_.getBoundingClientRect().width;this.container_.style.width=s+"px",this.container_.style.height=t+"px",this.outline_.style.width=s+"px",this.outline_.style.height=t+"px";for(var i=this.Constant_.TRANSITION_DURATION_SECONDS*this.Constant_.TRANSITION_DURATION_FRACTION,n=this.element_.querySelectorAll("."+this.CssClasses_.ITEM),a=0;a<n.length;a++){var l=null;l=this.element_.classList.contains(this.CssClasses_.TOP_LEFT)||this.element_.classList.contains(this.CssClasses_.TOP_RIGHT)?(t-n[a].offsetTop-n[a].offsetHeight)/t*i+"s":n[a].offsetTop/t*i+"s",n[a].style.transitionDelay=l}this.applyClip_(t,s),window.requestAnimationFrame(function(){this.element_.classList.add(this.CssClasses_.IS_ANIMATING),this.element_.style.clip="rect(0 "+s+"px "+t+"px 0)",this.container_.classList.add(this.CssClasses_.IS_VISIBLE)}.bind(this)),this.addAnimationEndListener_();var o=function(t){t===e||this.closing_||t.target.parentNode===this.element_||(document.removeEventListener("click",o),this.hide())}.bind(this);document.addEventListener("click",o)}},d.prototype.show=d.prototype.show,d.prototype.hide=function(){if(this.element_&&this.container_&&this.outline_){for(var e=this.element_.querySelectorAll("."+this.CssClasses_.ITEM),t=0;t<e.length;t++)e[t].style.removeProperty("transition-delay");var s=this.element_.getBoundingClientRect(),i=s.height,n=s.width;this.element_.classList.add(this.CssClasses_.IS_ANIMATING),this.applyClip_(i,n),this.container_.classList.remove(this.CssClasses_.IS_VISIBLE),this.addAnimationEndListener_()}},d.prototype.hide=d.prototype.hide,d.prototype.toggle=function(e){this.container_.classList.contains(this.CssClasses_.IS_VISIBLE)?this.hide():this.show(e)},d.prototype.toggle=d.prototype.toggle,s.register({constructor:d,classAsString:"MaterialMenu",cssClass:"mdl-js-menu",widget:!0});var h=function(e){this.element_=e,this.init()};window.MaterialProgress=h,h.prototype.Constant_={},h.prototype.CssClasses_={INDETERMINATE_CLASS:"mdl-progress__indeterminate"},h.prototype.setProgress=function(e){this.element_.classList.contains(this.CssClasses_.INDETERMINATE_CLASS)||(this.progressbar_.style.width=e+"%")},h.prototype.setProgress=h.prototype.setProgress,h.prototype.setBuffer=function(e){this.bufferbar_.style.width=e+"%",this.auxbar_.style.width=100-e+"%"},h.prototype.setBuffer=h.prototype.setBuffer,h.prototype.init=function(){if(this.element_){var e=document.createElement("div");e.className="progressbar bar bar1",this.element_.appendChild(e),this.progressbar_=e,e=document.createElement("div"),e.className="bufferbar bar bar2",this.element_.appendChild(e),this.bufferbar_=e,e=document.createElement("div"),e.className="auxbar bar bar3",this.element_.appendChild(e),this.auxbar_=e,this.progressbar_.style.width="0%",this.bufferbar_.style.width="100%",this.auxbar_.style.width="0%",this.element_.classList.add("is-upgraded")}},s.register({constructor:h,classAsString:"MaterialProgress",cssClass:"mdl-js-progress",widget:!0});var c=function(e){this.element_=e,this.init()};window.MaterialRadio=c,c.prototype.Constant_={TINY_TIMEOUT:.001},c.prototype.CssClasses_={IS_FOCUSED:"is-focused",IS_DISABLED:"is-disabled",IS_CHECKED:"is-checked",IS_UPGRADED:"is-upgraded",JS_RADIO:"mdl-js-radio",RADIO_BTN:"mdl-radio__button",RADIO_OUTER_CIRCLE:"mdl-radio__outer-circle",RADIO_INNER_CIRCLE:"mdl-radio__inner-circle",RIPPLE_EFFECT:"mdl-js-ripple-effect",RIPPLE_IGNORE_EVENTS:"mdl-js-ripple-effect--ignore-events",RIPPLE_CONTAINER:"mdl-radio__ripple-container",RIPPLE_CENTER:"mdl-ripple--center",RIPPLE:"mdl-ripple"},c.prototype.onChange_=function(e){for(var t=document.getElementsByClassName(this.CssClasses_.JS_RADIO),s=0;s<t.length;s++){var i=t[s].querySelector("."+this.CssClasses_.RADIO_BTN);i.getAttribute("name")===this.btnElement_.getAttribute("name")&&"undefined"!=typeof t[s].MaterialRadio&&t[s].MaterialRadio.updateClasses_()}},c.prototype.onFocus_=function(e){this.element_.classList.add(this.CssClasses_.IS_FOCUSED)},c.prototype.onBlur_=function(e){this.element_.classList.remove(this.CssClasses_.IS_FOCUSED)},c.prototype.onMouseup_=function(e){this.blur_()},c.prototype.updateClasses_=function(){this.checkDisabled(),this.checkToggleState()},c.prototype.blur_=function(){window.setTimeout(function(){this.btnElement_.blur()}.bind(this),this.Constant_.TINY_TIMEOUT)},c.prototype.checkDisabled=function(){this.btnElement_.disabled?this.element_.classList.add(this.CssClasses_.IS_DISABLED):this.element_.classList.remove(this.CssClasses_.IS_DISABLED)},c.prototype.checkDisabled=c.prototype.checkDisabled,c.prototype.checkToggleState=function(){this.btnElement_.checked?this.element_.classList.add(this.CssClasses_.IS_CHECKED):this.element_.classList.remove(this.CssClasses_.IS_CHECKED)},c.prototype.checkToggleState=c.prototype.checkToggleState,c.prototype.disable=function(){this.btnElement_.disabled=!0,this.updateClasses_()},c.prototype.disable=c.prototype.disable,c.prototype.enable=function(){this.btnElement_.disabled=!1,this.updateClasses_()},c.prototype.enable=c.prototype.enable,c.prototype.check=function(){this.btnElement_.checked=!0,this.onChange_(null)},c.prototype.check=c.prototype.check,c.prototype.uncheck=function(){this.btnElement_.checked=!1,this.onChange_(null)},c.prototype.uncheck=c.prototype.uncheck,c.prototype.init=function(){if(this.element_){this.btnElement_=this.element_.querySelector("."+this.CssClasses_.RADIO_BTN),this.boundChangeHandler_=this.onChange_.bind(this),this.boundFocusHandler_=this.onChange_.bind(this),this.boundBlurHandler_=this.onBlur_.bind(this),this.boundMouseUpHandler_=this.onMouseup_.bind(this);var e=document.createElement("span");e.classList.add(this.CssClasses_.RADIO_OUTER_CIRCLE);var t=document.createElement("span");t.classList.add(this.CssClasses_.RADIO_INNER_CIRCLE),this.element_.appendChild(e),this.element_.appendChild(t);var s;if(this.element_.classList.contains(this.CssClasses_.RIPPLE_EFFECT)){this.element_.classList.add(this.CssClasses_.RIPPLE_IGNORE_EVENTS),s=document.createElement("span"),s.classList.add(this.CssClasses_.RIPPLE_CONTAINER),s.classList.add(this.CssClasses_.RIPPLE_EFFECT),s.classList.add(this.CssClasses_.RIPPLE_CENTER),s.addEventListener("mouseup",this.boundMouseUpHandler_);var i=document.createElement("span");i.classList.add(this.CssClasses_.RIPPLE),s.appendChild(i),this.element_.appendChild(s)}this.btnElement_.addEventListener("change",this.boundChangeHandler_),this.btnElement_.addEventListener("focus",this.boundFocusHandler_),this.btnElement_.addEventListener("blur",this.boundBlurHandler_),this.element_.addEventListener("mouseup",this.boundMouseUpHandler_),this.updateClasses_(),this.element_.classList.add(this.CssClasses_.IS_UPGRADED)}},s.register({constructor:c,classAsString:"MaterialRadio",cssClass:"mdl-js-radio",widget:!0});var p=function(e){this.element_=e,this.isIE_=window.navigator.msPointerEnabled,this.init()};window.MaterialSlider=p,p.prototype.Constant_={},p.prototype.CssClasses_={IE_CONTAINER:"mdl-slider__ie-container",SLIDER_CONTAINER:"mdl-slider__container",BACKGROUND_FLEX:"mdl-slider__background-flex",BACKGROUND_LOWER:"mdl-slider__background-lower",BACKGROUND_UPPER:"mdl-slider__background-upper",IS_LOWEST_VALUE:"is-lowest-value",IS_UPGRADED:"is-upgraded"},p.prototype.onInput_=function(e){this.updateValueStyles_()},p.prototype.onChange_=function(e){this.updateValueStyles_()},p.prototype.onMouseUp_=function(e){e.target.blur()},p.prototype.onContainerMouseDown_=function(e){if(e.target===this.element_.parentElement){e.preventDefault();var t=new MouseEvent("mousedown",{target:e.target,buttons:e.buttons,clientX:e.clientX,clientY:this.element_.getBoundingClientRect().y});this.element_.dispatchEvent(t)}},p.prototype.updateValueStyles_=function(){var e=(this.element_.value-this.element_.min)/(this.element_.max-this.element_.min);0===e?this.element_.classList.add(this.CssClasses_.IS_LOWEST_VALUE):this.element_.classList.remove(this.CssClasses_.IS_LOWEST_VALUE),this.isIE_||(this.backgroundLower_.style.flex=e,this.backgroundLower_.style.webkitFlex=e,this.backgroundUpper_.style.flex=1-e,this.backgroundUpper_.style.webkitFlex=1-e)},p.prototype.disable=function(){this.element_.disabled=!0},p.prototype.disable=p.prototype.disable,p.prototype.enable=function(){this.element_.disabled=!1},p.prototype.enable=p.prototype.enable,p.prototype.change=function(e){"undefined"!=typeof e&&(this.element_.value=e),this.updateValueStyles_()},p.prototype.change=p.prototype.change,p.prototype.init=function(){if(this.element_){if(this.isIE_){var e=document.createElement("div");e.classList.add(this.CssClasses_.IE_CONTAINER),this.element_.parentElement.insertBefore(e,this.element_),this.element_.parentElement.removeChild(this.element_),e.appendChild(this.element_)}else{var t=document.createElement("div");t.classList.add(this.CssClasses_.SLIDER_CONTAINER),this.element_.parentElement.insertBefore(t,this.element_),this.element_.parentElement.removeChild(this.element_),t.appendChild(this.element_);var s=document.createElement("div");s.classList.add(this.CssClasses_.BACKGROUND_FLEX),t.appendChild(s),this.backgroundLower_=document.createElement("div"),this.backgroundLower_.classList.add(this.CssClasses_.BACKGROUND_LOWER),s.appendChild(this.backgroundLower_),this.backgroundUpper_=document.createElement("div"),this.backgroundUpper_.classList.add(this.CssClasses_.BACKGROUND_UPPER),s.appendChild(this.backgroundUpper_)}this.boundInputHandler=this.onInput_.bind(this),this.boundChangeHandler=this.onChange_.bind(this),this.boundMouseUpHandler=this.onMouseUp_.bind(this),this.boundContainerMouseDownHandler=this.onContainerMouseDown_.bind(this),this.element_.addEventListener("input",this.boundInputHandler),this.element_.addEventListener("change",this.boundChangeHandler),this.element_.addEventListener("mouseup",this.boundMouseUpHandler),this.element_.parentElement.addEventListener("mousedown",this.boundContainerMouseDownHandler),this.updateValueStyles_(),this.element_.classList.add(this.CssClasses_.IS_UPGRADED)}},s.register({constructor:p,classAsString:"MaterialSlider",cssClass:"mdl-js-slider",widget:!0});var C=function(e){if(this.element_=e,this.textElement_=this.element_.querySelector("."+this.cssClasses_.MESSAGE),this.actionElement_=this.element_.querySelector("."+this.cssClasses_.ACTION),!this.textElement_)throw new Error("There must be a message element for a snackbar.");if(!this.actionElement_)throw new Error("There must be an action element for a snackbar.");this.active=!1,this.actionHandler_=void 0,this.message_=void 0,this.actionText_=void 0,this.queuedNotifications_=[],this.setActionHidden_(!0)};window.MaterialSnackbar=C,C.prototype.Constant_={ANIMATION_LENGTH:250},C.prototype.cssClasses_={SNACKBAR:"mdl-snackbar",MESSAGE:"mdl-snackbar__text",ACTION:"mdl-snackbar__action",ACTIVE:"mdl-snackbar--active"},C.prototype.displaySnackbar_=function(){this.element_.setAttribute("aria-hidden","true"), Line No.-701: this.actionHandler_&&(this.actionElement_.textContent=this.actionText_,this.actionElement_.addEventListener("click",this.actionHandler_),this.setActionHidden_(!1)),this.textElement_.textContent=this.message_,this.element_.classList.add(this.cssClasses_.ACTIVE),this.element_.setAttribute("aria-hidden","false"),setTimeout(this.cleanup_.bind(this),this.timeout_)},C.prototype.showSnackbar=function(e){if(void 0===e)throw new Error("Please provide a data object with at least a message to display.");if(void 0===e.message)throw new Error("Please provide a message to be displayed.");if(e.actionHandler&&!e.actionText)throw new Error("Please provide action text with the handler.");this.active?this.queuedNotifications_.push(e):(this.active=!0,this.message_=e.message,e.timeout?this.timeout_=e.timeout:this.timeout_=2750,e.actionHandler&&(this.actionHandler_=e.actionHandler),e.actionText&&(this.actionText_=e.actionText),this.displaySnackbar_())},C.prototype.showSnackbar=C.prototype.showSnackbar,C.prototype.checkQueue_=function(){this.queuedNotifications_.length>0&&this.showSnackbar(this.queuedNotifications_.shift())},C.prototype.cleanup_=function(){this.element_.classList.remove(this.cssClasses_.ACTIVE),setTimeout(function(){this.element_.setAttribute("aria-hidden","true"),this.textElement_.textContent="",Boolean(this.actionElement_.getAttribute("aria-hidden"))||(this.setActionHidden_(!0),this.actionElement_.textContent="",this.actionElement_.removeEventListener("click",this.actionHandler_)),this.actionHandler_=void 0,this.message_=void 0,this.actionText_=void 0,this.active=!1,this.checkQueue_()}.bind(this),this.Constant_.ANIMATION_LENGTH)},C.prototype.setActionHidden_=function(e){e?this.actionElement_.setAttribute("aria-hidden","true"):this.actionElement_.removeAttribute("aria-hidden")},s.register({constructor:C,classAsString:"MaterialSnackbar",cssClass:"mdl-js-snackbar",widget:!0});var u=function(e){this.element_=e,this.init()};window.MaterialSpinner=u,u.prototype.Constant_={MDL_SPINNER_LAYER_COUNT:4},u.prototype.CssClasses_={MDL_SPINNER_LAYER:"mdl-spinner__layer",MDL_SPINNER_CIRCLE_CLIPPER:"mdl-spinner__circle-clipper",MDL_SPINNER_CIRCLE:"mdl-spinner__circle",MDL_SPINNER_GAP_PATCH:"mdl-spinner__gap-patch",MDL_SPINNER_LEFT:"mdl-spinner__left",MDL_SPINNER_RIGHT:"mdl-spinner__right"},u.prototype.createLayer=function(e){var t=document.createElement("div");t.classList.add(this.CssClasses_.MDL_SPINNER_LAYER),t.classList.add(this.CssClasses_.MDL_SPINNER_LAYER+"-"+e);var s=document.createElement("div");s.classList.add(this.CssClasses_.MDL_SPINNER_CIRCLE_CLIPPER),s.classList.add(this.CssClasses_.MDL_SPINNER_LEFT);var i=document.createElement("div");i.classList.add(this.CssClasses_.MDL_SPINNER_GAP_PATCH);var n=document.createElement("div");n.classList.add(this.CssClasses_.MDL_SPINNER_CIRCLE_CLIPPER),n.classList.add(this.CssClasses_.MDL_SPINNER_RIGHT);for(var a=[s,i,n],l=0;l<a.length;l++){var o=document.createElement("div");o.classList.add(this.CssClasses_.MDL_SPINNER_CIRCLE),a[l].appendChild(o)}t.appendChild(s),t.appendChild(i),t.appendChild(n),this.element_.appendChild(t)},u.prototype.createLayer=u.prototype.createLayer,u.prototype.stop=function(){this.element_.classList.remove("is-active")},u.prototype.stop=u.prototype.stop,u.prototype.start=function(){this.element_.classList.add("is-active")},u.prototype.start=u.prototype.start,u.prototype.init=function(){if(this.element_){for(var e=1;e<=this.Constant_.MDL_SPINNER_LAYER_COUNT;e++)this.createLayer(e);this.element_.classList.add("is-upgraded")}},s.register({constructor:u,classAsString:"MaterialSpinner",cssClass:"mdl-js-spinner",widget:!0});var E=function(e){this.element_=e,this.init()};window.MaterialSwitch=E,E.prototype.Constant_={TINY_TIMEOUT:.001},E.prototype.CssClasses_={INPUT:"mdl-switch__input",TRACK:"mdl-switch__track",THUMB:"mdl-switch__thumb",FOCUS_HELPER:"mdl-switch__focus-helper",RIPPLE_EFFECT:"mdl-js-ripple-effect",RIPPLE_IGNORE_EVENTS:"mdl-js-ripple-effect--ignore-events",RIPPLE_CONTAINER:"mdl-switch__ripple-container",RIPPLE_CENTER:"mdl-ripple--center",RIPPLE:"mdl-ripple",IS_FOCUSED:"is-focused",IS_DISABLED:"is-disabled",IS_CHECKED:"is-checked"},E.prototype.onChange_=function(e){this.updateClasses_()},E.prototype.onFocus_=function(e){this.element_.classList.add(this.CssClasses_.IS_FOCUSED)},E.prototype.onBlur_=function(e){this.element_.classList.remove(this.CssClasses_.IS_FOCUSED)},E.prototype.onMouseUp_=function(e){this.blur_()},E.prototype.updateClasses_=function(){this.checkDisabled(),this.checkToggleState()},E.prototype.blur_=function(){window.setTimeout(function(){this.inputElement_.blur()}.bind(this),this.Constant_.TINY_TIMEOUT)},E.prototype.checkDisabled=function(){this.inputElement_.disabled?this.element_.classList.add(this.CssClasses_.IS_DISABLED):this.element_.classList.remove(this.CssClasses_.IS_DISABLED)},E.prototype.checkDisabled=E.prototype.checkDisabled,E.prototype.checkToggleState=function(){this.inputElement_.checked?this.element_.classList.add(this.CssClasses_.IS_CHECKED):this.element_.classList.remove(this.CssClasses_.IS_CHECKED)},E.prototype.checkToggleState=E.prototype.checkToggleState,E.prototype.disable=function(){this.inputElement_.disabled=!0,this.updateClasses_()},E.prototype.disable=E.prototype.disable,E.prototype.enable=function(){this.inputElement_.disabled=!1,this.updateClasses_()},E.prototype.enable=E.prototype.enable,E.prototype.on=function(){this.inputElement_.checked=!0,this.updateClasses_()},E.prototype.on=E.prototype.on,E.prototype.off=function(){this.inputElement_.checked=!1,this.updateClasses_()},E.prototype.off=E.prototype.off,E.prototype.init=function(){if(this.element_){this.inputElement_=this.element_.querySelector("."+this.CssClasses_.INPUT);var e=document.createElement("div");e.classList.add(this.CssClasses_.TRACK);var t=document.createElement("div");t.classList.add(this.CssClasses_.THUMB);var s=document.createElement("span");if(s.classList.add(this.CssClasses_.FOCUS_HELPER),t.appendChild(s),this.element_.appendChild(e),this.element_.appendChild(t),this.boundMouseUpHandler=this.onMouseUp_.bind(this),this.element_.classList.contains(this.CssClasses_.RIPPLE_EFFECT)){this.element_.classList.add(this.CssClasses_.RIPPLE_IGNORE_EVENTS),this.rippleContainerElement_=document.createElement("span"),this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_CONTAINER),this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_EFFECT),this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_CENTER),this.rippleContainerElement_.addEventListener("mouseup",this.boundMouseUpHandler);var i=document.createElement("span");i.classList.add(this.CssClasses_.RIPPLE),this.rippleContainerElement_.appendChild(i),this.element_.appendChild(this.rippleContainerElement_)}this.boundChangeHandler=this.onChange_.bind(this),this.boundFocusHandler=this.onFocus_.bind(this),this.boundBlurHandler=this.onBlur_.bind(this),this.inputElement_.addEventListener("change",this.boundChangeHandler),this.inputElement_.addEventListener("focus",this.boundFocusHandler),this.inputElement_.addEventListener("blur",this.boundBlurHandler),this.element_.addEventListener("mouseup",this.boundMouseUpHandler),this.updateClasses_(),this.element_.classList.add("is-upgraded")}},s.register({constructor:E,classAsString:"MaterialSwitch",cssClass:"mdl-js-switch",widget:!0});var m=function(e){this.element_=e,this.init()};window.MaterialTabs=m,m.prototype.Constant_={},m.prototype.CssClasses_={TAB_CLASS:"mdl-tabs__tab",PANEL_CLASS:"mdl-tabs__panel",ACTIVE_CLASS:"is-active",UPGRADED_CLASS:"is-upgraded",MDL_JS_RIPPLE_EFFECT:"mdl-js-ripple-effect",MDL_RIPPLE_CONTAINER:"mdl-tabs__ripple-container",MDL_RIPPLE:"mdl-ripple",MDL_JS_RIPPLE_EFFECT_IGNORE_EVENTS:"mdl-js-ripple-effect--ignore-events"},m.prototype.initTabs_=function(){this.element_.classList.contains(this.CssClasses_.MDL_JS_RIPPLE_EFFECT)&&this.element_.classList.add(this.CssClasses_.MDL_JS_RIPPLE_EFFECT_IGNORE_EVENTS),this.tabs_=this.element_.querySelectorAll("."+this.CssClasses_.TAB_CLASS),this.panels_=this.element_.querySelectorAll("."+this.CssClasses_.PANEL_CLASS);for(var t=0;t<this.tabs_.length;t++)new e(this.tabs_[t],this);this.element_.classList.add(this.CssClasses_.UPGRADED_CLASS)},m.prototype.resetTabState_=function(){for(var e=0;e<this.tabs_.length;e++)this.tabs_[e].classList.remove(this.CssClasses_.ACTIVE_CLASS)},m.prototype.resetPanelState_=function(){for(var e=0;e<this.panels_.length;e++)this.panels_[e].classList.remove(this.CssClasses_.ACTIVE_CLASS)},m.prototype.init=function(){this.element_&&this.initTabs_()},s.register({constructor:m,classAsString:"MaterialTabs",cssClass:"mdl-js-tabs"});var L=function(e){this.element_=e,this.maxRows=this.Constant_.NO_MAX_ROWS,this.init()};window.MaterialTextfield=L,L.prototype.Constant_={NO_MAX_ROWS:-1,MAX_ROWS_ATTRIBUTE:"maxrows"},L.prototype.CssClasses_={LABEL:"mdl-textfield__label",INPUT:"mdl-textfield__input",IS_DIRTY:"is-dirty",IS_FOCUSED:"is-focused",IS_DISABLED:"is-disabled",IS_INVALID:"is-invalid",IS_UPGRADED:"is-upgraded",HAS_PLACEHOLDER:"has-placeholder"},L.prototype.onKeyDown_=function(e){var t=e.target.value.split("\n").length;13===e.keyCode&&t>=this.maxRows&&e.preventDefault()},L.prototype.onFocus_=function(e){this.element_.classList.add(this.CssClasses_.IS_FOCUSED)},L.prototype.onBlur_=function(e){this.element_.classList.remove(this.CssClasses_.IS_FOCUSED)},L.prototype.onReset_=function(e){this.updateClasses_()},L.prototype.updateClasses_=function(){this.checkDisabled(),this.checkValidity(),this.checkDirty(),this.checkFocus()},L.prototype.checkDisabled=function(){this.input_.disabled?this.element_.classList.add(this.CssClasses_.IS_DISABLED):this.element_.classList.remove(this.CssClasses_.IS_DISABLED)},L.prototype.checkDisabled=L.prototype.checkDisabled,L.prototype.checkFocus=function(){Boolean(this.element_.querySelector(":focus"))?this.element_.classList.add(this.CssClasses_.IS_FOCUSED):this.element_.classList.remove(this.CssClasses_.IS_FOCUSED)},L.prototype.checkFocus=L.prototype.checkFocus,L.prototype.checkValidity=function(){this.input_.validity&&(this.input_.validity.valid?this.element_.classList.remove(this.CssClasses_.IS_INVALID):this.element_.classList.add(this.CssClasses_.IS_INVALID))},L.prototype.checkValidity=L.prototype.checkValidity,L.prototype.checkDirty=function(){this.input_.value&&this.input_.value.length>0?this.element_.classList.add(this.CssClasses_.IS_DIRTY):this.element_.classList.remove(this.CssClasses_.IS_DIRTY)},L.prototype.checkDirty=L.prototype.checkDirty,L.prototype.disable=function(){this.input_.disabled=!0,this.updateClasses_()},L.prototype.disable=L.prototype.disable,L.prototype.enable=function(){this.input_.disabled=!1,this.updateClasses_()},L.prototype.enable=L.prototype.enable,L.prototype.change=function(e){this.input_.value=e||"",this.updateClasses_()},L.prototype.change=L.prototype.change,L.prototype.init=function(){if(this.element_&&(this.label_=this.element_.querySelector("."+this.CssClasses_.LABEL),this.input_=this.element_.querySelector("."+this.CssClasses_.INPUT),this.input_)){this.input_.hasAttribute(this.Constant_.MAX_ROWS_ATTRIBUTE)&&(this.maxRows=parseInt(this.input_.getAttribute(this.Constant_.MAX_ROWS_ATTRIBUTE),10),isNaN(this.maxRows)&&(this.maxRows=this.Constant_.NO_MAX_ROWS)),this.input_.hasAttribute("placeholder")&&this.element_.classList.add(this.CssClasses_.HAS_PLACEHOLDER),this.boundUpdateClassesHandler=this.updateClasses_.bind(this),this.boundFocusHandler=this.onFocus_.bind(this),this.boundBlurHandler=this.onBlur_.bind(this),this.boundResetHandler=this.onReset_.bind(this),this.input_.addEventListener("input",this.boundUpdateClassesHandler),this.input_.addEventListener("focus",this.boundFocusHandler),this.input_.addEventListener("blur",this.boundBlurHandler),this.input_.addEventListener("reset",this.boundResetHandler),this.maxRows!==this.Constant_.NO_MAX_ROWS&&(this.boundKeyDownHandler=this.onKeyDown_.bind(this),this.input_.addEventListener("keydown",this.boundKeyDownHandler));var e=this.element_.classList.contains(this.CssClasses_.IS_INVALID);this.updateClasses_(),this.element_.classList.add(this.CssClasses_.IS_UPGRADED),e&&this.element_.classList.add(this.CssClasses_.IS_INVALID),this.input_.hasAttribute("autofocus")&&(this.element_.focus(),this.checkFocus())}},s.register({constructor:L,classAsString:"MaterialTextfield",cssClass:"mdl-js-textfield",widget:!0});var I=function(e){this.element_=e,this.init()};window.MaterialTooltip=I,I.prototype.Constant_={},I.prototype.CssClasses_={IS_ACTIVE:"is-active",BOTTOM:"mdl-tooltip--bottom",LEFT:"mdl-tooltip--left",RIGHT:"mdl-tooltip--right",TOP:"mdl-tooltip--top"},I.prototype.handleMouseEnter_=function(e){var t=e.target.getBoundingClientRect(),s=t.left+t.width/2,i=t.top+t.height/2,n=-1*(this.element_.offsetWidth/2),a=-1*(this.element_.offsetHeight/2);this.element_.classList.contains(this.CssClasses_.LEFT)||this.element_.classList.contains(this.CssClasses_.RIGHT)?(s=t.width/2,i+a<0?(this.element_.style.top="0",this.element_.style.marginTop="0"):(this.element_.style.top=i+"px",this.element_.style.marginTop=a+"px")):s+n<0?(this.element_.style.left="0",this.element_.style.marginLeft="0"):(this.element_.style.left=s+"px",this.element_.style.marginLeft=n+"px"),this.element_.classList.contains(this.CssClasses_.TOP)?this.element_.style.top=t.top-this.element_.offsetHeight-10+"px":this.element_.classList.contains(this.CssClasses_.RIGHT)?this.element_.style.left=t.left+t.width+10+"px":this.element_.classList.contains(this.CssClasses_.LEFT)?this.element_.style.left=t.left-this.element_.offsetWidth-10+"px":this.element_.style.top=t.top+t.height+10+"px",this.element_.classList.add(this.CssClasses_.IS_ACTIVE)},I.prototype.hideTooltip_=function(){this.element_.classList.remove(this.CssClasses_.IS_ACTIVE)},I.prototype.init=function(){if(this.element_){var e=this.element_.getAttribute("for")||this.element_.getAttribute("data-mdl-for");e&&(this.forElement_=document.getElementById(e)),this.forElement_&&(this.forElement_.hasAttribute("tabindex")||this.forElement_.setAttribute("tabindex","0"),this.boundMouseEnterHandler=this.handleMouseEnter_.bind(this),this.boundMouseLeaveAndScrollHandler=this.hideTooltip_.bind(this),this.forElement_.addEventListener("mouseenter",this.boundMouseEnterHandler,!1),this.forElement_.addEventListener("touchend",this.boundMouseEnterHandler,!1),this.forElement_.addEventListener("mouseleave",this.boundMouseLeaveAndScrollHandler,!1),window.addEventListener("scroll",this.boundMouseLeaveAndScrollHandler,!0),window.addEventListener("touchstart",this.boundMouseLeaveAndScrollHandler))}},s.register({constructor:I,classAsString:"MaterialTooltip",cssClass:"mdl-tooltip"});var f=function(e){this.element_=e,this.init()};window.MaterialLayout=f,f.prototype.Constant_={MAX_WIDTH:"(max-width: 1024px)",TAB_SCROLL_PIXELS:100,RESIZE_TIMEOUT:100,MENU_ICON:"&#xE5D2;",CHEVRON_LEFT:"chevron_left",CHEVRON_RIGHT:"chevron_right"},f.prototype.Keycodes_={ENTER:13,ESCAPE:27,SPACE:32},f.prototype.Mode_={STANDARD:0,SEAMED:1,WATERFALL:2,SCROLL:3},f.prototype.CssClasses_={CONTAINER:"mdl-layout__container",HEADER:"mdl-layout__header",DRAWER:"mdl-layout__drawer",CONTENT:"mdl-layout__content",DRAWER_BTN:"mdl-layout__drawer-button",ICON:"material-icons",JS_RIPPLE_EFFECT:"mdl-js-ripple-effect",RIPPLE_CONTAINER:"mdl-layout__tab-ripple-container",RIPPLE:"mdl-ripple",RIPPLE_IGNORE_EVENTS:"mdl-js-ripple-effect--ignore-events",HEADER_SEAMED:"mdl-layout__header--seamed",HEADER_WATERFALL:"mdl-layout__header--waterfall",HEADER_SCROLL:"mdl-layout__header--scroll",FIXED_HEADER:"mdl-layout--fixed-header",OBFUSCATOR:"mdl-layout__obfuscator",TAB_BAR:"mdl-layout__tab-bar",TAB_CONTAINER:"mdl-layout__tab-bar-container",TAB:"mdl-layout__tab",TAB_BAR_BUTTON:"mdl-layout__tab-bar-button",TAB_BAR_LEFT_BUTTON:"mdl-layout__tab-bar-left-button",TAB_BAR_RIGHT_BUTTON:"mdl-layout__tab-bar-right-button",TAB_MANUAL_SWITCH:"mdl-layout__tab-manual-switch",PANEL:"mdl-layout__tab-panel",HAS_DRAWER:"has-drawer",HAS_TABS:"has-tabs",HAS_SCROLLING_HEADER:"has-scrolling-header",CASTING_SHADOW:"is-casting-shadow",IS_COMPACT:"is-compact",IS_SMALL_SCREEN:"is-small-screen",IS_DRAWER_OPEN:"is-visible",IS_ACTIVE:"is-active",IS_UPGRADED:"is-upgraded",IS_ANIMATING:"is-animating",ON_LARGE_SCREEN:"mdl-layout--large-screen-only",ON_SMALL_SCREEN:"mdl-layout--small-screen-only"},f.prototype.contentScrollHandler_=function(){if(!this.header_.classList.contains(this.CssClasses_.IS_ANIMATING)){var e=!this.element_.classList.contains(this.CssClasses_.IS_SMALL_SCREEN)||this.element_.classList.contains(this.CssClasses_.FIXED_HEADER);this.content_.scrollTop>0&&!this.header_.classList.contains(this.CssClasses_.IS_COMPACT)?(this.header_.classList.add(this.CssClasses_.CASTING_SHADOW),this.header_.classList.add(this.CssClasses_.IS_COMPACT),e&&this.header_.classList.add(this.CssClasses_.IS_ANIMATING)):this.content_.scrollTop<=0&&this.header_.classList.contains(this.CssClasses_.IS_COMPACT)&&(this.header_.classList.remove(this.CssClasses_.CASTING_SHADOW),this.header_.classList.remove(this.CssClasses_.IS_COMPACT),e&&this.header_.classList.add(this.CssClasses_.IS_ANIMATING))}},f.prototype.keyboardEventHandler_=function(e){e.keyCode===this.Keycodes_.ESCAPE&&this.drawer_.classList.contains(this.CssClasses_.IS_DRAWER_OPEN)&&this.toggleDrawer()},f.prototype.screenSizeHandler_=function(){this.screenSizeMediaQuery_.matches?this.element_.classList.add(this.CssClasses_.IS_SMALL_SCREEN):(this.element_.classList.remove(this.CssClasses_.IS_SMALL_SCREEN),this.drawer_&&(this.drawer_.classList.remove(this.CssClasses_.IS_DRAWER_OPEN),this.obfuscator_.classList.remove(this.CssClasses_.IS_DRAWER_OPEN)))},f.prototype.drawerToggleHandler_=function(e){if(e&&"keydown"===e.type){if(e.keyCode!==this.Keycodes_.SPACE&&e.keyCode!==this.Keycodes_.ENTER)return;e.preventDefault()}this.toggleDrawer()},f.prototype.headerTransitionEndHandler_=function(){this.header_.classList.remove(this.CssClasses_.IS_ANIMATING)},f.prototype.headerClickHandler_=function(){this.header_.classList.contains(this.CssClasses_.IS_COMPACT)&&(this.header_.classList.remove(this.CssClasses_.IS_COMPACT),this.header_.classList.add(this.CssClasses_.IS_ANIMATING))},f.prototype.resetTabState_=function(e){for(var t=0;t<e.length;t++)e[t].classList.remove(this.CssClasses_.IS_ACTIVE)},f.prototype.resetPanelState_=function(e){for(var t=0;t<e.length;t++)e[t].classList.remove(this.CssClasses_.IS_ACTIVE)},f.prototype.toggleDrawer=function(){var e=this.element_.querySelector("."+this.CssClasses_.DRAWER_BTN);this.drawer_.classList.toggle(this.CssClasses_.IS_DRAWER_OPEN),this.obfuscator_.classList.toggle(this.CssClasses_.IS_DRAWER_OPEN),this.drawer_.classList.contains(this.CssClasses_.IS_DRAWER_OPEN)?(this.drawer_.setAttribute("aria-hidden","false"),e.setAttribute("aria-expanded","true")):(this.drawer_.setAttribute("aria-hidden","true"),e.setAttribute("aria-expanded","false"))},f.prototype.toggleDrawer=f.prototype.toggleDrawer,f.prototype.init=function(){if(this.element_){var e=document.createElement("div");e.classList.add(this.CssClasses_.CONTAINER);var s=this.element_.querySelector(":focus");this.element_.parentElement.insertBefore(e,this.element_),this.element_.parentElement.removeChild(this.element_),e.appendChild(this.element_),s&&s.focus();for(var i=this.element_.childNodes,n=i.length,a=0;a<n;a++){var l=i[a];l.classList&&l.classList.contains(this.CssClasses_.HEADER)&&(this.header_=l),l.classList&&l.classList.contains(this.CssClasses_.DRAWER)&&(this.drawer_=l),l.classList&&l.classList.contains(this.CssClasses_.CONTENT)&&(this.content_=l)}window.addEventListener("pageshow",function(e){e.persisted&&(this.element_.style.overflowY="hidden",requestAnimationFrame(function(){this.element_.style.overflowY=""}.bind(this)))}.bind(this),!1),this.header_&&(this.tabBar_=this.header_.querySelector("."+this.CssClasses_.TAB_BAR));var o=this.Mode_.STANDARD;if(this.header_&&(this.header_.classList.contains(this.CssClasses_.HEADER_SEAMED)?o=this.Mode_.SEAMED:this.header_.classList.contains(this.CssClasses_.HEADER_WATERFALL)?(o=this.Mode_.WATERFALL,this.header_.addEventListener("transitionend",this.headerTransitionEndHandler_.bind(this)),this.header_.addEventListener("click",this.headerClickHandler_.bind(this))):this.header_.classList.contains(this.CssClasses_.HEADER_SCROLL)&&(o=this.Mode_.SCROLL,e.classList.add(this.CssClasses_.HAS_SCROLLING_HEADER)),o===this.Mode_.STANDARD?(this.header_.classList.add(this.CssClasses_.CASTING_SHADOW),this.tabBar_&&this.tabBar_.classList.add(this.CssClasses_.CASTING_SHADOW)):o===this.Mode_.SEAMED||o===this.Mode_.SCROLL?(this.header_.classList.remove(this.CssClasses_.CASTING_SHADOW),this.tabBar_&&this.tabBar_.classList.remove(this.CssClasses_.CASTING_SHADOW)):o===this.Mode_.WATERFALL&&(this.content_.addEventListener("scroll",this.contentScrollHandler_.bind(this)),this.contentScrollHandler_())),this.drawer_){var r=this.element_.querySelector("."+this.CssClasses_.DRAWER_BTN);if(!r){r=document.createElement("div"),r.setAttribute("aria-expanded","false"),r.setAttribute("role","button"),r.setAttribute("tabindex","0"),r.classList.add(this.CssClasses_.DRAWER_BTN);var _=document.createElement("i");_.classList.add(this.CssClasses_.ICON),_.innerHTML=this.Constant_.MENU_ICON,r.appendChild(_)}this.drawer_.classList.contains(this.CssClasses_.ON_LARGE_SCREEN)?r.classList.add(this.CssClasses_.ON_LARGE_SCREEN):this.drawer_.classList.contains(this.CssClasses_.ON_SMALL_SCREEN)&&r.classList.add(this.CssClasses_.ON_SMALL_SCREEN),r.addEventListener("click",this.drawerToggleHandler_.bind(this)),r.addEventListener("keydown",this.drawerToggleHandler_.bind(this)),this.element_.classList.add(this.CssClasses_.HAS_DRAWER),this.element_.classList.contains(this.CssClasses_.FIXED_HEADER)?this.header_.insertBefore(r,this.header_.firstChild):this.element_.insertBefore(r,this.content_);var d=document.createElement("div");d.classList.add(this.CssClasses_.OBFUSCATOR),this.element_.appendChild(d),d.addEventListener("click",this.drawerToggleHandler_.bind(this)),this.obfuscator_=d,this.drawer_.addEventListener("keydown",this.keyboardEventHandler_.bind(this)),this.drawer_.setAttribute("aria-hidden","true")}if(this.screenSizeMediaQuery_=window.matchMedia(this.Constant_.MAX_WIDTH),this.screenSizeMediaQuery_.addListener(this.screenSizeHandler_.bind(this)),this.screenSizeHandler_(),this.header_&&this.tabBar_){this.element_.classList.add(this.CssClasses_.HAS_TABS);var h=document.createElement("div");h.classList.add(this.CssClasses_.TAB_CONTAINER),this.header_.insertBefore(h,this.tabBar_),this.header_.removeChild(this.tabBar_);var c=document.createElement("div");c.classList.add(this.CssClasses_.TAB_BAR_BUTTON),c.classList.add(this.CssClasses_.TAB_BAR_LEFT_BUTTON);var p=document.createElement("i");p.classList.add(this.CssClasses_.ICON),p.textContent=this.Constant_.CHEVRON_LEFT,c.appendChild(p),c.addEventListener("click",function(){this.tabBar_.scrollLeft-=this.Constant_.TAB_SCROLL_PIXELS}.bind(this));var C=document.createElement("div");C.classList.add(this.CssClasses_.TAB_BAR_BUTTON),C.classList.add(this.CssClasses_.TAB_BAR_RIGHT_BUTTON);var u=document.createElement("i");u.classList.add(this.CssClasses_.ICON),u.textContent=this.Constant_.CHEVRON_RIGHT,C.appendChild(u),C.addEventListener("click",function(){this.tabBar_.scrollLeft+=this.Constant_.TAB_SCROLL_PIXELS}.bind(this)),h.appendChild(c),h.appendChild(this.tabBar_),h.appendChild(C);var E=function(){this.tabBar_.scrollLeft>0?c.classList.add(this.CssClasses_.IS_ACTIVE):c.classList.remove(this.CssClasses_.IS_ACTIVE),this.tabBar_.scrollLeft<this.tabBar_.scrollWidth-this.tabBar_.offsetWidth?C.classList.add(this.CssClasses_.IS_ACTIVE):C.classList.remove(this.CssClasses_.IS_ACTIVE)}.bind(this);this.tabBar_.addEventListener("scroll",E),E();var m=function(){this.resizeTimeoutId_&&clearTimeout(this.resizeTimeoutId_),this.resizeTimeoutId_=setTimeout(function(){E(),this.resizeTimeoutId_=null}.bind(this),this.Constant_.RESIZE_TIMEOUT)}.bind(this);window.addEventListener("resize",m),this.tabBar_.classList.contains(this.CssClasses_.JS_RIPPLE_EFFECT)&&this.tabBar_.classList.add(this.CssClasses_.RIPPLE_IGNORE_EVENTS);for(var L=this.tabBar_.querySelectorAll("."+this.CssClasses_.TAB),I=this.content_.querySelectorAll("."+this.CssClasses_.PANEL),f=0;f<L.length;f++)new t(L[f],L,I,this)}this.element_.classList.add(this.CssClasses_.IS_UPGRADED)}},window.MaterialLayoutTab=t,s.register({constructor:f,classAsString:"MaterialLayout",cssClass:"mdl-js-layout"});var b=function(e){this.element_=e,this.init()};window.MaterialDataTable=b,b.prototype.Constant_={},b.prototype.CssClasses_={DATA_TABLE:"mdl-data-table",SELECTABLE:"mdl-data-table--selectable",SELECT_ELEMENT:"mdl-data-table__select",IS_SELECTED:"is-selected",IS_UPGRADED:"is-upgraded"},b.prototype.selectRow_=function(e,t,s){return t?function(){e.checked?t.classList.add(this.CssClasses_.IS_SELECTED):t.classList.remove(this.CssClasses_.IS_SELECTED)}.bind(this):s?function(){var t,i;if(e.checked)for(t=0;t<s.length;t++)i=s[t].querySelector("td").querySelector(".mdl-checkbox"),i.MaterialCheckbox.check(),s[t].classList.add(this.CssClasses_.IS_SELECTED);else for(t=0;t<s.length;t++)i=s[t].querySelector("td").querySelector(".mdl-checkbox"),i.MaterialCheckbox.uncheck(),s[t].classList.remove(this.CssClasses_.IS_SELECTED)}.bind(this):void 0},b.prototype.createCheckbox_=function(e,t){var i=document.createElement("label"),n=["mdl-checkbox","mdl-js-checkbox","mdl-js-ripple-effect",this.CssClasses_.SELECT_ELEMENT];i.className=n.join(" ");var a=document.createElement("input");return a.type="checkbox",a.classList.add("mdl-checkbox__input"),e?(a.checked=e.classList.contains(this.CssClasses_.IS_SELECTED),a.addEventListener("change",this.selectRow_(a,e))):t&&a.addEventListener("change",this.selectRow_(a,null,t)),i.appendChild(a),s.upgradeElement(i,"MaterialCheckbox"),i},b.prototype.init=function(){if(this.element_){var e=this.element_.querySelector("th"),t=Array.prototype.slice.call(this.element_.querySelectorAll("tbody tr")),s=Array.prototype.slice.call(this.element_.querySelectorAll("tfoot tr")),i=t.concat(s);if(this.element_.classList.contains(this.CssClasses_.SELECTABLE)){var n=document.createElement("th"),a=this.createCheckbox_(null,i);n.appendChild(a),e.parentElement.insertBefore(n,e);for(var l=0;l<i.length;l++){var o=i[l].querySelector("td");if(o){var r=document.createElement("td");if("TBODY"===i[l].parentNode.nodeName.toUpperCase()){var _=this.createCheckbox_(i[l]);r.appendChild(_)}i[l].insertBefore(r,o)}}this.element_.classList.add(this.CssClasses_.IS_UPGRADED)}}},s.register({constructor:b,classAsString:"MaterialDataTable",cssClass:"mdl-js-data-table"});var S=function(e){this.element_=e,this.init()};window.MaterialRipple=S,S.prototype.Constant_={INITIAL_SCALE:"scale(0.0001, 0.0001)",INITIAL_SIZE:"1px",INITIAL_OPACITY:"0.4",FINAL_OPACITY:"0",FINAL_SCALE:""},S.prototype.CssClasses_={RIPPLE_CENTER:"mdl-ripple--center",RIPPLE_EFFECT_IGNORE_EVENTS:"mdl-js-ripple-effect--ignore-events",RIPPLE:"mdl-ripple",IS_ANIMATING:"is-animating",IS_VISIBLE:"is-visible"},S.prototype.downHandler_=function(e){if(!this.rippleElement_.style.width&&!this.rippleElement_.style.height){var t=this.element_.getBoundingClientRect();this.boundHeight=t.height,this.boundWidth=t.width,this.rippleSize_=2*Math.sqrt(t.width*t.width+t.height*t.height)+2,this.rippleElement_.style.width=this.rippleSize_+"px",this.rippleElement_.style.height=this.rippleSize_+"px"}if(this.rippleElement_.classList.add(this.CssClasses_.IS_VISIBLE),"mousedown"===e.type&&this.ignoringMouseDown_)this.ignoringMouseDown_=!1;else{"touchstart"===e.type&&(this.ignoringMouseDown_=!0);var s=this.getFrameCount();if(s>0)return;this.setFrameCount(1);var i,n,a=e.currentTarget.getBoundingClientRect();if(0===e.clientX&&0===e.clientY)i=Math.round(a.width/2),n=Math.round(a.height/2);else{var l=void 0!==e.clientX?e.clientX:e.touches[0].clientX,o=void 0!==e.clientY?e.clientY:e.touches[0].clientY;i=Math.round(l-a.left),n=Math.round(o-a.top)}this.setRippleXY(i,n),this.setRippleStyles(!0),window.requestAnimationFrame(this.animFrameHandler.bind(this))}},S.prototype.upHandler_=function(e){e&&2!==e.detail&&window.setTimeout(function(){this.rippleElement_.classList.remove(this.CssClasses_.IS_VISIBLE)}.bind(this),0)},S.prototype.init=function(){if(this.element_){var e=this.element_.classList.contains(this.CssClasses_.RIPPLE_CENTER);this.element_.classList.contains(this.CssClasses_.RIPPLE_EFFECT_IGNORE_EVENTS)||(this.rippleElement_=this.element_.querySelector("."+this.CssClasses_.RIPPLE),this.frameCount_=0,this.rippleSize_=0,this.x_=0,this.y_=0,this.ignoringMouseDown_=!1,this.boundDownHandler=this.downHandler_.bind(this),this.element_.addEventListener("mousedown",this.boundDownHandler),this.element_.addEventListener("touchstart",this.boundDownHandler),this.boundUpHandler=this.upHandler_.bind(this),this.element_.addEventListener("mouseup",this.boundUpHandler),this.element_.addEventListener("mouseleave",this.boundUpHandler),this.element_.addEventListener("touchend",this.boundUpHandler),this.element_.addEventListener("blur",this.boundUpHandler),this.getFrameCount=function(){return this.frameCount_},this.setFrameCount=function(e){this.frameCount_=e},this.getRippleElement=function(){return this.rippleElement_},this.setRippleXY=function(e,t){this.x_=e,this.y_=t},this.setRippleStyles=function(t){if(null!==this.rippleElement_){var s,i,n,a="translate("+this.x_+"px, "+this.y_+"px)";t?(i=this.Constant_.INITIAL_SCALE,n=this.Constant_.INITIAL_SIZE):(i=this.Constant_.FINAL_SCALE,n=this.rippleSize_+"px",e&&(a="translate("+this.boundWidth/2+"px, "+this.boundHeight/2+"px)")),s="translate(-50%, -50%) "+a+i,this.rippleElement_.style.webkitTransform=s,this.rippleElement_.style.msTransform=s,this.rippleElement_.style.transform=s,t?this.rippleElement_.classList.remove(this.CssClasses_.IS_ANIMATING):this.rippleElement_.classList.add(this.CssClasses_.IS_ANIMATING)}},this.animFrameHandler=function(){this.frameCount_-- >0?window.requestAnimationFrame(this.animFrameHandler.bind(this)):this.setRippleStyles(!1)})}},s.register({constructor:S,classAsString:"MaterialRipple",cssClass:"mdl-js-ripple-effect",widget:!1})}(); Line No.-702: //# sourceMappingURL=material.min.js.map Line No.-703: </script> Line No.-704: Line No.-705: <style type="text/css"> Line No.-706: /* PrismJS 1.15.0 Line No.-707: https://prismjs.com/download.html#themes=prism-coy&languages=markup+css+clike+javascript+abap+actionscript+ada+apacheconf+apl+applescript+c+arff+asciidoc+asm6502+csharp+autohotkey+autoit+bash+basic+batch+bison+brainfuck+bro+cpp+aspnet+arduino+coffeescript+clojure+ruby+csp+css-extras+d+dart+diff+django+docker+eiffel+elixir+elm+markup-templating+erlang+fsharp+flow+fortran+gedcom+gherkin+git+glsl+gml+go+graphql+groovy+less+handlebars+haskell+haxe+http+hpkp+hsts+ichigojam+icon+inform7+ini+io+j+java+jolie+json+julia+keyman+kotlin+latex+markdown+liquid+lisp+livescript+lolcode+lua+makefile+crystal+erb+matlab+mel+mizar+monkey+n4js+nasm+nginx+nim+nix+nsis+objectivec+ocaml+opencl+oz+parigp+parser+pascal+perl+php+php-extras+sql+powershell+processing+prolog+properties+protobuf+scss+puppet+pure+python+q+qore+r+jsx+typescript+renpy+reason+rest+rip+roboconf+textile+rust+sas+sass+stylus+scala+scheme+smalltalk+smarty+plsql+soy+pug+swift+yaml+tcl+haml+tt2+twig+tsx+vbnet+velocity+verilog+vhdl+vim+visual-basic+wasm+wiki+xeora+xojo+xquery+tap&plugins=line-numbers+toolbar+copy-to-clipboard */ Line No.-708: /** Line No.-709: * prism.js Coy theme for JavaScript, CoffeeScript, CSS and HTML Line No.-710: * Based on https://github.com/tshedor/workshop-wp-theme (Example: http://workshop.kansan.com/category/sessions/basics or http://workshop.timshedor.com/category/sessions/basics); Line No.-711: * @author Tim Shedor Line No.-712: */ Line No.-713: Line No.-714: code[class*="language-"], Line No.-715: pre[class*="language-"] { Line No.-716: color: black; Line No.-717: background: none; Line No.-718: font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; Line No.-719: text-align: left; Line No.-720: white-space: pre; Line No.-721: word-spacing: normal; Line No.-722: word-break: normal; Line No.-723: word-wrap: normal; Line No.-724: line-height: 1.5; Line No.-725: Line No.-726: -moz-tab-size: 4; Line No.-727: -o-tab-size: 4; Line No.-728: tab-size: 4; Line No.-729: Line No.-730: -webkit-hyphens: none; Line No.-731: -moz-hyphens: none; Line No.-732: -ms-hyphens: none; Line No.-733: hyphens: none; Line No.-734: } Line No.-735: Line No.-736: /* Code blocks */ Line No.-737: pre[class*="language-"] { Line No.-738: position: relative; Line No.-739: margin: .5em 0; Line No.-740: overflow: visible; Line No.-741: padding: 0; Line No.-742: } Line No.-743: pre[class*="language-"]>code { Line No.-744: position: relative; Line No.-745: border-left: 10px solid #358ccb; Line No.-746: box-shadow: -1px 0px 0px 0px #358ccb, 0px 0px 0px 1px #dfdfdf; Line No.-747: background-color: #fdfdfd; Line No.-748: background-image: linear-gradient(transparent 50%, rgba(69, 142, 209, 0.04) 50%); Line No.-749: background-size: 3em 3em; Line No.-750: background-origin: content-box; Line No.-751: background-attachment: local; Line No.-752: } Line No.-753: Line No.-754: code[class*="language"] { Line No.-755: max-height: inherit; Line No.-756: height: inherit; Line No.-757: padding: 0 1em; Line No.-758: display: block; Line No.-759: overflow: auto; Line No.-760: } Line No.-761: Line No.-762: /* Margin bottom to accommodate shadow */ Line No.-763: :not(pre) > code[class*="language-"], Line No.-764: pre[class*="language-"] { Line No.-765: background-color: #fdfdfd; Line No.-766: -webkit-box-sizing: border-box; Line No.-767: -moz-box-sizing: border-box; Line No.-768: box-sizing: border-box; Line No.-769: margin-bottom: 1em; Line No.-770: } Line No.-771: Line No.-772: /* Inline code */ Line No.-773: :not(pre) > code[class*="language-"] { Line No.-774: position: relative; Line No.-775: padding: .2em; Line No.-776: border-radius: 0.3em; Line No.-777: color: #c92c2c; Line No.-778: border: 1px solid rgba(0, 0, 0, 0.1); Line No.-779: display: inline; Line No.-780: white-space: normal; Line No.-781: } Line No.-782: Line No.-783: pre[class*="language-"]:before, Line No.-784: pre[class*="language-"]:after { Line No.-785: content: ''; Line No.-786: z-index: -2; Line No.-787: display: block; Line No.-788: position: absolute; Line No.-789: bottom: 0.75em; Line No.-790: left: 0.18em; Line No.-791: width: 40%; Line No.-792: height: 20%; Line No.-793: max-height: 13em; Line No.-794: box-shadow: 0px 13px 8px #979797; Line No.-795: -webkit-transform: rotate(-2deg); Line No.-796: -moz-transform: rotate(-2deg); Line No.-797: -ms-transform: rotate(-2deg); Line No.-798: -o-transform: rotate(-2deg); Line No.-799: transform: rotate(-2deg); Line No.-800: } Line No.-801: Line No.-802: :not(pre) > code[class*="language-"]:after, Line No.-803: pre[class*="language-"]:after { Line No.-804: right: 0.75em; Line No.-805: left: auto; Line No.-806: -webkit-transform: rotate(2deg); Line No.-807: -moz-transform: rotate(2deg); Line No.-808: -ms-transform: rotate(2deg); Line No.-809: -o-transform: rotate(2deg); Line No.-810: transform: rotate(2deg); Line No.-811: } Line No.-812: Line No.-813: .token.comment, Line No.-814: .token.block-comment, Line No.-815: .token.prolog, Line No.-816: .token.doctype, Line No.-817: .token.cdata { Line No.-818: color: #7D8B99; Line No.-819: } Line No.-820: Line No.-821: .token.punctuation { Line No.-822: color: #5F6364; Line No.-823: } Line No.-824: Line No.-825: .token.property, Line No.-826: .token.tag, Line No.-827: .token.boolean, Line No.-828: .token.number, Line No.-829: .token.function-name, Line No.-830: .token.constant, Line No.-831: .token.symbol, Line No.-832: .token.deleted { Line No.-833: color: #c92c2c; Line No.-834: } Line No.-835: Line No.-836: .token.selector, Line No.-837: .token.attr-name, Line No.-838: .token.string, Line No.-839: .token.char, Line No.-840: .token.function, Line No.-841: .token.builtin, Line No.-842: .token.inserted { Line No.-843: color: #2f9c0a; Line No.-844: } Line No.-845: Line No.-846: .token.operator, Line No.-847: .token.entity, Line No.-848: .token.url, Line No.-849: .token.variable { Line No.-850: color: #a67f59; Line No.-851: background: rgba(255, 255, 255, 0.5); Line No.-852: } Line No.-853: Line No.-854: .token.atrule, Line No.-855: .token.attr-value, Line No.-856: .token.keyword, Line No.-857: .token.class-name { Line No.-858: color: #1990b8; Line No.-859: } Line No.-860: Line No.-861: .token.regex, Line No.-862: .token.important { Line No.-863: color: #e90; Line No.-864: } Line No.-865: Line No.-866: .language-css .token.string, Line No.-867: .style .token.string { Line No.-868: color: #a67f59; Line No.-869: background: rgba(255, 255, 255, 0.5); Line No.-870: } Line No.-871: Line No.-872: .token.important { Line No.-873: font-weight: normal; Line No.-874: } Line No.-875: Line No.-876: .token.bold { Line No.-877: font-weight: bold; Line No.-878: } Line No.-879: .token.italic { Line No.-880: font-style: italic; Line No.-881: } Line No.-882: Line No.-883: .token.entity { Line No.-884: cursor: help; Line No.-885: } Line No.-886: Line No.-887: .namespace { Line No.-888: opacity: .7; Line No.-889: } Line No.-890: Line No.-891: @media screen and (max-width: 767px) { Line No.-892: pre[class*="language-"]:before, Line No.-893: pre[class*="language-"]:after { Line No.-894: bottom: 14px; Line No.-895: box-shadow: none; Line No.-896: } Line No.-897: Line No.-898: } Line No.-899: Line No.-900: /* Plugin styles */ Line No.-901: .token.tab:not(:empty):before, Line No.-902: .token.cr:before, Line No.-903: .token.lf:before { Line No.-904: color: #e0d7d1; Line No.-905: } Line No.-906: Line No.-907: /* Plugin styles: Line Numbers */ Line No.-908: pre[class*="language-"].line-numbers.line-numbers { Line No.-909: padding-left: 0; Line No.-910: } Line No.-911: Line No.-912: pre[class*="language-"].line-numbers.line-numbers code { Line No.-913: padding-left: 3.8em; Line No.-914: } Line No.-915: Line No.-916: pre[class*="language-"].line-numbers.line-numbers .line-numbers-rows { Line No.-917: left: 0; Line No.-918: } Line No.-919: Line No.-920: /* Plugin styles: Line Highlight */ Line No.-921: pre[class*="language-"][data-line] { Line No.-922: padding-top: 0; Line No.-923: padding-bottom: 0; Line No.-924: padding-left: 0; Line No.-925: } Line No.-926: pre[data-line] code { Line No.-927: position: relative; Line No.-928: padding-left: 4em; Line No.-929: } Line No.-930: pre .line-highlight { Line No.-931: margin-top: 0; Line No.-932: } Line No.-933: Line No.-934: pre[class*="language-"].line-numbers { Line No.-935: position: relative; Line No.-936: padding-left: 3.8em; Line No.-937: counter-reset: linenumber; Line No.-938: } Line No.-939: Line No.-940: pre[class*="language-"].line-numbers > code { Line No.-941: position: relative; Line No.-942: white-space: inherit; Line No.-943: } Line No.-944: Line No.-945: .line-numbers .line-numbers-rows { Line No.-946: position: absolute; Line No.-947: pointer-events: none; Line No.-948: top: 0; Line No.-949: font-size: 100%; Line No.-950: left: -3.8em; Line No.-951: width: 3em; /* works for line-numbers below 1000 lines */ Line No.-952: letter-spacing: -1px; Line No.-953: border-right: 1px solid #999; Line No.-954: Line No.-955: -webkit-user-select: none; Line No.-956: -moz-user-select: none; Line No.-957: -ms-user-select: none; Line No.-958: user-select: none; Line No.-959: Line No.-960: } Line No.-961: Line No.-962: .line-numbers-rows > span { Line No.-963: pointer-events: none; Line No.-964: display: block; Line No.-965: counter-increment: linenumber; Line No.-966: } Line No.-967: Line No.-968: .line-numbers-rows > span:before { Line No.-969: content: counter(linenumber); Line No.-970: color: #999; Line No.-971: display: block; Line No.-972: padding-right: 0.8em; Line No.-973: text-align: right; Line No.-974: } Line No.-975: Line No.-976: div.code-toolbar { Line No.-977: position: relative; Line No.-978: } Line No.-979: Line No.-980: div.code-toolbar > .toolbar { Line No.-981: position: absolute; Line No.-982: top: .3em; Line No.-983: right: .2em; Line No.-984: transition: opacity 0.3s ease-in-out; Line No.-985: opacity: 0; Line No.-986: } Line No.-987: Line No.-988: div.code-toolbar:hover > .toolbar { Line No.-989: opacity: 1; Line No.-990: } Line No.-991: Line No.-992: div.code-toolbar > .toolbar .toolbar-item { Line No.-993: display: inline-block; Line No.-994: } Line No.-995: Line No.-996: div.code-toolbar > .toolbar a { Line No.-997: cursor: pointer; Line No.-998: } Line No.-999: Line No.-1000: div.code-toolbar > .toolbar button { Line No.-1001: background: none; Line No.-1002: border: 0; Line No.-1003: color: inherit; Line No.-1004: font: inherit; Line No.-1005: line-height: normal; Line No.-1006: overflow: visible; Line No.-1007: padding: 0; Line No.-1008: -webkit-user-select: none; /* for button */ Line No.-1009: -moz-user-select: none; Line No.-1010: -ms-user-select: none; Line No.-1011: } Line No.-1012: Line No.-1013: div.code-toolbar > .toolbar a, Line No.-1014: div.code-toolbar > .toolbar button, Line No.-1015: div.code-toolbar > .toolbar span { Line No.-1016: color: #bbb; Line No.-1017: font-size: .8em; Line No.-1018: padding: 0 .5em; Line No.-1019: background: #f5f2f0; Line No.-1020: background: rgba(224, 224, 224, 0.2); Line No.-1021: box-shadow: 0 2px 0 0 rgba(0,0,0,0.2); Line No.-1022: border-radius: .5em; Line No.-1023: } Line No.-1024: Line No.-1025: div.code-toolbar > .toolbar a:hover, Line No.-1026: div.code-toolbar > .toolbar a:focus, Line No.-1027: div.code-toolbar > .toolbar button:hover, Line No.-1028: div.code-toolbar > .toolbar button:focus, Line No.-1029: div.code-toolbar > .toolbar span:hover, Line No.-1030: div.code-toolbar > .toolbar span:focus { Line No.-1031: color: inherit; Line No.-1032: text-decoration: none; Line No.-1033: } Line No.-1034: </style> Line No.-1035: <script src="/assets/prism.js"></script> Line No.-1036: <script> Line No.-1037: var goTop = document.createElement("a"); Line No.-1038: Line No.-1039: goTop.innerHTML = '<i class="material-icons">&#xE5D8;</i>'; Line No.-1040: Line No.-1041: goTop.style = "bottom:0;right:27%;position:absolute;z-index: 9999"; Line No.-1042: Line No.-1043: goTop.setAttribute("href", "#log_img"); Line No.-1044: Line No.-1045: document.body.appendChild(goTop); Line No.-1046: Line No.-1047: </script> Line No.-1048: Line No.-1049: Line No.-1050: <script src="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/1.0.9/cookieconsent.min.js"></script> Line No.-1051: <script> Line No.-1052: Line No.-1053: window.cookieconsent_options = { Line No.-1054: Line No.-1055: message: 'This site uses cookies to deliver our services and to show you relevant ads. By using our site, you acknowledge that you have read and understood our Privacy Policy. Your use of w3resource Services, is subject to these policies', Line No.-1056: Line No.-1057: theme:'dark-bottom', Line No.-1058: Line No.-1059: learnMore: 'More info', Line No.-1060: Line No.-1061: link: 'https://www.w3resource.com/privacy.php' Line No.-1062: Line No.-1063: }; Line No.-1064: Line No.-1065: </script> Line No.-1066: <style type="text/css"> Line No.-1067: Line No.-1068: .previousNext_bottom a:first-child { Line No.-1069: Line No.-1070: float: left; Line No.-1071: Line No.-1072: margin-left:8px; Line No.-1073: Line No.-1074: } Line No.-1075: Line No.-1076: .previousNext_bottom a:last-child { Line No.-1077: Line No.-1078: float: right; Line No.-1079: Line No.-1080: margin-right:8px; Line No.-1081: Line No.-1082: } Line No.-1083: Line No.-1084: </style> Line No.-1085: <script> Line No.-1086: Line No.-1087: window.onload = function() { Line No.-1088: Line No.-1089: //var old_links = document.getElementById("np").style.display = "none"; Line No.-1090: Line No.-1091: var links = document.querySelector("ul.nav.nav-list").childNodes; Line No.-1092: Line No.-1093: var parentDiv = document.querySelector(".np"); Line No.-1094: Line No.-1095: var parentDiv_bottom = document.querySelector(".np_bottom"); Line No.-1096: Line No.-1097: var node = document.createElement("span"); Line No.-1098: Line No.-1099: var node_bottom = document.createElement("span"); Line No.-1100: Line No.-1101: node.setAttribute("class","previousNext"); Line No.-1102: Line No.-1103: node_bottom.setAttribute("class","previousNext_bottom"); Line No.-1104: Line No.-1105: parentDiv.appendChild(node); Line No.-1106: Line No.-1107: parentDiv_bottom.appendChild(node_bottom); Line No.-1108: Line No.-1109: for (var i=0; i < links.length; i++) { Line No.-1110: Line No.-1111: if(links[i].getAttribute("class")!=="nav-header" && links[i].children[0].getAttribute('href')===window.location.pathname){ Line No.-1112: Line No.-1113: if(links[i-1].getAttribute("class")!=="nav-header"){ Line No.-1114: Line No.-1115: var newLink = document.createElement("a"); Line No.-1116: Line No.-1117: newLink.setAttribute("href",links[i-1].children[0].getAttribute("href")); Line No.-1118: Line No.-1119: var icon = document.createElement("i"); Line No.-1120: Line No.-1121: icon.setAttribute("class","material-icons"); Line No.-1122: Line No.-1123: icon.style.marginLeft = '40px'; Line No.-1124: Line No.-1125: icon.style.color = '#fff'; Line No.-1126: Line No.-1127: icon.style.verticalAlign = 'middle'; Line No.-1128: Line No.-1129: var previousTxt = document.createTextNode('skip_previous'); Line No.-1130: Line No.-1131: icon.appendChild(previousTxt); Line No.-1132: Line No.-1133: newLink.appendChild(icon); Line No.-1134: Line No.-1135: node.appendChild(newLink); Line No.-1136: Line No.-1137: //for bottom Line No.-1138: Line No.-1139: var newLink_bottom = document.createElement("a"); Line No.-1140: Line No.-1141: newLink_bottom.setAttribute("href",links[i-1].children[0].getAttribute("href")); Line No.-1142: Line No.-1143: var previousTxt_bottom = document.createTextNode('Previous'); Line No.-1144: Line No.-1145: newLink_bottom.appendChild(previousTxt_bottom); Line No.-1146: Line No.-1147: node_bottom.appendChild(newLink_bottom); Line No.-1148: Line No.-1149: } Line No.-1150: Line No.-1151: else if (links[i-1].getAttribute("class")==="nav-header"){ Line No.-1152: Line No.-1153: var newLink = document.createElement("a"); Line No.-1154: Line No.-1155: newLink.setAttribute("href",links[i-2].children[0].getAttribute("href")); Line No.-1156: Line No.-1157: var icon = document.createElement("i"); Line No.-1158: Line No.-1159: icon.setAttribute("class","material-icons"); Line No.-1160: Line No.-1161: icon.style.marginLeft = '40px'; Line No.-1162: Line No.-1163: icon.style.color = '#fff'; Line No.-1164: Line No.-1165: icon.style.verticalAlign = 'middle'; Line No.-1166: Line No.-1167: var previousTxt = document.createTextNode('skip_previous'); Line No.-1168: Line No.-1169: icon.appendChild(previousTxt); Line No.-1170: Line No.-1171: newLink.appendChild(icon); Line No.-1172: Line No.-1173: node.appendChild(newLink); Line No.-1174: Line No.-1175: //for bottom Line No.-1176: Line No.-1177: var newLink_bottom = document.createElement("a"); Line No.-1178: Line No.-1179: newLink_bottom.setAttribute("href",links[i-2].children[0].getAttribute("href")); Line No.-1180: Line No.-1181: var previousTxt_bottom = document.createTextNode('Previous'); Line No.-1182: Line No.-1183: newLink_bottom.appendChild(previousTxt_bottom); Line No.-1184: Line No.-1185: node_bottom.appendChild(newLink_bottom); Line No.-1186: Line No.-1187: } Line No.-1188: Line No.-1189: if(links[i+1].getAttribute("class")!=="nav-header") { Line No.-1190: Line No.-1191: var newLink = document.createElement("a"); Line No.-1192: Line No.-1193: newLink.setAttribute("href",links[i+1].children[0].getAttribute("href")); Line No.-1194: Line No.-1195: var icon = document.createElement("i"); Line No.-1196: Line No.-1197: icon.setAttribute("class","material-icons"); Line No.-1198: Line No.-1199: icon.style.marginLeft = '30px'; Line No.-1200: Line No.-1201: icon.style.color = '#fff'; Line No.-1202: Line No.-1203: icon.style.verticalAlign = 'middle'; Line No.-1204: Line No.-1205: var nextTxt = document.createTextNode('skip_next'); Line No.-1206: Line No.-1207: icon.appendChild(nextTxt); Line No.-1208: Line No.-1209: newLink.appendChild(icon); Line No.-1210: Line No.-1211: node.appendChild(newLink); Line No.-1212: Line No.-1213: //for bottom Line No.-1214: Line No.-1215: var newLink_bottom = document.createElement("a"); Line No.-1216: Line No.-1217: newLink_bottom.setAttribute("href",links[i+1].children[0].getAttribute("href")); Line No.-1218: Line No.-1219: var NextTxt_bottom = document.createTextNode('Next'); Line No.-1220: Line No.-1221: newLink_bottom.appendChild(NextTxt_bottom); Line No.-1222: Line No.-1223: node_bottom.appendChild(newLink_bottom); Line No.-1224: Line No.-1225: } Line No.-1226: Line No.-1227: else if (links[i+1].getAttribute("class")==="nav-header") { Line No.-1228: Line No.-1229: var newLink = document.createElement("a"); Line No.-1230: Line No.-1231: newLink.setAttribute("href",links[i+2].children[0].getAttribute("href")); Line No.-1232: Line No.-1233: var icon = document.createElement("i"); Line No.-1234: Line No.-1235: icon.setAttribute("class","material-icons"); Line No.-1236: Line No.-1237: icon.style.marginLeft = '30px'; Line No.-1238: Line No.-1239: icon.style.color = '#fff'; Line No.-1240: Line No.-1241: icon.style.verticalAlign = 'middle'; Line No.-1242: Line No.-1243: var nextTxt = document.createTextNode('skip_next'); Line No.-1244: Line No.-1245: icon.appendChild(nextTxt); Line No.-1246: Line No.-1247: newLink.appendChild(icon); Line No.-1248: Line No.-1249: node.appendChild(newLink); Line No.-1250: Line No.-1251: //for bottom Line No.-1252: Line No.-1253: var newLink_bottom = document.createElement("a"); Line No.-1254: Line No.-1255: newLink_bottom.setAttribute("href",links[i+2].children[0].getAttribute("href")); Line No.-1256: Line No.-1257: var NextTxt_bottom = document.createTextNode('Next'); Line No.-1258: Line No.-1259: newLink_bottom.appendChild(NextTxt_bottom); Line No.-1260: Line No.-1261: node_bottom.appendChild(newLink_bottom); Line No.-1262: Line No.-1263: } Line No.-1264: Line No.-1265: } Line No.-1266: Line No.-1267: } Line No.-1268: Line No.-1269: var prenext = document.querySelector("span.previousNext"); Line No.-1270: Line No.-1271: var cln = prenext.cloneNode(true); Line No.-1272: Line No.-1273: } Line No.-1274: Line No.-1275: </script> Line No.-1276: Line No.-1277: Line No.-1278: Line No.-1279: <script src="//m.servedby-buysellads.com/monetization.js" type="text/javascript"></script> Line No.-1280: <script> Line No.-1281: Line No.-1282: (function(){ Line No.-1283: Line No.-1284: if(typeof _bsa !== 'undefined' && _bsa) { Line No.-1285: Line No.-1286: // format, zoneKey, segment:value, options Line No.-1287: Line No.-1288: _bsa.init('flexbar', 'CK7DCK7L', 'placement:w3resourcecom'); Line No.-1289: Line No.-1290: } Line No.-1291: Line No.-1292: })(); Line No.-1293: Line No.-1294: </script> Line No.-1295: </body> Line No.-1296: </html>